Sie sind auf Seite 1von 52

Fachhochschule Aachen

Campus Jülich
Fachbereich 10: Energietechnik

Studiengang: Electrical Engineering (AOS)


Steuerungs- und Regelungstechnik 2

Titel des Praktikumsberichts:


Auslegung einer Temperaturregelung zur Abkühlung
eines Volumenstroms warmer Luft

Praktikumsbericht von Loudifa Hamza 3229514


Touali Nabil 3229525
Qarraey Amine 3229489

Jülich, Februar, 2020


IV

Inhaltverzeichnis
ABBILDUNGSVERZEICHNIS ............................................................................................................. VI

TABELLENVERZEICHNIS ................................................................................................................. VII

1 SYSTEMANALYSE ..........................................................................................................................1

2 WIRKUNGSPLAN ............................................................................................................................1

3 DIFFERENTIALGLEICHUNGEN/ÜBERTRAGUNGSFUNKTION.............................................2

4 SPRUNGANTWORT DES OHNE REGLER OFFENEN REGELKREISES .................................3

5 ENTWURF DES KLASSISCHEN REGLERS .................................................................................4

5.1 OFFENER REGELKREIS .................................................................................................................4


5.1.1 Übertragungsfunktion .............................................................................................................4
5.1.2 Pol-Nullstellen-Kompensation .................................................................................................4
5.1.3 Regelparameter.......................................................................................................................7
5.2 GESCHLOSSENER REGELKREIS ......................................................................................................7
5.2.1 Sprungantworte des geschlossenen Regelkreises ......................................................................7
5.2.2 Pol- und Nullstellen Plan des geschlossenen Regelkreises ........................................................9

MODELLIERUNG IM ZUSTANDSRAUM ........................................................................................... 11

5.3 BESTIMMUNG DER VEKTOREN .................................................................................................... 11


5.4 AUFSTELLEN DER MATRIZEN A, B, C UND D ............................................................................... 11
5.4.1 Basisdefinitionen ................................................................................................................... 11
5.4.2 Gesuchte Matrizen A, B, C und D .......................................................................................... 11
5.4.3 Überprüfung der Richtigkeit von Matrix A ............................................................................. 12
5.4.4 Überprüfung der Steuerbarkeit und Beobachtbarkeit des Modells .......................................... 14

6 ENTWURF DES POLPLATZIERUNGSREGLERS ..................................................................... 15

6.1 MODELLAUFBAU ........................................................................................................................ 15


6.2 MODELLBESCHREIBUNG UND PARAMETER .................................................................................. 15
6.2.1 Sollpole bei Polplatzierung.................................................................................................... 17
6.2.2 Simulationsergebnisse ........................................................................................................... 18

7 ENTWURF DES MATRIX-RICCATI-REGLERS ........................................................................ 19

7.1 MODELLPARAMETER .................................................................................................................. 19


7.2 ISTPOLE BEI DER MATRIX-RICCATI REGLER ................................................................................ 20
7.3 SIMULATIONSERGEBNISSE .......................................................................................................... 21

8 ENTWURF DES KALMANFILTERS ........................................................................................... 22

8.1 MODELLAUFBAU ........................................................................................................................ 22


8.2 MODELLPARAMETER .................................................................................................................. 23
V

8.2.1 Istpole bei dem Kalmanfilter.................................................................................................. 24


8.2.2 Simulationsergebnisse ........................................................................................................... 25

9 ENTWURF DES LUENBERGER-BEOBACHTERS .................................................................... 26

9.1 MODELLBESCHREIBUNG ............................................................................................................. 26


9.2 MODELLPARAMETER .................................................................................................................. 26
9.2.1 Sollpole des Luenberger-Beobachters .................................................................................... 27
9.2.2 Simulation der Ergebnisse ..................................................................................................... 28

10 VERGLEICH DER REGLER IN DER SIMULATION................................................................. 30

ANHANG 1 MATLAB-SKRIPTE ...................................................................................................... 31

ANHANG 2 SIMULINK MODELLE ................................................................................................. 44


Abbildungsverzeichnis VI

Abbildungsverzeichnis
ABBILDUNG 1: REGELSYSTEMS WIRKUNGSPLAN ...........................................................................................1
ABBILDUNG 2: SPRUNGANTWORT DES OHNE REGLER OFFENEN REGELKREISES ..............................................3
ABBILDUNG 3: POL NULLSTELLEN PLAN DES OFFENEN REGELKREISES ..........................................................5
ABBILDUNG 4: POL NULLSTELLEN PLAN DES OFFENEN REGELKREISES GEZOOMT ...........................................5
ABBILDUNG 5: WURZELORTSKURVE DES OFFENEN REGELKREISES .................................................................6
ABBILDUNG 6: WURZELORTSKURVE DES OFFENEN REGELKREISES GEZOOMT .................................................6
ABBILDUNG 7: SPRUNGANTWORTE MIT VORGEGEBENEN DÄMPFUNGEN .........................................................8
ABBILDUNG 8: POLSTELLEN DES GESCHLOSSENEN REGELKREISES BEI VORGEGEBENEN DÄMPFUNGEN ............9
ABBILDUNG 9: POL- UND NULLSTELLEN BEI VORGEGEBENEN DÄMPFUNGSGRADEN GEZOOMT........ 10
ABBILDUNG 10: POLE OFFENER REGELKREIS ZUSTANDSRAUM ............................................................ 15
ABBILDUNG 11: POLE OFFENER REGELKREIS ZUSTANDSRAUM GEZOOMT .......................................... 17
ABBILDUNG 12: MODELL DES ZUSTANDSRAUMS MIT REGLER ............................................................. 17
ABBILDUNG 13: SOLLPOLE BEI POLPLATZIERUNG ................................................................................. 17
ABBILDUNG 14: SOLLPOLE BEI POLPLATZIERUNG GEZOOMT ................................................................ 17
ABBILDUNG 15: SIMULATION DER POLPLATZIERUNGSREGELUNGEN ................................................... 18
ABBILDUNG 16: ISTPOLE DER VERSCHIEDENEN MATRIX-RICCATI-REGLER ........................................ 20
ABBILDUNG 17: ISTPOLE DER VERSCHIEDENEN MATRIX-RICCATI-REGLER GEZOOMT....................... 20
ABBILDUNG 18: SPRUNGANTWORTE DER VERSCHIEDENEN MATRIX-RICCATI-REGLER VERGRÖßER 21
ABBILDUNG 19: STRUKTUR EINES SYSTEMS MIT BEOBACHTER ............................................................ 22
ABBILDUNG 20: : ISTPOLE DES KALMANFILTERS ................................................................................... 24
ABBILDUNG 21: ISTPOLE DES KALMANFILTERS GEZOOMT .................................................................... 24
ABBILDUNG 22: AUSGANGSGRÖßENABWEICHUNG MIT KALMAN-FILTER ............................................ 27
ABBILDUNG 23: POLVORGABE FÜR DEN LUENBERGER BEOBACHTER .................................................. 27
ABBILDUNG 24: POLVORGABE FÜR DEN LUENBERGER BEOBACHTER GEZOOMT ................................ 28
ABBILDUNG 25: ABWEICHUNG VON DEM EINGANGSSPRUNG ................................................................ 28
ABBILDUNG 26: REGELKREIS MIT PI-REGLER ............................................................................................. 44
ABBILDUNG 27: MODELL DES ZUSTANDSRAUMS ................................................................................... 45
ABBILDUNG 28: MODELL DES OFFENEN REGELKREISES MIT MIT BEOBACHTER.......................................... 46
Tabellenverzeichnis VII

Tabellenverzeichnis
TABELLE 1: SYSTEMANALYSE ......................................................................................................................1
TABELLE 2: DIFFERENTIALGLEICHUNGEN UND ÜBERTRAGUNGSFUNKTIONEN DES REGELKREISES ..................2
TABELLE 3: REGELPARAMETER DES KREISES ................................................................................................7
TABELLE 4: ANGABE DER SOLLPOLE .......................................................................................................... 16
TABELLE 5: REGELPARAMETER DES POLPLATZIERUNGSREGLERS ................................................................ 16
TABELLE 6: DIAGONALELEMENTE GEWICHTUNGSMATRIZEN ....................................................................... 19
TABELLE 7: REGLER-PARAMETER DER VERSCHIEDENEN MATRIX-RICCATI-REGLER ..................................... 19
TABELLE 8: EIGENWERTE DER VERSCHIEDENEN MATRIX-RICCATI-REGLER ................................................. 19
TABELLE 9: GEWICHTUNGSMATRIZEN FÜR KALMAN-FILTER ....................................................................... 23
TABELLE 10: BEOBACHTER-PARAMETER DES KALMAN-FILTERS ................................................................. 23
TABELLE 11: EIGENWERTE DES KALMAN-FILTERS ...................................................................................... 23
TABELLE 12: SOLLPOLE FÜR DEN LUENBERGER BEOBACHTER..................................................................... 26
TABELLE 13: BEOBACHTERPARAMETER DES LUENBERGER-BEOBACHTERS .................................................. 28
Einleitung/Systemanalyse 1

1 Systemanalyse
In der unterstehenden Tabelle 1 werden die Eingangs- Ausgangs-, und Störgrößen für den
Offenen und Geschlossenen Regelkreis aufgelistet.
Tabelle 1: Systemanalyse
Offener Regelkreis Geschlossener Regelkreis
Eingangsgröße Pv, 𝑢𝑤 , 𝑚̇ 𝐿 Pv, 𝑢𝑤 , 𝑚̇ 𝐿
Ausgangsgröße 𝑢𝑀 𝜗
Regelgröße 𝜗 𝜗
Störgröße Pv, 𝑚̇ 𝐿 Pv, 𝑚̇ 𝐿
Quelle: Eigene Darstellung
Wirkungsplan 1

2 Wirkungsplan
Abbildung 1: Regelsystems Wirkungsplan

Quelle: Eigene Darstellung


Differentialgleichungen/Übertragungsfunktion 2

3 Differentialgleichungen/Übertragungsfunktion
Im folgendem sind die Differentialgleichungen und Übertragungsfunktionen aufgelistet.
Tabelle 2: Differentialgleichungen und Übertragungsfunktionen des Regelkreises

DGL Übertragungsfunktion
Verzögerung 𝜗=𝑘𝜗.𝑣𝑀 (t-𝑇𝑡 ) 𝐹𝑡 = 𝑒−𝑠𝑇𝑡
𝐾
Thermoelement 𝑇𝜗 𝑈̇ 𝜗 + 𝑈𝜗 = 𝐾𝜗 𝜗 𝜗
𝐹𝜗 = 1+𝑠𝑇
𝜗

Messverstärker 𝑈𝑀 = 𝐾𝑀𝑉 𝑈𝜗 𝐹𝑀𝑣 = 𝐾𝑀𝑉

Leistungselektronik 𝑈𝐴 = 𝐾𝐿𝐸 𝑈𝑦 𝐹𝐿𝐸 = 𝐾𝐿𝐸

Motor 𝑇𝑀 𝑛̇ + 𝑛 = 𝐾𝑀 𝑈𝐴 𝐾𝑀
𝐹𝑀 =
1 + 𝑠𝑇𝑀

𝐾𝑛
Pumpe 𝐹𝑝1 = 𝑇 2 ;
𝑛1 𝑇𝑛2 𝑠 +(𝑇𝑛1 +𝑇𝑛2 )𝑠+1
𝐾𝑝𝑣
𝑇𝑛1 𝑇𝑛2 𝑚⃛𝑤 +(𝑇𝑛1 + 𝑇𝑛2 )𝑚̈𝑤 +𝑚̇𝑤 =𝐾𝑛 𝑛 + 𝐹𝑝2 = 𝑇𝑛1𝑇𝑛2𝑠2 +(𝑇𝑛1+𝑇𝑛2 )𝑠+1
𝐾𝑝𝑣 𝑃𝑣
Düse ̇
𝑇𝐷 𝜗 + 𝜗 = 𝐾𝐷 𝑚̇𝑤 + 𝐾𝐿 𝑚̇ 𝐿 −𝐾𝐷 𝐾𝐿
𝐹𝐷1 = ; 𝐹𝐷2 =
1 + 𝑠𝑇𝐷 1 + 𝑠𝑇𝐷

Quelle: Eigene Darstellung


Sprungantwort des ohne Regler offenen Regelkreises 3

4 Sprungantwort des ohne Regler offenen


Regelkreises
Die Simulation des offenen Regelkreises ohne Regler ergibt das folgende Diagramm

Abbildung 2: Sprungantwort des ohne Regler offenen Regelkreises

Quelle: Eigene Darstellung


Entwurf des klassischen Reglers 4

5 Entwurf des klassischen Reglers


Der offene Regelkreis wird erst untersucht. Dabei werden die Störgrößen und Totzeit
vernachlässigt. Nachdem der offene Regelkreis untersucht worden ist, wird ein passende
Regler eingesetzt. Dafür muss die Parameter dieses Reglers bestimmt werden. Danach wird
der Regelkreis geschlossen. Unter den gleichen Bedingungen wird er untersucht und die
resultierenden Verläufe werden alle aufgenommen und dargestellt.
Ein PI-Regler wird hier gewählt und eingesetzt.

5.1 Offener Regelkreis


Nach der Untersuchung des offenen Regelkreises ergibt sich die folgende
Übertragungsfunktion:

5.1.1 Übertragungsfunktion

𝐹0 = 𝐹𝜗 ∙ 𝐹𝑀𝑣 ∙ 𝐹𝐿𝐸 ∙ 𝐹𝑀 ∙ 𝐹𝑝1 ∙ 𝐹𝐷1


𝐹0 =(1+𝑠𝑇𝐾)(1+𝑠𝑇
∙𝐾 ∙𝐾 ∙𝐾 ∙𝐾 ∙𝐾 ∙𝐾
𝜗
𝜗 𝐿𝐸 𝑀𝑉
𝑀
𝑀
𝑛1
𝑇 𝑛 𝐷
)(𝑇 𝑠+1)(𝑇 𝑠+1)(1+𝑠𝑇 ) 𝑇
𝑛2
𝑃𝑅 (1+𝑠 𝑛 )
𝐷 𝑠 𝑛

5.1.2 Pol-Nullstellen-Kompensation

Die größte Zeitkonstante wird hier kompensiert (𝑇𝑛 = 𝑇𝐷 ). Daraus ergibt sich die folgende
Übertragungsfunktion:
𝐾𝜗 ∙ 𝐾𝐿𝐸 ∙ 𝐾𝑀𝑉 ∙ 𝐾𝑀 ∙ 𝐾𝑛 ∙ 𝐾𝐷 ∙ 𝐾𝑃𝑅
𝐹0 =
𝑠𝑇𝑁 (1 + 𝑠𝑇𝜗 )(1 + 𝑠𝑇𝑀 )(𝑇𝑛1 𝑠 + 1)(𝑇𝑛2 𝑠 + 1)

0.0428
𝐹0 =
𝑠 (𝑠 + 8) (𝑠 + 275) (𝑠 + 4,5) (𝑠 + 0,2)

Aus dieser Übertragungsfunktion ergibt sich folgendes (PN-Plan und Wurzelortskurve):


Entwurf des klassischen Reglers 5

Abbildung 3: Pol Nullstellen Plan des offenen Regelkreises

Quelle: Eigene Darstellung


Abbildung 4: Pol Nullstellen Plan des offenen Regelkreises gezoomt

Quelle: Eigene Darstellung


Entwurf des klassischen Reglers 6

Abbildung 5: Wurzelortskurve des offenen Regelkreises

Quelle: Eigene Darstellung


Diese Wurzelortskurve mithilfe der Funktion rlocus (Fo) gebildet. Eine gezoomte Ansicht
ergibt folgendes:
Abbildung 6: Wurzelortskurve des offenen Regelkreises gezoomt

Quelle: Eigene Darstellung


Entwurf des klassischen Reglers 7

5.1.3 Regelparameter

Damit die Regelparameter des Reglers bestimmt werden, wird noch die drei kleinsten
Zeitkonstanten vernachlässigt. Mit diesem Verfahren wird eine kleinere Ordnung für das
System geschafft (von 5 auf 2). Aber die kritischen Parameter werden direkt von der
gezoomten Wurzelortskurve abgelesen. Folgendes ergibt sich aus dieser Durchführung:
0.0428
𝐹𝑜 =
𝑠 (𝑠 + 0,2)
𝑇𝐷
𝐾𝑃𝑅 = ; 𝑇 = 2𝐷𝑇𝑛2
4𝐷2 𝑇𝑛2 𝐾𝐿𝐸 𝐾𝑀 𝐾𝑛 𝐾𝐷 𝐾𝜗 𝐾𝑀𝑣
Tabelle 3: Regelparameter des Kreises
𝑲𝑷𝑹 𝑫 𝑻/s

67,8 0 1,34

2,33 0,707 7,08

1,166 1 10,02

0,04 2 54
Quelle: Eigene Darstellung

Es ist hier ersichtlich, dass die Dämpfung D und Zeitkonstante T antiproportional zu der
Regelverstärkung (Formel und Ergebnisse) sind. Größere Dämpfung führt zu größerer
Zeitkonstante, aber kleinere Verstärkung. Dies führt zu einem langsameren System mit aber
reduzierten Überschwingen.

5.2 Geschlossener Regelkreis


Der Regelkreis kann nun geschlossen und weiter untersucht werden.

5.2.1 Sprungantworte des geschlossenen Regelkreises

Folgendes kommen aus der Simulation des geschlossen Regelkreis mit den gewonnenen
Parametern:
Bei D = 0 wird eine Dauerschwingung erhalten, da das Signal nicht gedämpft wird. Bei der
D = 2 hat die Antwort keine Schwingung, ist aber sehr langsam und erfüllt nicht die
gewünschten Anforderungen (Tan < 35s, Taus< 50s, XÜ < 2,5 K und emax < 0,5 K) des
Systems. Bei D = 0,7071 werden die Anforderungen am schnellsten erfüllt, obwohl mit
einem minimalen Überschwingen.
Entwurf des klassischen Reglers 8

Abbildung 7: Sprungantworte mit vorgegebenen Dämpfungen

Quelle: Eigene Darstellung


Entwurf des klassischen Reglers 9

5.2.2 Pol- und Nullstellen Plan des geschlossenen Regelkreises

Das System hat dann die folgenden Polstellen:

Abbildung 8: Pol- und Nullstellen des geschlossenen Regelkreises bei vorgegebenen Dämpfungen

Quelle: Eigene Darstellung


Entwurf des klassischen Reglers 10

Abbildung 9: Pol- und Nullstellen des geschlossenen Regelkreises bei vorgegebenen Dämpfungen
gezoomt

Quelle: Eigene Darstellung


Modellierung im Zustandsraum 11

Modellierung im Zustandsraum
Damit das System im Zustandsraum modelliert werden kann, werden verschiedene Vektoren
anhand des offenen Regelkreises ohne Regler definiert. Anschließend werden die
zugehörigen Matrizen erstellt.

5.3 Bestimmung der Vektoren

Zustandsgrößenvektor:
𝑛
𝑈𝑀𝑉
𝑥(𝑡) = 𝑚̇𝑊
𝑚̈𝑊
( 𝜗 )
Eingangsgrößenvektor:
𝑈𝑦
𝑢(𝑡) = ( 𝑃𝑣 )
𝑚̇𝐿
Ausgangsgrößenvektor:
𝑦(𝑡) = (𝑈𝑀𝑉 )

5.4 Aufstellen der Matrizen A, B, C und D

5.4.1 Basisdefinitionen

𝑥̇ (𝑡) = 𝐴 𝑥 (𝑡) + 𝐵 𝑢(𝑡)


𝑦 (𝑡 ) = 𝐶 𝑥 (𝑡 ) + 𝐷 𝑢 ( 𝑡 )

5.4.2 Gesuchte Matrizen A, B, C und D


Systemmatrix A:
1 𝐾𝑀𝑣 ∙ 𝐾𝜗
− 0 0 0
𝑇𝜗 𝑇𝜗
1
0 − 0 0 0
𝑇𝑀
𝐴 = 0 0 0 1 0
𝐾𝑛 1 𝑇𝑛1 + 𝑇𝑛2
0 − − 0
𝑇𝑛1 ∙ 𝑇𝑛2 𝑇𝑛1 ∙ 𝑇𝑛2 𝑇𝑛1 ∙ 𝑇𝑛2
𝐾𝐷 1
0 0 − 0 −
( 𝑇𝐷 𝑇𝐷 )
Modellierung im Zustandsraum 12

−8 0 0 0 0,8
0 −275 0 0 0
𝐴 = 0 0 0 1 0
0 0,09 −0,9 −4,7 0
(0 0 −3 0 −0,0333)
Eingangsmatrix B:
0 0 0
𝐾𝑀 ∙ 𝐾𝐿𝐸
0 0 0 0 0
𝑇𝑀
0 0 0 392,8571 0 0
𝐵 = 𝐾𝑃𝑣 = 0 0 0
0 0 0 0,45 0
𝑇𝑛1 ∙ 𝑇𝑛2
( 0 0 0,0167)
𝐾𝐿
0 0
( 𝑇𝐷 )
Ausgangsmatrix C: 𝐶 = (1 0 0 0 0)
Durchgangsmatrix D: 𝐷 = (0 0 0)

5.4.3 Überprüfung der Richtigkeit von Matrix A

Nun wird die Zustandsraum-Modellierung mit dem klassischen Modell verglichen. Dafür
werden erst die Eigenwerte der Systemmatrix A bestimmt. Danach werden diese Eigenwerte
mit den Polen der Übertragungsfunktion des offenen Regelkreises ohne Regler verglichen.
𝐾𝐿𝐸 𝐾𝑀 𝐾𝑛 𝐾𝐷 𝐾𝜗 𝐾𝑀𝑣
𝐹0 = 𝐹𝑙𝑒 ∙ 𝐹𝑀 ∙ 𝐹𝑝 ∙ 𝐹𝐷 ∙ 𝐹𝜗 ∙ 𝐹𝑀𝑉 =
(𝑠𝑇𝑀 + 1)(𝑠𝑇𝑛1 + 1)(𝑠𝑇𝑛2 + 1)(𝑠𝑇𝐷 + 1)(𝑠𝑇𝜃 + 1)
84,857
𝐹0 =
(𝑠 + 275)(𝑠 + 8)(𝑠 + 4,5)(𝑠 + 0,2)(𝑠 + 0,0333)

Von dem Nenner der Übertragungsfunktion lässt sich die folgende ermitteln:
𝑃𝑜𝑙𝑒 (𝐹0) = (−275 − 8 − 4,5 − 0,2 − 0,0333)
Die Eigenwerte der Matrix A sind:
𝑒𝑖𝑔 (𝐴) = (−275 − 8 − 4,5 − 0,2 − 0,0333)
Da die Eigenwerte der Matrix A mit den Polen von F0 übereinstimmen, ist die Matrix A
richtig konstruiert.
Modellierung im Zustandsraum 13

Hiermit werden die Pole von F0 beziehungsweise der Eigenwerte von Matrix A dargestellt.
Abbildung 10: Pole offener Regelkreis Zustandsraum

Quelle: Eigene Darstellung


Abbildung 11: Pole offener Regelkreis Zustandsraum gezoomt

Quelle: Eigene Darstellung


Modellierung im Zustandsraum 14

5.4.4 Überprüfung der Steuerbarkeit und Beobachtbarkeit des Modells

Damit das Modell steuerbar ist, muss die rank (ctrb (A, B)) den gleichen Rang, wie der
Matrix A, haben. Dies gilt auch für die Beobachtbarkeit des Modells. Dafür muss die rank
(obsv (A, C)) den gleichen Rang wie Matrix A haben. Sie haben alle den Rang 5, also ist das
Modell sowohl steuerbar als auch beobachtbar.
Entwurf des Polplatzierungsreglers 15

6 Entwurf des Polplatzierungsreglers

6.1 Modellaufbau

Das System wird mit Regler erweitert. Vom Eingang wird der Sollwert nochmal durch
Vorfilter verstärkt. Für den Reglerentwurf durch Polplatzierung und Matrix-Riccati dient die
unterstehende Schaltung für Simulation.

Abbildung 12: Modell des Zustandsraums mit Regler

Quelle: Eigene Darstellung

6.2 Modellbeschreibung und Parameter


Für die Sollpole wurden drei reelle Pole platziert und zwei andere von den vorgegebenen
Dämpfungen und Zeitkonstanten berechnet. Mithilfe dieser Polen wird eine Rückführmatrix
und ein Vorfilter M berechnet.
Entwurf des Polplatzierungsreglers 16

Tabelle 4: Angabe der Sollpole


P1: Dzr1= 0,99; P2: Dzr2= 0,5; P3: Dzr3= 0,99; P4: Dzr4= 0,5;
Tzr1= 2 Tzr2= 2 Tzr3= 0,2 Tzr4= 0,2
Soll Pol 1 -275 -275 -275 -275
Soll Pol 2 -8 -8 -8 -8
Soll Pol 3 −4,5 −4,5 −4,5 −4,5
Soll Pol 4 −0,49−𝑗0,07 −0,25−j0,43 −4,95−j0,71 −2,5−j4,33
Soll Pol 5 −0,495+𝑗0,07 −0,25+j0,43 −4,95+j0,71 −2,5+j4,33
Quelle: Eigene Darstellung

Tabelle 5: Regelparameter des Polplatzierungsreglers


Regler- P1 P2 P3 P4
Parameter
Rückführvektor 0 0 0 0
0,0019 0,0007 0,0246 0,0121
28,188 11,1796 533,0904 363,0061
5,887 2,0792 75,8283 37,7495
( −2,525 ) ( −2,7146 ) ( −285,662 ) ( −287,554 )
Vorfilter −29,2 −29,2 −2916,7 −2916,7
Quelle: Eigene Darstellung
Entwurf des Polplatzierungsreglers 17

6.2.1 Sollpole bei Polplatzierung


Abbildung 13: Sollpole bei Polplatzierung

Quelle: Eigene Darstellung


Abbildung 14: Sollpole bei Polplatzierung gezoomt

Quelle: Eigene Darstellung


Entwurf des Polplatzierungsreglers 18

6.2.2 Simulationsergebnisse

Abbildung 15: Simulation der Polplatzierungsregelungen

Quelle: Eigene Darstellung

Die Dämpfung und Zeitkonstante haben eine größe Auswirkung auf das Regelverhalten. In
diesem Fall sind alle Regelungen schnell genug, aber P3 erfüllt am besten die
Anforderungen.
Entwurf des Matrix-Riccati-Reglers 19

7 Entwurf des Matrix-Riccati-Reglers


7.1 Modellparameter
R wird konstant auf den Wert 1 gesetzt. Hierzu muss in der Matlab-Funktion „lqr()“ die
Regler-Parameter und Eigenwerte des Matrix-Riccati-Reglers bestimmt werden. Q hingeben
wird variiert. Dazu werden vier verschiedene Matrizen, deren Hauptdiagonale je um eine
Zehnerpotenz verändert wird, aufgestellt. Durch dieses Verfahren soll die Abweichung der
Regelgröße minimiert werden. Die Ergebnisse stehen hierunter in den Tabellen 7 bis 9.

Tabelle 6: Diagonalelemente Gewichtungsmatrizen Q1 bis Q4


Diagonalelement Q1 Q2 Q3 Q4
1 1 1 1 1
2 1 1 1 1
3 1 1 1 1
4 1 100 10000 1000000
5 1 100 10000 1000000
Quelle: Eigene Darstellung
Tabelle 7: Regler-Parameter der verschiedenen Matrix-Riccati-Regler
Regler- Regler 1 Regler 2 Regler 3 Regler 4
Parameter
Rückführvektor 0 0 0 0
0,5 0,5 0,5 0,7
9,2 53,7 281,3 2449,6
1,9 11,2 83,3 966,8
(−0,8) (−9,3) (−96,7) (−972,6)
Vorfilter −10 −100 −1000 −10000
Quelle: Eigene Darstellung
Tabelle 8: Eigenwerte der verschiedenen Matrix-Riccati-Regler
Eigenwert Regler 1 Regler 2 Regler 3 Regler 4
1 −0,19 + j0,12 −0,50 + j0,49 −1,12 + j1,14 −1,22 + j1,22
2 −0,19 − j0,12 −0,50 − j0,49 −1,12 – j1,14 −1,22 − j1,22
3 −4,50 −4,56 −8 −8
4 −8 −8 −8,65 −7478
5 −479,54 −479,54 −479,49 −473,7
Quelle: Eigene Darstellung
Entwurf des Matrix-Riccati-Reglers 20

7.2 Istpole bei der Matrix-Riccati Regler


Nun werden die Istpole des Systems dargestellt.
Abbildung 16: Istpole der verschiedenen Matrix-Riccati-Regler

Quelle: Eigene Darstellung


Abbildung 17: Istpole der verschiedenen Matrix-Riccati-Regler gezoomt

Quelle: Eigene Darstellung


Entwurf des Matrix-Riccati-Reglers 21

Aus Tabelle 9 ist es ersichtlich, dass die 4 Regler mindestens einmal den Eigenwert -8 haben.
Die unterscheiden sich in nächstfolgenden Werten: auf dem Real- als auch Imaginärteil. Alle
Regler besitzen ein Paar von symmetrischen Polen auf der imaginären Achse, d.h. die liegen
an der Stabilitätsgrenze. Mit größerer Gewichtungsmatrix Q, kommen die Pole (im
Allgemein) ferner vom Ursprung der Achse. Betrachtet man in kleinerer Perspektive
(Abbildung 15), die Pole von Einheitsmatrix Q1 sind dominant und mit größerer Q wird die
Pole stabiler.

7.3 Simulationsergebnisse
Die Verläufe der 4 Ausgangsgröße des Systems sind hierunter in einem Diagramm erfasst.

Abbildung 18: Sprungantworte der verschiedenen Matrix-Riccati-Regler vergrößert

Quelle: Eigene Darstellung

Aus dem Diagramm lässt sich erkennen, dass je größer die Zehnerpotenz ist, desto stärker
wird das Signal gedämpft quasi nach links platziert. Das schnellste Signal ist Q4, wobei die
letzten zwei Zustandsgrößen 𝑚̈𝑊 ; 𝜗 mit dem Faktor 1e+6 beeinflusst werden. Eine größere
Gewichtungsmatrix bringt zwar schnellere Ergebnisse, es kommt aber mit höherer
Kostenfunktion J.
Entwurf des Kalmanfilters 22

8 Entwurf des Kalmanfilters


8.1 Modellaufbau
Der Entwurf von sowohl Kalmanfilter als auch Luenbergerbeobachters dient der
Beobachtung der Systemparameter. Im Idealfall nimmt man diese über die Lebensdauer
eines Systems als konstant an, im Real -Fall treten jedoch oftmals Abweichungen auf – z.B.
durch Temperaturschwankungen, Kurzschlüsse oder das Durchbrennen eines Bauteils. Der
Beobachter vergleicht die Parameter mit Sollwerten und passt diese bei Abweichungen
schnellstmöglich an, was das System zwar komplexer und ein Stück weit langsamer macht,
jedoch für die Stabilität sehr wertvoll ist.
Kalmanfilter und Luenbergerbeobachter unterscheiden sich lediglich durch die Berechnung
der Rückführmatrix L, wobei der Kalmanfilter auf der Lösung der Matrix-Ricatti-Gleichung
basiert und der Luenbergerbeobachter auf der gezielten Platzierung der Pole.

Abbildung 19: Struktur eines Systems mit Beobachter

Quelle: Eigene Darstellung


Entwurf des Kalmanfilters 23

8.2 Modellparameter
Die Methode bei der Bestimmung von Rückkopplungsmatrix L ist analog zum
Reglerentwurf durch Matrix-Riccati, indem die Funktion lqr mit transponierter Anpassung
vorgenommen wird.
Tabelle 9: Gewichtungsmatrizen für Kalman-Filter
Diagonalelement Qk1 Qk2 Qk3 Qk4
1 1 10 100 1000
2 1 10 100 1000
3 1 10 100 1000
4 1 10 100 1000
5 1 10 100 1000
Quelle: Eigene Darstellung
Tabelle 10: Beobachter-Parameter des Kalman-Filters
Beobachter- Beobachter1 Beobachter2 Beobachter3 Beobachter4
Parameter
L 0,6567 1,7791 6,6580 26,7419
0 0 0 0
−0,6314 −2,4503 −8,5086 −27,6428
0,1238 0,4691 1,5636 4,9172
( 6,2116 ) ( 13,5199 ) ( 31,7858 ) ( 89,3729 )
Quelle: Eigene Darstellung
Tabelle 11: Eigenwerte des Kalman-Filters
Eigenwert Beobachter1 Beobachter2 Beobachter3 Beobachter4
1 −0,41 + j0,38 −0,71 + j0,67 −1,05 + j0,95 −1,18 + j1,05
2 −0,41 − j0,38 −0,71 − j0,67 −1,05 – j0,95 −1,18 − j1,05
3 −4,5 −4,5 −4,5 −4,5
4 −8,06 −8,06 −12,79 −32,61
5 −275 −275 −275 −275
Quelle: Eigene Darstellung
Entwurf des Kalmanfilters 24

8.2.1 Istpole bei dem Kalmanfilter


Abbildung 20: Istpole des Kalmanfilters

Quelle: Eigene Darstellung

Abbildung 21: Istpole des Kalmanfilters gezoomt

Quelle: Eigene Darstellung


Entwurf des Kalmanfilters 25

Die Vergrößerung der Gewichtungsmatrizen Qk führt dazu, dass sich die Pole des Modells
nach links verschieben. Das heißt es reagiert schneller als das eigene System.

8.2.2 Simulationsergebnisse

Die Differenz 𝑦(𝑡) − 𝑦̂(𝑡) ist genauso der Fehler des Modells/ Beobachters. Die Verläufe
der 4 verschiedenen Qk werden in einem Diagramm veranschaulicht.

Abbildung 22: Ausgangsgrößenabweichung mit Kalman-Filter

Quelle: Eigene Darstellung

Die Einheitsmatrix Qk1 liefert das größte Fehler-Ergebnis von System. Der Fehler verkleinert
sich mit exponentiell steigender Matrix, wodurch davon abgebildeter Beobachter-Parameter
L bei der Kompensierung des Fehlers eine Rolle spielt. Die Qk4 (die größte
Gewichtungsmatrix) mit der größten Rückkopplungsmatrix L hat am niedrigsten Fehler-
Verlauf. Bei Kalman-Filter liegen die Fehler-Verläufe dicht beieinander und die Spitzen
überlagern sich einander.
Entwurf des Luenberger-Beobachters 26

9 Entwurf des Luenberger-Beobachters


9.1 Modellbeschreibung
Wie der Name schon sagt, wird hier auch ein Beobachter entworfen. Eine gleiche Simulation
wird sowohl für den Kalman-Filter als auch für den Luenberger Beobachter verwendet. Es
gibt aber einen Unterschied zwischen den beiden Entwurfe und zwar dieser Unterschied liegt
in der Definition des Beobachters. Während der Beobachterparameter L des Kalman-Filters
mithilfe einer Optimierung der Q-Matrizen bestimmt wird, werden bei dem Luenberger-
Beobachter einfach mit der Polplatzierung Methode die Parameter bestimmt.
Die Berechnung der Rückführungsmatrix L ist mit derselben Matlab-Funktion place wie
vom Reglerentwurf durch Polvorgabe. Der Unterschied ist die Einsetzung von
transponierten Matrizen.

9.2 Modellparameter
Hier sind die gewonnenen Parameter von dem Entwurf des Luenberger-Beobachters. Erst
kommen die definierten Polen (festgelegte Sollpolen erhalten durch Verschiebung (*2; *3;
*4; *5) der dominierenden Polen (Eigenwerte)):

Tabelle 12: Sollpole für den Luenberger Beobachter


Beobachterpole Beobachter1 Beobachter2 Beobachter3 Beobachter4
(*2) (*3) (*4) (*5)
Pol 1 -550 -825 -1100 -1375

Pol 2 -16 -24 -32 -40

Pol 3 -9 -13,5 -18 -22,5

Pol 4 -0,4 -0,6 -0,8 -1

Pol 5 -0,1 -0,122 -0,1334 -0,2

Quelle: Eigene Darstellung

Die oben aufgelisteten Pole werden dann hierunter in Diagrammen dargestellt


Entwurf des Luenberger-Beobachters 27

9.2.1 Sollpole des Luenberger-Beobachters


Abbildung 23: Polvorgabe für den Luenberger Beobachter

Quelle: Eigene Darstellung


Abbildung 24: Polvorgabe für den Luenberger Beobachter gezoomt

Quelle: Eigene Darstellung


Entwurf des Luenberger-Beobachters 28

Nun werden die Beobachterparameter (Luenbergerparameter L) selbst aufgelistet


Tabelle 13: Beobachterparameter des Luenberger-Beobachters
Beobachter1 Beobachter2 Beobachter3 Beobachter4
(*2) (*3) (*4) (*5)
0 0 0 0
−6,62𝑒 + 12 −1,21𝑒 + 13 −1,79𝑒 + 13 −2,27𝑒 + 13
𝐿
0 0 0 0
2,00𝑒 + 9 4,00𝑒 + 9 6,00𝑒 + 9 8,00𝑒 + 9
( 0 ) ( 0 ) ( 0 ) ( 0 )
Quelle: Eigene Darstellung

9.2.2 Simulation der Ergebnisse

Abbildung 25: Abweichung von dem Eingangssprung

Quelle: Eigene Darstellung


Entwurf des Luenberger-Beobachters 29

Bei Beobachter wird es bestrebt, dass der Fehler 𝑦(𝑡) − 𝑦̂(𝑡) gleich Null sein soll. Der
Fehler-Verlauf von n=5 ist am niedrigsten. Je weiter die Polstelle links platziert, desto
dynamischer ist der Beobachter, somit auch der Beobachter-Parameter auch größer.
Die Fehler-Verläufe sind bei Beobachter divergent. Man erkennt das von den verbreiteten
Spitzen. Die Verläufe sind sozusagen nicht so spitzig wie vom Kalman-Filter. Diese scharfe
Antwort bei dem Kalman-Filter zeigt, dass er schneller als der Luenberger Beobachter
reagiert.
Alle Fehler sowohl vom Kalman-Filter als auch vom Luenberger-Beobachter kommen
immer wieder zu Null. Was zum Rückschluss führt, dass Beobachter-Parameter L nach einer
gewissen Zeit fähig ist, den rückgeführten Fehler bis Null zu kompensieren.
Vergleich der Regler in der Simulation 30

10 Vergleich der Regler in der Simulation


In diesem Kapitel werden nun die verschiedenen Regler-Simulationen miteinander
verglichen. Mit Betracht auf die Anforderungen des Systems wird also deutlich gemacht,
welcher Regler inwieweit die benötigten Anforderungen erfüllt. Die Anforderungen des
Systems sind nämlich Tan < 35 s, Taus < 50s, Xü < 2,5 K, emax < 0,5K.
Je nachdem wie die Regler parametrisiert werden, ergeben sich unterschiedliche
Simulationen der entsprechenden Regler. Darum werden sie anhand ausgewählter Parameter
verglichen. Dies wird den Vergleich vereinfachen und eine logische Aussage-Formulierung
ermöglichen. Beginnend mit dem PI-Regler bis die Regelung mit dem Beobachter werden
sie alle nun verglichen.
Bei der Regelung mit dem PI-Regler mit vorgegebenen Dämpfungen hat nur eine
Einstellung die Anforderungen des Systems erfüllt (die Güte des Reglers). Diese ist bei der
Regelung mit einer Dämpfung von D = 0,707. Siehe Abbildung 7.
Der Entwurf des Polplatzierungsreglers war hinsichtlich der Regelzeit generell besser als der
PI-Regler. Bei allen Polen erfüllen sie die Anforderungen der Regelzeiten (An- und
Ausregelzeiten) des Systems. Die P1 und P3 haben dagegen kein Problem das
Überschwingen auszuregeln. Die P3 ist noch besser. Siehe Abbildung 15.
Weiter geht es mit dem Entwurf des Matrix-Riccati-Reglers, der wie der
Polplatzierungsregler eine gute Regelzeit hat (bei allen Matrizen sind Tan und Taus
Anforderungen erfüllt). Die Regelung mit Q4 ist hier am besten. Siehe Abbildung 18.
Der Kalmanfilter reagiert schnell auf Änderungen der Ausgänge, aber er hat größere
Überschwingen als die vorherigen Regler. Die beste Regelung ist mit Qk4, wobei er noch
ein relativ großes Überschwingen hat (Xü ≅2,9 K > 2,5 K). Die Regelzeiten werden aber
gehalten, da schon bei ungefähr 1,0s das Überschwingen größer als 1 und bei ungefähr 35 s
schon kleiner 1 ist. Siehe Abbildungen 22.
Der Luenberger Beobachter ist langsamer als der Kalmanfilter, aber dafür regelt er das
Überschwingen besser als der Kalmanfilter aus. Der Beobachter 4 (k = 5) hat die beste
Regelung. Der Fehler ist durchaus immer kleiner als 2,5 K und die An- und Ausregelzeiten
erfüllen auch die Anforderungen . Siehe Abbildungen 25.
Anhang 1 Matlab-Skripte 31

Anhang 1 Matlab-Skripte
close all
clear all

%Daten Eingabe
K_theta=1/500;
Kmv=50;
Kle=20/7;
Km=1/2;
Kn=1/10;
Kpv=1/2;
Kd=90;
Kl=1/2;

T_theta=1/8;
Tm=1/275;
Tn1=2/9;
Tn2=5;
Td=30;
Tn=30; %PI-Regler

%Übertragungsfunktionen der Blöcke


F_theta=tf(K_theta,[T_theta 1]);
Fmv=tf(Kmv,1);
Fle=tf(Kle,1);
Fm=tf(Km,[Tm 1]);
Fp1=tf(Kn,[Tn1*Tn2 (Tn1+Tn2) 1]);
Fd1=tf(-Kd,[Td 1]);

%Übertragungsfunktionen der offenen Regelkreis ohne


Regler
F0=F_theta*Fmv*Fle*Fm*Fp1*Fd1;

%Darstellung der Pol-nullstellen


figure(1)
pzmap(F0);
grid on;
hold on;
title('Pol- Nullstellen Plan ORK PI');
xlabel('Real');
ylabel('Imaginaer');
hold off;
print(1,'-dmeta','PolNulstellen')

%Darstellung der Pol-nullstellen-zoom


figure(2)
pzmap(F0);
Anhang 1 Matlab-Skripte 32

grid on
xlim([-5 0]);
ylim([-0.1 0.1]);
print(2,'-dmeta','PolNulstellen-zoom')

%Darstellung der Sprungantwort


figure(3)
step(F0)
print(3,'-dmeta','Sprung-Antwort')

%übertragungsfunktion PI-Regler mit Kpr=1;


Fr= tf([Tn 1],[Tn 0]);

%Übertragungsfunktionen der offenen Regelkreis mit


Regler
%Fo=F_theta*Fmv*Fle*Fm*Fp1*Fd1*Fr;
Fo = -Fr*F0;

%Übertragungsfunktionen der geschlossenen Regelkreis mit


Regler
figure(4)
Fg=Fo/(1+Fo);

%Darstellung Wurzelortskurve
rlocus(Fo)
grid on;
hold on;
title('Wuerzelortskurve');
xlabel('Real');
ylabel('Imaginaer');
hold off;
%rlocfind(Fo)
print(4,'-dmeta','WOK')

% Darstellung Wurzelortskurve-zoom
figure(5)
rlocus(Fo);
grid on
hold on;
title('Wuerzelortskurve');
xlabel('Real');
ylabel('Imaginaer');
xlim([-0.205 0.005]);
ylim([-0.8 0.8]);
hold off
print(5,'-dmeta','WOK-zoom')
Anhang 1 Matlab-Skripte 33

%Regler bestimmung
D1=0; T1=1.34; Kprkritt=67.8;
D2=0.7071; T2=7.08; Kpr2 =2.33;
D3=1; T3=10.02; Kpr3 =1.16;
D4=2; T4=20; Kpr4 =0.04;

Dpr=[D1 D2 D3 D4];
Kpr=[Kprkritt Kpr2 Kpr3 Kpr4];
Tpr=[T1 T2 T3 T4];

for n=1:4
D_var = Dpr(n);
T_var = Tpr(n);
sim('Daempfung')
Daempfung.Response(:,n) =
ans.ScopeData.signals.values(:,n);
Daempfung.Response1(:,n) =
ans.ScopeData.signals.values(:,n+3);
end
Daempfung.Time=ans.ScopeData.time
figure(18)
plot(Daempfung.Time,Daempfung.Response)
hold on
plot(Daempfung.Time,Daempfung.Response1)
hold on
grid on
legend('D = 2','D =
0','Toleranzbereich+','Sprungeingang','Toleranzbereich-
','D = 0.7071','D = 1')
xlabel('Zeit in Sekunden')
ylabel('Messwert (in Grad)')
hold off
print(18,'-dmeta','Daempfung')

Fg1=Fo*Kpr(1)/(1+Fo*Kpr(1)); %bei D=0


Fg2=Fo*Kpr(2)/(1+Fo*Kpr(2)); %bei D=0.7071
Fg3=Fo*Kpr(3)/(1+Fo*Kpr(3)); %bei D=1
Fg4=Fo*Kpr(4)/(1+Fo*Kpr(4)); %bei D=2

%PN-Diagram
figure(6);
hold on
plot(complex(pole(minreal(Fg1))),'xr');
plot(complex(pole(minreal(Fg2))),'xm');
plot(complex(pole(minreal(Fg3))),'xb');
plot(complex(pole(minreal(Fg4))),'xk');
grid on
Anhang 1 Matlab-Skripte 34

legend('D=0','D=0.7071','D=1','D=2');
title('Pol-und Nullstellen bei vorgegebenen
Dämpfungen');
xlabel('Real');
ylabel('Imaginär');
hold off
print(6,'-dmeta','PN-Diagram')

%PN-Diagram_zoom
figure(7);
hold on
plot(complex(pole(minreal(Fg1))),'xr');
plot(complex(pole(minreal(Fg2))),'xm');
plot(complex(pole(minreal(Fg3))),'xb');
plot(complex(pole(minreal(Fg4))),'xk');
grid on
legend('D = 0','D = 0.7071','D = 1','D = 2');
title('Pol-und Nullstellen bei vorgegebenen
Dämpfungen');
xlabel('Real');
ylabel('Imaginär');
hold off
xlim([-8 0]);
ylim([-0.04 0.04]);
print(7,'-dmeta','PN-Diagram-zoom')

%Zustandsraum
%x(t)=[Uv
% n
% mwp
% mwpp
% theta]
%u(t)=[Uy
% Pv
% Mlp]

A=[-1/T_theta 0 0 0 (Kmv*K_theta)/T_theta;
0 -1/Tm 0 0 0;
0 0 0 1 0;
0 Kn/(Tn1*Tn2) -1/(Tn1*Tn2) -(Tn1+Tn2)/(Tn1*Tn2) 0;
0 0 -Kd/Td 0 -1/Td];
B=[0 0 0;
(Km*Kle)/Tm 0 0;
0 0 0;
0 Kpv/(Tn1*Tn2) 0;
0 0 Kl/Td];
C=[1 0 0 0 0];
Anhang 1 Matlab-Skripte 35

D=[0 0 0];

%Kontrolle der Richtigkeit des Zustandsraummodells:


eigenwert=eig(A);
Poll=pole(F0);

%Pole ORK Zustandsraum


figure(8)
plot(real(eigenwert),imag(eigenwert),'*r');
grid on
hold on
title('Pole OR offener RK Zustandsraum');
xlabel('Rälteil');
ylabel('j*Imaginärteil');
hold off;
print(8,'-dmeta','Pole ORK Zustandraum')

%Pole ORK Zustandsraum_zoom


figure(9);
plot(real(eigenwert),imag(eigenwert),'*r');
grid on
hold on
title('Pole OR offener RK Zustandsraum');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
xlim([-8.1 0]);
print(9,'-dmeta','Pole ORK Zustandraum-zoom')

%Steuerbarkeit und Beobachtbarkeit


if rank(ctrb(A,B))==size(A,1)
sb=sprintf('Das System ist steuerbar');
else sb=sprintf('Das System ist nicht steuerbar');
end
if rank(obsv(A,C))==size(A,1)
bb=sprintf('Das System ist beobachtar');
else bb=sprintf('Das System ist nicht beobachtar');
end

%Polvorgabe
%Sollpole festlegen
Dzr1=0.99; Tzr1=2; Dzr2=1/2; Tzr2=0.2;
p1=[Poll(1:3);
-1/Tzr1*(cos(acos(Dzr1))+1j*sin(acos(Dzr1)));
-1/Tzr1*(cos(acos(Dzr1))-1j*sin(acos(Dzr1)))];
p2=[Poll(1:3);
-1/Tzr1*(cos(acos(Dzr2))+1j*sin(acos(Dzr2)));
-1/Tzr1*(cos(acos(Dzr2))-1j*sin(acos(Dzr2)))];
Anhang 1 Matlab-Skripte 36

p3=[Poll(1:3);
-1/Tzr2*(cos(acos(Dzr1))+1j*sin(acos(Dzr1)));
-1/Tzr2*(cos(acos(Dzr1))-1j*sin(acos(Dzr1)))];
p4=[Poll(1:3);
-1/Tzr2*(cos(acos(Dzr2))+1j*sin(acos(Dzr2)));
-1/Tzr2*(cos(acos(Dzr2))-1j*sin(acos(Dzr2)))];
P=[p1 p2 p3 p4];
%Rückführmatrix Rp und vorfilter Mp
for k=1:1:4
Rp(k,:)=place(A,B(:,1),P(:,k));
Mp(k,:)=(C*(B(:,1)*Rp(k,:)-A)^(-1)*B(:,1))^(-1);
end

% Simulation und Plotten


for n = 1:4
Rsim = Rp(n,:);
Msim = Mp(n);
sim('Zustandsraumreglung');
end
Zustandsraumreglung.Time = ans.ScopeData3.time;
Zustandsraumreglung.Response =
ans.ScopeData3.signals.values(:,1)
Zustandsraumreglung.Response1 =
ans.ScopeData3.signals.values(:,2)
Zustandsraumreglung.Response2 =
ans.ScopeData3.signals.values(:,3)
Zustandsraumreglung.Response3 =
ans.ScopeData3.signals.values(:,4)
Zustandsraumreglung.Response4 =
ans.ScopeData3.signals.values(:,5)

figure(19)

plot(Zustandsraumreglung.Time,Zustandsraumreglung.Respon
se)
hold on

plot(Zustandsraumreglung.Time,Zustandsraumreglung.Respon
se1)
hold on

plot(Zustandsraumreglung.Time,Zustandsraumreglung.Respon
se2)
hold on

plot(Zustandsraumreglung.Time,Zustandsraumreglung.Respon
se3)
hold on
Anhang 1 Matlab-Skripte 37

plot(Zustandsraumreglung.Time,Zustandsraumreglung.Respon
se4)
hold on
grid on
legend('Eingang','P1','P2','P3','P4')
xlabel('Zeit (in Sekunden)')
ylabel('Messwert (in Volts)')
ylim([0 1.2]);
print(19,'-dmeta','Zustandsraumreglung')

%Polvorgabe PN Plan darstellung


figure(10)
hold on
plot(complex(p1),'*b');
plot(complex(p2),'*g');
plot(complex(p3),'*r');
plot(complex(p4),'*c');
grid on
legend('p1','p2','p3','p4');
title('Polvorgabe-PN-Darstellung');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
print(10,'-dmeta','Polvorgabe-PN-Darstellung')

%Polvorgabe PN Plan darstellung_zoom


figure(11)
hold on
plot(complex(p1),'*b');
plot(complex(p2),'*g');
plot(complex(p3),'*r');
plot(complex(p4),'*c');
grid on
legend('p1','p2','p3','p4');
title('Sollpole Polvorgabe');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
xlim([-5.1 0]);
print(11,'-dmeta','Polvorgabe-zoom-PN-Darstellung')

%Matrix Riccati Regler


R=1;
Q1=[1 0 0 0 0;
0 1 0 0 0;
0 0 1 0 0;
Anhang 1 Matlab-Skripte 38

0 0 0 1 0;
0 0 0 0 1];
Q2=[1 0 0 0 0;
0 1 0 0 0;
0 0 1 0 0;
0 0 0 100 0;
0 0 0 0 100];
Q3=[1 0 0 0 0;
0 1 0 0 0;
0 0 1 0 0;
0 0 0 10000 0;
0 0 0 0 10000];
Q4=[1 0 0 0 0;
0 1 0 0 0;
0 0 1 0 0;
0 0 0 1000000 0;
0 0 0 0 1000000];

%Bestimmung von Rlqr, Slqr und Elqr


[Rlqr1,Slqr1,Eig1]=lqr(A,B(:,1),Q1,R);
[Rlqr2,Slqr2,Eig2]=lqr(A,B(:,1),Q2,R);
[Rlqr3,Slqr3,Eig3]=lqr(A,B(:,1),Q3,R);
[Rlqr4,Slqr4,Eig4]=lqr(A,B(:,1),Q4,R);
Rlqr=[Rlqr1; Rlqr2; Rlqr3; Rlqr4];
Eig=[Eig1 Eig2 Eig3 Eig4];

%Vorfilter Mlqr
for k=1:1:4
Mlqr(k,:)=(C*(B(:,1)*Rlqr(k,:)-A)^(-1)*B(:,1))^(-1);
end

%Matrix Riccati Regler ploten


for n = 1:4
Rsim1 = Rlqr(n,:);
Msim1 = Mlqr(n);
sim('Mtrixriccati');
end
Mtrixriccati.Time = ans.ScopeData4.time;
Mtrixriccati.Response =
ans.ScopeData4.signals.values(:,1)
Mtrixriccati.Response1 =
ans.ScopeData4.signals.values(:,2)
Mtrixriccati.Response2 =
ans.ScopeData4.signals.values(:,3)
Mtrixriccati.Response3 =
ans.ScopeData4.signals.values(:,4)
Mtrixriccati.Response4 =
ans.ScopeData4.signals.values(:,5)
Anhang 1 Matlab-Skripte 39

figure(20)
hold on
plot(Mtrixriccati.Time,Mtrixriccati.Response,'b')
hold on
plot(Mtrixriccati.Time,Mtrixriccati.Response2,'g')
hold on
plot(Mtrixriccati.Time,Mtrixriccati.Response3,'b')
hold on
plot(Mtrixriccati.Time,Mtrixriccati.Response4,'c')
hold on
plot(Mtrixriccati.Time,Mtrixriccati.Response1,'r')
hold on
grid on
legend('Q1','Q3','Q4','Eingang','Q2')
xlabel('Zeit (in Sekunden)')
ylabel('Messwert (in Volts)')
hold off
print(20,'-dmeta','Matrixriccati')

%Eigenwert PN-Darstellung
figure(12)
hold on
plot(complex(Eig1),'*b');
plot(complex(Eig2),'*g');
plot(complex(Eig3),'*r');
plot(complex(Eig4),'*c');
grid on
legend('Q1','Q2','Q3','Q4');
title('Istpole Matrix-Riccati-R');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
print(12,'-dmeta','Istpole_LQR')

%Eigenwert PN-Darstellung zoom


figure(13)
hold on
plot(complex(Eig1),'*b');
plot(complex(Eig2),'*g');
plot(complex(Eig3),'*r');
plot(complex(Eig4),'*c');
grid on
legend('Q1','Q2','Q3','Q4');
title('Istpole Matrix-Riccati-R');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
xlim([-9 0]);
Anhang 1 Matlab-Skripte 40

ylim([-1.3 1.3]);
print(13,'-dmeta','Istpole_LQR_zoom')

%Kalman_Filter
%Parameter des Kalman-Filters
Ab=A; Bb=B;
Qk1=[1 0 0 0 0;
0 1 0 0 0;
0 0 1 0 0;
0 0 0 1 0;
0 0 0 0 1];
Qk2=[10 0 0 0 0;
0 10 0 0 0;
0 0 10 0 0;
0 0 0 10 0;
0 0 0 0 10];
Qk3=[100 0 0 0 0;
0 100 0 0 0;
0 0 100 0 0;
0 0 0 100 0;
0 0 0 0 100];
Qk4=[1000 0 0 0 0;
0 1000 0 0 0;
0 0 1000 0 0;
0 0 0 1000 0;
0 0 0 0 1000];

%Bestimmung von Rlqrk, Slqrk und Elqrk


[Rlqrk1, Slqrk1, Elqrk1] = lqr(Ab,Bb(:,1),Qk1,R);
[Rlqrk2, Slqrk2, Elqrk2] = lqr(Ab,Bb(:,1),Qk2,R);
[Rlqrk3, Slqrk3, Elqrk3] = lqr(Ab,Bb(:,1),Qk3,R);
[Rlqrk4, Slqrk4, Elqrk4] = lqr(Ab,Bb(:,1),Qk4,R);

[L1, S_K1, E_K1] = lqr(Ab',C',Qk1,R);


[L2, S_K2, E_K2] = lqr(Ab',C',Qk2,R);
[L3, S_K3, E_K3] = lqr(Ab',C',Qk3,R);
[L4, S_K4, E_K4] = lqr(Ab',C',Qk4,R);

% Rückführmatrix Kalmanfilter
RlqrK=[Rlqrk1; Rlqrk2; Rlqrk3; Rlqrk4];
% Eigenwerte des Kreises
ElqrK=[Elqrk1 Elqrk2 Elqrk3 Elqrk4];
% Parameter des Beobachters
LK=[L1; L2; L3; L4];
% Eigenwerte Beobachter
EK = [E_K1 E_K2 E_K3 E_K4];
Anhang 1 Matlab-Skripte 41

%Darstelung Eigenwert Kalman_Filter


figure(14);
hold on
plot(complex(E_K1),'*g');
plot(complex(E_K2),'*b');
plot(complex(E_K3),'*r');
plot(complex(E_K4),'*c');
grid on
legend('Qk1','Qk2','Qk3','Qk4');
title('Istpole Kalmanfilter');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
print(14,'-dmeta','Eigenwert Kalman_Filter')

%Darstelung Eigenwert Kalman_Filter_zoom


figure(15);
hold on
plot(complex(E_K1),'*g');
plot(complex(E_K2),'*b');
plot(complex(E_K3),'*r');
plot(complex(E_K4),'*c');
grid on
legend('Qk1','Qk2','Qk3','Qk4');
title('Istpole Kalmanfilter');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
xlim([-14 0]);
ylim([-1.3 1.3]);
print(15,'-dmeta','Eigenwert Kalman_Filter_zoom')

%Kalman_Filter ploten
for n = 1:4
Rsim2 = RlqrK(n,:);
Lsim2 = LK(n,:);
sim('Kalman_Filter');
end
Kalman_Filter.Time = ans.ScopeData5.time;
Kalman_Filter.Response=
ans.ScopeData5.signals.values(:,1)
Kalman_Filter.Response1 =
ans.ScopeData5.signals.values(:,2)
Kalman_Filter.Response2 =
ans.ScopeData5.signals.values(:,3)
Anhang 1 Matlab-Skripte 42

Kalman_Filter.Response3 =
ans.ScopeData5.signals.values(:,4)

figure(21)
hold on
plot(Kalman_Filter.Time,Kalman_Filter.Response,'b')
hold on
plot(Kalman_Filter.Time,Kalman_Filter.Response2,'r')
hold on
plot(Kalman_Filter.Time,Kalman_Filter.Response3,'b')
hold on
plot(Kalman_Filter.Time,Kalman_Filter.Response4,'c')
grid on
legend('Qk1','Qk2','Qk3','Qk4')
xlabel('Zeit (in Sekunden)')
ylabel('Messwert (in Volts)')
hold off
print(21,'-dmeta','Kalman_Filter')

%Luenbergerbeobachter
P_LuenBsoll_1 = [2*-275;2*-8;2*-4.5;2*-0.2;2*-0.0333];
P_LuenBsoll_2 = [3*-275;3*-8;3*-4.5;3*-0.2;3*-0.0333];
P_LuenBsoll_3 = [4*-275;4*-8;4*-4.5;4*-0.2;4*-0.0333];
P_LuenBsoll_4 = [5*-275;5*-8;5*-4.5;5*-0.2;5*-0.0333];
P_LuenBsoll_K = [P_LuenBsoll_1 P_LuenBsoll_2
P_LuenBsoll_3 P_LuenBsoll_4];

%Sollpole Platzierung
L1 = place(Ab',C',P_LuenBsoll_1);
L2 = place(Ab',C',P_LuenBsoll_2);
L3 = place(Ab',C',P_LuenBsoll_3);
L4 = place(Ab',C',P_LuenBsoll_4);
LK1 = [L1; L2; L3; L4];

%Darstellung Sollpole Luenberger Beobachter


figure(16);
hold on
plot(complex(P_LuenBsoll_1),'*g');
plot(complex(P_LuenBsoll_2),'*b');
plot(complex(P_LuenBsoll_3),'*r');
plot(complex(P_LuenBsoll_4),'*c');
grid on
title('Sollpole Polvorgabe Beobachter');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
Anhang 1 Matlab-Skripte 43

hold off;
print(16,'-dmeta','Eigenwert Luenbergerbeobachter')

%Darstellung Sollpole Luenberger Beobachter_zoom


figure(17);
hold on
plot(complex(P_LuenBsoll_1),'*g');
plot(complex(P_LuenBsoll_2),'*b');
plot(complex(P_LuenBsoll_3),'*r');
plot(complex(P_LuenBsoll_4),'*c');
grid on
title('Sollpole Polvorgabe Beobachter');
xlabel('Realteil');
ylabel('j*Imaginaerteil');
hold off;
xlim([-1.1 0]);
print(17,'-dmeta','Eigenwert Luenbergerbeobachter_Zoom')

%Luenberger Beobachter ploten


for n = 1:4
Rsim3 = RlqrK(n,:);
Lsim3 = LK1(n,:);
sim('Luenbergerbeobachter');
end
LuenbergerBeobachter.Time = ans.ScopeData5.time;
LuenbergerBeobachter.Response=
ans.ScopeData6.signals.values(:,1)
LuenbergerBeobachter.Response1 =
ans.ScopeData6.signals.values(:,2)
LuenbergerBeobachter.Response2 =
ans.ScopeData6.signals.values(:,3)
LuenbergerBeobachter.Response3 =
ans.ScopeData6.signals.values(:,4)

figure(22)
hold on
plot(LuenbergerBeobachter.Time,Kalman_Filter.Response,'b')
hold on
plot(LuenbergerBeobachter.Time,Kalman_Filter.Response2,'r')
hold on
plot(LuenbergerBeobachter.Time,Kalman_Filter.Response3,'b')
hold on
plot(LuenbergerBeobachter.Time,Kalman_Filter.Response4,'c')
grid on
legend('K=2','K=3','K=4','K=5')
xlabel('Zeit (in Sekunden)')
ylabel('Messwert (in Volts)')
hold off
print(22,'-dmeta','Luenbergerbeobachter')
Anhang 2 Simulink Modelle 44

Anhang 2 Simulink Modelle


Abbildung 26: Regelkreis mit PI-Regler

Quelle: Eigene Darstellung


Anhang 2 Simulink Modelle 45

Abbildung 27: Modell des Zustandsraums

Quelle: Eigene Darstellung


Anhang 2 Simulink Modelle 46

Abbildung 28: Modell des geschlossenen Regelkreises mit Beobachter

Quelle: Eigene Darstellung

Das könnte Ihnen auch gefallen