kramann.info
© Guido Kramann

Login: Passwort:










12.2 Analyse des Übertragungsverhaltens eines einachsigen Vehikels

12.2 (EN google-translate)

12.2 (PL google-translate)

Vor dem Hintergrund der Ausführungen im vorangehenden Unterkapitel soll ein erneuter Versuch unternommen werden, ein Modell für den Einachser zu identifizieren.

Grundidee:

  1. Es wird ein halbwegs brauchbarer bereits vorhandener Regler genutzt, um das System in der Nähe des ausgeregelten Zustands zu halten.
  2. Während der Regelung werden der Kippwinkel φ, das PWM-Stellsignal und die jeweils aktuelle Zeitschrittweite Δt in Arrays aufgezeichnet und anschließend seriell an den PC übertragen.
  3. Die Verläufe werden dann in Scilab durch Neu-Interpolation etwas geglättet und die notwendigen Zustandsgrößen gebildet.
  4. Mittels der Methode der kleinsten Quadrate wird das System identifiziert.

Hilfestellungen

MPU6050_DMP6.zip - Selbst-tunender Regler von TEAM GELB (Tag der Offenen Tür 29.5., Gruppe Böckenkamp)
einachser_isr2_003_anfahren.zip - Arbeitsgrundlage (Versuch einer übersichtlichen Code-Strukturierung)
Hinweis: Bitte INT auf MPU6050 mit digitalem Ausgang 0 (entspricht RX bzw. INT2) auf Arduino-Micro verbinden, damit obige Projekte korrekt arbeiten.
Hinweis: Um die seriellen Daten zu bekommen, ohne während der Regelung eine Kabelverbindung zum PC zu haben, kann Seriell1 (TX) verwendet werden:
seriell_weiterleiten.zip
einachser_sprung005_SERIELL.zip

Warum bekommen wir Informationen über die Regelstrecke, obwohl ein geregeltes Gesamtsystem vorliegt?

Antwort.

Bild 12.2-1: Antwort.

Ausgangssystem

Geschätzte Struktur der Systemmatrix der Regelstrecke.

Bild 12.2-2: Geschätzte Struktur der Systemmatrix der Regelstrecke.

Algebraische Gleichung für LSQ

$ \dot \alpha = p \cdot \omega + q \cdot \alpha + r \cdot pwm $

Formel 12.2-1: Algebraische Gleichung für LSQ


$ a= \frac {1}{r} & b=-q \cdot a & c=-p \cdot a $

Formel 12.2-2: Umrechnungen


Numerische zeitliche Ableitungen

Um möglichst gute Näherungen an den benötigten abgeleiteten Größen zu erhalten, bietet es sich an, s.g. zentrale Ableitungen zu verwenden:

$ \omega _k = \frac { \phi _\left(k+1\right) - \phi _\left(k-1\right)}{2 \Delta t} $

Formel 12.2-3: Numerische Bestimmung der Winkelgeschwindigkeit


$ \alpha _k = \frac { \phi _\left(k+1\right) - 2 \phi _k + \phi _\left(k-1\right)}{ \Delta t ^2} $

Formel 12.2-4: Numerische Bestimmung der Winkelbeschleunigung


$ \dot \alpha _k = \frac { \phi _\left(k+2\right) - 2 \phi _\left(k+1\right) + 2 \phi _\left(k-1\right) - \phi _\left(k-2\right)}{2 \Delta t ^3} $

Formel 12.2-5: Numerische Bestimmung der zeitlichen Ableitung der Winkelbeschleunigung


Aufbereiten der Meßwerte mit Scilab

Mittels der Funktion interp1 läßt sich ein zeitlicher Verlauf mit unregelmäßigen Zeitschritten auf einen mit regelmäßigen mappen.

Durch Wahl einer größeren Schrittweite als in der Ausgangsfolge, erhält man eine geglättete Kurve.

t=[0,2,5,7,8,10,13,17,19,20]
y=[1,3,6,9,4,11,13,15,21,22]
tneu=[0,5,10,15,20]
yneu=interp1(t,y,tneu);

Code 12.2-1: Scilab-Beispiel zu interp1.

Weiterführende Gedanken

Euler Rückwärts

Für die spätere Simulation des Beobachters im Zustandsregler mit Beobachter wäre die Verwendung des impliziten Euler-Verfahrens von Vorteil

Vergleich des Verfahrens gegenüber dem expliziten Eulerverfahren

  • bessere Stabilität unabhängig von der Schrittweite &Delta t gegenüber dem expliziten Verfahren.
  • Im Allgemeinen muß beim impliziten Euler-Verfahren bei jedem Iteratiosschritt ein Gleichungssystem gelöst werden (jedoch nicht in unserem Fall).

$ \dot \vec y = A \vec y + B \vec u $

Formel 12.2-6: Lineares dynamisches System mit Stellsignal\left(en\right) im Zeitbereich.


$ \vec y_\left(k+1\right) = \vec y_k+\left(A \vec y_k + B \vec u_k\right) \Delta t $

Formel 12.2-7: Explizites Eulerverfahren für ein LDGLs erster Ordnung


$ \vec y_\left(k+1\right) = \vec y_k+\left(A \vec y_\left(k+1\right) + B \vec u_k\right) \Delta t $

Formel 12.2-8: Implizites Eulerverfahren für ein LDGLs erster Ordnung & bzw. Euler Rückwärts.


$ E \cdot \vec y_\left(k+1\right) - A \cdot \vec y_\left(k+1\right) \cdot \Delta t = \vec y_k+B \cdot \vec u_k \cdot \Delta t $

Formel 12.2-9: Implizites Eulerverfahren umgeformt


$ \left(E-A \cdot \Delta t\right) \cdot \vec y_\left(k+1\right) = \vec y_k+B \cdot \vec u_k \cdot \Delta t $

Formel 12.2-10: Implizites Eulerverfahren weiter umgeformt


$ \vec y_\left(k+1\right) = \left(E-A \cdot \Delta t\right)^\left(-1\right) \cdot \left( \vec y_k+B \cdot \vec u_k \cdot \Delta t\right) $

Formel 12.2-11: Implizites Eulerverfahren noch weiter umgeformt


Rein diskret betrachtetes Gesamtsystem (Gedächtnisstütze - noch in Arbeit / ev. Fehler behaftet)

Eine alternative Variante wäre es einen rein diskreten Zustandsregler aufzubauen:

$ y_\left(k+1\right) = a_0 \cdot y_\left(k\right) + a_1 \cdot y_\left(k-1\right) + a_2 \cdot y_\left(k-2\right) + ... + b_0 \cdot u_\left(k\right) + b_1 \cdot u_\left(k-1\right) + b_2 \cdot u_\left(k-2\right) + ... $

Formel 12.2-12: Diskretes Modell der Regelstrecke.


$ u_\left(k\right) = r_0 \cdot y_\left(k\right) + r_1 \cdot y_\left(k-1\right) + r_2 \cdot y_\left(k-2\right) + ... $

Formel 12.2-13: Diskreter Regler.


  • a0..an ließe sich auf Grundlage der gleichen Meßdaten wie oben über LSQ bestimmen.
  • r0..rn ließe sich mit den bereits erarbeiteten Optimierungsverfahren bestimmen.
Übung

Aufgabe 1

loesung_aufg_12_2.zip - Teillösung bzw. Lösungsüberprüfung zu Aufgabe 1.
loesung_aufg_12_2_neu.zip - mit Lösung zu 7).

Gegeben ist folgendes PT2-Übertragungsglied:

$ G\left(s\right) = \frac {1}{s^2 + 4} $

Formel 12.2-14: Übertragungsglied.


1) Bestimmen Sie die zugehörige Systemmatrix im Zeitbereich.

Das System soll mit Hilfe eines Zustandsreglers mit Beobachter ausgeregelt werden. Die Implementierung soll mit Hilfe des impliziten Eulerverfahrens erfolgen.

2) Bereiten dies vor, indem Sie die Matrix...

$ Q=\left(E-A \cdot \Delta t\right)^\left(-1\right) $

Formel 12.2-15: ...von Hand bestimmen. Vergleichen Sie Ihr Ergebnis mit einer entsprechenden Berechnung in Scilab.


Dabei soll Δt der Einfachheit halber 1 Sekunde sein.

3) Geben Sie die Eigenwerte des Systems an.

4) Geben die Gleichungen an, die das System samt Zustandsregler repräsentieren.

5) Legen Sie den Zustandsregler so aus, dass die Eigenwerte des Gesamtsystems als doppelte reelle Postelle bei -4 liegen. Geben Sie die zugehörige Regelmatrix R an.

6) Nun soll das entstandene Gesamtsystem für die numerische Integration mittels des impliziten Eulerverfahrens vorbereitet werden. Bestimmen Sie auch für das Gesamtübertragungsverhalten die Matrix Q von Hand (vergl. Punkt 2). Vergleichen Sie Ihr Ergebnis mit einer entsprechenden Berechnung in Scilab.

7) Formulieren Sie den Zustandsregler mit Beobachter in Scilab. Verwenden Sie ein Modell als reales System und eines als Beobachter. Beaufschlagen Sie in der Gesamtdarstellung den x-Anteil des realen y=[x,v] dort, wo es mit L*(y-ysim) im Simulationsteil verwendet wird mit einem normalverteilten Rauschen und leiten diesen Wert numerisch ab, um v für die gleiche Stelle zu erhalten, Mittelwert 0, Streuung 0.2. Die Bedeutung hiervon ist, dass die für die Regelung verwendeten Meßwerte für den Systemzustand y nie ganz genau sind. Formulieren Sie das fiktiv simulierte System als Euler-Vorwärts-Simulation mit einer Schrittweite von 0.01s.

8) Untersuchen Sie qualitativ den Einfluß der Störung auf das Gesamtverhalten und den Einfluß der Parameter der Matrix LL. Untersuchen Sie den Unterschied im Regelungsverhalten, wenn der Beobachter ausgeschaltet wird und der rekonstruierte (verrauschte) Systemzustand zur Zustandsregelung verwendet wird.

9) Wandeln Sie den Simulationsteil nun so weit wie denkbar möglich in eine Simulation mit dem impliziten Eulerverfahren um. Vergleichen Sie die hiermit gewonnenen Ergebnisse mit denen aus 7) und 8).

10) Untersuchen Sie den Einfluß der Schwingungsfähigkeit des geregelten Systems auf die Güte der Integrationen mit Euler und implizitem Eulerverfahren. Wählen Sie dazu r1 in der Regelmatrix R so, dass sich für das Gesamtsystem Eigenwerte bei -4+4i und -4-4i ergeben.


Aufgabe 2

Walze.

Bild 12.2-3: Walze.

Eine homogene Walze rollt ideal auf einer Ebene ab und wird von einer Feder gehalten.

Zu Beginn für φ=0 liegen das Körper-Koordinatensystem und das Raumkoordinatensystem ineinander. Das Körper-eigene Koordinatensystem liegt im Mittelpunkt der Walze und dreht mit.

Gegebene Parameter:

R=1m
m=3kg
C=2N/m

Code 12.2-2: Parameter.

Teil 1 - Systemdynamik

  1. Berechnen Sie das Masseträgheitsmoment der Walze bzgl. des Schwerpunktes um die Rollachse.
  2. Geben Sie die Koordinaten des Walzenmittelpunktes = Walzenschwerpunkt in Abhängigkeit von φ im raumfesten Koordinatensystem an.
  3. Schneiden Sie das System frei und tragen alle wirksamen Kräfte ein.
  4. Formulieren Sie die Newton-Euler-Gleichungen für das System.
  5. Formulieren Sie die Simulationsgleichungen zu der Eulergleichung und setzen diese in Scilab um.
  6. Simulieren Sie das System mit Scilab für die Anfangsbedingungen φ(t=0s)=10rad und ω(t=0s)=0rad/s.

Teil 2 - Zustandsregler

Das System soll mit Hilfe eines Moments M, das im Schwerpunkt angreift ausgeregelt werden. Die entsprechende Stellgröße liefert ein Zustandsregler mit Beobachter.

  1. Formulieren Sie das Gesamtsystem in Scilab. Als Systemzustand soll ein verrauschtes φ zur Verfügung stehen. Die anderen Systemzustände sollen aus φ numerisch rekonstruiert werden.
  2. Legen Sie den Zustandsregler mit ppol so aus, dass sich Eigenwerte beim Gesamtübertragungsverhalten bei -1+i und -1-i ergeben. Was ergibt sich für R = [r1,r2]? Vollziehen Sie die Bestimmung auch von Hand durch.
  3. Verlegen Sie die Eigenwerte des Gesamtsystems so, dass das System nach 1s weitestgehend ausgeregelt ist.
  4. Entwickeln Sie einen Regler mit Beobachter für das System.