kramann.info
© Guido Kramann

Login: Passwort:










Regelungssysteme
1 day_by_day
2 Heizregelkreis
3 Verzoegerungsglieder
4 Laplace
..4.1 Eigenwerte
..4.2 PT1
..4.3 PRegler
..4.4 Scilab
5 Regleroptimierung
..5.1 Guetefunktion
..5.2 Heuristiken
..5.3 Scilab
..5.4 Gradientenverfahren
..5.5 ModifizierteG
..5.6 Gleichstrommotor
..5.7 Stoerverhalten
6 Javaanwendung
..6.1 PIDgeregelterAntrieb
..6.2 RungeKuttaIntegrator
..6.3 Gradientenverfahren
7 Einstellregeln
..7.1 Totzeit
..7.2 Methode1
..7.3 Methode2
..7.4 Scilab
..7.5 Daempfungsgrad
..7.6 Uebung
8 Polvorgabe
9 Beobachter
10 AutonomerHackenprosche
..10.1 Herleitung
..10.2 Scilab
..10.3 Modellerweiterung
..10.4 Scilab
..10.5 Modellgueltigkeit
..10.6 java
11 Stabilitaet
..11.1 Beispiele
..11.2 Nyqusitkriterium
..11.3 Windup
..11.4 Bode
12 Adaptiv
..12.1 Definition
..12.2 Einachser
..12.3 Auswertung
..12.4 Identifikation
..12.5 Regleroptimierung
..12.6 Zustandsregler
..12.7 Beobachter
13 Analyse
..13.1 Linear
..13.2 Nichtlinear
14 Kalmanfilter
15 Ue_04_2014
..15.1 Geschwindigkeit
..15.2 Richtung
..15.3 Gesamtsystem
..15.4 RiccatiUSW
..15.5 TdOT
16 Inverses_Pendel
17 Einachser
..17.1 Mechanik
..17.2 Uebung8
18 Fuzzy
..18.1 Fuzzylogik
..18.2 FuzzyRegler
..18.3 Uebung9
..18.5 Softwareentwicklung
....18.5.1 AgileSoftwareentwicklung
....18.5.2 FuzzyRegler
....18.5.3 Uebung
..18.6 Umsetzung
....18.6.1 FuzzyRegler
....18.6.2 Simulation
....18.6.3 Optimierung
....18.6.4 Uebung
..18.7 Haengependel
....18.7.1 Haengependel
....18.7.2 Simulation
....18.7.3 FuzzyRegler
....18.7.4 Optimierer
....18.7.5 Genetisch
..18.8 Information
..18.9 Energie
21 Beispiel1
98 day_by_day_WS2021_SoSe21
99 day_by_day_SoSe2018
kramann.info
© Guido Kramann

Login: Passwort:




Analyse des Übertragungsverhaltens eines einachsigen Vehikels

(EN google-translate)

(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 0-1: Antwort.

Ausgangssystem

Geschätzte Struktur der Systemmatrix der Regelstrecke.

Bild 0-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 0-1: Algebraische Gleichung für LSQ


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

Formel 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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 0-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.