Beruflich Dokumente
Kultur Dokumente
1 Einleitung ............................................................................................................................ 1 2 Aufteilung des MATLAB-Fensters..................................................................................... 1 3 Dateiformate in MATLAB.................................................................................................. 2 4 Dokumentation der Arbeit in MATLAB............................................................................. 2 5 Symbolisches Rechnen (Symbolic Math Toolbox)............................................................. 2 6 Control System Toolbox ..................................................................................................... 4 7 Lineare zeitinvariante Systeme ........................................................................................... 8 8 Reglerentwurf in Matlab, Beispiel .................................................................................... 12 9 Reglerentwurf mittels RLTool .......................................................................................... 15 10 Simulink .......................................................................................................................... 18
1 Einleitung
Das Programm MATLAB entstand Ende der 1970er Jahre zur einfacheren numerischen Verarbeitung von Vektoren und Matrizen. Daher hie es zunchst auch noch MATrix LABoratory. Seitdem hat es sich bis heute zu einem Standardprogramm entwickelt, da in Lehre, Forschung, Industrie und Finanzwesen weltweit eingesetzt wird. In MATLAB knnen Systeme hherer Ordnung oder groe Datenmengen ebenso leicht verarbeitet werden wie kleine. Die Ergebnisse lassen sich sehr komfortabel grafisch darstellen. Fr viele Aufgaben stehen interaktive Tools zur Verfgung. Fr numerische Simulation steht der Aufsatz SIMULINK zur Verfgung. Studentenversionen von MATLAB und SIMULINK sind online erhltlich unter http://www.mathworks.com/academia/student_version/.
2.1 Hauptmen
Am oberen Rand befindet sich die Hauptmenleiste mit den Untermens File, Edit, Debug, Desktop, Window und Help. Darunter sind die Toolbar mit Tools wie SIMULINK, GUIDE und PROFILER und die Shortcuts Toolbar angeordnet. Der Shortcuts Toolbar kann man eigene Funktionstasten (Shortcuts) zufgen. Beispiel: Nach Rechtsklick in die Shortcut-Leiste whlt man New Shortcut. Im Shortcut Editor kann man nun die Beschriftung (Label) und die auszu- fhrenden Befehle (Callback) eintragen. Wenn man bei Label eintrgt "Arbeitsfenster lschen" und bei Callback "clc" und anschlieend den Shortcut-Editor mit der Save-Taste schliet, erhlt man eine Taste zum schnellen Lschen des Arbeitsfensters.
der aktuellen Sitzung angelegten Variablen. Mit Rechtsklick auf eine oder mehrere Variable kann man diese plotten lassen, lschen oder speichern als binre MAT-Datei.
3 Dateiformate in MATLAB
Die wichtigsten Dateiformate in MATLAB sind - MAT-Datei enthlt Variable in binrem Format (.mat) - M-Datei speichert textuell Befehle und Kommentare (.m) und kann auch als Funktion, Programm oder Unterprogramm angelegt werden - Figure stellen Daten in grafischen Verlufen dar oder beinhalten eine mit GUIDE erzeugte graphische Benutzerschnittstelle (.fig) - SIMULINK-Modelle enthalten Blockdiagramme einer Simulation (.mdl)
4.2 Matlab-Notizblock
Nach Eingabe des Befehls notebook ffnet Matlab eine neue Datei in MS Word. In diese werden die Matlab-Befehle eingegeben und von da auch ausgefhrt. Matlab sendet die Ergebnisse zurck an die Worddatei.
Zeitbereich in den Bildbereich der LAPLACE-Transformation bertragen werden. Da spter ein digitaler Regler entworfen werden soll, soll auch in den z-Bereich transformiert werden.
syms t s Ks U Y T1 T2; %Definition symbolischer Variablen g = ('D2Y*(T1*T2)=Ks*U-DY*(T1+T2)-Y');%Eingabe der Differenzialgleichung, D steht fr 1. Ableitung, D2 fr 2. Ableitung, s. help dsolve y = dsolve(g,'DY(0)=0','Y(0)=0'); %Lsung der DGL mit Anfangsbedingungen pretty(y) %Darstellung der Lsung y ys=subs(y,[Ks T1 T2 U],[2 10 5 1]); %Ersetzen der Variablen durch Zahlen ezplot(ys, [0 50]) %zeichnen des Funktionsverlaufs Y=laplace(y); %Laplacetransformation y nach Y G=Y/U*s; %Berechnung der bertragungsfunktion pretty(G) %Darstellung der bertragungsfunktion Gz=factor(ztrans(ilaplace(G))); %Z-Transformation ber den Zeitbereich pretty(Gz) %Darstellung der diskreten bertragungsfunktion
t t exp(- ----) T2 Ks U exp(- ----) Ks U T1 T2 T1 - ------------------- + ------------------- + Ks U -T1 + T2 -T1 + T2 2 exp(- 1/5 t) - 4 exp(- 1/10 t) + 2
Ks --------------------(s T1 + 1) (s T2 + 1) / 1 1 \ Ks z |-exp(- ----) + exp(- ----)| \ T1 T2 / ---------------------------------------------/ 1 \ / 1 \ (-T1 + T2) |z - exp(- ----)| |z - exp(- ----)| \ T2 / \ T1 /
3/22
Stand 17.1.2011
6.2 Operanden:
+ * / \ ^ Addition Subtraktion Multiplikation Division (x/y = x dividiert durch y) Division (x\y = y dividiert durch x) Potenzieren Transponieren (Matrizen)
Prioritt: ^, *, / und \, + und - (wenn keine Klammern) Elementweise Operationen mit Vektoren oder Matrizen werden durch das Voranstellen eines Punktes vor den Operanden angewiesen.
4/22
Stand 17.1.2011
6.4 Vektoren
Werden in rechteckigen Klammern eingegeben, die Elemente getrennt durch Leerzeichen beim Zeilenvektor: >> vz=[a56 4 6] vz = Semikola beim Spatenvektor: 1 2 5 Transponieren: >> vz2=vs' Erzeugung: >> vint=1:10 10 >> v02=0:0.2:1 1.0000 linspace(x,y,k) und logspace(x,y,k) z.B. fr Skalierungen von Diagrammen >> vlog=logspace(-2,2,5) vlog = 0.0100 0.1000 1.0000 10.0000 100.0000 k Elemente von 10x bis 10y >> vs=[a56-1; 4-2; 6-1] vs = 2 4 6
1 1
2 2
5 3 4 5 6 7 8 9
6/22
Stand 17.1.2011
6.5 Matrizen
Trennung der Spalten durch Leerzeichen und der Zeilen durch Semikola: M1=[1 2;3 4] M1 = 1 2 3 4 Elemente ansprechen: Matrix(Zeile, Spalte), ganze Zeilen oder Spalten mit Doppelpunkt >> M1(2,1)=5 % Element in Zeile 2, Spalte 1 mit dem Wert 5 beschreiben M1 = 1 2 5 4 >>Zeile2=M1(2,:) Zeile2 = 5 4 % Zeile 2 auslesen
7/22
Stand 17.1.2011
nm
Eine einfachere und bersichtlichere Art der Eingabe von bertragungsfunktionen ist mglich, wenn man die LaplaceVariable s als LTI-Objekt definiert. Dann kann man die gebrochen rationale Funktion der TF direkt eingeben: >> s=tf('s') Transfer function: s >> TF=1/(10*s+1) Transfer function: 1 --------10 s + 1
(s s )
ni
(s s )
pi i=1
i=1 n
= K0
nm
>> null=[] null = [] >> pol=[-2] pol = -2 Dipl.-Ing. (FH) Daniel Kstner 8/22 Stand 17.1.2011
d x( t ) = A x( t ) + b u( t ) dt y( t ) = c x( t ) + d u( t )
T
y(t)) >> a=[-2] a= -2 >> b=[2] b= 2 >> c=[1] c= 1 >> d=[0] d= 0 >> SS=ss(a,b,c,d) a= x1 x1 -2 b= u1 x1 2 c= x1 y1 1
9/22
Stand 17.1.2011
d= u1 y1 0 Continuous-time model.
7.7 Beispiel:
Die Eingabe einer Eingangs-Totzeit TT erfolgt durch ndern der Eigenschaft Inputdelay. >> set(TF,'Inputdelay',1) >> TF Transfer function: 1 exp(-1*s) * --------10 s + 1 Im Allgemeinen empfiehlt es sich jedoch, die Totzeit zu ersetzen, da sonst bei der weiteren Verarbeitung der bertragungsfunktion Schwierigkeiten auftreten knnen. Dies kann durch Dipl.-Ing. (FH) Daniel Kstner 10/22 Stand 17.1.2011
Pade-Approximation geschehen, bei rel. kleinen Totzeiten im Verhltnis zur grten Streckenzeitkonstante kann auch ein PT1-Element mit T1=Tt verwendet werden. G11=1/((10*s+1)*(s+1)) Transfer function: 1 ------------------10 s^2 + 11 s + 1 t=0:0.01:60; y1=step(TF,t); y11=step(G11,t); %Ersatzfunktion
plot(t,[y1 y11]) %zeichnet die Vektoren y1 und y11 ber dem Zeitvektor t legend('y1 - Uebergangsfunktion der Originalfunktion','y11 - Uebergangsfunktion der Ersatzfunktion',4) >> title('Vergleich Uebergangsfunktionen') >> xlabel('Zeit t [s]') >> ylabel('Amplitude [%]')
Vergleich Uebergangsfunktionen 1 0.8 Amplitude 0.6 0.4 0.2 0 0 10 20 y1 - Uebergangsfunktion der Originalfunktion y11 - Uebergangsfunktion der Ersatzfunktion 30 Zeit t [s] 40 50 60
Wurzelortskurven fr Systeme mit Totzeit lassen sich mit rlocus nicht darstellen.
2 Gesucht Es ist eine Folgeregelung zu entwerfen. Gesucht ist die bertragungsfunktion eines geeigneten Reglers. Der geschlossene Regelkreis soll sich wie ein Schwingungsglied 2. Ordnung verhalten und die stationre Regelabweichung verschwinden. 3 Lsung Wenn die vorangegangenen Abschnitte bereits in dieser Sitzung erfolgreich abgearbeitet wurden, kann die Regelstrecke G12 aus der Ersatzstrecke G11 erstellt werden: G12=2*G11 Transfer function: 2 ----------------10 s^2 + 11 s + 1 -> selbst ausrechnen: Knickfrequenzen der Regelstrecke 1=1/1s=1s-1 2=1/10s=0,1s-1 Darstellung des logarithmischen Amplitudengangs und des Phasengangs der PT2-Regelstrecke: >> bode(G12) >> grid on (Raster einschalten)
12/22
Stand 17.1.2011
Bode Diagram 20 0 Magnitude (dB) Phase (deg) -20 -40 -60 -80 -100 0 -45 -90 -135 -180 -3 10
10
-2
10
-1
10
10
10
Frequency (rad/sec)
Knickfrequenz des Reglers: R=1/TI=1/T2 =1/10s=0,1s-1 >> GR=tf([10 1],[10 0]) Transfer function: 10 s + 1 -------10 s >> hold on >> bode(GR)
100
(KR=1, TI=10s)
M agnitude (dB)
50
-50
Phase (deg)
10
-2
10
-1
10
10
10
Frequenc y (rad/s ec )
13/22
Stand 17.1.2011
>> G0=GR*G12 Transfer function: 20 s + 2 -----------------------100 s^3 + 110 s^2 + 10 s Die TF sieht in beiden Fllen unerwartet kompliziert aus. Da stimmt was nicht!
Matlab berechnet standardmig sehr viele Nachkommastellen und wertet Unterschiede auch an zehnter Stelle als Unterschiede. Daher werden eigentlich identische Terme nicht gekrzt! Mchte man Matlab dazu veranlassen, bereinander liegende Pole und Nullstellen aus der Gleichung herauszukrzen, kann man den Befehl minreal(Gleichung,Tolleranz) benutzen. >> G0=minreal(G0,0.1) Transfer function: 0.2 0.2 ------- = -----s^2 + s s(s+1) >> bode(G0) Es wird nun deutlich, dass die Reglernullstelle die groe Polstelle der Regelstrecke kompensiert (krzt). Daraus folgt IT1-Verhalten im aufgetrennten Regelkreis. -> G0 als rote Kurven
Bode Diagram 100
50
-50
10
-2
10
-1
10
10
10
Frequency (rad/sec)
bertragungsfunktion des geschlossenen Regelkreises: >> Gwy=feedback(G0,1) Transfer function: Dipl.-Ing. (FH) Daniel Kstner 14/22 Stand 17.1.2011 oder =minreal(G0/(1+G0),0.1)
0.2 ------------s^2 + s + 0.2 >> figure >> step(Gwy) (neues Plotfenster erzeugen)
Step Response 1 0.9 0.8 0.7 Amplitude 0.6 0.5 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 Time (sec) 12 14 16 18 20
15/22
Stand 17.1.2011
In das Feld Dynamics klicken, um dem Regler Pole und Nullstellen zuzufgen. Die Reglernullstelle kompensiert die Polstelle bei -0.1. Es resultiert ein IT1-Verhalten von G0. Wenn die Reglerverstrkung wieder KR=1 sein soll, muss bei Current Compensator eine 0.1 eingegeben werden, da die Integrationszeitkonstante TI in die Verstrkung C mit eingerechnet wird. Dipl.-Ing. (FH) Daniel Kstner 16/22 Stand 17.1.2011
17/22
Stand 17.1.2011
10 Simulink
Start durch Texteingabe simulink oder Klick auf Button. Es erscheint der Library Browser:
18/22
Stand 17.1.2011
1. 2. 3. 4. 5. 6. 7. 8.
neue/leere Datei erstellen aus Sources ein Element Step kopieren aus Continuos zwei Elemente Transfer Fcn kopieren aus Sinks ein Element Scope kopieren aus Math Operations ein Element Sum kopieren die Elemente zum Regelkreis verbinden die Elemente editieren (alle durch Doppelklick ffnen) Simulation \ Configuration parameters editieren (Simulationszeit, Schrittweite t, ) 9. Simulation starten (STRG T)
19/22
Stand 17.1.2011
ggf. erforderliche Einstellungen am Scope: bei Limit data points ... Hkchen entfernen
20/22
Stand 17.1.2011
und
Die Verstrkung des Reglers kann separat ausgefhrt und z.B. die Regelstrecke auch als LTIObjekt aus dem Workspace eingelesen werden:
aus Control System Toolbox : 3.5 Step Gain 10 s+1 10 s PI G12 LTI System Scope
Bei Bedarf knnen die Daten in den Workspace oder in eine Datei geschrieben werden:
Clock
21/22
Stand 17.1.2011
>> plot(0:0.001:20,simout.signals.values)
4 3 2 1 0
10
12
14
16
18
20
22/22
Stand 17.1.2011