4 Regelungen

4 Regelungen
In dieser Übung werden Regler für die beiden in den vorangegangenen Übungen betrachteten Laborversuche, die Gleichstrommaschine und den Rotary Flexible Joint, entwickelt.
Basierend auf den linearisierten Modellen werden Regler implementiert, die auf dem zeidiskreten Frequenzkennlinienverfahren sowie dem Zustandsregler-/beobachterentwurf basieren.
Die benötigten Grundlagen für den Reglerentwurf mittels Frequenzkennlinienverfahren
sowie den zeitdiskreten Zustandsregler-/Zustandsbeobachterentwurf wurden bereits in
der VU Automatisierung (WS 2014/15) vorgestellt. Studieren Sie daher zur Vorbereitung
dieser Übung folgende Teile des Skriptums zur VU Automatisierung (WS 2014/15) [4.1]:
• Kapitel 4, 5 und 6, vollständig
• Kapitel 7.1 – 7.6
• Kapitel 8, vollständig
Beachten Sie zur Lösung der nachfolgenden Aufgabenstellungen die Musterlösungen
zu den in diesen Kapiteln angegebenen Beispielen.
Hinweis: Für die Ausarbeitung der Zusatzaufgaben während der Übung werden
unterschiedliche Eigenschaften der im Folgenden entwickelten Regler genauer untersucht. Für diesen Zweck bereiten Sie bitte für die Übung das vollständige und das
reduzierte Modell des Laborversuchs Rotary Flexible Joint sowohl in nichtlinearer
als auch in linearisierter Form in Matlab/Simulink vor.
Bei Fragen oder Anregungen zu dieser Übung wenden Sie sich bitte an
• Martin Saxinger <[email protected]> oder
• Paul Zeman <[email protected]>.
4.1 Gleichstrommaschine
Aufgabe 4.1. Entwerfen Sie mit Hilfe des Frequenzkennlinienverfahrens einen zeitkontinuierlichen Regler für das linearisierte Modell der Gleichstrommaschine inklusive
des Propellers mit der Übertragungsfunktion G(s) aus Aufgabe 1.4 mit der Winkelgeschwindigkeit ωP als Ausgang. Als Arbeitspunkt für den Betrieb des Reglers
wählen Sie die von Ihnen berechnete Ruhelage aus Punkt 4 der Aufgabe 1.5 für
uR,GSM = 5.6 V und Mext = 0 N m. Der geschlossene Kreis soll folgende Spezifika-
Übung Fachvertiefung Automatisierungs- und Regelungstechnik (SS 2015)
© A. Kugi, Institut für Automatisierungs- und Regelungstechnik, TU Wien
4.1 Gleichstrommaschine
Seite 39
tionen für einen Sprung ∆r = 20 rad/s erfüllen:
Bleibende Regelabweichung
e∞ |r(t)=σ(t) = 0
Anstiegszeit
Überschwingen
Stellgrößenbeschränkung
tr = 1 s
u
¨ ≤ 0%
0 ≤ uGSM ≤ 12 V.
Als Reglerstruktur wird
VI (1 + sTI ) sc,i ∈S (s − sc,i )
Qns
R(s) =
s
j=1 (s − sr,j )
Q
(4.1)
gewählt, wobei S = {sc,i }, i = 1, . . . , ns die Menge aller komplexwertigen Pole der
Streckenübertragungsfunktion und sr,j die gewünschten Realisierungspole bezeichnen. Überlegen Sie warum die obige Regelkreisstruktur gewählt wird. Sie können
dazu auch einen einfachen PI-Regler entwerfen und vergleichen! Testen Sie durch
Simulation in Matlab, ob der so entworfene Regelkreis die Spezifikationen erfüllt.
Hinweis: Mit Hilfe des Matlab-Befehls step können Sie direkt die Sprungantwort einer Übertragungsfunktion darstellen.
Da Regler heutzutage überwiegend auf Digitalrechnern implementiert werden, ist es
notwendig, den Entwurf für die ensprechende abgetastete Strecke G(z) durchzuführen.
Für die Zeitdiskretisierung ist die Wahl der Abtastzeit von großer Bedeutung.
Aufgabe 4.2. Entwerfen Sie nun mit Hilfe des Frequenzkennlinienverfahrens einen
zeitdiskreten Regler für das linearisierte Modell der Gleichstrommaschine inklusive
des Propellers. Bestimmen Sie dazu die zu G(s) gehörende q−Übertragungsfunktion
G# (q) in Matlab und entwerfen Sie mit Hilfe des Frequenzkennlinienverfahrens
einen Regler im q-Bereich so, dass der geschlossene Regelkreis für einen Sprung
∆r = 20 rad/s die Spezifikationen analog zu Aufgabe 4.1 mit den Anforderungen
Bleibende Regelabweichung
e∞ |(rk )=(1k ) = 0
Anstiegszeit
Überschwingen
Stellgrößenbeschränkung
tr = 1 s
u
¨ ≤ 0%
0 ≤ uGSM ≤ 12 V.
erfüllt.
Übung Fachvertiefung Automatisierungs- und Regelungstechnik (SS 2015)
© A. Kugi, Institut für Automatisierungs- und Regelungstechnik, TU Wien
4.1 Gleichstrommaschine
Seite 40
Hinweis: In Matlab stehen folgende Prozeduren für die Transformationen
zwischen s-, z- und q-Bereich zur Verfügung:
T
G(s) →a G(z)
G(z) → G# (q)
Matlab-Befehl:
Matlab-Befehl:
Gz=c2d(Gs,Ta,’zoh’)
Gq=d2c(Gz,’tustin’)
T
Matlab-Befehl:
Gz=c2d(Gq,Ta,’tustin’)
G# (q) →a G(z)
Die Reglerstruktur wird analog zu Aufgabe 4.1 zu
VI (1 + qTI ) qc,i ∈Q (q − qc,i )
R (q) =
Qnq
q
j=1 (q − qr,j )
#
Q
(4.2)
gewählt, wobei Q = {qc,i }, i = 1, . . . , nq wieder die Menge aller komplexwertigen
Pole der Streckenübertragungsfunktion und qr,j die gewünschten Realisierungspole bezeichnen. Um den Regler später am Laborversuch testen zu können, muss der
zeitdiskrete Regler R(z) in Proportional-, Integral- sowie Kompensationsteil aufgespalten werden,
I
R(z) = P +
Rkomp (z).
(4.3)
z−1
Verwenden Sie dazu den Matlab-Befehl residue.
Hinweis: Verwenden Sie als Abtastzeit Ta = 50 ms.
Aufgabe 4.3. Implementieren Sie nun den kontinuierlich entworfenen Regler aus Aufgabe 4.1 und den im q-Bereich entworfenen Regler aus Aufgabe 4.2 als Abtastsysteme an der abgetasteten Strecke G(z). Stellen Sie die Sprungantworten der beiden
geschlossenen Regelkreise mit Hilfe des Matlab-Befehls step dar und erläutern Sie
das Ergebnis. Welchen Einfluss hat die Wahl der Abtastzeit Ta auf den geschlossenen
Regelkreis, bei dem der Regler kontinuierlich entworfen aber als Abtastsystem implementiert wurde? Untersuchen Sie, wie die Abtastzeit zu wählen ist, damit in diesem
Fall trotzdem die Anforderungen in Bezug auf das Überschwingen erfüllt werden.
Hinweis: Verwenden Sie gegebenenfalls den Matlab-Befehl feedback zur
Berechnung der Übertragungsfunktion des geschlossenen Kreises.
Aufgabe 4.4. Testen Sie sowohl am linearisierten als auch am vollständigen Modell
durch Simulation in Simulink, ob der entworfene Regelkreis die Spezifikationen erfüllt.
Übung Fachvertiefung Automatisierungs- und Regelungstechnik (SS 2015)
© A. Kugi, Institut für Automatisierungs- und Regelungstechnik, TU Wien
4.2 Rotary Flexible Joint
Seite 41
4.2 Rotary Flexible Joint
Die folgenden Aufgaben beschäftigen sich mit dem Zustandsregler- und Beobachterentwurf für den Laborversuch Rotary Flexible Joint. Das Ziel des Entwurfs ist es, dass der
Ausleger des Systems vorgegebenen Referenzsignalen folgt.
Hinweis: Als Entwurfsmodell für den Zustandsregler/-beobachter dient das linearisierte Modell des Rotary Flexible Joint aus Abschnitt 3.1, Aufgabe 3.5, bei dem der
Coulomb’sche Anteil (3.2) der Reibung vernachlässigt wurde, dt,c = 0. Zur Verifikation von Regler und Beobachter dient das nichtlineare Systemmodell aus Aufgabe 3.6.
In den beiden folgenden Aufgaben 4.5 und 4.6 ist auch im nichtlinearen Systemmodell dt,c = 0 zu setzen. Der Einfluss der Coulomb’schen Reibung soll separat in
Aufgabe 4.7 untersucht werden.
Aufgabe 4.5. Entwerfen Sie für das um die Ruhelage xR = 0 linearisierte Modell des
Rotary Flexible Joint aus Aufgabe 3.5 einen zeitdiskreten Zustandsregler
uk = kT xk + grk ,
(4.4)
mit dem der Ausleger des Systems der Referenzgröße rk folgt. Den Stelleingang des
Systems bildet die Motorspannung u = Mmot . Diskretisieren Sie dazu das Modell
für eine Abtastzeit des Reglers von Ta = 1 ms. Bestimmen Sie die Reglerparameter
k und g so, dass der geschlossene Kreis die Pole pj = exp(λ0 Ta ), j = 1 . . . 4 mit
λ0 ∈ R besitzt. Der Auslegerwinkel soll sprungförmigen Vorgaben des Referenzsignals
in möglichst kurzer Zeit und ohne Überschwingen folgen. Beim Reglerentwurf müssen
außerdem die folgenden Anforderungen berücksichtigt werden:
1. Die Aktorik des RFJ ist so ausgelegt, dass für die Winkelgeschwindigkeit des
Trägers die Begrenzung |ωt | ≤ ωt,max mit ωt,max = 15 rad/s einzuhalten ist.
2. Aufgrund der maximalen zulässigen Federbeanspruchungen muss der Differenzwinkel ∆ϕ = ϕa − ϕt die Bedingung |∆ϕ| ≤ 21◦ erfüllen.
Implementieren Sie den Zustandsregler am nichtlinearen Systemmodell aus Aufgabe 3.6 (dt,c = 0) in Simulink in Form einer Matlab-function. Achten Sie auf die
korrekte Einstellung der Abtastzeit des Reglers! Die Reglerparameter sind in Form
einer Struktur parReg als Parameter aus dem Workspace an die Matlab-function
zu übergeben. Nehmen Sie an, dass Ihnen der gesamte Zustandsvektor des Systems
als Messung zur Verfügung steht. Überprüfen Sie, ob Ihr Regler die gestellten Anforderungen erfüllt, wenn das Referenzsignal sprungförmig von 0 auf 180◦ geändert
wird.
Hinweis: Verwenden Sie zur Erfüllung der ersten Anforderung einen „Rate Limiter“
Block in Simulink, mit dem Sie die maximale Änderungsrate des Referenzwerts auf
±ωt,max begrenzen. Implementieren Sie außerdem zur Glättung des Referenzsignals
Übung Fachvertiefung Automatisierungs- und Regelungstechnik (SS 2015)
© A. Kugi, Institut für Automatisierungs- und Regelungstechnik, TU Wien
4.2 Rotary Flexible Joint
Seite 42
ein Filter der Form
Gf (s) =
1
1 + ωsf
(4.5)
in zeitdiskreter Form (Matlab-Befehl c2d) unmittelbar hinter der Steigungsbegrenzung und setzen Sie die Filterkonstante auf ωf = 30 rad/s!
Für die Implementierung des Reglers (4.4) wird vorausgesetzt, dass der gesamte Systemzustand als Messung zur Verfügung steht. Am realen Aufbau des Rotary Flexible Joint
werden jedoch lediglich die beiden Zustände ϕa und ϕt über zwei Winkel-Encoder eingelesen. Daher soll in der folgenden Aufgabe ein Zustandsbeobachter entworfen werden, mit
dem der Zustandsvektor des Systems über den gemessenen Auslegerwinkel rekonstruiert
werden kann.
Aufgabe 4.6. Entwerfen Sie für das um die Ruhelage xR = 0 linearisierte Modell des
Rotary Flexible Joint aus Aufgabe 3.5 einen zeitdiskreten, vollständigen LuenbergerBeobachter, mit dem der gesamte Systemzustand aus der Messung des Auslegerwinkels ϕa rekonstruiert werden kann. Bestimmen Sie die Beobachterverstärkung
so,
ˆ
dass sich die Pole der Beobachterfehlerdynamik zu pˆj = exp λ0 Ta , j = 1 . . . 4 erˆ 0 ∈ R. Erweitern Sie den Zustandsregler aus Aufgabe 4.5 um den entgeben, mit λ
worfenen Beobachter und implementieren Sie die Kombination aus Zustandsregler
und -beobachter am nichtlinearen Simulationsmodell (dt,c = 0) in Simulink. Sehen
Sie dazu eine gemeinsame Matlab-function für Regler und Beobachter vor, die einen
Header der Form
function [u,x_dach] = fcn(x,y,r,sw_dach,parReg)
besitzt. Über den Eingang sw_dach soll vorgegeben werden können, ob im Regelgesetz für die Stellgröße u mit dem tatsächlichen Systemzustand x oder dem Beobachterzustand gerechnet wird. r ist der gefilterte Referenzwert für den Auslegerwinkel.
Verwenden Sie zur Implementierung der Beobachtergleichungen eine persistentVariable und den gemessenen Auslegerwinkel y. Geben Sie neben der Stellgröße u
auch den Beobachterzustand x_dach zurück, vergleichen Sie ihn mit dem tatsächlichen Zustand und achten Sie auf sinnvolle Werte des geschätzten Zustands. Sämtliche Regler- und Beobachterparameter werden über die Struktur parReg übergeben.
Überprüfen Sie, ob die Anforderungen aus Aufgabe 4.5 auch dann erfüllt werden,
wenn das Regelgesetz auf Basis der Beobachterzustände berechnet wird.
Hinweis: Orientieren Sie sich an Aufgabe 2.14 für die Implementierung des Beobachters als zeitdiskretes dynamisches System in einer Matlab-function. Orientieren Sie
sich weiters an Abschnitt 8.4 des Skriptums zur VU Automatisierung (WS 2014/15)
für die Kombination von Zustandsregler und -beobachter sowie die korrekte Abfolge
der Berechnungsschritte.
In den letzten beiden Aufgaben wurde die Coulomb’sche Reibung des Trägers zur Beurteilung der Entwurfsanforderungen von Regler und Beobachter vernachlässigt und im
Übung Fachvertiefung Automatisierungs- und Regelungstechnik (SS 2015)
© A. Kugi, Institut für Automatisierungs- und Regelungstechnik, TU Wien
4.3 Literatur
Seite 43
Simulationsmodell der Coulomb’sche Reibanteil vernachlässigt (dt,c = 0). Weiters wurde vernachlässigt, dass der Winkel-Encoder zur Bestimmung der Auslegerposition eine
begrenzte Auflösung besitzt. In der folgenden Aufgabe soll der Einfluss dieser beiden
Nichtidealitäten genauer untersucht werden.
Aufgabe 4.7. Der verwendete Winkel-Encoder zur Messung der Auslegerposition
weist eine Quantisierung von 0.001◦ auf. Erweitern Sie Ihr Simulationsmodell um
einen „Quantizer“-Block zur Simulation dieser nichtidealen Messung. Untersuchen
Sie die Auswirkung der Quantisierung auf die Zustände des Beobachters und auf die
Stellgröße des Systems. Betrachten Sie dazu sprungförmige Sollvorgaben des Referenzsignals der Form 0◦ → 10◦ sowie 0◦ → 180◦ . Falls die Amplitude des durch die
nichtideale Messung hervorgerufenen Störanteils im Stellgrößensignal mehr als 0.02
Nm beträgt, passen Sie die Pole des Beobachters in geeigneter Weise an! Aktivieren
Sie nun die Coulomb’sche Reibung, indem Sie den Reibkoeffizienten dt,c auf den nominellen Wert gemäß Tabelle 3.1 setzen und untersuchen Sie, wie sich dies auf die
stationäre Genauigkeit der Regelung auswirkt. Dokumentieren Sie Ihre Ergebnisse!
4.3 Literatur
[4.1] A.
Kugi,
Skriptum
zur
VU
Automatisierung
<http://www.acin.tuwien.ac.at/?id=42>, Institut für
und Regelungstechnik, TU Wien, 2014.
Übung Fachvertiefung Automatisierungs- und Regelungstechnik (SS 2015)
© A. Kugi, Institut für Automatisierungs- und Regelungstechnik, TU Wien
(WS
2014/15),
Automatisierungs-