Příklady k přednášce 7 Systémy s více vstupy a výstupy Michael Šebek Automatické řízení 05 0-5-5
Příklad
Příklad 3
Příklad ESO OWL koncept stotisíce vstupů výstupů Michael Šebek Pr-ARI-7-05 4
Příklad 5
systém s přenosovou maticí reprezentuje dvě (skalární) rovnice s y() s = u() s + u() s s s + s y() s = u() s + u() s s+ s+ 3 Gs () Příklad s s s+ = s s+ s+ 3 mdf Alternativně vyjádřeno různými typy maticových zlomků skalární jmenovatel Gs () sdf ( s+ )( s+ )( s+ 3) s( s )( s+ )( s+ 3) = ss ( + )( s+ )( s+ 3) s( s+ )( s+ 3) s ( s+ )( s+ ) levý polynomiální maticový zlomek pravý polynomiální maticový zlomek rdf ldf ss ( + ) 0 ( s+ ) ss ( ) Gs () = 0 ( s+ )( s+ 3) ( s+ 3) ss ( + ) ( s+ ) ( s+ 3)( s ) ss ( + ) 0 Gs () = s ss ( + ) 0 ( s+ )( s+ 3) 6
Příklad >> G=[mdf(/s) mdf((s-)/(s+));mdf(/(s+)) mdf(s/(s+3))] G = (s-) - ----- s (s+) s ----- ----- (s+) (s+3) >> sdf(g) ans = (s+3)(s+)(s+) s(s+3)(s+)(s-) s(s+3)(s+) s^(s+)(s+) ------------------------------------- s(s+3)(s+)(s+) s s s+ Gs () = s s+ s+ 3 >> ldf(g) ans = s(s+.0000) 0 \ (s+.0000) s(s-) 0 (s+3.0000)(s+.0000) \ (s+3.0000) s(s+.0000) ans.numerator = >> rdf(g) ans = (s+.0000) (s+3.0000)(s-.0000) / s(s+.0000) 0 s s(s+.0000) / 0 (s+3)(s+) Michael Šebek 7
Příklad: JAS-39 Gripen 8
model pohybu v horizontální rovině za předpokladu vlivu úhlu náběhu na otáčení (standardní předpoklad za normálního letu) kurs řídíme směrovkou (vytváří přímo točivý moment) Příklad: JAS-39 Gripen a křidélky (způsobí náklon podle podélné osy a tím změnu kursu) z y φ x ψ β v y ψ v y φ δ r δ a úhel kursu rychlost do strany náklon výchylka směrovky výchylka křidélek 9
Lineární stavový model, rozumný pro malé úhly x = vy x = p x3 = r x4 = φ, x5 = ψ, x6 = δa, x7 = δr cmd cmd u = δ, u = δ a rychlost náklonu (podle osy x) rychlost zatáčení (podle osy z) r Příklad: JAS-39 Gripen V režimu: rakety zavěšeny, Mach 0.6, výška 500 m, úhel náběhu 0.04 rad: >> A,B A = -0.90 8.300-0.0000 9.7700 0 -.5000 7.000-0.50 -.5400 0.560-0.0004 0 07.0000 7.6800 0.0364-0.0678-0.480 0.00 0 4.6700-7.9800 0.0000 0.040 0 0 0 0 0 0.0000 0 0 0 0 0 0 0 0 0-0.0000 0 0 0 0 0 0 0-0.0000 B = 0 -.500-3.7000 0.074 0.4800 0 0 0 0 0.0000 0 0 0.0000 0
Příklad Přenos na řízení kurs: >> G=mdf(A,B,C) G = Column 6.7e+00 + 5.7e+00s +.4e+00s^ + 96s^3 ------------------------------------------------------ 8.8s + 4.6e+00s^ +.4e+00s^3 + 77s^4 + 3s^5 + s^6 Column -.4e+00 -.8e+00s - 3.7e+00s^ -.3e+00s^3 +.5s^4 ---------------------------------------------------------- 8.8s + 4.6e+00s^ +.4e+00s^3 + 77s^4 + 3s^5 + s^6 >> G=ldf(A,B,C) G.denominator = 8.8s + 4.6e+00s^ +.4e+00s^3 + 77s^4 + 3s^5 + s^6 G.numerator = Column 6.7e+00 + 5.7e+00s +.4e+00s^ + 96s^3 Column -.4e+00 -.8e+00s - 3.7e+00s^ -.3e+00s^3 +.5s^4 >> G=rdf(A,B,C) G.numerator = 75 -.e+00 +.5s G.denominator = -3-3s -.s^ + s^3 40 + 3s + 6.6s^ -.e+00-4s - 4s^ e+00 + 8s + 5s^ + s^3
Příklad >> Gstate=rdf(A,B,I) Gstate.numerator = 0.009-0.4s - 6.8s^ - 0.008s^3 -. + 0.0064s + 0.000s^ -0.04s + s^ - 0.4s^3-0.06s + 0.0004s^ s + 0.79s^ + 0.0055s^3 0.0049s - 7e-005s^ 0.000 + s - 0.4s^ -0.06 + 0.0004s + 0.79s + 0.0055s^ 0.0049-7e-005s.e-005-0.00s + 0.68s^ + 0.7s^3-0.006-0.00086s - 0.0005s^ 6e-005-0.074s + 0.09s^ + 0.075s^3-0.0079-0.00077s - 0.00095s^ Gstate.denominator = Column.e-005-0.00s + 0.68s^ + 0.3s^3 + 0.03s^4 6e-005-0.074s + 0.05s^ + 0.076s^3 + 0.0037s^4 Column -0.006-0.00094s - 0.0003s^ -.3e-005s^3-0.0079-0.00s - 0.00099s^ - 4.8e-005s^3 >> Gstate=ldf(A,B,I) Gstate.denominator = 0.9 + s -8. e+00-9.8 0-7 0.5.5 + s -0.56 0.0004 0 -.e+00-7.7-0.036 0.068 0.48 + s -0.00 0-4.7 8 0 - -0.04 s 0 0 0 0 0-0 s 0 0 0 0 0 0 0 0 + s 0 0 0 0 0 0 0 0+s Gstate.numerator = 0 -. -3 0.07 0.5 0 0 0 0 Přenos na stav 0 0 0 0 Michael Šebek Pr-ARI-7-05
NACRE 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 3
Příklad Odezva na skok(y), Bode, Nyquist - po jednotlivých kanálech s s s+ Gs () = s s+ 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í? G = - + s - ------ s + s s ----- ----- + s 3 + s >> step(g) >> bode(g) >> nyquist(g) Michael Šebek Pr-ARI-7-05 4
Příklad Na systém x s (konstantní) přenosovou maticí postupně aplikujeme následujících 5 různých vstupních vektorů 5 4 G = 3 u u 0 0.6 = 0 0. 8 = :, u,, u, u u u = a = b u = = c d e které mají stejnou velikost (normu) u u = ale různé směry k r=sqrt(.5); u=[,0,r,r,.6;0,,r,-r,-.8] u =.0000 0 0.707 0.707 0.6000 0.0000 0.707-0.707-0.8000 compass(u(,:),u(,:)) u 5
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 = 0, 7, y 3 = 7.80, y 4. 000, y 5 a tedy je zesílení závislé také na směru vstupních signálů (vektorů) Příklad y 5.83 y = 4.4 = = 0.88 G=[5 4;3 ]; y=g*u, compass(y(,:),y(,:)) y = 5.0000 4.0000 6.3640 0.707-0.000 3.0000.0000 3.5355 0.707 0.000 [norm(y(:,)),norm(y(:,)),norm(y(:,3)),norm(y(:,4)),norm(y(:,5))] ans = 5.830 4.47 7.80.0000 0.88 u 5 4 G = 3 G y 6
Rozklad na singulární čísla - Singular Value Decomposition l m přenosová matici Gs () 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{ lm, } 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: UU= I V je m m unitární matice: VV= 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 GG, tedy σ ( G) = λ ( GG) i i 7
Rozklad na singulární čísla - Singular Value Decomposition Visualization of the SVD of a -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 σ and σ 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 8
Příklad Závislost zesílení na směru vstupu (při jednotkové velikosti vstupu) Vyneseme do grafu >> G=[5 4;3 ]; alpha=[-pi:*pi/000:pi]; >> u=[cos(alpha);sin(alpha)]; >> y=g*u; normy=sqrt(y(,:).^+y(,:).^); >> plot(alpha,normy), >> maximum=max(normy), minimum=min(normy) maximum = 7.3434, minimum = 0.74, >> svd(g)' ans = 7.3434 0.74 0.74 7.3434 4 3 0 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 max = max Gu = σ ( G) u 0 u u = Gu min = min Gu = σ ( G) u 0 u u = Michael Šebek Pr-ARI-7-05 9
Pokračujme ve zkoumání matice Největší zesílení je ve vstupním směru 5 4 G = 3 σ = 7.3434 v = 0.7937 0.6083 T [ ] Nejmenší zesílení σ = 0.74 je ve vstupním směru v = GV = UΣ V V = UΣ y = UΣ V v, y = σ, y = UΣ V v, y = σ [ ] 0.6083 0.7937 T Příklad: vstupní směry [U,S,V]=svd([5,4;3,]) U = -0.878-0.4899-0.4899 0.878 S = 7.3434 0 0 0.74 V = -0.7937 0.6083-0.6083-0.7937 >> norm(u*s*v.'*v(:,)) ans = 7.3434 >> norm(u*s*v.'*v(:,)) ans = 0.74 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é γ= σσ Problémy nastanou, kdykoli γ= σσ> 0 = 7.3434 0.74 = 7.0 0
Příklad: vstupní směry Vstupní směry a odezva na ně 0 90 90 8 60 0 60 0.8 6 0.6 50 30 0.4 50 4 30 0. 80 0 80 0 0 330 0 330 40 300 40 300 70 70 Výstupní směry 90 0 60 0.8 0.6 50 30 0.4 0. 80 0 0 330 [U,S,V]=svd([5,4;3,]) U = -0.878-0.4899-0.4899 0.878 S = 7.3434 0 0 0.74 V = -0.7937 0.6083-0.6083-0.7937 >> compass(v(,:),v(,:)) >> Y=U*S*V.'*V >> compass(y(,:),y(,:)) >> norm(y(:,)) ans = 7.3434 >> norm(y(:,)) ans = 0.74 >> U U = -0.878-0.4899-0.4899 0.878 >> compass(u(,:),u(,:)) 40 70 300
Příklad: Nákupní vozík 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
Vlastní čísla jsou špatnou mírou pro zesílení Vlastní čísla G(jω) nejsou dobrým zobecněním pojmu zesílení: ) existují jen pro čtvercový systém a ) i pro něj bývají zavádějící Příklad: Matice 0 00 G = má vlastní čísla nulová, a přesto nenulové zesílení. 0 0 Odezva vstup u = [ 0 ] T je totiž y = [ 00 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 t i je z definice y u = Gti ti takže λ je zesílení ve směru t = λt t = λ i i i i i Pro tuto matici je σ ( G) = 00, což dokládá, že singulární čísla jsou lepším vyjádřením zesílení. Dá se to i matematicky dokázat. i G=[0 00;0 0];svd(G) ans = 00 0 3
Uvažme soustavu Má nulu v s=0 Jednotkový skok musí být blokován Jednotkový skok v obou vstupních kanálech opravdu neprojde! s us () = s Co když jde jen do jednoho vstupu? us () = s 0 Prošel do obou! Jak to? Příklad: nula MIMO systému F=reduce(coprime(mdf([(s+)/(+s) -/(+s);(s-)/(3+s) /(3+s)]))); mimo_zero.mdl + s + s + s + s 0 + s Fs () = = s 0 3 s s + 3+ s 3+ s ( s + ) ys () = ( s + 3) s + ss ( + ) ys () = s ss ( + 3) det F ( s) = s 4 num
Systém s + 0 s + Gs () = s + 0 s + Má det Gs ( ) = ale přitom má zjevně dva póly v - a - a dvě nuly v - a -? 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 p = má směry a nula z = má směry u p = yp = 0 Legrační příklad 0 = yz = Nulu v z = nelze žádnou FF ani ZV přesunout na druhý výstup 5 u z
Sériové spojení dvou integrátorů u s s u Paralelní kombinace dvou integrátorů u u s s y y y y Příklad: Opět dva integrátory s s Gs () = det Gs () = 0 s 0 s Gs () = det Gs () = 0 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 s s oba systémy mají dvojnásobný pól v 0 6
Příklady RGA. Příklad. Příklad T.5 3 A A RGA( A) = 3 4 = = 0.5 3 vhodné párování je naopak (u,y ), (u,y ) k k k G( s) =, G(0) =, RGA( G) k 6 k = kk s + s+ s + 5s+ 6 kk kk 3 k s s s kk kk + + + ( ) Pro k, k 0, je vhodné párování (u,y ), (u,y ). Třeba pro k = k = vychází 0. Pro k =, k = je tedy vhodné párování je naopak (u,y ), (u,y )..00 0.00 RGA( G) = 0.00.00 RGA( G) = 7
Vlastnosti RGA Příklad λ λ Pro x matici je to RGA( G) =Λ ( G) =, λ λ λ = g g RGA má zajímavé vlastnosti: nezávisí na škálování vstupu i výstupu: pro diagonální D, D je RGA( G) = RGA( D GD ) řádkové a sloupcové součty jsou vždy 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ě λ ij prvku g ij je matice singulární gij gij ( λ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 g g 8
RGA pro procesy v celulózce velikost prvků vyznačena barvami Příklady RGA: výroba celulózy 9
Příklad: Rozpojení - decoupling Nejprve rozpojíme Gs () 0 s = s s+ s 0 W() s = s( s) s + 0 s Gs () s = GsW () () s = 0 s a pak pokračujeme metodami SISO návrhu 30