Reglerteknik grk Lab 3 Reglering av inverterad pendel Denna version: 9 mars 2012 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godkänd:
Innehåll 1 Inledning 1 2 Systembeskrivning 3 3 Simuleringsmiljö 5 3.1 Modell............................... 5 3.2 Att hantera simuleringsmodellen................. 5 3.3 Begränsningar........................... 6 4 Simulering av pendeln utan återkoppling 7 5 Tillståndsåterkoppling 8 6 Återkoppling från vagnposition 9 7 Robusthetsanalys 11 7.1 Teoretisk robusthetsanalys.................... 12 7.2 Robusthetsanalys via simulering................. 12 8 Återkoppling från vagnposition och pendelvinkel 13 9 Icke-minfassystem 15 10 LQ-optimering 16 11 Förberedelser 17 A Användbara Matlab-kommandon 20 B Härledning av tillståndsmodell 21
1 Inledning Syftet med denna laboration är att visa att tillståndsmodeller och tillståndsbaserad återkoppling är användbara och ibland t.o.m. oumbärliga hjälpmedel för att styra vissa typer av system. Som exempel på ett reglerproblem som är mycket svårt att klara utan tillståndsmetoder ska denna laboration utföras med hjälp av en simuleringsmodell av en s.k. inverterad pendel. Ett exempel på en inverterad pendel visas i figur 1. Problemet har i allra högsta grad verklig förankring. De system som visas i figur 2 kan båda ses som exempel på problematiken med inverterad pendel. Systemen är instabila, vilket kan inses genom att betrakta pendelns vinkel relativt lodlinjen (i upprätt tillstånd) som utsignal. Pendeln kommer att tippa om den släpps med ett litet vinkelutslag. För att stabilisera systemet, d.v.s. hålla pendeln i upprätt läge, måste ett återkopplat reglersystem ständigt vara i funktion. Målet med denna laboration är att konstruera ett reglersystem som håller pendeln i upprätt läge. I den första delen av laborationen antas att alla systemets tillstånd kan mätas medan det i andra delen antas att endast vagnens position kan mätas. I den sista delen av laborationen används vagnposition och pendelvinkel för återkopplingen. Figur 1: Inverterad pendel. 1
(b) Segway R PT (a) MAXUS 1, Kiruna Figur 2: Exempel på verkliga system som beter sig som inverterade pendlar. Figur 2(a): Raketen MAXUS 1 på startrampen, Esrange Space Center, Kiruna, foto från bildbanken hos Rymdbolaget, SSC [2011]. Figur 2(b): Segway R Personal Transporter (PT), ett självbalanserande fordon, foto från bilddatabanken hos Segway Inc. [2011]. 2
2 Systembeskrivning Den inverterade pendel kan schematiskt beskrivas med figuren nedan m θ l M F x=0 x Figur 3: Schematisk beskrivning av inverterad pendel. Med beteckningarna x för vagnposition, θ för pendelns vinkel och F för pålagd kraft kan systemet beskrivas av ekvationerna (M + m)ẍ + ml θ cos θ ml θ 2 sin θ = F (1) l θ + ẍ cos θ g sin θ = f θ θ (2) där M och m betecknar vagnens respektive pendelns massa, l är pendelns längd, g är gravitationskonstanten och f θ friktionskoefficienten för leden där pendeln är fäst i vagnen. En kort härledning av ekvationerna ges i Appendix B. Med följande val av tillståndsvariabler x 1 = x, x 2 = ẋ, x 3 = θ, x 4 = θ 3
och med en del räkningar ger detta tillståndsekvationerna ẋ 1 = ẋ = x 2 ẋ 2 = ẍ = mg sin x 3 cos x 3 + mlx 2 4 sin x 3 + f θ mx 4 cos x 3 + F M + (1 cos 2 x 3 )m ẋ 3 = θ = x 4 (3) ẋ 4 = (M + m)(g sin x 3 f θ x 4 ) (lmx 2 4 sin x 3 + F ) cos x 3 l(m + (1 cos 2 x 3 )m) 4
3 Simuleringsmiljö 3.1 Modell Systemet ska simuleras i Simulink, och den simuleringsmodell som ska användas i första delen av laborationen visas i figur 4. x Reference signal L0 Scaling F v th w Fapp States Pendulum Input L Feedback gain Figur 4: Simulink-modell. 3.2 Att hantera simuleringsmodellen Starta Matlab och skriv initcourse TSRTXX (med XX=03, 12, 15, 19 eller 91) syst1 i Matlab:s kommandofönster för att sätta rätt sökväg respektive öppna Simulink-modellen. Skriv load penddata för att ladda in nödvändiga variabler. Simuleringen startas genom att välja Start från menyn Simulation. Samtidigt med simuleringen startas även en animering som visar rörelsen hos pendeln och vagnen. Se figur 5. Simuleringstidens längd kan sättas genom att välja Configuration Parameters under menyn Simulation. Tiden är inledningsvis satt till 10 sekunder. 5
Systemets initialtillstånd är från början satt till x(0) = (0 0 0.2 0) T d.v.s. vid t = 0 står vagnen stilla vid x = 0 medan pendeln lutar 0.2 radianer. 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 Figur 5: Animering av rörelsen hos vagn och pendel. I simuleringen är det de olinjära differentialekvationerna i ekvation (3) som används, d.v.s. det simulerade systemet är olinjärt. Återkopplingarna kommer dock att beräknas med hjälp av den linjäriserade modell som togs fram i förberedelseuppgifterna 1 och 2. Matriserna A, B och C finns bland de variabler som lästes in i Matlab ovan. 3.3 Begränsningar I simuleringsmodellen finns ytterligare två olinjäriteter, nämligen begränsningar på vagnrörelse och pålagd kraft. För vagnläget gäller att x lim x 1 (t) x lim där x lim är 0.5. Praktiskt innebär detta att vagnen endast kan röra sig mellan två stopp enligt figur 5. Styrsignalen till systemet är kraften som appliceras, och i praktiken skapas den med t ex en elektrisk motor. Av fysikaliska skäl är den kraft som kan genereras begränsad F sat F (t) F sat där F sat har värdet 24. Detta betyder att den beräknade och applicerade styrsignalen kommer att vara olika då den beräknade styrsignalen går utanför intervallet ovan. Blocket Input i simuleringsmodellen visar den applicerade styrsignalen. 6
4 Simulering av pendeln utan återkoppling Här skall modellen simuleras utan att någon återkoppling används. Målet med detta är underlätta förståelsen för tillståndsvariablernas fysikaliska betydelse. Inledningsvis är samtliga element i återkopplingsvektorn L satta till noll, se figur 4. Detta innebär att ingen återkoppling sker. Uppgifter: Simulera modellen med det givna initialtillståndet och jämför animeringen med graferna som skapas av blocket States. Kombinera ihop de fyra graferna med variablerna vagnposition, vagnhastighet, pendelvinkel och pendelvinkelhastighet. Modifiera modellens initialtillstånd och se hur detta påverkar systemets uppförande. Initialvärdena för tillstånden kan väljas genom att tilldela variablerna x0, v0, th0 respektive w0 lämpliga värden. Testa exempelvis att starta systemet i någon av dess jämviktspunkter. Matrisen A har erhållits genom att den olinjära tillståndsmodellen linjäriserats kring jämviktspunkten då pendeln står upprätt. Beräkna matrisens egenvärden och jämför dessa med systemets uppförande. Studera särskilt de nollskilda egenvärdena. På motsvarande sätt fås matrisen A2 (lästes in tillsammans med övriga systemmatriser ovan) om tillståndsekvationerna linjäriseras kring jämviktspunkten då pendeln hänger nedåt. Beräkna egenvärdena även för detta fall och jämför med systemets beteende. Tips Se förberedelseuppgifterna 1-3. Resultat: 7
5 Tillståndsåterkoppling Här antas att samtliga tillståndsvariabler kan mätas exakt, d.v.s. utan mätstörningar. Målet för uppgiften är att under dessa förutsättningar skapa en återkoppling som stabiliserar pendeln. Uppgifter: Bestäm en tillståndsåterkoppling som stabiliserar pendeln i uppåtläget. Avgör vilka begränsningar som finns för vilka prestanda som kan uppnås för det återkopplade systemet. Ange de fysikaliska orsakerna till dessa begränsningar. Tips: Den enda variabel som behöver ändras under denna del av laborationen är återkopplingsvektorn L. En polplacerande tillståndsåterkoppling kan beräknas med Matlabfunktionen acker. Använd help acker för att se syntax. Placera t ex samtliga poler i λ. Genom att testa olika λ kan man försöka att uppnå olika prestanda hos det återkopplade systemet. För detta exempel räcker det att placera det återkopplade systemets poler på realaxeln. Se till att systemet har det ursprungliga initialtillståndet. Se förberedelseuppgift 4. Resultat: 8
6 Återkoppling från vagnposition I denna del ska pendeln stabiliseras då man endast kan mäta tillståndet x 1, d.v.s. vagnens position. Intuitivt innebär detta att pendeln ska hållas upprätt utan att man kan se i vilken vinkel pendeln befinner sig. Simuleringsmodellen som ska användas visas i figur 6, och den öppnas genom att skriva syst2 i Matlab:s kommandofönster. Modellen har nu kompletterats med en observatör där den tillgängliga mätsignalen x 1 och den applicerade styrsignalen används för att skatta systemets tillstånd. Mätningen av vagnpositionen innehåller även en mätstörning som skapas av blocket märkt Measurement disturbance. Mätstörningen utgörs av likafördelade slumptal i intervallet [ 10 3, 10 3 ]. Mätstörningen kan t ex uppkomma p.g.a. begränsad upplösning i den givare som mäter vagnens position. Blocket Sensor innehåller en skalning som representerar omvandlingen från position till spänning. x Reference signal L0 Scaling F v th w Fapp Pendulum Input L Feedback gain Observer x = Ax+Bu y = Cx+Du Mux 1.0 Sensor em Estimation error Measurement disturbance Figur 6: Simulink-modell vid återkoppling från vagnposition. 9
Uppgifter: Bestäm en stabiliserande återkoppling där endast vagnpositionen utnyttjas vid återkopplingen. Avgör vilka begränsningar som finns för vilka prestanda som kan uppnås för observatören och hur de påverkar det återkopplade systemet. Tips: Sätt pendelns initialvinkel th0 till 0.1 rad. Använd en återkopplingsvektor L som motsvarar poler som ligger i mitten av det intervall som bestämdes för λ i föregående uppgift. Placera t ex observatörens poler i µ. Testa olika µ för att uppnå olika prestanda hos observatören. Observatörens förstärkning kan även den beräknas med funktionen acker med anropet K=acker(A,C,p) där radvektorn p innehåller de önskade egenvärdena för observatören. Tillståndsskattningarnas egenskaper kan studeras genom att öppna blocket Estimation error vilket ritar skattningsfelet x(t). Se förberedelseuppgift 5. Resultat: 10
7 Robusthetsanalys I denna uppgift skall vi undersöka robustheten hos det reglersystem som konstruerades i uppgiften ovan. Vi vill avgöra hur mycket modellen kan avvika från det verkliga systemet utan att stabiliteten hos det återkopplade systemet äventyras. Robustheten skall studeras för det fall då egenskaperna hos den sensor, betecknad Sensor i figur 6, som omvandlar vagnens position till en elektrisk signal inte är helt kända. I modellen har det antagits att omvandlingskonstanten är lika med ett, och uppgiften är att avgöra hur mycket den verkliga konstanten får avvika från detta värde. Matematiskt innebär detta att den modell, i form av matriserna A, B och C, som använts ovan motsvarar överföringsfunktionen G(s) i sambandet Y (s) = G(s)U(s) där U representerar kraften på vagnen och Y är positionssignalen från sensorn. En felaktighet i den sensor som mäter positionen i det verkliga systemet kan representeras av att det verkliga systemet beskrivs av Y (s) = G 0 (s)u(s) = (1 + α)g(s)u(s) där α betecknar omvandlingskonstantens avvikelse från värdet ett. Den återkoppling som bestämts ovan baseras på tillståndsåterkoppling från skattade tillstånd, och den kan uttryckas på överföringsfunktionsform som där, enligt läroboken, och U(s) = F r (s)r(s) F y (s)y (s) F y (s) = L(sI A + KC + BL) 1 K F r (s) = 1 L(sI A + KC + BL) 1 B där A, B och C är matriserna i tillståndsbeskrivningen av modellen och L och K bestämts via placering av egenvärden. Uppgiften är nu att undersöka robustheten med avseende på felaktigheten i sensorn. Undersökningen ska göras dels med robusthetsanalysen i kapitel 6 i läroboken och dels med hjälp av simulering. 11
7.1 Teoretisk robusthetsanalys Uppgifter: Tips: Bestäm med Matlabs hjälp överföringsfunktionen G(s) utgående från matriserna A, B och C. Bestäm med Matlabs hjälp överföringsfunktionen F y (s) utgående från matriserna A, B, C, K och L. Bestäm, med hjälp av bokens robusthetskriterium, en gräns för hur stort felet i sensorns omvandlingsfaktor får vara för att reglersystemets stabilitet skall kunna garanteras. Se förberedelseuppgifterna 6 och 7. Resultat: 7.2 Robusthetsanalys via simulering Uppgifter: Tips: Bestäm med hjälp av simulering en en övre gräns för felet i sensorn. I modellen syst2 sensorns omvandlingskonstant ändras genom att ändra värdet på konstanten i blocket märkt Sensor. Resultat: 12
8 Återkoppling från vagnposition och pendelvinkel Vi antar nu att systemet förses med en sensor som mäter pendelns vinkel och att målet är att skapa ett reglersystem som använder både vagnposition och pendelvinkel i återkopplingen. Ett Simulink-modell för detta fall visas i figuren nedan. Modellen öppnas genom att skriva syst3. x Reference signal L0 Scaling F v th w Fapp Pendulum Input Observer 1.0 em L Feedback gain x = Ax+Bu y = Cx+Du Sensor Measurement disturbance Estimation error 1.0 Sensor 1 Measurement disturbance1 Figur 7: Simulink-modell vid återkoppling från vagnposition och pendelvinkel. Uppgifter: Bestäm en stabiliserande återkoppling där vagnposition och pendelvinkel används. Studera hur skattningsfelens storlek påverkas av att ytterligare en mätsignal används. Studera, med simulering, hur reglersystemets robusthet påverkas att ytterligare en mätsignal används. 13
Tips: Observatören använder nu två mätsignaler från systemet. Tillståndsmodellens C-matris måste därför ändras. Se förberedelseuppgift 8. Förstärkningen i en observatör som utnyttjar mer än en mätsignal kan beräknas med funktionen place. Funktionen kräver dock att observatörens egenvärden väljs något olika. Resultat: 14
9 Icke-minfassystem Denna uppgift är obligatorisk för TSRT12 och TSRT91 och frivillig för TSRT03, TSRT15 och TSRT19. Antag att samtliga tillståndsvariabler kan mätas, d.v.s. använd modellen syst1. Uppgift: Verifiera på valfritt sätt att det återkopplade systemet, om man betraktar vagnposition som utsignal, är av icke-minfastyp. Tips: Vad kännetecknar ett stabilt icke-minfassystem? Resultat: 15
10 LQ-optimering Denna uppgift är obligatorisk för TSRT12 och TSRT91 och frivillig för TSRT03, TSRT15 och TSRT19. Antag att samtliga tillståndsvariabler kan mätas, d.v.s. använd modellen syst1. Uppgifter: Bestäm en tillståndsåterkoppling med hjälp av linjärkvadratisk minimering. Pröva olika viktmatriser i kriteriet och se hur det påverkar det återkopplade systemets egenskaper. Undersök hur det återkopplade systemets poler påverkas av valen av viktmatriser i kriteriet. Tips: Återkopplingsvektorn beräknas med funktionen lqr. Testa inledningsvis att enbart sätta vikt på vagnposition och styrsignal. Resultat: 16
11 Förberedelser För att klara laborationen behöver följande uppgifter lösas. Studera även kopplingen mellan dessa och uppgifterna i laborationen m h a av de Tips som ges i kompendiet. 1. För ett olinjärt system på formen ẋ = f(x, u) gäller det att alla (x 0, u 0 ) sådana att f(x 0, u 0 ) = 0 kallas stationära punkter (jämviktspunkter). Verifiera att alla 0 0 x 0 = n π, u 0 = F = 0 0 där n är heltal, är stationära punkter för det olinjära system som ges av ekvation (3). 2. Betrakta de olinjära tillståndsekvationerna i ekvation (3). Linjärisera systemet i den stationära punkt som motsvarar att pendeln står uppåt. Som alternativ till det normala förfarandet vid linjärisering kan man i detta fall få fram en linjär modell genom att införa approximationerna sin x 3 = x 3, cos x 3 = 1, x 2 4 = 0, x 3 x 4 = 0 Verifiera att detta resulterar i en linjär tillståndsmodell på formen där ẋ = Ax + Bu 0 1 0 0 0 0 0 a b A = 0 0 0 1, B = e 0 0 0 c d f 3. Använd den linjära modellen i föregående uppgift. Sätt in de numeriska värdena M = 2.4, m = 0.23, l = 0.36, f θ = 0.1, g = 9.81 Vad blir A och B? 17 (4)
4. För ett styrbart system kan man med tillståndsåterkoppling placera det återkopplade systemets poler godtyckligt. Vad är det som i praktiken förhindrar att man gör det återkopplade systemet godtyckligt snabbt? 5. För ett observerbart system kan man skapa en observatör och placera observatörens poler godtyckligt. Vad är det som i praktiken förhindrar att man gör observatören godtyckligt snabb? 6. Antag att ett system beskrivs av modellen G(s) medan det verkliga systemet ges av G 0 (s) = (1 + α)g(s) där α är en konstant som uppfyller α < α max. Vilket relativt modellfel motsvarar detta och vilket krav ger detta, enligt robusthetskriteriet i Glad&Ljung, för absolutbeloppet av det återkopplade systemets komplementära känslighetsfunktion? Tänk igenom hur detta krav kan kollas m h a Matlab. 7. (a) Antag att en modell på tillståndsform ges av ẋ(t) = Ax(t) + Bu(t) y(t) = Cx(t) Överföringsfunktion G(s) ges då av G(s) = C(sI A) 1 B Ange hur man med hjälp av Matlab-funktionerna ss och tf tar fram modellens överföringsfunktion. (b) En tillståndsåterkoppling baserad på skattade tillstånd kan, i fallet r(t) = 0, skrivas ˆx(t) = (A KC BL)ˆx(t) + Ky(t) u(t) = Lˆx(t) och på överföringsfunktionsform där U(s) = F y (s)y (s) F y (s) = L(sI A + KC + BL) 1 K Ange hur man med hjälp av Matlab-funktionerna ss och tf tar fram överföringsfunktionen F y (s). (Tips: jämför med uttrycket i a-uppgiften. Vad motsvarar de olika matriserna här?) 18
8. Antag att man kan mäta både vagnposition och pendelvinkel, d v s man har mätsignalerna y 1 (t) = x 1 (t) respektive Antag att man inför vektorn Ange matrisen C i uttrycket y 2 (t) = x 3 (t) y(t) = ( ) y1 (t) y 2 (t) y(t) = Cx(t) 9. Tänk igenom vad de Matlab-kommandon som nämns i Appendix A gör. 19
A Användbara Matlab-kommandon eig acker ss tf bode bodemag nyquist pole tzero place Beräkna egenvärden Beräkna en polplacerande tillståndsåterkoppling Generera LTI-objekt på tillståndsform Generera LTI-objekt på överföringsfunktionsform Rita bodediagram Rita bodediagrammets amplitudkurva Rita nyquistdiagram Beräkna poler Beräkna nollställen Placerar egenvärden 20
B Härledning av tillståndsmodell Tillståndsekvationerna för den inverterade pendel kan härledas genom att använda Lagrange-ekvationen [ ] d dt q L q L = τ där L betecknar Lagrange-funktionen L = K V i vilken K och V betecknar kinetisk respektive potentiell energi. För den inverterade pendeln ges den kinetiska energin av K = 1 2 Mẋ2 + 1 2 m ( (ẋ + l θ cos θ ) 2 + ( l θ sin θ ) 2 ) medan den potentiella energin ges av Detta ger ekvationerna V = mgl cos θ (M + m)ẍ + ml θ cos θ ml θ 2 sin θ = F (5) l θ + ẍ cos θ g sin θ = f θ θ (6) där termen f θ θ beskriver friktionen i pendelns rotationsled. Genom att välja tillståndsvariablerna enligt får man ekvationerna x 1 = x, x 2 = ẋ, x 3 = θ, x 4 = θ ẋ 1 = ẋ = x 2 ẋ 2 = ẍ = ml ( ) x 2 F M + m 4 sin x 3 ẋ 4 cos x 3 + M + m ẋ 3 = θ = x 4 ẋ 4 = θ = 1 ( ) ẋ2 cos x 3 f θ x 4 + g sin x 3 l (7) Dessa ekvationer innehåller en s.k. algebraisk loop eftersom ẋ 2 beror av ẋ 4 och ẋ 4 i sin tur beror av ẋ 2. Genom att eliminera detta beroende får man 21
slutligen de olinjära tillståndsekvationerna ẋ 1 = ẋ = x 2 ẋ 2 = ẍ = mg sin x 3 cos x 3 + mlx 2 4 sin x 3 + f θ mx 4 cos x 3 + F M + (1 cos 2 x 3 )m ẋ 3 = θ = x 4 (8) ẋ 4 = (M + m)(g sin x 3 f θ x 4 ) (lmx 2 4 sin x 3 + F ) cos x 3 l(m + (1 cos 2 x 3 )m) Referenser Segway Inc. Rymdbolaget (Swedish Space Cooperation), bilddatabasen, 2011. URL: http://www.segway.com/about-segway/media-center/ product-photos.php, nedladdad 2011-03-11. SSC. Rymdbolaget (Swedish Space Cooperation), bilddatabasen, 2011. URL: http://www.ssc.se/images.aspx, nedladdad 2011-03-11. 22