Campus Jülich
Fachbereich 10: Energietechnik
Inhaltverzeichnis
ABBILDUNGSVERZEICHNIS ............................................................................................................. VI
1 SYSTEMANALYSE ..........................................................................................................................1
2 WIRKUNGSPLAN ............................................................................................................................1
3 DIFFERENTIALGLEICHUNGEN/ÜBERTRAGUNGSFUNKTION.............................................2
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
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+𝑠𝑇
𝜗
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 + 𝑠𝑇𝐷
5.1.1 Übertragungsfunktion
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)
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
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.
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 8: Pol- und Nullstellen des geschlossenen Regelkreises bei vorgegebenen Dämpfungen
Abbildung 9: Pol- und Nullstellen des geschlossenen Regelkreises bei vorgegebenen Dämpfungen
gezoomt
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.
Zustandsgrößenvektor:
𝑛
𝑈𝑀𝑉
𝑥(𝑡) = 𝑚̇𝑊
𝑚̈𝑊
( 𝜗 )
Eingangsgrößenvektor:
𝑈𝑦
𝑢(𝑡) = ( 𝑃𝑣 )
𝑚̇𝐿
Ausgangsgrößenvektor:
𝑦(𝑡) = (𝑈𝑀𝑉 )
5.4.1 Basisdefinitionen
−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)
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
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.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.
6.2.2 Simulationsergebnisse
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
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.
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.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
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.
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.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)):
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
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
grid on
xlim([-5 0]);
ylim([-0.1 0.1]);
print(2,'-dmeta','PolNulstellen-zoom')
%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')
%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];
%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
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')
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];
%Vorfilter Mlqr
for k=1:1:4
Mlqr(k,:)=(C*(B(:,1)*Rlqr(k,:)-A)^(-1)*B(:,1))^(-1);
end
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')
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];
% 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
%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];
hold off;
print(16,'-dmeta','Eigenwert Luenbergerbeobachter')
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