Upload
nguyenminh
View
236
Download
0
Embed Size (px)
Citation preview
MATLAB Control System Toolbox
MATLAB
Control System Toolbox
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 1
MATLAB Control System Toolbox
Umfang
• Beschreibung linearer, zeitinvarianter Systeme (LTI):
– zeitkontinuierlich und zeitdiskret
– Single–Input/Single–Output (SISO) und
Multiple–Input/Multiple–Output (MIMO)
• Umwandeln und Bearbeiten der Systeme
• Analysieren der Systemeigenschaften
• Entwurf und Optimierung von Reglern
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 2
MATLAB Control System Toolbox
Beschreibung von LTI-Systemen
Beschreibung
linearer, zeitinvarianter
Systeme (LTI-Systeme)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 3
MATLAB Control System Toolbox
Lineare, zeitinvarianter Systeme (LTI–Modelle)
Parametrische Beschreibung
• Ubertragungsfunktion/Transfer Function (TF)
• Nullstellen–Polstellen–Darstellung/Zero–Pole–Gain (ZPK)
• Zustandsdarstellung/State–Space (SS)
Nichtparametrische Beschreibung
• Frequenzgang–Daten–Modelle/Frequency Response Data (FRD)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 4
MATLAB Control System Toolbox
Ubertragungsfunktion/Transfer Function (TF)
• Ubertragungsverhalten im Laplace–Bereich
• Rationale Funktion in s:
h(s) =num(s)
den(s)=
am sm + am−1 sm−1 + . . . + a1 s + a0
bn sn + bn−1 sn−1 + . . . + b1 s + b0
Zahlerpolynom num und Nennerpolynom den
Zahlerordnung m und Nennerordnung n
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 5
MATLAB Control System Toolbox
TF–SISO–Ubertragungsfunktion erstellen
1. Befehl tf(num, den): num und den als Vektoren
mit Koeffizienten von s in absteigender Reihenfolge.
>> h = tf([2 -3],[1 1])
2. Rationale Funktion in s
a) Definieren von s als TF–System
>> s = tf(’s’)
b) Ubertragungsfunktion als rationale Funktion in s
>> h = (s+2) / (s^2 + 5*s + 4)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 6
MATLAB Control System Toolbox
TF–MIMO–Ubertragungsfunktion
• zweidimensionale Ny×Nu–Matrix H von SISO–TF:
H =
h11 h12
h21 h22
=
num11
den11
num12
den12
num21
den21
num22
den22
• Matrixelement hij: Ubertragungsfunktion vom
Eingang j zum Ausgang i
• Ny Zeilen = Ausgange, Nu Spalten = Eingange
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 7
MATLAB Control System Toolbox
TF–MIMO–Ubertragungsfunktion erstellen
1. Definieren der einzelnen SISO–TF:
a) Befehl tf(num, den) / rationale Funktion in s
b) Matrix H definieren
2. Befehl tf(NUM,DEN): Cell Array NUM fur Zahler-
polynome und DEN fur Nennerpolynome (Ny×Nu)
NUM =
num11 num12
num21 num22
DEN =
den11 den12
den21 den22
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 8
MATLAB Control System Toolbox
Null-/Polstellen–Darstellung/Zero–Pole–Gain (ZPK)
• Ubertragungsverhalten im Laplace–Bereich
• Rationale Funktion in s mit Nullstellen und Polstellen:
h (s) = k ·(s− z1) · . . . · (s− zm−1) · (s− zm)
(s− p1) · . . . · (s− pn−1) · (s− pn)
k Verstarkungsfaktor (reell)
z1, . . . , zm Zahler–Nullstellen (reell/konj. komplex)
p1, . . . , pm Nenner–Nullstellen (reell/konj. komplex)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 9
MATLAB Control System Toolbox
ZPK–SISO–Ubertragungsfunktion erstellen
1. Befehl zpk (z,p,k): Nullstellenvektor z, Polstel-
lenvektor p und Verstarkungsfaktor k.
>> h = zpk([-6 1 1],[-5 1],3)
2. Rationale Funktion in s
a) Definieren von s als ZPK–System
>> s = zpk(’s’)
b) Ubertragungsfunktion als rationale Funktion in s
>> h = 2 * 1 / ((s-1)*(s+2))
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 10
MATLAB Control System Toolbox
ZPK–MIMO–Ubertragungsfunktion
• zweidimensionale Ny×Nu–Matrix H von SISO–ZPK:
H =
h11 h12
h21 h22
=
k11 ·z11
p11k12 ·
z12
p12
k21 ·z21
p21k22 ·
z22
p22
• Matrixelement hij: Ubertragungsfunktion vom
Eingang j zum Ausgang i
• Ny Zeilen = Ausgange, Nu Spalten = Eingange
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 11
MATLAB Control System Toolbox
ZPK–MIMO–Ubertragungsfunktion erstellen
1. Definieren der einzelnen SISO–ZPK:
a) Befehl zpk(z,p,k) / rationale Funktion in s
b) Matrix H definieren
2. Befehl zpk (Z,P,K): Cell Array Z fur Nullstellen-
polynome und P fur Polstellenpolynome (Ny×Nu),
Ny×Nu–Matrix K der Verstarkungsfaktoren
Z =
z11 z12
z21 z22
P =
p11 p12
p21 p22
K =
k11 k12
k21 k22
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 12
MATLAB Control System Toolbox
Zustandsdarstellung/State–Space (SS)
DGL 1. Ordnung fur jedes Speicherelement (Integrator)
⇒ n DGLs 1. Ordnung statt eine DGL n–ter Ordnung
Zustands–DGL:
x = A x + B u
Ausgangsgleichung:
y = C x + D u
x: Zustandsvektor (Nx×1)
u: Eingangsvektor (Nu×1)
y: Ausgangsvektor (Ny×1)
A: Zustandsmatrix (Nx×Nx)
B: Eingangsmatrix (Nx×Nu)
C: Ausgangsmatrix (Ny×Nx)
D: Durchschaltmatrix (Ny×Nu)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 13
MATLAB Control System Toolbox
SS–Modell erstellen
• Befehl ss(A,B,C,D):
A =
[1 2
3 4
]B =
[1 1
0 1
]C =
0 1
1 2
3 1
D =
0 0
0 0
0 0
>> ss([1 2 ; 3 4],[1 1 ; 0 1],[0 1 ; 1 2 ; 3 1],0)
• Durchschaltanteil oft 0: D = 0
• SISO–Systeme: u→ u y → y B→ b C→ cT
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 14
MATLAB Control System Toolbox
Frequenzgang–Daten–Modelle (FRD)
• Frequenz–Daten aus Messung oder Simulation
• Sinus–Anregung: y(t) = |G(ω) | · sin (ωt+ ϕ(ω))
⇒ y(t) phasenverschoben und amplitudenmoduliert
• Frequenzgangfunktion: F (jω) = |F (jω) | · e j ϕ(ω)
Betrag: |F (jω) | =
√Re{F (jω)}2+ Im{F (jω)}2
Phase : ϕ(ω) = arctanIm{F (jω)}
Re{F (jω)}Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 15
MATLAB Control System Toolbox
Frequenzgang–Daten–Modelle erstellen
• Befehl frd(ant, freq, eh):
ant Vektor mit den komplexen Frequenzantworten
freq Vektor mit gespeicherten Frequenzen
eh Einheit der Frequenz (’rad/s’ oder ’Hz’)
• Beispiel: >> freq = [0.01 0.1 1 10 100 1000 10000] ;
>> ant = (1-j*freq) ./(1+freq.^2)
>> sysfrd = frd(ant,freq,’Units’,’rad/s’)
• MIMO–System: ant ist Tensor (Ny×Nu×Nf)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 16
MATLAB Control System Toolbox
Zeitdiskrete Modelle
• Zusatzlicher Parameter: Abtastzeit Ts
tf(num,den,Ts)
ss(a,b,c,d,Ts)
zpk(z,p,k,Ts)
frd(ant,freq,Ts)
• Abtastzeit unspezifiziert: Ts = -1
• DSP–Format: h = filt ([1 -0.5],[1 1 -2],0.01)
• Zustandsdarstellung: x(k+1) = Ax(k) + Bu(k)
y(k) = Cx(k) + Du(k)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 17
MATLAB Control System Toolbox
Zeitverzogerungen
Zeitkontinuierlich:
• Zwischen Ein- und Ausgangen (TF, ZPK, FRD):
set(sys,’IODelay’,Td)
• Am Ein- oder Ausgang (SS):
set(sys,’InputDelay’,Tde)
set(sys,’OutputDelay’,Tda)
Zeitdiskret:
• Pade-Approximation: pade(sys,n)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 18
MATLAB Control System Toolbox
Umwandeln und Bearbeiten von LTI–Modellen
Umwandeln und Bearbeiten
von LTI–Modellen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 19
MATLAB Control System Toolbox
LTI–Objekte
• LTI–Modelle gespeichert als Cell Arrays mit vordefi-
nierten Modell–Eigenschaften und ihren Werten
• Allgemeine Modell–Eigenschaften:
Ts, InputDelay, OutputDelay, ioDelayMatrix, InputName,
OutputName, InputGroup, OutputGroup, Notes, Userdata
• Modellspezifische Modell–Eigenschaften:
TF: num, den, Variable (s, p; z, q, z^-1)
ZPK: z, p, k, Variable (s, p; z, q, z^-1)
SS: a, b, c, d, StateName
FRD: Frequency, ResponseData, Units
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 20
MATLAB Control System Toolbox
Modell–Eigenschaften setzen, andern und abrufen
• Setzen und Andern von Modell–Eigenschaften:
– direkt: sys = tf(. . .,’EigName’,EigWert)
– Befehl set: set(sys,’EigName’,EigWert,. . .)
– “.“–Befehl: sys.EigName = EigWert
• Abrufen von Modell–Eigenschaften:
– Befehl get: get(sys,’EigName’)
– “.“–Befehl: sys.EigName
• Schnellabfrage: tfdata, zpkdata, ssdata, frddata
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 21
MATLAB Control System Toolbox
Rangfolge und Vererbung von Modell–Eigenschaften
• Vorrangliste: FRD > SS > ZPK > TF
• Umwandeln: – vorher: sys = systf + tf(sysss)
– nachher: sys = tf(systf + sysss)
• Vererbung von Modell–Eigenschaften
– Diskret: alle Abtastzeiten gleich bzw. unspezifiziert
– Variable Variable: ¦ kont.: p > s
¦ diskret: z^-1 > q > z
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 22
MATLAB Control System Toolbox
Umwandlung von Modell–Typen
• Explizite Umwandlung: Ubergabe des Systems an
Befehle tf(sys), ss(sys), zpk(sys) oder frd(sys,freq)
• Umwandlung mit MATLAB–Befehlen:
zp2tf(z,p,k) tf2zp(num,den) tf2ss(num,den)
ss2tf(A,B,C,D,iu) ss2zp(A,B,C,D,i) zp2ss(z,p,k)
• Automatische Umwandlung: Operationen wandeln
Modelle automatisch in benotigten Modelltyp um
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 23
MATLAB Control System Toolbox
Arithmetische Operatoren
• Addition und Subtraktion: Parallelschaltung
y = G1 · u+G2 · u ⇔ sys = sys1 + sys2
• Multiplikation: Reihenschaltung
y = G1 · v = G1 · (G2 · u) ⇔ sys = sys1 * sys2
• Matrix-Inversion: u = G−1y ⇔ sys = inv(sys)
• links- und rechtsseitige Matrix–Division:
G1−1G2 ⇔ sys1 \ sys2 G1G2
−1 ⇔ sys1 / sys2
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 24
MATLAB Control System Toolbox
Extrahieren und Andern von LTI–Modellen
• Ansprechen der Ein- und Ausgange mit sys(i,j)
• Teilsystem: – extrahieren: subsys = systf(1,2)
– andern: systf(2,1) = subsys
• Ein-/Ausgange:
– loschen: systf(:,1) = []
– hinzufugen: systf = [systf,sys] (Typ nach Rang)
systf(:,2) = sys (Typ systf)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 25
MATLAB Control System Toolbox
Verknupfen von LTI–Modellen
• Horizontal: sys = [ sys1 , sys2 ]
• Vertikal: sys = [ sys1 ; sys2 ]
• Diagonal: sys = append(sys1,sys2)
• Parallel und seriell:
sys = parallel(sys1,sys2,in1,in2,out1,out2)
sys = series(sys1,sys2,outputs1,inputs2)
• Ruckkopplung: sys = feedback(sys1,sys2)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 26
MATLAB Control System Toolbox
Zeitkontinuierliche und zeitdiskrete Systeme
• Kontinuierlich → diskret: sysd = c2d(sysc,Ts)
Diskret → kontinuierlich: sysc = d2c(sysd,methode)
• Diskretisierung: – Halteglied 0. Ordnung: zoh
– Halteglied 1. Ordnung: foh
– Tustin–Approximation: tustin
• Diskretisierung verzogerter Systeme
• Geanderte Abtastzeit: sys = d2d(sys,Ts)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 27
MATLAB Control System Toolbox
Analyse der Systemeigenschaften
Analyse der
Systemeigenschaften
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 28
MATLAB Control System Toolbox
Ubersicht
• Allgemeine Eigenschaften
• Modell–Dynamik
• Systemantwort im Zeitbereich
• Systemantwort im Frequenzbereich
• Ordnungsreduktion
• Zustandsbeschreibungen
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 29
MATLAB Control System Toolbox
Allgemeine Eigenschaften
• Uberprufung und Abfrage von durch MATLAB
bestimmte Systemeigenschaften
• Nutzlich fur die Programmierung komplexer Skripts
und Funktionen:
– Auswerteroutinen
– Komplexe Plots erstellen
• Systemeigenschaften oder Boolsche Werte (ja/nein)
als Ruckgabewerte
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 30
MATLAB Control System Toolbox
Modelltyp, Zeitdaten, Struktur, Große
• Modelltyp: – ausgeben: class(sys)
– prufen: isa(sys,’classname’)
• Zeitdaten: – zeitkontinuierlich: isct(sys)
– zeitdiskret: isdt(sys)
– Verzogerungen: hasdelay(sys)
• Struktur: – Ein- & Ausgange: isempty(sys)
– Ordnung: isproper(sys)
– SISO–Modell: issiso(sys)
• Große: size(sys)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 31
MATLAB Control System Toolbox
Modell–Dynamik
• Stationare (Gleich–)Verstarkung: dcgain(sys)
– Frequenz ist s = 0 bzw. z = 1
– Reine Integratoren: Verstarkung ∞
• Naturliche Frequenzen und Dampfungen: damp(sys)
– Pole: pi = α± j β
– Frequenzen: ωn =√α2+ β2
– Dampfungen: D = −α
√α2+ β2
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 32
MATLAB Control System Toolbox
Nullstellen und Pole eines LTI–Modells
• Nullstellen: zero(sys)
• Polstellen: – Eigenwerte der Matrix A: pole(sys)
– Wurzeln des Polynoms c: roots(c)
• Sortieren: – zeitkontinuierlich: [s,ndx] = esort(p)
– zeitdiskret: [s,ndx] = dsort(p)
• Null–Polstellen–Verteilung: [p,z] = pzmap(sys)
Linien gleicher Dampfung und naturlicher Frequenz:
– kontinuierlich: sgrid
– zeitdiskret: zgrid
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 33
MATLAB Control System Toolbox
Normen und Kovarianz
• Normen eines LTI–Modells:
– zur Stabilitatsanalyse
– H2–Norm: norm(sys,2)
– H∞–Norm: norm(sys,inf [,tol])
[ninf,fpeak] = norm(sys,inf)
• Kovarianz (weißes Rauschen): [P,Q] = covar(sys,W)
– P ist Autokorrelationsfunktion Φyy der Ausgange
– Q ist Autokorrelationsfunktion Φxx der Zustande
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 34
MATLAB Control System Toolbox
Systemantwort im Zeitbereich
• Systemantwort kontinuierlich/diskret:
y(t) = CeAtx0 +t∫
τ=0
(CeA(t−τ)B+D
)u(τ) dτ
y[k] = CAkx0 +k−1∑
i=0
(CAk−i−1B+D
)u[i]
• Befehlsaufruf: [y,t,x] = befehl(sys,par)
• Zeitvektor: t = 0:dt:Tf
• Ausgang y: – SIMO: length(t)×Ny
– MIMO: length(t)×Ny ×Nu
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 35
MATLAB Control System Toolbox
Freie Bewegung, Impuls- und Sprungantwort
• Freie Bewegung: [y,t,x] = initial(sys,x0,[,t])
– Eingange zu Null gesetzt
– Anfangswerte des Zustandsvektors x0
• Impulsantwort: [y,t,x] = impulse(sys[,t])
– zeitkontinuierlich: Dirac–Impuls δ(t)
– zeitdiskret: Einheitsimpuls δ[k]
• Sprungantwort: [y,t,x] = step(sys[,t])
– zeitkontinuierlich: Einheitssprung σ(t)
– zeitdiskret: Folge von δ[k]
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 36
MATLAB Control System Toolbox
Systemantwort auf Testsignal
• Systemantwort: [y,t,x] = lsim (sys,u,t,[,x0])
– beliebiger Eingangssignalvektor u
– lsim wahlt automatisch passende Abtastzeit dt
• Testsignal: [u,t] = gensig(typ,tau[,Tf,Ts])
– typ : ’sin’ Sinus
’pulse’ Pulse
’square’ Rechteck
– tau : Periodendauer
– Tf : Gesamtdauer
– Ts : Abtastzeit
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 37
MATLAB Control System Toolbox
Systemantwort im Frequenzbereich
Frequenzgang: Komplexe Antwort auf sinusformige An-
regung im eingeschwungenen Zustand
Voraussetzung: System asymptotisch stabil, d.h. Real-
teile aller Eigenwerte kleiner null
Frequenzgang–UF: F (jω) = |F (jω) | · e j ϕ(ω)
Betrag: |F (jω) | =
√Re{F (jω)}2+ Im{F (jω)}2
Phase : ϕ(ω) = arctanIm{F (jω)}
Re{F (jω)}
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 38
MATLAB Control System Toolbox
Frequenzantwort und Bode–Diagramm
• Frequenzantwort berechnen:
– Einzelne Frequenz f : frsp = evalfr(sys,f)
– Frequenzvektor w: H = freqresp(sys,w)
• Bode–Diagramm: [mag,phase,w] = bode(sys)
– Frequenzvektor ω (w) als logarithmische x-Achse
– Amplitudengang |F (jω)| (mag) doppeltlogarithmisch
– Phasengang ϕ(ω) (phase) halblogarithmisch
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 39
MATLAB Control System Toolbox
Amplituden- und Phasenrand
• Befehl [Gm,Pm,Wcg,Wcp] = margin(sys)
Amplitudenrand Gm, Phasen–Durchtrittsfrequenz Wcg
Phasenrand Pm, Amplituden–Durchtrittsfrequenz Wcp
Stabilitat fur: ωA < ωϕ FR > 1 ϕR > 0
• Struktur stabil = allmargin(sys)
Amplitudenrand: GainMargin und GMFrequency
Phasenrand: PhaseMargin und PMFrequency
Totzeitrand: DelayMargin und DMFrequency
Stabilitat: Stable, 1 bei Stabilitat, 0 sonst.
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 40
MATLAB Control System Toolbox
Plot des Bode–Diagramms
Bode Diagram
Frequency (rad/sec)
Pha
se (
deg)
Mag
nitu
de (
dB)
−60
−40
−20
0
20Gm = 6.0218 dB (at 1.7322 rad/sec), Pm = 27.142 deg (at 1.2328 rad/sec)
10−1
100
101
−270
−180
−90
0
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 41
MATLAB Control System Toolbox
Nyquist–Diagramm
• Nyquist–Diagramm: [re,im,w] = nyquist(sys)
Real- und Imaginarteil der Ubertragungsfunktion des
offenen Regelkreises von ω = 0 bis ∞ (Ortskurve):
−F0(jω) =Z0(jω)
N0(jω)· e−jωTt ; n0 > m0 , Tt ≥ 0
• Stabilitat:ω=+∞
∆ω=+0
φsoll = nr · π + na ·π2
nr, na: Anzahl in- bzw. grenzstabiler Pole
• Kritischer Punkt: −1+ j 0
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 42
MATLAB Control System Toolbox
Plot des Nyquist–Diagramms
Nyquist Diagram
Real Axis
Imag
inar
y A
xis
−2 −1 0 1 2 3 4
−3
−2
−1
0
1
2
3
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 43
MATLAB Control System Toolbox
LTI–View
GUI fur LTI–Systeme
Import und Export von
Systemen
Start mit: >> ltiview
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 44
MATLAB Control System Toolbox
Ordnungsreduzierte Darstellung
• Automatische Ordnungsreduktion:
– Zustande eliminieren/Nullstellen und Pole kurzen:
sysr = minreal(sys,[tol])
– Zustand beeinflußt Ein-/Ausgange nicht:
msys = sminreal(sys)
• Explizite Ordnungsreduktion:
– Gleichverstarkung: rsys = modred(sys,elim,’mdc’)
– Zustande loschen: rsys = modred(sys,elim,’del’)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 45
MATLAB Control System Toolbox
Kanonische Zustandsbeschreibungen
• Modalform: [csys,T] = canon(sys,’modal’)
– reelle Eigenwerte λi in der Diagonale
– komplexe Eigenwerte σ ± jω in Matrizen
[σ ω−ω σ
]
• Regelungsnormalform: canon(sys,’companion’)
– Char. Polynom: sn + c1sn−1+ . . .+ cn−1s+ cn
– Matrix: ARNF =
0 0 . . . . . . 0 −cn1 0 0 . . . 0 −cn−10 1 0 . . . ... ...... 0 . . . . . . ... ...0 . . . . . . 1 0 −c20 . . . . . . 0 1 −c1
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 46
MATLAB Control System Toolbox
Beobachtbarkeit
• Beobachtbarkeitsmatrix: obsv(A,C)
– Ob =[CT ATCT (AT)2CT . . . (AT)n−1CT
]T
– Rang(Ob) = Anzahl der beobachtbaren Zustande
• Beobachtbarkeitsform: obsvf(A,B,C,[tol])
– Transformation: A = TATT , B = TB , C = CTT
– Transformiertes System:
A =
Ano A12
0 Ao
B =
Bno
Bo
C =
[0 Co
]
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 47
MATLAB Control System Toolbox
Steuerbarkeit
• Steuerbarkeitsmatrix: ctrb(A,B)
– Co =[B AB A2B . . . An−1B
]
– Rang(Co) = Anzahl der steuerbaren Zustande
• Steuerbarkeitsform: ctrbf(A,B,C,[tol])
– Transformation: A = TATT , B = TB , C = CTT
– Transformiertes System:
A =
Anc 0
A21 Ac
B =
0
Bc
C =
[Cnc Cc
]
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 48
MATLAB Control System Toolbox
Entwurf und Optimierung von Reglern
Entwurf und Optimierung
von Reglern
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 49
MATLAB Control System Toolbox
Ubersicht
• Wurzelortskurvenverfahren
• Interaktiver Reglerentwurf mit dem SISO Design Tool
• Polplazierung in Verbindung mit
Zustandsruckfuhrung und Zustandsbeobachtung
• Linear–quadratisch optimale Regelung
• Kalman–Filter als Zustandsbeobachter
fur verrauschte Signale
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 50
MATLAB Control System Toolbox
Reglerentwurf mit Wurzelortskurvenverfahren
• Wurzelortskurve: Verhalten der Pole des geschlosse-
nen Regelkreises in Abhangigkeit des Ruckfuhrverstar-
kungsfaktors k in der komplexen Null–Polstellen–Ebene
• Ubertragungsfunktion offener Regelkreis
−G0 = k ·GR ·GS ·GM = k ·nR nS nM
dR dS dM
• Pole von G0 = Wurzeln des Nennerpolynoms von G
d0 + k · n0 = dR dS dM + k · nR nS nM = 0
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 51
MATLAB Control System Toolbox
Befehle zum Wurzelortskurvenverfahren
• Wurzelortskurve:
rlocus(sys[,k])
[r,k] = rlocus(sys)
r = rlocus(sys,k)k GM
GR GSi t- - - -
6
¾ ¾
u y
−
• Verstarkungsfaktoren interaktiv auslesen:
[k,r] = rlocfind(sys)
[k,r] = rlocfind(sys,p)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 52
MATLAB Control System Toolbox
SISO Design Tool
SISO Design Tool
Reglerentwurf mit:
• Bode-Diagramm
• WOK–Verfahren
Start mit:
sisotool (sys)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 53
MATLAB Control System Toolbox
Zustandsregelung
Vollstandige Zustandsruckfuhrung mit Ruckfuhrmatrix K
Strecke:
x = A x + B u
y = C x + D u
∫h h hs s
s
- -
-
- - - - -
¾
¾
6
?
6B
K
A
C
D
w u
−
x x y
Regelgesetz (w = o): u = − K x
Geschlossener Regelkreis: x = (A −B K) · x
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 54
MATLAB Control System Toolbox
Zustandsbeobachtung - Luenberger–Beobachter
Ruckfuhrung des Ausgangsfehlers uber L
Beobachter:
˙x=A x+B u + L e
y=C x +D u
Ausgangsfehler:
e = y − y =C (x− x)
∫h hs s-
-
- - - - -
¾
?
6B
A
C
D
u x x y
?
Le
¾ ?h
−
6
∫h hs s-
-
- - - - -66B
A
C
D
˙x x y
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 55
MATLAB Control System Toolbox
Polplazierung
• Polplazierung: Ruckfuhrmatrix K so berechnen, daß
Pole des geschlossenen Regelkreis den Polen eines vor-
gegebenen Wunschpolynoms entsprechen.
• Zustandsregler–Ruckfuhrvektor k/Ruckfuhrmatrix K
k = acker(A,b,p)
K = place(A,B,p)
[K,prec,message] = place(A,B,p)
• Zustandsbeobachter–Ruckfuhrmatrix L
L = acker(A’,c’,p) .’
L = place(A’,C’,p) .’
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 56
MATLAB Control System Toolbox
Zustandsregler und Zustandsbeobachter erstellen
• Zustandsbeobachter erstellen
est = estim(sys,L)
est = estim(sys,L,sensors,known)
• Zustandsregler mit Zustandsbeobachter erstellen
rsys = reg(sys,K,L)
rsys = reg(sys,K,L,sensors,known,controls)
ud (known)
y (sensors)-
-
-
est
(L)-
x−K -
ut
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 57
MATLAB Control System Toolbox
Linear–quadratisch optimale Regelung
• Minimierung eines quadratischen Gutekriteriums:
(Q gewichtet Zustande, R gewichtet Eingange)
J (x,u) =∞∫
t=0
(xT Qx+ uT Ru+2xT Nu
)dt
• Algebraische Matrix–Riccati–Gleichung losen
0 = AT S + SA − (SB+N ) R−1 (BT S+NT ) + Q
• Ruckfuhrmatrix: K = R−1 (BT S+NT )
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 58
MATLAB Control System Toolbox
LQ–optimierte Regler–Ruckfuhrmatrix K
• LQ–optimierte Regler–Ruckfuhrmatrix K
[K,S,e] = lqr(A,B,Q,R[,N ])
[K,S,e] = dlqr(A,B,Q,R[,N ])
[Kd,S,e] = lqrd(A,B,Q,R[,N ],Ts)
[K,S,e] = lqry(sys,Q,R[,N ])
• Befehl lqrd: Abtastzeit Ts
• Befehl lqry:
J (y,u) =∞∫
t=0
(yT Qy+ uT Ru+2yT Nu
)dt
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 59
MATLAB Control System Toolbox
Kalman–Filter
Strecke:
x =A x+B u +G w
yv =C x +D u+H w + v
Beobachter:
˙x =A x+B u + L e
y =C x +D u
Ausgangsfehler:
e = yv − y
∫g g gs s-
-
- - - - - -
¾
? ?
6B
A
C
D
u x x y yv
v
G H
s
¶¶¶¶¶7
¶¶¶¶¶7
6 6w
?
Le
¾ ?g
−
6
∫g gs s s-
-
- - - - -66B
A
C
D
˙x x y
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 60
MATLAB Control System Toolbox
Kalman–Filter erstellen
• Quadratischen Mittelwert des Fehlers x−x minimieren:
P = limt→∞
E{(x− x)(x− x)T}!= min
• Kalman–Filter erstellen:
[kest,L,P] = kalman(sys,Qn,Rn[,Nn,sensors,known])
[kest,L,P,M,Z] = kalman(sys,Qn,Rn,Nn)
[kest,L,P,M,Z] = kalmd(sys,Qn,Rn,Ts)
Qn, Rn: Kovarianzen Prozeß- und Meßrauschen
Systembeschreibung: sys.a = A sys.b = [ B G ]
sys.c = C sys.d = [ D H ]
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 61
MATLAB Control System Toolbox
LQ–optimierter Zustandsregler mit Kalman–Filter
LQ–optimierten Zustandsregler&Kalman–Filter erstellen:
rlqg = lqgreg(kest,K)
rlqg = lqgreg(kest,K,controls)
rlqg
-w
Strecke -y
t
?i¾
v¾
yv
¾udkest
(L)¾
x−Kt
u¾
-
u
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 62
MATLAB Control System Toolbox
Probleme der numerischen Darstellung
Probleme der
numerischen Darstellung
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 63
MATLAB Control System Toolbox
Numerische Mathematik
• Algorithmen zur naherungsweisen Losung mathemati-
scher Probleme, z.B. aus Mathematik, Naturwissen-
schaft, Technik, ...
• Bewertung der Losungsverfahren nach verschiedenen
Kriterien, z.B.
– Rechenaufwand und -geschwindigkeit
– Speicherplatzbedarf
– Fehleranalyse
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 64
MATLAB Control System Toolbox
Fehlerbegriffe in der numerischen Mathmatik
• Fehlerklassen:
1. Datenfehler/Eingangsfehler → Konditionierung
2. Verfahrensfehler → unvollstandige Modellierung
3. Rundungsfehler → numerische Instabilitat
• Absoluter Fehler εk und relativer Fehler δk:
εk = xk − xk δk =xk − xk
xk
Exakte Werte xk und Naherungswerte xk mit 1 ≤ k ≤ n
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 65
MATLAB Control System Toolbox
Kondition eines Problems — Naturliche Instabilitat
• Auswirkung von Datenfehlern auf Ergebnisse:
AnderungenKondition
Eingangsdaten → Ergebnisse
gut geringe → geringe
schlecht geringe → große
• Konditionszahlen: – Matrix–Inversion: cond(A[,p])condest(A)
– Eigenwerte: condeig(A)
• Faustregeln:
– Verlorene Dezimalstellen log10(cond (A))
– schlecht konditioniert cond(A) >> 1/sqrt(eps)
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 66
MATLAB Control System Toolbox
Numerische Instabilitat
• Auswirkungen des Losungsalgorithmus auf Ergebnis
• Stellen fur Gleitkomma–Zahlen begrenzt
→ Rundung der Ergebnisse
↪→ Ausloschung von Stellen bei Berechnung
↪→ Fehlerfortpflanzung
• Multiplikation und Division: gutartig
• Addition und Subtraktion:
gutartig, bei gleichem/entgegengesetztem Vorzeichen
boßartig, bei entgegengesetztem/gleichem Vorzeichen
und ungefahr gleich großen Zahlenwerten
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 67
MATLAB Control System Toolbox
Bewertung der LTI–Modelle
• Zustandsdarstellung (SS)
– Grundsatzlich am Besten geeignet!
– Algorithmen oft fur SS–LTI–Modelle implementiert
• Ubertragungsfunktion (TF)
– Nur fur Systeme niedriger Ordnung (< 10)
– Oft schlecht konditioniert
• Nullstellen–Polstellen–Darstellung (ZPK)
– Meist besser als TF–LTI–Modell
– Probleme: mehrfache Polstellen/Polstellen bei Null
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 68
MATLAB Control System Toolbox
Empfehlung zur Programmierung
• Modelle moglichst als SS–LTI–Modell beschreiben.
Hierbei moglichst eine normierte bzw. austarierte Be-
schreibung bei verwenden.
• Konvertierungen zwischen Modelltypen vermeiden.
• Ergebnisse auf ihre Verlaßlichkeit und Realitatsnahe
uberprufen.
Wichtigste Ingenieuraufgabe!
Lehrstuhl fur Elektrische Antriebssysteme und Leistungseelektronik
Simulation mit Matlab/Simulink 69