Příklady k přednášce 19 - Polynomiální metody Michael Šebek Automatické řízení 016 15-4-17
Dělení polynomů: e zbytkem a bez Polynomy netvoří těleo (jako reálná číla, racionální funkce, ) ale okruh (jako celá číla) Obecně nelze dělit polynom polynomem beze zbytku. Jde to jen jednotkou, což jou tu polynomy tupně 0, tedy nenulová reálná číla Ve zvláštních případech beze zbytku dělit jde a c tj. a dělí c beze zbytku, když exituje b, že c = ab pak říkáme a() je dělitelem c(), a že c() je náobkem a() polečný dělitel dvou polynomů dělí oba beze zbytku největší polečný dělitel má ze všech takových nejvyšší tupeň Příklad a( ) = ( + 1)( 1), b( ) = ( + 1)( + ) gcd( a, b) = + 1 greatet (left) common divior Michael Šebek Pr-ARI-17-017
Největší polečný dělitel a Bezoutova identita Pro je ap () () + bq ()() = g () av ()() + bw () () = 0 a přitom matice ( a b) g ( ) = gcd (), () p () q () U() = v () w () je unimodulární (determinant je nenulová kontanta) >> pformat rootr >> a=(+1)^*(-1)*(+) a = (+)(^++1)(-1) >> b=(+1)*(-1)*(-) b = (+1)(-1)(-) >> g=grd(a,b) g = (+1)(-1) >> [g,u]=grd(a,b) g = (+1)(-1) U = 0.0833-0.0833(+5.0000) -0.94(-) 0.94(+)(+1) >> U*[a; b] an = (+1)(-1) 0 Michael Šebek Pr-ARI-17-013 3
Dělení e zbytkem Euklide z Alexandrie ( ~ 300 před n.l. ) zavedl ještě dělení e zbytkem Pro dané polynomy a(), b()ǂ0 exitují polynomy q(), r() takové, že a = bq + r, deg r < deg b podíl zbytek Proto polynomy tvoří tzv. euklidovký okruh >> a=prand(5,'int'),b=prand(3,'int') a = -8-7 + 3^ - ^3 + 3^4 + 4^5 b = 6 + 3 + 6^ - 6^3 >> [q,r] = rdiv(a,b) q = -1. - 1. - 0.67^ r = -1 + 3.5 + 18^ >> a-(b*q+r) an = 0 Michael Šebek Pr-ARI-17-013 4
Nutná a potačující podmínka řešitelnoti Věta: Rovnice ax ()() + by () () = c () má řešení, právě když gcd ( ab, ) c Diofanto z Alexandrie řecký matematik 3. toletí n. l. Důkaz Nutnot ( jen když ): Nechť ax ' + by ' = c a označme gcd( a, b) = g, a = ga, b = gb Pak g( ax ' + by ') = c a tudíž g c Potačitelnot ( když ) Nechť ( ab, ) c a označme ( a, b) = g, c = gc Pak vždy exituje p, q takové, že ap + bq = g Vynáobením c dotaneme a( pc ) + b( qc ) = c a tím jme zkontruovali řešení x = pc, y = qc Michael Šebek Pr-ARI-17-013 5
Příklady: řešitelnot >> c=(+1)*(+); >> a=(+1)^*(-1); b=(+1)*(-); >> g=gld(a,b) g = (+1) >> pol(c/g) an = (+.0000) >> [x,y]=axbyc(a,b,c) x = 1.3333 y = -1.3333(+1.500) >> a*x+b*y-c an = 0 >> c=(-1)*(+) c = (+)(-1) >> c/g an = (+)(-1)/(+1) >> pol(c/g)??? Error uing ==> frac.pol Argument i not convertible to polynomial. Michael Šebek Pr-ARI-17-013 6
Příklad: interpretace podmínky řešitelnoti přeno bez krytých módu (bez krácení) 1 ( + 3) y () = u () ( 1)( + ) ( + 3) u 1 ( 1)( + ) y b () y () = u () a () a ( ) = ( 1)( + )( + 3) b ( ) = ( + 3) 1 ( + 3) charakteritický polynom je ax ()() + by () () = ( 1)( + )( + 3)() x + ( + 3) y() = ( + 3) d () tedy žádný ZV regulátor nezmění neřiditelnou čát Michael Šebek 7
Věta: Obecné řešení Obecné řešení x = x bt kde t je libovolný rovnice má tvar y = y + at polynomiální parametr Důkaz: 1) Je to řešení pro každé t: Protě ho doadíme do rovnice ax + by = ax abt + by + bat = ax + by + ( ba ab ) t = c Obecné řešení ) Neexituje žádné jiné řešení: pro libovolná řešení x, y a x,y platí ax + by = c, ax ' + by ' = c Odečtením ax ( x') + by ( y') = 0 a z toho ax ( x') = ( y y') b Přitom polynomy ab, definované dříve jou neoudělné a platí ab = ab Tudíž, takže pro nějaký polynom t platí b x x' a y y' x x ' = bt y y ' = at Libovolné řešení zíkáme tak, že necháme t probíhat množinu všech reálných polynomů Michael Šebek Pr-ARI-17-013 8
Příklad: Obecné řešení Nějaké řešení a=(+1)^*(-1) a = -1 - + ^ + ^3 >> b=(+1)*(-) b = - - + ^ >> c=(+1)*(+) c = + 3 + ^ >> [x,y]=axbyc(a,b,c) x = 1.3333 y = -1.7-1.3 >> [x,y,v,w]=axbyc(a,b,c) x = 1.3333 y = -1.7-1.3 v = 0.76-0.38 w = -0.38 + 0.38^ Jiné řešení >> t=1- t = 1 >> xnew=x+v*t,ynew=y+w*t xnew =.1-1.1 + 0.38^ ynew = - - 0.96 + 0.38^ - 0.38^3 >> a*xnew+b*ynew-c an = 0 x () = x'() + rt ()() new y () = y'() + vt ()() new r () = b () v () = a () x () = x'() b()() t y () = y'() + at ()() Michael Šebek Pr-ARI-17-013 9
Vezmeme obecné řešení x = x ' bt y = y ' + at a algoritmem dělení redukujeme x' modulo b : Pak je x= r bt ( q) y = y ' + at Volbou t = q dotaneme řešení x, y minimálního tupně v x x= r deg x< deg b y = y ' + aq Podobně bychom dokázali exitenci a unicitu řešení minimálního tupně v y Tato dvě řešení jou obecně různá Řešení minimálního tupně x ' = bq + r deg r < deg b Michael Šebek Pr-ARI-17-013 10
Data Příklad: řešení minimálního tupně >> a=prand(3),b=prand(),c=prand(5) a = 0.6 - + 1.5^ + 0.43^3 b = 0.47 + 1.3 + 0.64^ c = 1.3-0.91 -.3^ + 1.8^3 + 0.39^4 + 0.0^5 >> [x,y,b_bar,a_bar]=axbyc(a,b,c); b_bar,a_bar b_bar = -0.19-0.51-0.5^ a_bar = 0.5-0.4 + 0.61^ + 0.17^3 Řešení min. tupně y Řešení min. tupně x >> [x,y]=axbyc(a,b,c) x = 1.9 +.4 + 0.047^ y = 0.34-1.9-1.1^ >> [x,y]=axbyc(a,b,c,'miny') x = 1.9 +.4 + 0.047^ y = 0.34-1.9-1.1^ >> [x,y]=axbyc(a,b,c,'minx') x = 1.8 +.3 y = 0.38 - - ^ + 0.03^3 Michael Šebek Pr-ARI-17-013 11
Koincidence Důležitý zvláštní případ natane, když deg c< deg a+ deg b Vyvětlení (předpokládáme neoudělná a, b ) x y c ax + by = c + = triktně ryzí, když platí b a ab triktně ryzí, když řeš. min deg x triktně ryzí, když řeš. min deg y Pravá trana triktně ryzí buď oba zlomky na levé traně jou triktně ryzí nebo žádný Pravá trana není triktně ryzí vždy pouze jeden zlomek na levé může být triktně ryzí když deg c< deg a+ deg b, pak obě řešení minimálních tupňů koincidují a exituje jediné řešení minimálního tupně (které je minimální v obou neznámých oučaně) když deg c deg a+ deg b, pak kutečně exitují dvě různá řešení minimálního tupně (jedno v x a druhé v y) Michael Šebek Pr-ARI-17-013 1
Příklad: koincidence Ano Obě jou tejná! Tedy exituje jediné řešení minimálního tupně (v obou oučaně) Ne Jou různá >> a=prand(3),b=prand(),c1=1, c=prand(6) a = -1.5 + 0. - 1.4^ - 0.84^3 b = 0.76 + 0.38-1.3^ c1 = 1 >> [x,y]=axbyc(a,b,c1,'minx') x = -0.43 + 0.11 y = 0.45 + 0.13-0.071^ >> [x,y]=axbyc(a,b,c1,'miny') x = -0.43 + 0.11 y = 0.45 + 0.13-0.071^ >> c=prand(6) c = -0.71+0.51-0.4^+0.3^3-0.96^4-0.15^5+0.74^6 >> [x,y]=axbyc(a,b,c,'minx') x = 0.49-0.8 y = 0.064-0.064 + 0.56^ - 0.046^3-0.55^4 >> [x,y]=axbyc(a,b,c,'miny') x = -0.8-0.16 + 1.6^ - 0.89^3 y = -1.5 + 1. - 0.99^ Michael Šebek 13
Elementární operace na polynomiální matici Řádkové operace - 3 základní náobení řádku 1 nenulovou kontantou výměna dvou řádků 1 přičtení řádku náobeného 1 polynomem k jinému řádku 1. řádek 3 výměna řádků 1. řádek +.řád. 3 3 1 1+ + 3 Sloupcové operace jou duální Elementární operace zachovávají až na náobení kontantou determinant odpovídají náobení unimodulární maticí (tj. maticí kontantním nenulovým determinantem) Michael Šebek Pr-ARI-17-013 14
Potup řešení polynomiálními redukcemi Řešení rovnice polynomiálními redukcemi Krok 1 Utvoř loženou matici Krok Redukuj ji elementárními řádkovými operacemi na tvar a () 1 0 b () 0 1 g () p () q () 0 v () w () Pak je pa ()() + qb ()() = g () va ()() + wb ()() = 0 kde ( a (), b ()) ( v (), w ()) gcd = g ( ) gcd = 1 Krok 3 Extrahuj g() z c() a dotaň Když to nejde, rovnice nemá řešení! c () = cg () () Michael Šebek Pr-ARI-17-013 15
Potup řešení polynomiálními redukcemi Výledek: jako řešení vezmi x () = cp () () y () = cq ()() Navíc, všechna řešení jou vyjádřena takto x () = cp () () + vt ()() y () = c()() q + wt ()() volný polynomiální parametr Potup výpočtu plyne z rovnoti p q a 1 0 g p q v w b 0 1 = 0 v w Michael Šebek Pr-ARI-17-013 16
Příklad: Řešení rovnice redukcemi ( ) ( ) + 1 x () + 1 y () = Krok 1 a + 1 1 0 1 0 1 Krok 3 + 1 1 0 1 1 g () = 1 c() 1 ½ ½ + 1 1 0 = 1 0 1 1 1 1+ Krok 4 x () = y () = 1 x () = + t () 1+ y () = + t () Michael Šebek Pr-ARI-17-013 17
Potup řešení Sylvetrovou maticí Ukážeme na příkladu. tupně, kdy je dáno a() = a0 + a 1 + a a hledáme x() = x0 + x 1, y() = y0 + y b() = b 1 0 + b 1 + b c() = c0 + c 1 + c Krok1: Doadíme polynomy neurčitými koeficienty do rovnice, a + a+ a x + x + b + b+ b y + y = c + c+ c ( )( ) ( )( ) 0 1 0 1 0 1 0 1 0 1 ax + by = c porovnáme koeficienty u tejných mocnin, ax + by + ax + by = c nebo maticově a ax + by + ax + by = c 0 a1 a 0 b ax 1+ by 1= 0 0 b1 b 0 [ x0 y0 x1 y1] = [ c0 c1 c 0] 0 a0 a1 a 0 b0 b1 b 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 Vyřešíme tuto maticovou rovnici, čímž dotaneme x0, y0, x1, y1a z nich etavíme hledané x() = x + x, y() = y + y 0 1 0 1 Michael Šebek Pr-ARI-17-013 18
( ) ( ) + 1 x () + 1 y () = a () = 1+ b () = 1+ c () = x () = x y () = y Dotali jme řešení minimálního tupně (v obou neznámých), které je jiné než partikulární řešení zíkané dříve To z minulého příkladu dotaneme z obecného řešení volbou t() = 1 Příklad: Řešení Sylvetrovou maticí 0 0 [ x y ] 0 0 1 1 = [ x y ] = [ 0 1] 0 0 1 1 1 1 1 x () = + t () 1+ y () = + t () 1 1 x () =, y () = Michael Šebek Pr-ARI-17-013 19
Pozor na špatný odhad Pro rovnici hledáme i tady řešení tupňů 0 ( vědomím, že to ai je špatný odhad) a tak řešíme maticovou rovnice která ale nemá žádné řešení. Přeto polynomiální rovnice řešení má, ale vyšších tupňů, např. Toto je typický případ a = 1 +, b = (1 + ) = 1+ +, c = 1+ + [ x y ] = [ 1 ] 0 0 1 0 1 1 1 x= 0.5 y, = 1+ 0.5 >> a=1+^,b=(1+)^,c=a+b-1 a = 1 + ^ b = 1 + + ^ c = 1 + + ^ >> S=ylv([a;b],0),C=c{0:} S = 1 0 1 1 1 C = 1 >> XY=C/S XY = 0.5000 1.0000 >> XY*S==C an = 0 0 0 >> [x,y]=axbyc(a,b,c) x = -0.5 y = 1 + 0.5 Michael Šebek Pr-ARI-17-013 0
Příklad: přiřazení pólů Soutava motor přeno vtupního napětí Dříve navržený PI regulátor dává nulovou odchylku na kok ale ne dobrou dynamiku tak zkume lepší c b = 0.0670 a = 0.017 + 0.0079 + 0.0011^ p = q = 15 + 3 c1 = a*p + b*q c1 = 1 + 0. + 0.0079^ + 0.0011^3 >> root(c1) an = -1.1476 +13.653i -1.1476-13.653i -4.8866 + 0.0000i >> c=(+5)*(+1+j)*(+1-j) c = 10 + 1 + 7^ + ^3 Michael Šebek Pr-ARI-17-013 1
řešením je obecný regulátor 1. řádu zajití dobrou dynamiku, ale >> [x1,y1]=axbyc(a,b,c) x = -1.7e+0 + 9.1e+0 y = 1.9e+0-3 nemá integrační charakter a tedy nezajití nulovou odchylku zkume tam tedy dát integrátor natvrdo (při řešení rovnice z něj uděláme čát outavy) dotaneme regulátor dobrou dynamikou a nulovou odchylkou ale je PID, což e dalo čekat Poučení: máme dobrou kontrolu nad dynamikou (vhodným výběrem CL pólů) dokážeme zajitit i další požadavky ale nemáme kontrolu nad řádem regulátoru ten protě vyjde pokračování >> [x,y]=axbyc(a*,b,c) x = 909.0909 y = 1.5e+0-5 -.7^ >> p = x*, q =y p = 9.1e+0 q = 1.5e+0-5 -.7^ Michael Šebek Pr-ARI-17-013
Příklad: Ryzot regulátoru Pokud nemá pravá trana rovnice dotatečně vyoký tupeň ryzí regulátor exituje jen náhodou (není to generický případ) >> a=(-1)^,b=,c=(+1)^ a = 1 - + ^ b = c = 1 + + ^ >> [x,y]=axbyc(a,b,c) x = 1.0000 y = 4.0000 Jiný příklad: ryzí regulátor neexituje, to je generický případ >> c=prand(,'ta') c = 0.86 +.6 + ^ >> [x,y]=axbyc(a,b,c) x = 0.8573 y = 4.4 + 0.14 Michael Šebek Pr-ARI-17-013 3
Příklad: Sledování DOF ( )( ) a () = 1+ 1 b () = + f() = f () = ( )( ) m () = + 1+ >> a=(1+)*(1-), b=+, f=^, m=(+)*(+1)^ >> [p,q]=axbyc(a,b,m,'miny') p = -, q = + >> [t,r]=axbyc(f,b,m,'miny'); r r = 1 + >> T=coprime(b*r/(a*p+b*q)) T = 0.3 + 0.6 / 0.3 + 0.6 + 0.3^ >> tep(tf(t/),tf(1/),5) ap () () + bq ()() = m () f ()() t + br ()() = m () p () = q () = + r () = 1+ Michael Šebek Pr-ARI-17-013 4
Sledování - 1DOF Navrhněme pro tejné zadání regulátor 1DOF, tedy řízení odchylkou Potup výběrem z DOF regulátorů p () = + w ()( + ) Z obecného řešení předchozí úlohy q () = + w ()(1 ) vybereme takové, aby q () = r () r () = 1+ v () ( ) ( ) Volbou w = 1 +, v = dotaneme nevyhovující p1 () = 0 q1() = 1+ + = r1() Jinou volbou u = 1, v = 1 dotaneme ( ) ( ) ( ) 4 p () = +, q () = 1+ + = r () Toto řešení ice není ryzí, ale jinak vyhovuje. Ryzí řešení tady neexituje. Podle očekávání obahuje jmenovatel 1DOF regulátoru faktor Michael Šebek Pr-ARI-17-013 5
1DOF regulátor můžeme navrhnout i přímo řešením rovnice a () f ()() x + bq ()() = m () a položením p () = f ()() x Protože řešení minimálního tupně x3() = p3() = 0 q () = 1+ + 3 tu opět nevyhovuje, muíme najít jiné pomocí obecného řešení x () = 0 + w ()( + ) q () = 1+ + + w ()(1 ) Pro w =1 dotáváme x4() = +, p4() = + 4 q () = 1+ + 4 Sledování - 1DOF >> [x3,q3]=axbyc(a*f,b,m), p3=x3*f x3 = 0 q3 = 1 + + ^ p3 = 0 >> w=1;x4=x3+w*b; p4=x4*f,q4=q3-w*a*f p4 = ^ + ^3 q4 = 1 + + ^4 ( ) Michael Šebek Pr-ARI-17-013 6
Porovnání ledování DOF a 1DOF Povšimněte i, že DOF regulátor vyšel ryzí ale 1DOF regulátor ryzí není To e projeví na CL přenoech v na odezvě na rampu q () + r () 1+ =, = p () p () q4() 1+ + = p () 4 ( + ) 4 >> TDOF= r*coprime(b/m) TDOF = 1 + / 1 + + ^ >> T1DOF= q4*coprime(b/m) T1DOF = 1 + + ^4 / 1 + + ^ >> perdof=tf((tdof)/^); per1dof=tf(t1dof/^); impule(perdof,per1dof,tf(1/ ^),3) Michael Šebek Pr-ARI-17-013 7
Fyzikální interpretace a rovnání 1DOF Podmínky řešitelnoti mají hezkou interpretaci: Stabilita gcd( ab, ) znamená tabilizovatelnot outavy gcd( f, b) = 1 je obecná podmínka pro ledování, ouvi. definicí nul: nemůže projít žádný (zde netabilní) mód, který e rovná jejím nulám f a je také přirozená: outava poháněná vtupem konvergujícím k nule aymptoticky leduje jen takový netabilní ignál, který je chopna ama o obě vygenerovat. Pokud to není plněno, ytém může ledovat, jen když vzdáme požadavek tabilního vtupu Srovnání dvou a jednoho tupně volnoti zvláštní případ q = r nadno odlišíme. Rovnice ap + bq = m mají řešení q = r právě když ap = f t f t + br = m takže klaická truktura vyžaduje, aby netabilní módy reference byly v outavě nebo regulátoru, i v případě, že vtup může být netabilní. Michael Šebek ARI-19-013 8
Odvození - Přizpůobení outavy modelu y = b () u a () q () r () u = y+ u p () p () new y = br ()() u ap () () + bq ()() new y = g () u f() new br ()() g () = ap () () + bq ()() f() b()() r g () = ap () () + bq ()() f() ap () () + bq ()() = f() bt ()() b()() r g () = f() b()() t f() r () g () t () = 1 r () = gt ()() Řešitelné: Vždy. Ale pokud chceme tabilní řešení, pak muí být plněny Podmínky tability: f() tabilní (amozřejmé) a vezmeme t () tab., muí být gcd( ab, ) tab. b() tabilní: to znamená, že netabilní nuly nemůžeme změnit! Michael Šebek ARI-19-015 9
Příklad: Model matching b ( ) ( + 1)( 1) a ( ) ( + )( ) Soutava = a požadovaný přeno Neoudělné faktory Volíme a řešíme rovnici t () = 1 b ( ) ( + 1)( 1) ( + 1) b( ) = = = g () ( 1) 1 g () g () 1 = f( ) ( + ) Řešení p ( ) 3( 1), q ( ) ( ). Feedforward je Tedy vychází regulátor Zkouška + p + + q = + + ( )( ) ( ) ( 1)( 1) ( ) ( ) ( 1) = + = + r () = 1 ( + ) 1 u = y+ u 3( + 1) 3( + 1) ( + 1)( 1) ( + 1)( 1) ( 1) = = 3( + )( )( + 1) + ( + 1)( 1)( + ) ( + ) ( + 1) ( + ) new Michael Šebek Pr-ARI-17-013 30