Download pdf - Einfuehrung Matlab R2007b

Transcript
Page 1: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 1/22

 

Dipl.-Ing. (FH) Daniel Kästner 1/22 Stand 17.1.2011

Einführung in MATLAB von The Mathworks, Inc.1 Einleitung ............................................................................................................................ 12 Aufteilung des MATLAB-Fensters..................................................................................... 13 Dateiformate in MATLAB.................................................................................................. 24 Dokumentation der Arbeit in MATLAB.............................................................................25 Symbolisches Rechnen (Symbolic Math Toolbox)............................................................. 26 Control System Toolbox ..................................................................................................... 47 Lineare zeitinvariante Systeme ...........................................................................................88 Reglerentwurf in Matlab, Beispiel ....................................................................................129 Reglerentwurf mittels RLTool ..........................................................................................1510 Simulink .......................................................................................................................... 18

1 Einleitung 

Das Programm MATLAB entstand Ende der 1970er Jahre zur einfacheren numerischenVerarbeitung von Vektoren und Matrizen. Daher hieß es zunächst auch noch MATrixLABoratory. Seitdem hat es sich bis heute zu einem Standardprogramm entwickelt, daß inLehre, Forschung, Industrie und Finanzwesen weltweit eingesetzt wird. In MATLAB könnenSysteme höherer Ordnung oder große Datenmengen ebenso leicht verarbeitet werden wiekleine. Die Ergebnisse lassen sich sehr komfortabel grafisch darstellen. Für viele Aufgabenstehen interaktive Tools zur Verfügung. Für numerische Simulation steht der AufsatzSIMULINK zur Verfügung. Studentenversionen von MATLAB und SIMULINK sind onlineerhältlich unter http://www.mathworks.com/academia/student_version/.

2 Aufteilung des MATLAB-FenstersDas MATLAB-Fenster gliedert sich in vier Bereiche: - Hauptmenü - Arbeitsspeicher (Workspace) und Arbeitsverzeichnis (Current Directory) - Kommandohistorie (CommandHistory) - Arbeitsfenster (Command Window) Diese Bereiche lassen sich je nach Bedürfnisab- oder andocken. Die selbst gestaltete Arbeitsoberfläche (Layout) kann unter Desktopgespeichert und auch wieder aufgerufen werden.

2.1 HauptmenüAm oberen Rand befindet sich die Hauptmenüleiste mit den Untermenüs File, Edit, Debug,

Desktop, Window und Help. Darunter sind die Toolbar mit Tools wie SIMULINK, GUIDEund PROFILER und die Shortcuts Toolbar angeordnet. Der Shortcuts Toolbar kann maneigene Funktionstasten (Shortcuts) zufügen. Beispiel: Nach Rechtsklick in die Shortcut-Leistewählt man New Shortcut. Im Shortcut Editor kann man nun die Beschriftung (Label) und dieauszu- führenden Befehle (Callback) eintragen. Wenn man bei Label einträgt "Arbeitsfenster löschen" und bei Callback "clc" und anschließend den Shortcut-Editor mit der Save-Tasteschließt, erhält man eine Taste zum schnellen Löschen des Arbeitsfensters.

2.2 Current Directory und WorkspaceOben im linken Bereich des Fensters kann zwischen Current Directory und Workspace

umgeschaltet werden. Ersteres listet die Ordner und Dateien des aktuellenArbeitsverzeichnisses, das in der Toolbar eingestellt ist. Letzteres listes alphabethisch alle in

Page 2: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 2/22

 

Dipl.-Ing. (FH) Daniel Kästner 2/22 Stand 17.1.2011

der aktuellen Sitzung angelegten Variablen. Mit Rechtsklick auf eine oder mehrere Variablekann man diese plotten lassen, löschen oder speichern als binäre MAT-Datei.

2.3 Command History

Die Eingaben der aktuellen und auch der vorangegangenen Sitzungen werden im CommandHistrory gelistet. Diese können erneut ausgeführt, als M-Datei gespeichert oder in einenShortcut gewandelt werden.

2.4 Command WindowIm Command Window kann in der Befehlszeile die Eingabe erfolgen. Die Ergebnisse werdenunmittelbar darauf folgend ausgegeben. Soll die Ausgabe der Ergebnisse unterdrückt werden,schließt man die Eingabe mit einem Semikolon ab.

3 Dateiformate in MATLAB

Die wichtigsten Dateiformate in MATLAB sind - MAT-Datei enthält Variable in binäremFormat (.mat) - M-Datei speichert textuell Befehle und Kommentare (.m) und kann auchals Funktion, Programm oder Unterprogramm angelegt werden - Figure stellen Daten ingrafischen Verläufen dar oder beinhalten eine mit GUIDE erzeugte graphischeBenutzerschnittstelle (.fig) - SIMULINK-Modelle enthalten Blockdiagramme einer Simulation (.mdl)

4 Dokumentation der Arbeit in MATLAB

4.1 Matlab-TagebuchMit dem Kommando diary Dateiname wird ein „Tagebuch“ angelegt, in das Matlab alle insCommand Window eingegeben Befehle und die Text-Ausgaben einträgt.

4.2 Matlab-Notizblock Nach Eingabe des Befehls notebook öffnet Matlab eine neue Datei in MS Word. In diesewerden die Matlab-Befehle eingegeben und von da auch ausgeführt. Matlab sendet dieErgebnisse zurück an die Worddatei.

4.3 M-Datei (m-File)Matlab kann Scripte ausführen, die beliebig viele Befehle enthalten können. Man kann dieseBefehle in ein neues m-File schreiben oder aus einem Abschnitt der Command-Historyerzeugen. M-Dateien können auch als Funktion definiert werden.

5 Symbolisches Rechnen (Symbolic Math Toolbox)

MATLAB ist vorrangig für die numerische Lösung von Gleichungen ausgelegt. Mit Hilfe der zusätzlichen Symbolic Math Toolbox sind auch symbolische Lösungen möglich. Imfolgenden Beispiel soll eine Differenzialgleichung zweiter Ordnung mit denAnfangszuständen gleich Null gelöst und der grafische Verlauf für Ks=2, T1=10s, T2=5s undder Eingangsgröße U=1 gezeichnet werden. Anschließend soll die Übertragungsfunktion vom

Page 3: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 3/22

 

Dipl.-Ing. (FH) Daniel Kästner 3/22 Stand 17.1.2011

Zeitbereich in den Bildbereich der LAPLACE-Transformation übertragen werden. Da später ein digitaler Regler entworfen werden soll, soll auch in den z-Bereich transformiert werden.

syms t s Ks U Y T1 T2; %Definition symbolischer Variableng = ('D2Y*(T1*T2)=Ks*U-DY*(T1+T2)-Y');%Eingabe der Differenzialgleichung, D steht für

1. Ableitung, D2 für 2. Ableitung, s. help dsolvey = dsolve(g,'DY(0)=0','Y(0)=0'); %Lösung der DGL mit Anfangsbedingungen

pretty(y) %Darstellung der Lösung yys=subs(y,[Ks T1 T2 U],[2 10 5 1]); %Ersetzen der Variablen durch Zahlenezplot(ys, [0 50]) %zeichnen des FunktionsverlaufsY=laplace(y); %Laplacetransformation y nach YG=Y/U*s; %Berechnung der Übertragungsfunktionpretty(G) %Darstellung der ÜbertragungsfunktionGz=factor(ztrans(ilaplace(G))); %Z-Transformation über den Zeitbereichpretty(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 / 

0 10 20 30 40 50

0

0.5

1

1.5

2

t

2 exp(-1/5 t)-4 exp(-1/10 t)+2

Page 4: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 4/22

 

Dipl.-Ing. (FH) Daniel Kästner 4/22 Stand 17.1.2011

6 Control System Toolbox 

6.1 Variable

Erstes Zeichen muss Buchstabe sein – Unterscheidung von Groß-KleinschreibungWenn kein Name, dann ans 

>> 4-2

ans =

2

>> a56=4-2;

Semikolon unterdrückt Bildschirmausgabe – z.B. Zwischenergebnisse, bei Matrixoperationensinnvoll

siehe Workspace -> a56 vorhanden

>> a56

a56 =

2

Dezimaltrennzeichen: Punkt

6.2 Operanden:+ Addition- Subtraktion* Multiplikation/ Division (x/y = x dividiert durch y)\ Division (x\y = y dividiert durch x)^ Potenzieren´ Transponieren (Matrizen)

Priorität: ^, *, / und \, + und - (wenn keine Klammern)

Elementweise Operationen mit Vektoren oder Matrizen werden durch das Voranstellen einesPunktes vor den Operanden angewiesen.

Page 5: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 5/22

 

Dipl.-Ing. (FH) Daniel Kästner 5/22 Stand 17.1.2011

6.3 Komplexe Zahlen:

Imaginärteil durch Eingabe von i oder j kennzeichnen

>> b=a56+i*3 b =

2.0000 + 3.0000i

>> b2=a56^2+i*2 b2 =

4.0000 + 2.0000i

>> c1=b+b2c1 =

6.0000 + 5.0000i

>> c1=b-b2c1 =-2.0000 + 1.0000i

>> c1=b*b2c1 =

2.0000 +16.0000i

>> c1=b/b2

c1 =0.7000 + 0.4000i

Realteil: >> re=real(c1)re =

0.7000

Imaginärteil: >> im=imag(c1)im =

0.4000

Betrag: >> r=abs(c1)r =

0.8062

Phase: >> phi=angle(c1) Winkel in rad phi =

0.5191

>> c2=r*exp(j*phi)c2 =

0.7000 + 0.4000i

Page 6: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 6/22

 

Dipl.-Ing. (FH) Daniel Kästner 6/22 Stand 17.1.2011

6.4 VektorenWerden in rechteckigen Klammern eingegeben, die Elemente getrennt durchLeerzeichen beim Zeilenvektor: >> vz=[a56 4 6] vz = 2 4 6

Semikola beim Spatenvektor: >> vs=[a56-1; 4-2; 6-1] vs =125

Transponieren: >> vz2=vs' vs2 = 1 2 5

Erzeugung: >> vint=1:10 vint = 1 2 3 4 5 6 7 8 910

>> v02=0:0.2:1 v02 = 0 0.2000 0.4000 0.6000 0.80001.0000

linspace(x,y,k) und logspace(x,y,k) z.B. für Skalierungen von Diagrammen

>> vlog=logspace(-2,2,5) k Elemente von 10x bis 10y 

vlog =

0.0100 0.1000 1.0000 10.0000 100.0000

6.4.1 Beispiel zu VektorenEs soll eine nach einer e-Funktion mit einer Zeitkonstante von 2s abklingendeSinusschwingung mit der Anfangsamplitude 2 und einer Frequenz von 1Hz über 10 Sekundenmit einer Auflösung von 1ms berechnet und rot gestrichelt geplottet werden. Der Bereich von2-3s soll grün überschrieben werden.

t=0:0.001:10; %Zeitvektor 0-10sy=2*exp(-t/2).*sin(2*pi*t); %Berechnung der Sinusfunktion mit

%elementweiser Operationfigure %Öffnen eines neuen Plotfenstersplot(t,y,'r--',t(2000:3000),y(2000:3000),'g') %Plottengrid on %Einschalten des Rastergittersxlabel('Zeit t [s]') %Beschriftung Zeitachseylabel('Amplitude') %Beschriftung Größenachsetitle('Impulsantwort eines schwingfähigen Systems') %Diagrammtitel

Page 7: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 7/22

 

Dipl.-Ing. (FH) Daniel Kästner 7/22 Stand 17.1.2011

6.5 MatrizenTrennung der Spalten durch Leerzeichen und der Zeilen durch Semikola:M1=[1 2;3 4] M1 =

1 23 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 beschreibenM1 =

1 25 4

>>Zeile2=M1(2,:) % Zeile 2 auslesenZeile2 =5 4

6.6 Polynome (z.B. ansn+…+a2s2+a1s

1+a0s0)

•  werden durch Vektoren dargestellt•  enthalten Polynomkoeffizienten in absteigender Ordnung: [an … a2 a1 a0]

 Nullstellen: alpha= roots(p) – ausgegeben wird ein Spaltenvektor Umgekehrt: p= poly(alpha)

Page 8: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 8/22

 

Dipl.-Ing. (FH) Daniel Kästner 8/22 Stand 17.1.2011

7 Lineare zeitinvariante Systeme

müssen als LTI-Objekte (linear time-invariant systems) definiert werden:

7.1 TF, transfer functionÜbertragungsfunktionen werden im Laplacebereich durch Nenner- und Zählerpolynome der Laplace-Übertragungsfunktion beschrieben.

)s(den

)s(num

asa...sasa

bsb...sbsb)s(G

0

1

1

1n

1n

n

n

0

1

1

1m

1m

m

m =+⋅++⋅+⋅

+⋅++⋅+⋅=

, n≥m

>> num=[0 1]num =

1

>> den=[10 1]den =

10.0000 1.0000

>> TF=tf(num,den)

Transfer function:1---------10 s + 1

7.2 ZPK, zero-pole-gainÜbertragungsfunktionen werden im Laplacebereich durch Nullstellen, Polstellen und

Verstärkung beschrieben.

( )

( )

( )( )( ) ( )( )( )( ) ( )pmpi2p1p

nmni2n1n0n

1i

pi

m

1i

ni

0ss...ssssss

ss...ssssssK

ss

ss

K)s(G−−−−

−−−−⋅=

⋅=

=

=

, n≥m>> null=[]null =

[]

>> pol=[-2] pol =

-2

Eine einfachere und übersichtlichere Art der Eingabe von

Übertragungsfunktionen ist möglich, wenn man die Laplace-Variable „s“ als LTI-Objekt definiert. Dann kann man diegebrochen rationale Funktion der ÜTF direkt eingeben:

>> s=tf('s')

Transfer function:s

>> TF=1/(10*s+1)

Transfer function:1

---------10 s + 1

Page 9: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 9/22

 

Dipl.-Ing. (FH) Daniel Kästner 9/22 Stand 17.1.2011

>> K0=2K0 =

2

>> ZPK=zpk(null,pol,K0)

Zero/pole/gain:2

-----(s+2)

7.3 SS, state spaceZustandsmodelle werden im Zeitbereich allgemein durch die Systemmatrix A, denEingangsvektor b, den Ausgangsvektor cT und den Durchgangsvektor d beschrieben.

)t(ub)t(xA)t(xdt

d⋅+⋅=

(Zustandsdifferenzialgleichung, Zustandsvektor x(t)))t(ud)t(xc)t(y T

⋅+⋅= (Ausgangsgleichung, Eingangsvariable u(t), Ausgangsvariabley(t))

>> a=[-2]a =

-2

>> b=[2] b =2

>> c=[1]c =

1

>> d=[0]d =

0

>> SS=ss(a,b,c,d)a =

x1x1 -2

 b =u1

x1 2

c =

x1y1 1

Page 10: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 10/22

 

Dipl.-Ing. (FH) Daniel Kästner 10/22 Stand 17.1.2011

d =u1

y1 0

Continuous-time model.

7.4 Zerlegung von LTI-ObjektenMöchte man LTI-Objekte in ihre Bestandteile zerlegen, benutzt man die Befehle[NUM,DEN]=tfdata(TF,’v’), [Z,P,K]=zpdata(ZPK) oder [A,B,C,D]=ssdata(SS).

7.5 Konvertierung von LTI-ObjektenTF=tf(ZPK) ZPK=zpk(TF) SS=ss(TF)TF=tf(SS) ZPK=zpk(SS) SS=ss(ZPK)TF=zp2tf(Z,P,K) ZPK=tf2zp(NUM,DEN) SS=tf2ss(NUM,DEN)

TF=ss2tf(A,B,C,D,ui) ZPK=ss2zp(Z,P,K,ui) SS=zp2ss(Z,P,K)

7.6 Eigenschaften von ÜbertragungsfunktionenMit dem Befehl get(Übertragungsfunktion) können die aktuellen Eigenschaften einer Übertragungsfunktion abgerufen werden:>> get(TF)num: {[0 1]}den: {[10 1]}Variable: 's'Ts: 0

ioDelay: 0InputDelay: 0OutputDelay: 0InputName: {''}OutputName: {''}InputGroup: {0x2 cell}OutputGroup: {0x2 cell}

 Notes: {}UserData: []

Mit dem Befehl set(Übertragungsfunktion, ‚Eigenschaft’, Wert) können diese Eigenschaften

verändert werden.

7.7 Beispiel:Die Eingabe einer Eingangs-Totzeit TT erfolgt durch Ändern der Eigenschaft Inputdelay.>> set(TF,'Inputdelay',1)>> TFTransfer function:

1exp(-1*s) * ---------

10 s + 1

Im Allgemeinen empfiehlt es sich jedoch, die Totzeit zu ersetzen, da sonst bei der weiterenVerarbeitung der Übertragungsfunktion Schwierigkeiten auftreten können. Dies kann durch

Page 11: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 11/22

 

Dipl.-Ing. (FH) Daniel Kästner 11/22 Stand 17.1.2011

Pade-Approximation geschehen, bei rel. kleinen Totzeiten im Verhältnis zur größtenStreckenzeitkonstante kann auch ein PT1-Element mit T1=Tt verwendet werden.

G11=1/((10*s+1)*(s+1)) %ErsatzfunktionTransfer function:

1-------------------10 s^2 + 11 s + 1

t=0:0.01:60; %Zeitvektor y1=step(TF,t); %Übergangsfunktion der Originalfunktiony11=step(G11,t); %Übergangsfunktion der Originalfunktion

  plot(t,[y1 y11]) %zeichnet die Vektoren y1 und y11 über dem Zeitvektor tlegend('y1 - Uebergangsfunktion der Originalfunktion','y11 - Uebergangsfunktion der Ersatzfunktion',4)

>> title('Vergleich Uebergangsfunktionen')>> xlabel('Zeit t [s]')>> ylabel('Amplitude [%]')

0 10 20 30 40 50 600

0.2

0.4

0.6

0.8

1

Zeit t [s]

   A   m  p   l   i   t  u   d   e

Vergleich Uebergangsfunktionen

 

y1 - Uebergangsfunktion der Originalfunktion

y11 - Uebergangsfunktion der Ersatzfunktion

 

7.8 Grafische Darstellungen zu Übertragungsfunktionen:Sprungantwort: step(G11)Impulsantwort: impulse(G11)Bodediagramm: bode(G11)

Ortskurve des Frequenzgangs: nyquist(G11)Pol- Nullstellen-Plan: pzmap(G11)Wurzelortskurve: rlocus(G11)

Wurzelortskurven für Systeme mit Totzeit lassen sich mit rlocus nicht darstellen.

7.9 Zusammenfassung von ÜbertragungsfunktionenReihenschaltung: Multiplikation der Teilübertragungsfunktionen

Paralellschaltung: Summation der TeilübertragungsfunktionenRückführschaltung: feedback (Vorwärtzweig, Rückwärtszweig, Vorzeichen der Rückführung)

Standardmäßig wird von negativer Rückführung ausgegangen (-1), bei positiver (1) eingeben.

Page 12: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 12/22

 

Dipl.-Ing. (FH) Daniel Kästner 12/22 Stand 17.1.2011

7.10 Parzialbruchzerlegung von Übertragungsfunktionen

  NUM(s) R(1) R(2) R(n)

----------- = -------- + -------- + ... + -------- + K(s)DEN(s) s - P(1) s - P(2) s - P(n)

[R,P,k]=residue(NUM,DEN)

8 Reglerentwurf in Matlab, Beispiel 

1 Gegeben

Gegeben ist die Übertragungsfunktion einer Regelstrecke )Ts1)(Ts1(K)s(G

21

SS

⋅+⋅+=

 mit T1 = 1 s, T2 = 10 s, K S = 2.

2 Gesucht

Es ist eine Folgeregelung zu entwerfen. Gesucht ist die Übertragungsfunktion einesgeeigneten Reglers. Der geschlossene Regelkreis soll sich wie ein Schwingungsglied 2.Ordnung verhalten und die stationäre Regelabweichung verschwinden.

3 Lösung

Wenn die vorangegangenen Abschnitte bereits in dieser Sitzung erfolgreich abgearbeitetwurden, 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)

Page 13: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 13/22

 

Dipl.-Ing. (FH) Daniel Kästner 13/22 Stand 17.1.2011

-100

-80

-60

-40

-20

0

20

   M  a  g  n

   i   t  u   d  e   (   d   B   )

10-3

10-2

10-1

100

101

102

-180

-135

-90

-45

0

   P   h  a  s  e   (   d  e  g   )

Bode Diagram

Frequency (rad/sec)  

Knickfrequenz des Reglers:ωR =1/TI=1/T2 =1/10s=0,1s-1 

>> GR=tf([10 1],[10 0]) (K R =1, TI=10s)

Transfer function:10 s + 1--------

10 s

>> hold on (vorhergehenden Plot erhalten)>> bode(GR) -> Regler als grüne Kurven

-100

-50

0

50

100

   M  a  g  n

   i   t  u   d  e   (   d   B   )

10-3

10-2

10-1

100

101

102

-180

-135

-90

-45

0

   P   h  a  s  e   (   d  e  g   )

Bode Diagram

Frequency (rad/sec)  Übertragungsfunktion des aufgetrennten Regelkreises:

Page 14: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 14/22

 

Dipl.-Ing. (FH) Daniel Kästner 14/22 Stand 17.1.2011

>> G0=GR*G12

Transfer function:20 s + 2 Die ÜTF sieht in beiden Fällen

------------------------ unerwartet kompliziert aus.

100 s^3 + 110 s^2 + 10 s Da stimmt was nicht!

Matlab berechnet standardmäßig sehr viele Nachkommastellen und wertet Unterschiede auchan zehnter Stelle als Unterschiede. Daher werden eigentlich identische Terme nicht gekürzt!

Möchte man Matlab dazu veranlassen, übereinander liegende Pole und Nullstellen aus der Gleichung herauszukürzen, kann man den Befehl minreal(Gleichung,Tolleranz) benutzen.

>> G0=minreal(G0,0.1)

Transfer function:

0.2 0.2 Es wird nun deutlich, dass die Reglernullstelle die------- = ------ große Polstelle der Regelstrecke kompensiert (kürzt).s^2 + s  s(s+1) Daraus folgt IT1-Verhalten im aufgetrennten Regelkreis.

>> bode(G0) -> G0 als rote Kurven

-100

-50

0

50

100

   M  a   g   n   i   t  u   d   e   (   d

   B   )

10-3

10-2

10-1

100

101

102

-180

-135

-90

-45

0

   P   h  a   s

   e   (   d   e   g   )

Bode Diagram

Frequency (rad/sec) 

Übertragungsfunktion des geschlossenen Regelkreises:

>> Gwy=feedback(G0,1) oder =minreal(G0/(1+G0),0.1)

Transfer function:

Page 15: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 15/22

 

Dipl.-Ing. (FH) Daniel Kästner 15/22 Stand 17.1.2011

0.2-------------s^2 + s + 0.2

>> figure (neues Plotfenster erzeugen)

>> step(Gwy)

0 2 4 6 8 10 12 14 16 18 200

0.1

0.2

0.30.4

0.5

0.6

0.7

0.8

0.9

1Step Response

Time sec

   A

   m  p   l   i   t  u   d   e

 

9 Reglerentwurf mittels RLTool 

Die Übertragungsfunktion der Regelstrecke muss als LTI-Objekt mit einer Eingangs- undeiner Ausgangsvariablen (SISO) definiert sein, wie z. B. weiter oben das StreckenmodellG12. Totzeiten dürfen nicht enthalten sein.

Aufruf des Tools mit Übergabe des Streckenmodells:rltool(G12)

Page 16: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 16/22

 

Dipl.-Ing. (FH) Daniel Kästner 16/22 Stand 17.1.2011

In das Feld „Dynamics“ klicken, um dem Regler Pole und Nullstellen zuzufügen.

Die Reglernullstelle kompensiert die Polstelle bei -0.1. Es resultiert ein IT1-Verhalten von G0.

Wenn die Reglerverstärkung wieder K R =1 sein soll, muss bei Current Compensator eine 0.1eingegeben werden, da die Integrationszeitkonstante TI in die Verstärkung C mit eingerechnetwird.

Page 17: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 17/22

 

Dipl.-Ing. (FH) Daniel Kästner 17/22 Stand 17.1.2011

Page 18: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 18/22

 

Dipl.-Ing. (FH) Daniel Kästner 18/22 Stand 17.1.2011

10 Simulink 

Start durch Texteingabe ‚simulink’ oder Klick auf Button.

Es erscheint der Library Browser:

Leere/neue Datei erzeugen (New Model)

Page 19: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 19/22

 

Dipl.-Ing. (FH) Daniel Kästner 19/22 Stand 17.1.2011

1.  neue/leere Datei erstellen2.  aus Sources ein Element ‚Step’ kopieren3.  aus Continuos zwei Elemente ‚Transfer Fcn’ kopieren4.  aus Sinks ein Element ‚Scope’ kopieren

5.  aus Math Operations ein Element ‚Sum’ kopieren6.  die Elemente zum Regelkreis verbinden7.  die Elemente editieren (alle durch Doppelklick öffnen)8.  Simulation \ Configuration parameters editieren (Simulationszeit, Schrittweite

∆t, …)9.  Simulation starten (STRG T)

Page 20: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 20/22

 

Dipl.-Ing. (FH) Daniel Kästner 20/22 Stand 17.1.2011

ggf. erforderliche Einstellungen am Scope: bei Limit data points ... Häkchen entfernen

Page 21: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 21/22

 

Dipl.-Ing. (FH) Daniel Kästner 21/22 Stand 17.1.2011

nach erneutem Ausführen und nach Klick auf das ‚Fernglas’

Die Verstärkung des Reglers kann separat ausgeführt und z.B. die Regelstrecke auch als LTI-Objekt aus dem Workspace eingelesen werden:

aus Control

System Toolbox :

Step ScopePI

10s+1

10s

LTI System

G12

Gain

3.5

 

Bei Bedarf können die Daten in den Workspace oder in eine Datei geschrieben werden:

Transfer Fcn

10s+1

10 s

To Workspace

simout

To File

untitled .mat

Step ScopeLTI System

G12

Gain

3.5

Clock

 

Page 22: Einfuehrung Matlab R2007b

5/13/2018 Einfuehrung Matlab R2007b - slidepdf.com

http://slidepdf.com/reader/full/einfuehrung-matlab-r2007b 22/22

 

Dipl.-Ing. (FH) Daniel Kästner 22/22 Stand 17.1.2011

>> plot(0:0.001:20,simout.signals.values)

0 2 4 6 8 10 12 14 16 18 200

1

2

3

4

 


Recommended