Příklady k přednášce 27 – Systémy s více vstupy a výstupy
Michael Šebek Automatické řízení 2015 20-5-15
Příklad Automatické řízení - Kybernetika a robotika
Michael Šebek
Pr-ARI-27-2012
2
Příklad Automatické řízení - Kybernetika a robotika
Michael Šebek
Pr-ARI-27-2012
3
Příklad Automatické řízení - Kybernetika a robotika
• ESO OWL koncept – stotisíce vstupů výstupů
Michael Šebek
Pr-ARI-27-2015
4
Příklad Automatické řízení - Kybernetika a robotika
Michael Šebek
Pr-ARI-27-2012
5
Příklad Automatické řízení - Kybernetika a robotika
• 2×2 systém s přenosovou maticí • reprezentuje dvě (skalární) rovnice
1 s G ( s) = 1 s + 2
s −1 1 u1 ( s ) + u2 ( s ) s s +1 s 1 = y2 ( s ) u1 ( s ) + u2 ( s ) s+2 s+3 = y1 ( s )
s −1 s +1 s s + 3 mdf
Alternativně vyjádřeno – různými typy maticových zlomků • skalární ( s + 1)( s + 2)( s + 3) s( s − 1)( s + 2)( s + 3) 1 jmenovatel G ( s) = 2 sdf
• levý polynomiální maticový zlomek • pravý polynomiální maticový zlomek Michael Šebek
s ( s + 1)( s + 2)( s + 3)
s ( s + 1)( s + 3)
s ( s + 1)( s + 2)
−1
ldf rdf
0 s( s + 1) ( s + 1) s( s − 1) G (s) = ( s + 2)( s + 3) ( s + 3) s( s + 2) 0 −1 0 ( s + 2) ( s + 3)( s − 1) s( s + 2) G ( s) = s( s + 1) 0 ( s + 1)( s + 3) s Pr-ARI-27-2012
6
Příklad Automatické řízení - Kybernetika a robotika
>> G=[mdf(1/s) G = 1 s 1 ----(s+2)
mdf((s-1)/(s+1));mdf(1/(s+2)) mdf(s/(s+3))] (s-1) ----(s+1) s ----(s+3)
1 s G ( s) = 1 s + 2
>> sdf(G) ans = (s+3)(s+2)(s+1) s(s+3)(s+2)(s-1) s(s+3)(s+1) s^2(s+2)(s+1) ------------------------------------s(s+3)(s+2)(s+1) >> ldf(G) ans = s(s+1.0000) 0 ans.numerator = >> rdf(G) ans = (s+2.0000) s Michael Šebek
0 \ (s+3.0000)(s+2.0000) \
(s+3.0000)(s-1.0000) s(s+1.0000)
/ /
(s+1.0000) (s+3.0000)
s(s+2.0000) 0
s −1 s +1 s s + 3
s(s-1) s(s+2.0000)
0 (s+3)(s+1) 7
Příklad: JAS-39 Gripen Automatické řízení - Kybernetika a robotika
Michael Šebek
Pr-ARI-27-2012
8
Příklad: JAS-39 Gripen Automatické řízení - Kybernetika a robotika
v • model pohybu v horizontální rovině x y β • za předpokladu vlivu úhlu náběhu na otáčení (standardní předpoklad za normálního letu) ψ • kurs řídíme směrovkou y φ (vytváří přímo točivý z moment) • a křidélky (způsobí náklon podle podélné osy a tím změnu kursu)
ψ úhel kursu v y rychlost do strany φ náklon δ r výchylka směrovky δ a výchylka křidélek Michael Šebek
Pr-ARI-27-2012
9
Příklad: JAS-39 Gripen Automatické řízení - Kybernetika a robotika
Lineární stavový model, rozumný pro malé úhly
x1 = v y x2 = p rychlost náklonu (podle osy x) x3 = r rychlost zatáčení (podle osy z) = x4 φ= , x5 ψ= , x6 δ a= , x7 δ r cmd cmd u1 δ= , u = δ 2 a r
V režimu: rakety zavěšeny, Mach 0.6, výška 500 m, úhel náběhu 0.04 rad: >> A,B A = -0.2920 -0.1520 0.0364 0 0 0 0 B =
Michael Šebek
0 -31.7000 0 0 0 20.0000 0
8.1300 -201.0000 -2.5400 0.5610 -0.0678 -0.4810 1.0000 0.0401 0 1.0000 0 0 0 0
9.7700 -0.0004 0.0012 0 0 0 0
0 0 0 0 0 0 0
-12.5000 107.0000 4.6700 0 0 -20.0000 0
17.1000 7.6800 -7.9800 0 0 0 -20.0000
-2.1500 0.0274 1.4800 0 0 0 20.0000 Pr-ARI-27-2012
10
Příklad Automatické řízení - Kybernetika a robotika
Přenos na řízení kurs: >> G=mdf(A,B,C1) G = Column 1 6.7e+002 + 5.7e+002s + 1.4e+002s^2 + 96s^3 -----------------------------------------------------8.8s + 4.6e+002s^2 + 2.4e+002s^3 + 77s^4 + 23s^5 + s^6 Column 2 -1.4e+002 - 1.8e+002s - 3.7e+002s^2 - 1.3e+002s^3 + 1.5s^4 ---------------------------------------------------------8.8s + 4.6e+002s^2 + 2.4e+002s^3 + 77s^4 + 23s^5 + s^6 >> G=ldf(A,B,C1) G.denominator = 8.8s + 4.6e+002s^2 + 2.4e+002s^3 + 77s^4 + 23s^5 + s^6 G.numerator = Column 1 6.7e+002 + 5.7e+002s + 1.4e+002s^2 + 96s^3 Column 2 -1.4e+002 - 1.8e+002s - 3.7e+002s^2 - 1.3e+002s^3 + 1.5s^4 >> G=rdf(A,B,C1) G.numerator = 75 -1.2e+002 + 1.5s G.denominator = -23 - 13s - 1.2s^2 + s^3 40 + 23s + 6.6s^2 -1.1e+002 - 14s - 14s^2 2e+002 + 28s + 25s^2 + s^3 Michael Šebek
Pr-ARI-27-2012
11
Příklad Automatické řízení - Kybernetika a robotika
>> Gstate=rdf(A,B,I) Gstate.numerator = 0.0092 - 0.42s - 6.8s^2 - 0.008s^3 -1.2 + 0.0064s + 0.0001s^2 -0.04s + 21s^2 - 0.42s^3 -0.026s + 0.0004s^2 s + 0.79s^2 + 0.0055s^3 0.0049s - 7e-005s^2 0.0002 + 21s - 0.42s^2 -0.026 + 0.0004s 1 + 0.79s + 0.0055s^2 0.0049 - 7e-005s 1.2e-005 - 0.002s + 0.68s^2 + 0.27s^3 -0.0016 - 0.00086s - 0.00025s^2 6e-005 - 0.074s + 0.019s^2 + 0.075s^3 -0.0079 - 0.00077s - 0.00095s^2 Gstate.denominator = Column 1 1.2e-005 - 0.002s + 0.68s^2 + 0.3s^3 + 0.013s^4 6e-005 - 0.074s + 0.015s^2 + 0.076s^3 + 0.0037s^4 Column 2 -0.0016 - 0.00094s - 0.0003s^2 - 1.3e-005s^3 -0.0079 - 0.0012s - 0.00099s^2 - 4.8e-005s^3 >> Gstate=ldf(A,B,I) Gstate.denominator = 0.29 + s -8.1 2e+002 -9.8 0 12 -17 0.15 2.5 + s -0.56 0.0004 0 -1.1e+002 -7.7 -0.036 0.068 0.48 + s -0.0012 0 -4.7 8 0 -1 -0.04 s 0 0 0 0 0 -1 0 s 0 0 0 0 0 0 0 20 + s 0 0 0 0 0 0 0 20+s Gstate.numerator = 0 -2.1 -32 0.027 0 1.5 0 0 0 0 20 0 0 20
Přenos na stav
Michael Šebek
Pr-ARI-27-2015
12
NACRE Automatické řízení - Kybernetika a robotika
• New Aircraft Concepts Research • Turning the dream of cleaner, quieter, cheaper aircraft into a reality is the goal of the NACRE project. • The project’s early results suggest that the aircraft of the future could look very different to the planes flying overhead today •
http://ec.europa.eu/research/research-for-europe/transport-nacre_en.html Michael Šebek
Pr-ARI-27-2012
13
Příklad Automatické řízení - Kybernetika a robotika
• Odezva na skok(y), Bode, Nyquist - po jednotlivých kanálech s −1 1 s s +1 G ( s) = 1 s s + 2 s + 3
• popisují odděleně jednotlivé kanály, ale o systému vcelku toho moc neříkají • těžko lze použít pro návrh, neboť obvykle nelze navrhnout jeden kanál nezávisle na dalších • mezi kanály jsou interakce • Jaké má tento systém zesílení ?
Michael Šebek
Pr-ARI-27-2015
G = 1 s
-1 + s -----1 + s
1 ----2 + s
s ----3 + s
>> step(G) >> bode(G) >> nyquist(G)
14
Příklad Automatické řízení - Kybernetika a robotika
• Na systém 2 x 2 s (konstantní) přenosovou maticí • postupně aplikujeme následujících 5 různých vstupních vektorů 1 u1 1 0 u = : ua = , ub = , uc = 1 0 u2 1
• které mají stejnou velikost (normu) uk
2
5 4 G= 3 2
1 2 2 0.6 = , , u = u d e 2 −0.8 −1 2 u2
=1
• ale různé směry
u1
r=sqrt(.5); u=[1,0,r,r,.6;0,1,r,-r,-.8] u = 1.0000 0 0.7071 0.7071 0.6000 0 1.0000 0.7071 -0.7071 -0.8000 compass(u(1,:),u(2,:))
Michael Šebek
Pr-ARI-27-2012
15
Příklad Automatické řízení - Kybernetika a robotika
• Přestože mají všechny vstupní signály stejnou velikost, odezvy na ně (tedy příslušné výstupní signály) mají velikost různou y1
2
= 5.8310, y2
2
= 4.4721, y3
2
= 7.2801, y4
2
= 1.000, y5
2
= 0.2828
• a tedy je zesílení závislé také na směru vstupních signálů (vektorů) G=[5 4;3 2]; y=G*u, compass(y(1,:),y(2,:)) y = 5.0000 4.0000 6.3640 0.7071 -0.2000 3.0000 2.0000 3.5355 0.7071 0.2000 [norm(y(:,1)),norm(y(:,2)),norm(y(:,3)),norm(y(:,4)),norm(y(:,5))] ans = 5.8310 4.4721 7.2801 1.0000 0.2828
5 4 G= 3 2
u
Michael Šebek
G Pr-ARI-27-2012
y
16
Rozklad na singulární čísla - Singular Value Decomposition Automatické řízení - Kybernetika a robotika
• •
• •
l × m přenosová matici G ( s ) se po dosazení s = jω pro pevnou frekvenci stane konstantní maticí s komplexními prvky G = G ( jω ) Na tu aplikujeme rozklad na singulární čísla SVD, což je rozklad na 3 matice G= U ΣV ∗ , kde • Σ je l × m diagonální matice s k = min{l , m} nezápornými singulárními čísly σ i matice G na hlavní diagonále seřazenými v klesajícím pořadí, na zbytku diagonály jsou případně 0 • U je l × l unitární matice: U ∗U = I • V je m × m unitární matice: V ∗V = I Zde G ∗ je komplexně sdružená transpozice ( v Matlabu označená G′) , takže „unitární“ vlastně znamená „komplexně ortogonální“ Singulární čísla σ i matice G jsou kladné odmocniny z vlastních čísel matice G ∗G , tedy σ i (G ) = λi (G ∗G ) Michael Šebek
Pr-ARI-27-2012
17
Rozklad na singulární čísla - Singular Value Decomposition Automatické řízení - Kybernetika a robotika
•
•
•
Visualization of the SVD of a 2-dimensional, real matrix M. First, we see the unit disc in blue together with the two canonical unit vectors. We then see the action of M, which distorts the disk to an ellipse. The SVD decomposes M into three simple transformations: a rotation V*, a scaling Σ along the rotated coordinate axes and a second rotation U. The lengths σ1 and σ2 of the semi-axes of the ellipse are the singular values of M. http://upload.wikimedia.org/wikipedia/commons/e/e9/Singular_value_decomposition.gif Michael Šebek
Pr-ARI-27-2012
18
Příklad Automatické řízení - Kybernetika a robotika
• •
Závislost zesílení na směru vstupu (při jednotkové velikosti vstupu) Vyneseme do grafu
7.3434
>> >> >> >> >>
G=[5 4;3 2]; alpha=[-pi:2*pi/1000:pi]; u=[cos(alpha);sin(alpha)]; y=G*u; normy=sqrt(y(1,:).^2+y(2,:).^2); plot(alpha,normy), maximum=max(normy), minimum=min(normy) maximum = 7.3434, minimum = 0.2724, >> svd(G)' ans = 7.3434 0.2724
0.2724 4
3
2
1
0
1
2
3
4
•
Co jsou maximální a minimální hodnoty zesílení přes všechny směry vstupu ?
• •
Maximální hodnota zesílení je maximální singulární číslo matice G Minimální hodnota zesílení je minimální singulární číslo matice G Gu 2 max = max = Gu 2 σ (G ) 1 u ≠0 u = u2 2 Michael Šebek
Gu 2 min = min = Gu 2 σ (G ) 1 = u ≠0 u u2 2
Pr-ARI-27-2015
19
Příklad: vstupní směry Automatické řízení - Kybernetika a robotika
• • •
Pokračujme ve zkoumání matice G = 5 4 3 2 Největší zesílení σ = 7.3434 T v = − 0.7937 − 0.6083 [ ] je ve vstupním směru Nejmenší zesílení σ = 0.2724 T 0.6083 0.7937 = v − [ ] je ve vstupním směru GV = U ΣV ∗V = U Σ → σ , y U ΣV ∗ v , y= U ΣV ∗v , y ==
• • • •
[U,S,V]=svd([5,4;3,2]) U = -0.8718 -0.4899 -0.4899 0.8718 S = 7.3434 0 0 0.2724 V = -0.7937 0.6083 -0.6083 -0.7937 >> norm(U*S*V.'*V(:,1)) ans = 7.3434 >> norm(U*S*V.'*V(:,2)) ans = 0.2724
σ y =
Systém je interaktivní (nediagonální): oba vstupy ovlivňují oba výstupy, protože má relativně velké nediagonální prvky Systém je špatně podmíněný: některé vstupy mají velký vliv na výstup, jiné velmi malý Číslo podmíněnosti (condition number) je tu velké γ = σ σ = 7.3434 0.2724 γ σ σ > 10 Problémy nastanou, kdykoli= = 27.0
Michael Šebek
Pr-ARI-27-2012
20
Příklad: vstupní směry Automatické řízení - Kybernetika a robotika
•
Vstupní směry a odezva na ně 90
90
1 60
120
8 60
120
0.8
6 0.6 30
150
4
150
0.4
2
0.2 180
0
180
0
210
330
210
240
330
240
300
300 270
270
•
30
Výstupní směry
90
[U,S,V]=svd([5,4;3,2]) U = -0.8718 -0.4899 -0.4899 0.8718 S = 7.3434 0 0 0.2724 V = -0.7937 0.6083 -0.6083 -0.7937 >> compass(V(1,:),V(2,:)) >> Y=U*S*V.'*V >> compass(Y(1,:),Y(2,:)) >> norm(Y(:,1)) ans = 7.3434 >> norm(Y(:,2)) ans = 0.2724
1
120
60 0.8 0.6
150
30 0.4 0.2
180
0
>> U U = -0.8718 -0.4899 -0.4899 0.8718 >> compass(U(1,:),U(2,:))
330
210
240
300 270
Michael Šebek
Pr-ARI-27-2012
21
Příklad: Nákupní vozík Automatické řízení - Kybernetika a robotika
Dobrou ilustraci poskytne typický nákupní vozík v supermarketu: • kolečka se snadno otáčejí dopředu, ale špatně do stran • největším zesílení má tedy směr dopředu, vozík se tam tlačí nejsnadněji - to odpovídá největšímu singulárnímu číslu • druhé největší zesílení je „do strany“ - odpovídá druhému sing. č. • nejslabší je směr vzhůru, odpovídá nejmenšímu singulárnímu číslu SVD poskytuje užitečný nástroj pro kvantifikaci směrovosti • většina SISO výsledků založených na absolutní hodnotě (velikosti, amplitudě) se dá zobecnit pro MIMO: velikost (amplituda) frekvenčního přenosu je nahrazena největším singulárním číslem přenosové matice Bohužel neumíme podobně hezky • zobecnit pojem fáze pro přenosovou matici • proto výsledky založené na tomto pojmu pro MIMO neplatí (např. neplatí Nyquistovo kritérium) Michael Šebek
22
Vlastní čísla jsou špatnou mírou pro zesílení Automatické řízení - Kybernetika a robotika
Vlastní čísla G(jω) nejsou dobrým zobecněním pojmu zesílení: 1) existují jen pro čtvercový systém a 2) i pro něj bývají zavádějící Příklad: • Matice G = 0 100 má vlastní čísla nulová, a přesto nenulové zesílení. 0 0 Odezva vstup u = [ 0 1]T je totiž y = [100 0]T • Vlastní číslo je mírou zesílení pouze když jsou vstupní a výstupní vektory rovnoběžné, tj. když je to vlastní vektor matice. • Pro takový vlastní vektor ti je z definice y u = Gti ti = λ = ti λi • takže λi je zesílení ve směru ti i ti •
•
Pro tuto matici je σ (G ) = 100 , což dokládá, že singulární čísla jsou lepším vyjádřením zesílení. G=[0 100;0 0];svd(G) Dá se to i matematicky dokázat. ans = 100 0 Michael Šebek
Pr-ARI-27-2012
23
Příklad: nula MIMO systému Automatické řízení - Kybernetika a robotika F=reduce(coprime(mdf([(s+1)/(2+s) -1/(2+s);(s-1)/(3+s) 1/(3+s)]))); Uvažme soustavu mimo_zero.mdl • Má nulu v s=0 −1 1+ s −1 2 + s 2 + s 2 + s 0 1 + s −1 • Jednotkový skok = F ( s ) = − 1 1 3 + s s − 1 1 det Fnum ( s ) = 2 s s 0 musí být blokován
3 + s
3 + s
• Jednotkový skok v obou vstupních kanálech opravdu neprojde! 1 s u (s) = 1 s
1 ( s + 2) y(s) = 1 ( s + 3)
• Co když jde jen do jednoho vstupu ? 1 u (s) = s 0
s +1 s( s + 2) y(s) = s −1 s( s + 3)
Prošel do obou! Jak to? Michael Šebek
Pr-ARI-27-2012
24
Legrační příklad Automatické řízení - Kybernetika a robotika
Systém
• • • • • •
s + 2 0 s +1 G ( s) = s +1 0 s + 2 Má det G ( s ) = 1 ale přitom má zjevně dva póly v -1 a -2 a dvě nuly v -1 a -2 ? Tedy pozor při používání determinantu k určení nul/pólů Póly a nuly mají stejné polohy, ale přesto nejdou vykrátit Mají totiž různé směry – to ukazuje důležitost směrů! Např. pól p1 = −1 má směry a nula z1 = −1 má směry
0 u= y= z1 z1 1
1 u= y= p1 p1 0
• Nulu v z2 = −2 nelze žádnou FF ani ZV přesunout na druhý výstup Michael Šebek
Pr-ARI-27-2012
25
Příklad: Opět dva integrátory Automatické řízení - Kybernetika a robotika
• Sériové spojení dvou integrátorů y2 u2
1 s
1 s
u1
y1
1 s G ( s) = 0
• Paralelní kombinace dvou integrátorů u2
1 s
y2
u1
1 s
y1
1 1 s2 → det G ( s ) = 2 1 s s
oba systémy mají dvojnásobný pól v 0
1 0 s 1 G ( s) = → det G ( s) = 2 s 0 1 s
• Na rozdíl od SISO úvah jsou teď oba systémy „normální,“ tedy plně řiditelné i pozorovatelné! • Závěr: u MIMO systémů samotná poloha pólů moc neříká, hodně záleží i na struktuře systému Michael Šebek
Pr-ARI-27-2012
26
Příklady RGA Automatické řízení - Kybernetika a robotika
1. Příklad
1 2 −2 1.5 −2 3 −T → = → = RGA A= A A ( ) 1 −0.5 3 4 3 −2
2. Příklad
vhodné párování je naopak (u1,y2), (u2,y1)
k12 2 s 2 + 3s + 2 1 k12 s +1 = G ( s) , G (0) = , RGA(G ) k 1 k 6 21 21 2 2 s + 2 s + 1 s + 5s + 6
1 1 − k k 12 21 −k12 k21 1 − k k 12 21
−k12 k21 1 − k12 k21 1 1 − k12 k21
• Pro k12 , k21 ∈ ( 0,1) je vhodné párování (u1,y1), (u2,y2). Třeba pro k= k= 0.1 vychází 12 21 1.0101 −0.0101 −2, k21 = −1 je • Pro k12 = tedy vhodné párování je naopak (u1,y2), (u2,y1). Michael Šebek
RGA(G ) = −0.0101 −1 RGA(G ) = 2
Pr-ARI-27-2012
1.0101
2 − 1 27
Vlastnosti RGA Automatické řízení - Kybernetika a robotika
Příklad λ 1− λ 1 • Pro 2 x 2 matici je to RGA(G ) = Λ(G ) = = λ , 1 − λ λ 1 − g12 g 21 g11 g 22 RGA má zajímavé vlastnosti: • nezávisí na škálování vstupu i výstupu: pro diagonální D1 , D2 je RGA(G ) = RGA( D1GD2 )
• • • • • •
řádkové a sloupcové součty jsou vždy 1 součet velikostí všech prvků je blízko čísla podmíněnosti takže velké prvky v RGA vždy znamenají špatnou podmíněnost! Opačně to neplatí! po relativní změně −1 λij prvku gij je matice singulární gij → gij (1 − 1 λij ) permutace řádků (sloupců) A vede na stejnou permutaci RGA(A) trojúhelníková (a tedy i diagonální) matice má jednotkové RGA odchylka od jednotkové matice je mírou křížových interakcí ve vztahu y = Gx Michael Šebek
Pr-ARI-27-2012
28
Příklady RGA: výroba celulózy Automatické řízení - Kybernetika a robotika
• RGA pro procesy v celulózce • velikost prvků vyznačena barvami
Michael Šebek
Pr-ARI-27-2012
29
Příklad: Rozpojení - decoupling Automatické řízení - Kybernetika a robotika
• Nejprve „rozpojíme“ 1 0 1 s G (s) = W ( s ) = s (1 − s ) s −1 1 s +1 s + 1 s 1 s ( s )W ( s ) = Gs ( s ) G= 0
0 1
0 1 s
• a pak pokračujeme metodami SISO návrhu Michael Šebek
Pr-ARI-27-2012
30