kramann.info
© Guido Kramann

Login: Passwort:










8 Polvorgabe bei einem Zustandsregler

Verbesserung der Reglereigenschaften

  • Zur Verbesserung der Regelung eines DC-Motors soll im folgenden der komplette Zustandsvektor y zurückgeführt werden.
  • D.h. u wird sowohl aus ω, als auch aus i berechnet.
  • Ein solches Konzept heißt Zustandsregler.
BILDBESCHREIBUNG

Bild 8-1: Prinzip-Blockschaltbild eines Zustandsreglers.

  • Im einfachsten hier behandelten Fall wird der Zustand y mit einer konstanten Matrix -R multipliziert, um den Eingangsvektor u zu berechnen.
  • Es funktioniert aber nur, wenn die Zustandsgrößen zu Null geregelt werden können.
  • Hierzu werden die Zustandsgröße durch solche ersetzt, die in den stationären Zustand hinein verschoben sind.
  • Durch entsprechende Wahl der konstanten Werte der Matrix R können nun die Eigenwerte des Gesamtsystems beeinflußt werden.
  • Durch diese so genannte Polvorgabe wird das dynamische Verhalten der Regelung bestimmt.
  • Nur wenn die Eigenwerte links der imaginären Achse liegen, ist das System stabil.
  • Je weiter links die Eigenwerte liegen, desto schneller reagiert die Regelstrecke.
  • Jedoch sind dann auch die aufzuwenden Energien sehr hoch.
  • Nur die der imaginären Achse am nächsten liegenden Eigenwerte sind für die Regelung wirklich relevant.
  • Diese Eigenwerte werden auch "Dominante Pole" genannt.
BILDBESCHREIBUNG

Bild 8-2: Alle Eigenwerte links der imaginären Achse: Stabiles System mit dominanten konjugiert komplexen Eigenwerten.

  • Erneut soll das Motor-Modell herangezogen werden, um in diesem Fall eine Zustandsregelung zu realisieren.
  • Der stationäre Zustand, in den die Regelung das System überführen soll, kann folgendermaßen bestimmt werden:
  1. Man legt ω z.B. mit 100rad/s fest.
  2. 2. i ergibt sich aus Jdω/dt=ki-Dω für dω/dt=0.
  • Diese stationären Werte werden im folgenden ωstat und istat, bzw. ystat genannt.
  • Die um den stationären Punkt entwickelten Zustandsgleichungen verwenden die Zustandsgrößen ω* und i*, bzw. y*.
  • Für diese gilt: ω*=ω-ωstat und i*=i-istat, bzw. y*=y-ystat
  • Da die stationären Werte konstant sind stimmen die Ableitungen dy*/dt und dy/dt miteinander überein.
  • Zunächst wählen wir y* als Zustand und gehen deshalb davon aus, dass das Modell zum Punkt y*=0 geregelt werden soll:
BILDBESCHREIBUNG

Bild 8-3: Rückführung des Zustands beim um einen stationären Punkt entwickelten Modell.

  • Im letzten Gleichungssystem tauchen nur noch die Zustandsgrößen auf.
  • u wurde eliminiert.
  • Die Eigenwerte dieses Zustands-geregelten Gesamtsystems ergebn sich zu:
BILDBESCHREIBUNG

Bild 8-4: Eigenwerte des Zustands-geregelten Gesamtsystems

  • r2 kann nun beispielsweise aus dem forderen Summanden so gewählt werden, dass die Eigenwerte bei -10 liegen.
  • r1 wird dann z.B. so angepasst, dass die Wurzel verschwindet (aperiodischer Grenzfall).
BILDBESCHREIBUNG

Bild 8-5: Festlegen der Polstellen über r1 und r2

  • Nun haben wir folgendes Problem:
  • Die Systemmatrix des realen System ist unveränderbar.
  • Darum muss der über die Rückführung des Systemzustandes modifizierte Anteil wieder aus der Systemmatrix herausgezogen werden.
  • Das modifizierte System mit y* muß ferner auf das ursprüngliche mit y zurückgeführt werden.
  • Durch y*=y-ystat ergibt sich:
BILDBESCHREIBUNG

Bild 8-6: Trennung des Motor-Modells vom Regler-Anteil.

  • Da der Motor nur über die Spannung geregelt wird, kann der stationäre Anteil der zweiten DGL auf die Spannung geschlagen werden.
  • Der stationäre Anteil der zweiten DGL kann aber im realen System nicht berücksichtigt werden.
Aufgabe 1
  • Setzen Sie das Zustands- geregelte Motormodell in Scilab mit folgeden Parametern um.
D=0.0018;
J=0.00045;
K=0.015;
R=1.0;
L=0.003;
 

Code 8-1: Zu verwendende Parameter für das DC-Motor-Modell.

  • Konkrete Hinweise zum Vorgehen:
  • Setzen Sie zuerst das Motormodell in Scilab um und erweitern es dann.
  • Bedenken Sie, dass die benötigte stationäre Winkelgeschwindigkeit ωstat hier der Sollwert für den Regler ist und sich die benötigte Spannung im stationären Zustand, sowie der stationäre Strom istat daraus ergibt.
  • Der Einfachheit halber wollen wir 5Volt als Spannung im stationären Zustand vorgeben und daraus ωstat und istat bestimmen.
  • Setzen Sie das Zustandsgeregelte Modell so um, dass man die Lage des doppelten realen Pols vorgeben kann.
  • Wenn Sie mit diesen Vorgaben einmal das ungeregelte Modell (blaue Kurve), dann das geregelte bei einer Pollage λ=-10 (rot) und λ=-20 simulieren, sollten Sie folgenden Kurvenverlauf erhalten:
  • Interpretieren Sie die Kurven im Vergleich.
BILDBESCHREIBUNG

Bild 8-6: Scilab-Umsetzung für das Festlegen der Polstellen über r1 und r2

Polvorgabe mit Hilfe der Scilab-Funktion ppol

  • Anstatt durch geeignete Wahl von R die gewünschten Pollagen für (A-BR) in dy/dt=(A-BR)y zu bestimmen, kann dies auch durch eine Scilab-Funktion geschehen.
  • Durch Vorgabe von A, B und der "Wunschlage" der Pole, liefert diese Funktion, sofern möglich, die Matrix R.
  • Es handelt sich hier um ein Optimierungsprogramm, das versucht R so zu bestimmen, dass man so nahe wie möglich an die Wunschpole herankommt.
  • Folgendes Scilab-Skript liefert R für den doppelten Eigenwert bei -10:
D=0.0018;        
J=0.00045;        
k=0.015;
R=1.0;
L=0.003;

    A = [
            [-D/J,k/J];
            [-k/L,-R/L]
        ];


    B = [
            [0];
            [1/L]
        ]

R=ppol(A,B,[-10,-10])
//Ergebnis überprüfen:
spec(A-B*R)
 

Code 8-1: Polvorgabe für einen Zustandsregler mit Scilab.

  • Die Rücktransformation für einen stationären Zustand ungleich von Null, bleibt einem aber auch hier nicht erspart.
Aufgabe 2
  • Setzen Sie die Scilab-Funktion ppol ein, um für obiges Beispiel zunächst die Eigenwerte λ1,2=-10 zu realisieren.
  • Setzen Sie anschließend die Eigenwerte λ1,2=-10+/-10i um.
  • Erzeugen Sie Plots zur Darstellung des Verlaufs der Winkelgeschwindigkeiten für konstant 5V und die beiden Regler.
  • Erzeugen Sie Plots zur Darstellung des Spannungsverlaufs für konstant 5V und die beiden Regler.
  • Hinweis: Die Verläufe von u können nach der Simulation "rekonstruiert" werden.

Optimierung nach Riccati

  • Für den Zustandsregler, der nach y*=0 regelt ergibt sich die vereinfachte Gütefunktion:
BILDBESCHREIBUNG

Bild 8-7: Gütefunktion für Zustandsregler

  • Durch Einsetzen der Lösung für die Sprungantwort für den Zustandsregler in die Gütefunktion F und partielle Ableitung, kann eine direkte Optimierungsforschrift für F gewonnen werden (vergl. Otto Föllinger, Reglungstechnik, Hüthik 1992, S.468-488).
  • Es entsteht ein nichtlineares Gleichungsystem, aus dessen Lösung die optimale Wahl der Elemente der Matrix R folgt.
  • Aus dem nicht lineraren Gleichungssystem wird zunächst die unbekannte Matrix P bestimmt.
  • Die Matrix P hat die gleichen Dimensionen, wie die Systemmatrix A
  • B ist die Eingangsmatrix, vergl. Bild 7-1.
  • Aus P kann dann direkt die Rückführungsmatrix R bestimmt werden.
  • Die Vorschrift zur Bestimmung von R lautet:
BILDBESCHREIBUNG

Bild 8-8: Optimale Auslegung des Zustandsreglers mittels der Riccati-Gleichung.

  • Da diese Riccati-Gleichung nicht linear ist, läßt sie sich in der Regel auch nicht so leicht von Hand lösen.
  • Matlab bietet eine Funktion, die durch Vorgabe der Matrizen A,B,Q und S die Matrix P liefert.
  • Das folgende Matlab-Makro bestimmt P und R für das Motorbeispiel:
Matlab-Makro zur Bestimmung von R für das Zustands-geregelte Motor-Modell über die Riccati-Gleichung.
  • Ein von Kleinmann vorgeschlagenes iteratives Verfahren zur Bestimmung von P besteht nur noch aus linearen Gleichungen:
BILDBESCHREIBUNG

Bild 8-9: Iterative Bestimmung von P.

Beispiel Sommersemester 2017 - 24.05.2017
Example summer semester 2017 - 24.05.2017
Przykładowy semestr letni 2017 - 24.05.2017
// System: x.. -2x. -x = u
// ... hat eine doppelte reelle Polstelle bei +1 => instabil
// gewünscht: Zustandsregler so auslegen, dass 
// Pol bei -1+i und -1-i entsteht.

// Formal:
// [dx/dt;dv/dt] = A*[x;v] + B*u
// [dx/dt;dv/dt] = [0,1;-1,2]*[x;v] + [0;1]*u
// mit u = R*[x;v] = [r1,r2]*[x;v] =>
// [dx/dt;dv/dt] = [0,1;-1,2]*[x;v] + [0;1]*[r1,r2]*[x;v] <=>
//       dy/dt   = (A - B*R)*y

A=[0,1;-1,2]
spec(A)
// => lambda1 = 1, lambda2 = 1

B = [0;1]
R = ppol(A,B,[-1-%i,-1+%i])
// => r1 = 1, r2 = 4
Astern = A-B*R
// == [0,1;-2,-2]
spec(Astern)
// => lambda1 = -1-i, lambda2 = -1+i

Code 8-1: Polvorgabe, Scilabdatei: polvorgabe_bei_zustandsregler.sce

In Formeln:

In formulas:

W formułach:

$ \ddot x - 2 \dot x + x = u $

Formel 8-1: Differentialgleichung des zu regelnden Systems.


$ \left[\begin{array}{cc}\dot x \\ \dot v\end{array}\right] = \left[\begin{array}{cc}0 & 1 \\ -1 & 2\end{array}\right] \cdot \left[\begin{array}{cc}x \\ v\end{array}\right]+\left[\begin{array}{cc}0 \\ 1\end{array}\right] \cdot u $

Formel 8-2: Darstellung als Differentialgleichungssystem \left(DGLS\right) erster Ordnung \left(Matrixschreibweise\right).


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

Formel 8-3: Allgemeine Form.


$ \left[\begin{array}{cc}\dot x \\ \dot v\end{array}\right] = \left[\begin{array}{cc}0 & 1 \\ -1 & 2\end{array}\right] \cdot \left[\begin{array}{cc}x \\ v\end{array}\right]-\left[\begin{array}{cc}0 \\ 1\end{array}\right] \cdot \left[\begin{array}{cc}r1 & r2\end{array}\right] \cdot \left[\begin{array}{cc}x \\ v\end{array}\right] $

Formel 8-4: Einbau des Zus \tan dsreglers u=R \cdot y.


$ \left[\begin{array}{cc}\dot x \\ \dot v\end{array}\right] = \left(\left[\begin{array}{cc}0 & 1 \\ -1 & 2\end{array}\right]-\left[\begin{array}{cc}0 \\ 1\end{array}\right] \cdot \left[\begin{array}{cc}r1 & r2\end{array}\right]\right) \cdot \left[\begin{array}{cc}x \\ v\end{array}\right] $

Formel 8-5: Zusammenfassung.


$ \left[\begin{array}{cc}\dot x \\ \dot v\end{array}\right] = \left(\left[\begin{array}{cc}0 & 1 \\ -1 & 2\end{array}\right]-\left[\begin{array}{cc}0 & 0 \\ r1 & r2\end{array}\right]\right) \cdot \left[\begin{array}{cc}x \\ v\end{array}\right] $

Formel 8-6: Zusammenfassung.