Designspecifikation Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil Version 1.0 Simon Eiderbrandt 12 oktober 2012 Status Granskad FC, JL, SE 12 oktober 2012 Godkänd
Projektidentitet Grupp-e-post: Hemsida: Beställare: Kund: Kursansvariga: Handledare: joele569@student.liu.se http://www.isy.liu.se/edu/projekt/reglerteknik/2012/racetrack/ Kristoffer Lundahl, Avdelningen för Fordonssystem vid LiTH Telefon: +46 (0)13 286623, E-post: kristoffer.lundahl@liu.se Daniel Axehill, Avdelningen för Reglerteknik vid LiTH Telefon: +46(0)13 284042, E-post: daniel@isy.liu.se David Törnqvist, Avdelningen för Reglerteknik vid LiTH Telefon: +46 (0)13 281882, E-post: tornqvist@isy.liu.se Daniel Axehill, Avdelningen för Reglerteknik vid LiTH Telefon: +46(0)13 284042, E-post: daniel@isy.liu.se Isak Nielsen, Avdelningen för Reglerteknik vid LiTH Telefon: +46 (0)13 281304, E-post: isak.nielsen@isy.liu.se Gruppmedlemmar Namn Ansvar Telefon E-post (@student.liu.se) Joel Lejonklou Projektledare 0734-403828 joele569 Simon Eiderbrant Dokumentansvarig 0737-308998 simei865 Erik Olsson Designansvarig 0738-130759 eriol622 Fredrik Karlsson Testansvarig 0708-393376 freca476 Thomas Barath Leveransansvarig 0739-782290 thoba099 Erhan Konuskan Informationsansvarig 0707-787930 erhko279
Dokumenthistorik Version Datum Gjorda förändringar Signatur Granskad av 0.1 27 september 2012 Första utkast 0.2 3 oktober 2012 Andra utkast 0.3 4 oktober 2012 Tredje utkast 0.4 9 oktober 2012 Fjärde utkast 1.0 12 oktober 2012 Godkänd version
Innehåll 1 Inledning 1 2 Syfte och mål 1 3 Användning 1 4 Systemöversikt 1 5 Bilmodellering 3 5.1 Röresleekvationer......................................... 4 5.2 Konstanter............................................ 5 5.3 Krafter på däcken........................................ 5 5.3.1 Longitudinell dynamik.................................. 5 5.3.2 Lateral dynamik..................................... 6 5.4 Slippvinklar............................................ 7 5.5 Styrvinkel............................................. 7 5.6 Tröghetsmoment......................................... 7 5.7 Bilmodellen i helhet....................................... 7 5.7.1 Rörelseekvationer..................................... 7 5.7.2 Konstanter........................................ 8 5.7.3 Krafter.......................................... 8 5.7.4 Slippvinklar........................................ 9 5.7.5 Styrvinkel......................................... 9 5.8 Modell för optimering...................................... 9 5.9 Modell för reglering........................................ 10 5.10 Utvecklingsmöjligheter...................................... 10 6 Beräkning av tidsoptimal trajektoria 10 6.1 Ingående mjukvaror....................................... 10 6.2 Implementation av optimeringsproblem i JModelica.org................... 11 6.3 Lösning av optimeringsproblemet................................ 12 6.4 Optimeringsmetoder och initialgissning............................. 13 6.4.1 Initialgissning i mitten av banan............................ 13 6.4.2 Tidigare beräknad trajektoria.............................. 13 6.4.3 Inspelad trajektoria................................... 14 6.4.4 Uppdelning av bana med överlappande sektioner................... 14 6.4.5 Stegvis ökning av optimeringshorisont......................... 14 6.4.6 Optimering av initialgissning.............................. 14 6.4.7 Alternativ metod..................................... 14 6.5 Banparametrisering........................................ 14 6.5.1 Kontinuerliga begränsningar............................... 14 6.6 Gränssnitt............................................. 15 7 Regulator 16 7.1 Regulatorstruktur........................................ 16 7.2 Bilmodell för regulatorsyntes.................................. 16
7.3 Härledning av rörelsemodellen och övriga storheter...................... 17 7.3.1 Hastigheten i x-led.................................... 18 7.3.2 Hastighten i y-led.................................... 18 7.3.3 Vinkelhastigheten.................................... 18 7.3.4 Avståndet mellan bilens önskade och verkliga position................ 18 7.3.5 Skillnaden mellan referensvinkeln och bilens nuvarande vinkel............ 18 7.4 Olinjär regulator modell..................................... 19 7.5 Linjäriserad modell........................................ 19 7.5.1 Bestämning av jämviktspunkter............................. 20 7.5.2 Potentiella förenklingar................................. 20 7.6 Gränssnitt............................................. 20 7.6.1 Intressanta storheter................................... 20 8 Referensinterface 21 8.1 Gränssnitt............................................. 21 8.1.1 Insignaler från offlinesystemet.............................. 21 8.1.2 Insignaler från onlinesystemet.............................. 21 8.1.3 Utsignaler till onlinesystemet.............................. 21 A Appendix 24 A.1 A-matrisen, tillståndsform.................................... 24 A.2 B-matrisen, tillståndsform.................................... 25
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 1 1 Inledning Förra året genomfördes ett projekt vars syfte var att ta fram ett styrsystem för en radiostyrd bil (RC-bil), som skulle kunna styra bilen längs en trajektoria beräknad offline. Det finns emellertid stora förbättringsmöjligheter för systemet, framförallt när det kommer till bilmodellering och beräkning av optimal trajektoria. I somras genomfördes även ett projekt med syfte att förbättra bilmodelleringen. Tanken med detta projektet är att utgående från det grundarbete som gjordes i somras, förbättra modelleringen och beräkningen av den optimala trajektorian, samt eventuellt förbättra den regulator som används. Med hjälp av mer exakta modelleringar av bilen och bättre reglering skall bilen ta sig runt banan snabbare än den klarade förra året. 2 Syfte och mål Målet med projektet är att dels autonomt kunna köra flera på varandra följande varv snabbare än vad man tidigare lyckats med, men samtidigt följa referenstrajektorian bättre än innan. Dessutom ska systemet förbli robust, något som den nuvarande systemet inte är. Den tidsoptimala trajektorian ska fortfarande beräknas offline. 3 Användning Detta system ska sedan användas som laborationsmoment, demonstrationsmoment och studentprojekt vid ISY. 4 Systemöversikt Systemet består av flera olika delar som samverkar. Hårdvarumässigt är det fem stora delkomponenter som är aktuella: Bilbana Bilar Kameror Radiokontroll Dator Figur 1 visar hur hårdvarukomponenterna interagerar med varandra. Bilbanan är uppbyggd av kvadratiska skumgummiplattor som är placerade på en träplatta. Körbanan är inhägnad av en sarg i skumgummi som absorberar kraften ifall bilarna skulle krascha. I taket ovanför bilbanan är två kameror monterade. Dessa är placerade så att deras synfält täcker av hela banan. Bilderna som kamerorna tar skickas till datorn som med hjälp av algoritmer detekterar bilarna och skattar deras tillstånd. Sampeltiden för systemet är 100Hz, men kan ändras om så önskas (dock klarar det ej över cirka 110Hz). Styrningen av bilarna kan ske antingen autonomt eller manuellt. I det helt autonoma läget så beräknar datorn en styrsignal (via en regulator) som sedan ställs ut. I det manuella läget så körs en enkel loop-back funktionalitet som gör att bilen körs helt manuellt. Mjukvarumässigt består systemet av fem huvudkomponenter:
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 2 Figur 1: Informationsflöde mellan hårdvarukomponenter. Målföljningssystemet Regulatorn System för att beräkna en tidsoptimal trajektoria Bilmodellen Referensinterface Målföljningssystemet beräknar bilens skattade position (detta är redan implementerat). Bilmodellen tas fram genom att frilägga en single track-modell. Den parametersätts sedan utifrån genomförda mätningar på bilens acceleration och position då olika styrsignaler sätts ut till bilen. För att beräkna en referenstrajektoria används bilmodellen. Detta görs offline och modellen kan användas i regulatorn om så krävs. Ett referensinterface används för att online kunna hantera informationen om trajektorian på ett enkelt sätt. Ett blockschema över hela mjukvarustrukturen ses i figur 2.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 3 Bilmodell Trajektoriaoptimering Baninformation offline online reducerad bilmodell trajektoria Referensinterface Handkontroll x x ref, u offline Tracking ˆx Regulator u Radiomodul Figur 2: Blockschema beskrivande signalflödet mellan de olika delsystemen. 5 Bilmodellering RC-bilarna som används i projektet är tillverkade av företaget Kyosho. Bilarna är av modellklassen dnano och är i skalan 1:43. Bilens mått är 107x50x27 mm och väger cirka 40 gram. Projektet har tillgång till två sorters bilmodeller men kommer huvudsakligen arbeta med endast en av dem, närmare bestämt bilmodellen Lamborghini Murcielago. RC-bilarna består av en plastkaross och ett chassi. På chassit sitter fyra gummidäck, ett styrservo och en elmotor. Gummidäcken slits med tiden, vilket till en början inte tas i beaktning i modellen. Styrservot är kopplat till framdäcken och styrs via styrsignalen (u s [ 1, 1]). Elmotorn sköter via gas-/bromssignal (u g ) acceleration, inbromsning och back. På mitten av chassit sitter det batteri som driver elmotorn. Utifrån Almroths sommarprojekt [1], som hädanefter benäms som sommarprojektet, ska en redan framtagen modell utvärderas. Sommarprojektet utgick från single trackmodell med ett framhjul och ett bakhjul. Genom friläggning och kända modeller skapades
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 4 Figur 3: Friläggning av bilen. Figur 4: Bilens olika rörelsevektorer. sedan en modell för RC-bilen. Under sommarprojektet verifierades även modellen i olika arbetsområden. Nedan följer härledningen av de delmodeller, se 20-5.6 som sommarprojektet kom fram till. Slutligen återfinns modellen i sin helhet, 5.7, samt ett stycke om hur modellen kan förbättras, se 5.10 5.1 Röresleekvationer Med hjälp av figur 3 och 4 kan följande rörelseekvationer tas fram: a x = V y Ω z (1) a y = V y + Ω z (2) Med hjälp av ekvation (1) och (2) får man följande ekvationer: m( V y Ω z ) = F xf cos δ f + F xr F yr sin δ f (3) m( V y + Ω z ) = F yr + F yf cos δ f + F xf sin δ f (4) Ω z = l 1 F yf cos δ f l 2 F yr + l 1 F xf sin δ f (5) I z Ekvation (5) beskriver bilens girvinkelacceleration. Vektorerna som beskriver hastighet och acceleration måste emellertid projiceras ner på det globala koordinatsystemet, vilket tydliggörs i figur 5. Ekvationerna som beskriver rörelsen i de globala koordinaterna, ˆX och Ŷ, blir enligt (6) till (9);
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 5 Y x Y y X X Figur 5: Bilens koordinatsystem,{ˆx,ŷ}, i det globala koordinatsystemet,{ ˆX,Ŷ }. V X = cos θ + V y sin θ (6) V Y = sin θ V y cos θ (7) V X = cos θ V y sin θ (8) V Y = sin θ V y cos θ (9) 5.2 Konstanter Nödvändiga konstanter för att modellen ska bli komplett bestämdes också i sommarprojektet. Med hjälp av en brevvåg bestämdes bilens totala massa samt hur den var fördelad på fram- och bakhjul. När massfördelningen var bestämd kunde man med hjälp av linjal bestämma avstånden från däcken till masscentrum, l 1 och l 2. Genom tiptest kunde man sedan bestämma höjden h. Slutligen bestämdes även friktionskoefficienten µ genom att hindra hjulen att rulla och sedan sakta öka planets lutning. 5.3 Krafter på däcken För att bestämma de olika krafterna på däcken delades krafterna på däcken upp i komposanter, vilket resulterade i longitudinell, x-led, och laterall dynamik, y-led. 5.3.1 Longitudinell dynamik För att modellera F xr gjordes accelerationstester. F xf sattes dock till noll i och med att bilen endast drivs med bakhjulen och att friktionskraften på framdäcken negligeras. Utifrån dessa accelerationstester anpassades två polynom enligt (10), ett för acceleration och ett för broms.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 6 Figur 6: Friktionsellipsen. a x = AV 2 x + B + Cu g + Du 2 g + Eu g (10) 5.3.2 Lateral dynamik För att bestämma de laterala krafterna på däcken användes friktionsellipsen, se figur 6. Utifrån denna får man den maximala laterala kraften för olika slippvinklar, α, givet longitunell kraft. Sambandet mellan longitudinell kraft, F x, maximal longitudinell kraft, F xmax och maximal lateral kraft F y0 (α), kan approximeras av (11). ( ) 2 ( ) 2 Fy Fx + = 1 = F y = F y0(α) F y0 (α) F xmax 1 ( Fx F xmax ) 2 (11) För att ta reda på den maximal kraften mellan underlaget och däcken i x-led, F xmax, multipliceras friktionskoefficienten med normalkraften, se (12). Normalkrafterna på däcken beräknas enligt (13) och (14). F xmax = µw r (12) W f = l 2W L h L ma x (13) W r = l 1W L + h L ma x (14) F y0 (α) modellerades med hjälp av Magic Formula (MF), se (15). Konstanten D, vilket är den maximala kraften i y-led, valdes att inte användas direkt utan istället beräknas som
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 7 D f = µw f respektive D r = µw r. I och med att datan från kamerorna i taket inte är fullt tillförlitliga så har dessutom en konstant A lagts till som osäkerhetsparameter, se (16). F y0 (α) = D sin(c arctan (Bα E(Bα arctan(bα)))) (15) F y0 (α) = D sin(c arctan (B(α + A) E(B(α + A) arctan(b(α + A))))) (16) 5.4 Slippvinklar Slippvinklarna α r och α f är vinklarna mellan de riktningar som hjulen pekar i och de rullande hjulens faktiska färdrikting. Utifrån figur 4 så härleddes dessa vinklar enligt (17) och (18). ( ) l1 Ω z + V y α f = δ f arctan ( ) l2 Ω z V y α r = arctan (17) (18) 5.5 Styrvinkel För att modellera styrvinkeln mättes vinkeln som ställdes ut för olika styrsignaler. I modellen som togs fram i sommarprojektet fanns en offset med. Denna offset är dock en trimparameter som används för att bestämma hur snett hjulen står när man inte ger någon styrsignal alls. 5.6 Tröghetsmoment Utifrån ekvation (5) fick man fram hur man skulle beräkna tröghetsmomentet för bilen. Omskrivningen gav sedan (19). 5.7 Bilmodellen i helhet I z = l 1F yf cos δ f l 2 F yr + l 1 F xf sin δ f (19) Ω z Utifrån den parametersättning som gjordes under sommarprojektet samt ovanstående delmodeller blir den totala bilmodellen enligt (20). 5.7.1 Rörelseekvationer = F xf cos δ f + F xr F yf sin δ f m V y = F yf cos δ f + F yr + F xf sin δ f m + V y Ω z (20) Ω z Ω z = l 1F yf cos δ f l 2 F yr + l 1 F xf sin δ f I z
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 8 V X = cos θ + V y sin θ V Y = sin θ V y cos θ V X = cos θ V y sin θ V Y = sin θ V y cos θ 5.7.2 Konstanter Här följer en tabell över konstanterna som bestämdes i sommarprojektet. Tabell 1: Tabell över fysikaliska konstanter till modellen Konstant Förklaring Värde m Bilens massa 40.0 10 3 kg L Avståndet mellan fram- och bakhjul 0.0625 m l 1 Avståndet från masscentrum till framhjulet 0.0301 m l 2 Avståndet mellan masscentrum och bakhjulet 0.0324 m h Tyngdpunktens höjd 0.01 m µ Friktionskoefficienten 1.1 I z Tröghetsmomentet 3.9 10 5 kgm 2 5.7.3 Krafter F y = F y0 (α) 1 ( ) 2 Fx F xmax F xr = ma x = m(a 1 V 2 x + B 1 + C 1 u g + D 1 u 2 g + E 1 u g ) (u g 0) F xr = ma x = m(a 2 V 2 x + B 2 + C 2 u g + D 2 u 2 g + E 2 u g ) (u g 0) Tabell 2: Konstanter till krafterna i x-led på bakdäcket Konstant Värde A 1 0.0995 A 2 0.3173 B 1-0.7566 B 2-0.7636 C 1-1.0941 C 2-1.9961 D 1 0.2857 D 2 0.3616 E 1 6.7232 E 2 1.1589
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 9 F xf = 0 F xmax = µw W f = l 2W L W r = l 1W L h L ma x + h L ma x F y0f (α) = µw f sin(c f arctan (B f (α + A f ) E f (B f (α + A f ) arctan(b f (α + A f ))))) F y0r (α) = µw r sin(c r arctan (B r (α + A r ) E r (B r (α + A r ) arctan(b r (α + A r ))))) Tabell 3: Konstanter till Magic Formula Konstant Värde A f 0.001641 B f 17.57 C f 1.096 E f 0.8536 A r 0.00529 B r 5.7 C r 2.261 E r 1.604 5.7.4 Slippvinklar ( ) l1 Ω z + V y α f = δ f arctan ( ) l2 Ω z V y α r = arctan 5.7.5 Styrvinkel δ f = C 1 u s + C 0 [grader] δ f,max = ±22 [grader] Tabell 4: Konstanter till styrvinkelsmodellen Konstant Värde C 0 0.4538 C 1 25.04 5.8 Modell för optimering För att använda modellen för ta fram den tidsoptimala trajektorian kan det krävas att modellen förenklas. Vilka förenklingar som kan göras är i dagsläget svårt att avgöra. En
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 10 potentiell förenkling är dock att försumma lastförskjutningen (försumma accelationstermen i (13) och (14)). Genom att göra vissa förenklingar och åter validera modellen kan man dra slutsatser om det var en relevant förenkling. Om modellen fungerar bra kan man utöka modellen igen genom att ta med de delar av modellen som negligerats. 5.9 Modell för reglering Den modell som ska användas vid reglering måste vara linjär, vilket innebär att modellen måste förenklas och linjäriseras. Detta görs i avsnitt 7, Regulator. 5.10 Utvecklingsmöjligheter Överlag verkar modellen från sommarprojektets modell stämma bra överens med RC-bilens dynamik. Det finns dock vissa potentiella förbättringar samt kontroller som behöver göras. För det första ska modellen återigen valideras utifrån det material som gruppen tillhandahållit vid projektets start. Det innebär att kontrollera att de givna parametrarna från sommarens projekt fortfarande ger tillfredställande resultat. Det skulle kunna vara så att däck och batterier hade annan status än vad de har idag, vilket måste utredas. För det andra så har modellen sina brister, främst vid låga gaspådrag. Genom att studera accelerationstesterna och anpassa andra kurvor kan en bättre modell möjligtvis tas fram. Vidare, vilket är specificerat i Kravspecifikationen som krav av prioritet 2, kan en adaptiv modell tas fram för både batteri- och däckslitage. För att kunna göra detta måste man först få en uppfattning om hur mycket och på vilket sätt respektive del slits med tiden. 6 Beräkning av tidsoptimal trajektoria Detta delsystem beräknar en trajektoria runt banan, vilken regulatorn använder som den referens bilen skall följa. Optimeringen beräknas med hjälp av en bilmodell och en parametrisering av banan som bivillkor. Bilmodellen beskrivs i Modelica och optimeringsvillkoren beskrivs i Optimica, som är ett tilläggsspråk till Modelica. JModelica kompilerar Modelicaoch Optimica-modellerna/-skripten, och omvandlar det till ett Non-Linear Programming (NLP) problem och sedan löses optimeringproblemet av lösaren IPOPT. IPOPT genererar den optimala trajektorian om en sådan existerar. Flödet för detta kan ses i figur 7. Fordonsmodell Modelica JModelica IPOPT Bivillkor Optimica Optimal Trajektoria Figur 7: Informationsflöde för att beräkna optimal trajektoria med JModelica. 6.1 Ingående mjukvaror För att lösa optimeringsproblemet används följande mjukvara:
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 11 JModelica.org Ett open source-verktyg som är baserat på programmerings-/modelleringsspråket Modelica. Det används för att modellera, simulera och optimera dynamiska system så som detta projekt. JModelica.org innehåller även stöd för Optimica, vilket är ett tillägg till Modelica som ger möjlighet att optimera systemet. För att optimera systemet innehåller JModelica även den icke-linjära optimeringslösaren IPOPT. Python Ett programmeringsspråk med goda skriptmöjligheter som används för att kompilera och optimera modellerna och för att presentera resultaten. Python används med paketen: NumPy Lägger till stöd för stora multidimensionella arrayer och matriser och även matematiska funktioner för att manipulera dessa. SciPy Lägger till stöd för många matematiska och tekniska funktioner som liknar matlab. matplotlib Lägger till stöd för plottar och grafer i matlab-stil. IPython Ett interaktivt skalprogram som lägger till lite extra funktionalitet. PyReadline Lägger till funktionalitet för att redigera i kommandoraden. 6.2 Implementation av optimeringsproblem i JModelica.org Ett optimeringsproblem ställs upp på följande form: min u( ) t f s.a. ẋ = f(x(t), u(t)) g(u(t), x(t)) 0 x(t 0 ) = x 0 x(t f ) = x f u min u u max t [t 0, t f ] där u(t) är styrsignaler, t f är tiden då bilen når mållinjen, x(t) är tillstånden i modellen, g(u, x) är optimeringsproblemets villkor,
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 12 u min och u max är minsta respektive största tillåtna värde på styrsignalen, t 0 är starttiden och x 0 är tillstånden vid tidpunkten 0. Detta kan implementeras i Optimica enligt: optimization Opt Model (objective = finaltime, starttime = 0, finaltime(free=true, min=4,initialguess=6.5)) // Tillstånd Real x1(start=x1 0,fixed=true); Real x2(start=x2 0,fixed=true);... // Styrsignaler input Real u1(free=true, min=u1 min, max=u1 max); input Real u2(free=true, min=u2 min, max=u2 max);... // Modellekvationer equation der(x1) = f1(u1,u2,...,x1,x2,...); der(x2) = f2(u1,u2,...,x1,x2,...);... // Optimeringsvillkor constraint 0 <= g1(u1,u2,...,x1,x2,...); 0 <= g2(u1,u2,...,x1,x2,...);... x1(finaltime) = x1 f; x2(finaltime) = x2 f;... end My Opt; 6.3 Lösning av optimeringsproblemet Efter att Modelica/Optimica-modellen har skapats behöver den kompileras till ett JMUobjekt som sedan optimeras med hjälp av IPOPT-lösaren. Detta gör man med hjälp av
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 13 pythonscript. # Importera funktionen för kompilering av modeller och JMUModel-klassen from pymodelica import compile_jmu from pyjmi import JMUModel # Kompilera modellen (<Modellnamn> och <Modellfil> byts ut mot passande namn) jmu_name = compile_jmu(<modellnamn>,<modellfil>) # Ladda modellen opt_mod = JMUModel(jmu_name) # Optimera modellobjektet m.h.a IPOPT om inget annat anges res = opt_mod.optimize() # Plocka ut variabelvärden (exempel på variabelnamn, kan vara andra i modellen) x1=res[ x1 ] x2=res[ x2 ] u=res[ u ] t=res[ time ] Variablerna returneras i form av numpy-arrayer som sedan tas om hand på önskat sätt. De kan plottas med hjälp av matplotlib-biblioteket eller så kan de skrivas ut till en textfil och användas tillsammans med referensinterfacet för att styra bilen i det autonoma läget. 6.4 Optimeringsmetoder och initialgissning För att lösa ett optimeringsproblem krävs en initialgissning som optimeringslösaren utgår ifrån innan den börjar söka den optimala lösningen. För att undvika att man får ett lokalt men icke-globalt minimum som lösning så krävs det att initialgissningen är god. Med aktuell bilmodell från avsnitt bilmodell finns risken att IPOPT inte kan hitta en lösning för hela problemet. För att lösa detta kan optimeringsproblemet behöva delas upp i mindre delar, alternativt förenkla modellen eller använda sig av en uppstyckad bana med förenklad modell. Det finns flera metoder för att lösa optimeringsproblemet och för att komma fram till en initialgissning och nedan beskrivs några av dem. 6.4.1 Initialgissning i mitten av banan En simpel initialgissning är att välja en trajektoria på mitten av banan med konstant hastighet. Om man förbättrar denna gissning manuellt genom att sprida ut punkter med kvalificerade gissningar av hastighet och styrvinkel så förväntas optimeringsproblemet förenklas. 6.4.2 Tidigare beräknad trajektoria Då det här projektet är en vidareutveckling av ett tidigare projekt, OSARR av projektgruppen Slipping Limit, finns redan beräknade trajektorier. Genom att använda dessa trajektorier som initialgissning i detta projekts optimeringsproblem kan eventuellt en lösning hittas utan att dela upp problemet i mindre delar. Denna metod kan därmed vara en lämplig första ansats för lösning av optimeringsproblemet.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 14 6.4.3 Inspelad trajektoria Då bilen kör i autonomt läge kan trackingsystemet spela in bilens trajektoria. Om bilen kör efter den beräknade trajektorian från tidigare projekt och bilens trajektoria spelas in kan denna användas som intialgissning. 6.4.4 Uppdelning av bana med överlappande sektioner En metod är att dela upp optimeringsproblemet i sektioner där en sektion motsvarar en del av banan. Dessa sektioner väljs så att de överlappar med varandra och täcker hela banan. Optimeringsproblemet löses sedan för varje sektion för sig vilket förenklar problemet avsevärt. Lösningen till en sektion av banan kan sedan användas som initialgissning till intilliggande överlappande sektion. Lösningarna knyts sedan ihop till en lösning för en sluten trajektoria. 6.4.5 Stegvis ökning av optimeringshorisont Ytterligare en metod är att utgå från en startposition och lösa optimeringsproblemet för en kort sträcka. Lösningen används sedan som initialgissning till ett optimeringsproblem där sträckan utökats ett stycke med slutposition längre fram på banan. Detta upprepas tills en lösning för hela banan har erhållits. 6.4.6 Optimering av initialgissning En metod beskriven av Danielsson [2] går ut på att i ett första steg lösa ett optimeringsproblem som minimerar styrsignalerna, givet en fix sluttid. Till detta optimeringsproblem är en relativt enkel initialgissning tillräcklig. Steg ett itereras och inför varje iteration sänks den fixa sluttiden tills en lösningen inte längre hittas. Vissa justeringar kan sedan utföras för att ytterligare förbättra sluttiden. I steg två används lösningen till ovan nämnda optimeringsproblem som initialgissning till optimeringsproblemet som minimerar sluttiden. 6.4.7 Alternativ metod En annan metod beskriven av Cardamone [3] bygger på idén att lösa en trade-off mellan kortaste väg och minsta krökning. På detta sätt kan en optimal väg beräknas. Denna optimala väg kan användas som en del av en intialgissning. 6.5 Banparametrisering För att optimeringslösaren ska känna till vilka positioner i x- och- y-led som är tillåtna, och vilka positioner som är utanför sargen, behöver banan parametriseras. Nedan beskrivs två metoder för att implementera dessa bivillkor som constraints i Optimica. 6.5.1 Kontinuerliga begränsningar Man kan beskriva banan med hjälp av ellipser som motsvarar sargen. Dessa ellipser blir förbjudna områden i optimeringsproblemet och villkoren formuleras så att bilen vid varje tidpunkt måste befinna sig utanför alla ellipserna. Figur 8 nedan visar hur det kan se ut med ellipser av ordning 2. I verkligheten vill man ha högre då detta gör att sargerna blir rektanglar med rundade hörn. Ellipserna beskrivs av ekvationen
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 15 Figur 8: Skiss över hur banans väggar kan representeras med ellipser. Dock är ellipserna här av ordning 2. Om man har högre ordning på ellipserna kommer de mer att likna den riktiga banan. ( ) n ( x r n xi y yi + a i Där (x i, y i ) är ellipsens centrum och a i och b i är halvaxlarnas längder. Kraven formuleras som optimeringsvillkor i optimica som r^n <= ((x - xi)/ai)^n + ((y - yi)/bi)^n; Sedan måste bilen även hålla sig innanför de yttre väggarna. Detta är väldigt enkelt att implementera som direkta gränser på x- och y-position. x >= xmin; y >= ymin; x <= xmax; y <= ymax; b i ) n Detta sätt att representera banan användes i projektet OSARR förra året (2011) och verkade fungera bra. 6.6 Gränssnitt Till optimeringen används bilmodellen framtagen i avsnitt 5 samt en parametrisering av banan enligt någon av metoderna beskrivna i avsnittet 6.5 på föregående sida. Resultatet från optimeringen sparas till en fil för att sedan kunna användas av regulatorn.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 16 7 Regulator Regulatorns uppgift är att se till att bilen följer den tidsoptimala trajektorian, i en så hög hastighet som möjligt, samtidigt som systemet förblir robust och stabilt. Beroende på var bilen befinner sig på banan måste regulatorn ställa ut olika hastigheter och styrvinklar. 7.1 Regulatorstruktur Regulatorn ska implementeras som en linjär tillståndsåterkoppling, specificierad av (21). L-matrisens värden ska styras utifrån gain-scheduling övervakning. Detta innebär att beroende på (i detta fall) vilken hastighet bilen har, kommer olika värden på L-matrisen att ställas ut i regulatorn. De olika värdena erhålls i sin tur med minimering av linjärkvadratiska kriterier (LQ-teknik) i offlineläge. Skillnaden mellan värdena på L-matriserna kommer att bero på hur hårt regulatorns tillstånd, för olika hastigheter, kommer att straffas. Matrisen L 0 bestäms så att det slutna systemet får önskvärda statiska egenskaper. Ett flödesschema som beskriver det tillståndsåterkopplade systemet visas i figur 9. u = u offline Lẑ + L 0 r (21) ẑ = M ˆx Referensinterface u offline r L 0 L 0 r u Bil Lẑ L ẑ Referensinterface Figur 9: Blockschema beskrivande det tillståndsåterkopplade systemet. 7.2 Bilmodell för regulatorsyntes För att kunna använda LQ-teknik, måste en linjär modell som beskriver hur regulatorn påverkar bilens tillstånd via styrsignalerna tas fram. Regulatorn kommer att bestå av fem tillståndsvariabler. Dels de som beskriver bilens dynamik, givna av (20) och dels de storheter som är definierade i figur 10. Vid framräkningen av rörelseekvationerna görs en del antaganden och approximationer enligt (22). Avståndsskillnader mellan bilens nuvarande position och referensbanan betraktas som positiva då bilens masscentrum befinner sig till vänster om referensbanan och negativa när bilen är placerad till höger om referensbanan.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 17 θ ref θ, v x θ e r e ṙ e Figur 10: Variabler som är intressanta för regulatorn. F xf = 0 (22) F yf = c αf α f F yr = c αr α r sin(δ f ) = δ f cos(δ f ) = 1 δ f = c f u s α f = δ f l 1Ω z + V y α r = l 2Ω z V y 7.3 Härledning av rörelsemodellen och övriga storheter I detta avsnitt kommer rörelseekvationerna angivna av (20), med antaganden och approximationer enligt (22) att tas fram. Fortsatta härledningar behandlas bara för u g 0. Detta innebär att det förutsätts att dynamiken är samma för acceleration som för inbromsning.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 18 7.3.1 Hastigheten i x-led = F xr F yf sin(δ f ) m + V y Ω = (23) =AV 2 x + Du 2 g + B + Cu g + Eu g c αf α f sin(δ f ) m =AVx 2 + Du 2 g + B + Cu g + Eu g c αf (δ f Ωzl1 m =AVx 2 + Du 2 g + B + Cu g + Eu g c αf (c f u s Ωzl1 m 7.3.2 Hastighten i y-led + V y Ω z = Vy )δ f Vy )c f u s + V y Ω z = + V y Ω z 7.3.3 Vinkelhastigheten V y = F yf cos(δ f ) + F yr m = c αf α f + c αr α r Ω z = m = c αf (c f u s l1ωz+vy l ) + c 2Ω z V y αr m Ω z = (24) Ω z Ω z = l 1F yf cos(δ f ) l 2 F yr I z = (25) = l 1c αf α f l 2 c αr α r I z = = l 1c αf (c f u s l1ωz+vy l ) l 2 c 2Ω z V y αr I z 7.3.4 Avståndet mellan bilens önskade och verkliga position Förändringshastigheten för r e (ṙ e ) antas vara projektionen av hastighetsvektorn på referensbanans normal. ṙ e = sin(θ e ) + cos(θ e )V y (26) 7.3.5 Skillnaden mellan referensvinkeln och bilens nuvarande vinkel Hur denna defineras visas i figur 10. θ e = θ ref θ (27)
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 19 7.4 Olinjär regulator modell Den olinjära modellen för dynamiken blir då: = AVx 2 + Du 2 g + B + Cu g + Eu g c αf (c f u s Ωzl1 m V y = c αf (c f u s l1ωz+vy l ) + c 2Ω z V y αr Ω z m Ω z = l 1c αf (c f u s l1ωz+vy I z ṙ e = sin(θ e ) + cos(θ e )V y θ e = Ω z ) l 2 c αr l 2Ω z V y Vy )c f u s + V y Ω z (28) Mätningarna för de fem tillstånden skapas i referensinterfacet och mätekvationen h(x) blir V y y = h(, V y, Ω z, r e, θ e ) = Ω z r e θ e där y är de (transformerade) mätningar som regulatorn får. (29) 7.5 Linjäriserad modell För att få en linjär modell så linjäriseras modellen ovan kring en viss arbetspunkt [x, u ]. För linjärisera på ett smidigt sätt så definieras tillståndsvektorn som x = [ V y Ω z r e θ e ] T och insignalvektorn till u = [ u g u s ] T. Modellen kan då att skriva som där f(x, u) = och ẋ = f(x, u) (30) y = h(x) (31) AVx 2 + Du 2 g + B + Cu g v x + Eu g c αf (c f u s Ωz l 1 Vx c αf (c f u s l 1Ωz +Vy Vx m l 1c αf (c f u s l 1Ωz +Vy Vx )+c αr l 2 Ωz Vy Vx m Ω z ) l 2c αr l 2 Ωz Vy Vx I z sin(θ e ) + cos(θ e )V y Ω z h(x) = x 1 x 2 x 3 x 4 x 5 Vy Vx )c f u s + V y Ω z är vektorvärda funktioner. Linjäriseringen sker kring arbetspunkten x = [ Vx Vy Ω z 0 0 ] T samt ū = [u g u s] T och beräknas med hjälp av första ordningens Taylorutveckling enligt ẋ f( x, ū) + f(x, u) x (x x) + x= x,u=ū f(x, u) u (32) (33) (u ū) (34) x= x,u=ū
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 20 y y( x) + h(x) x (x x) (35) x= x På matrisform blir modellen enligt (36). a 11 a 12 a 13 a 14 a 15 b 11 b 12 a 21 a 22 a 23 a 24 a 25 q = a 31 a 32 a 33 a 34 a 35 a 41 a 42 a 43 a 44 a 45 q + b 21 b 22 b 31 b 32 b 41 b 42 w (36) a 51 a 52 a 53 a 54 a 55 b 51 b 52 1 0 0 0 0 0 1 0 0 0 ỹ = 0 0 1 0 0 0 0 0 1 0 q 0 0 0 0 1 där q = x x och w = u u samt a ij = fi x j och b ij = fi u j utvärderade i x och u. Dessutom är ỹ = y y( x). Värdena för dessa återfinns i Appendix A. 7.5.1 Bestämning av jämviktspunkter Regulatorn kommer att försöka styra systemet mot r e = 0 och θ e = 0, varför dessa värden väljs som arbetspunkt vid linjäriseringen. Övriga tillstånd har ingen konstant arbetspunkt att linjärisera kring. Bestämning av övriga jämviktspunkter i x samt u gör man genom att utföra experiment för olika jämviktspunkter. Det innebär att man bestämmer sig för en stationär punkt x och sedan studerar vilka styrsignaler som krävs för att nå denna arbetspunkt. När man gjort detta vet man alltså hur den linjäriserade modellen blir genom att evaluera de olika matriselementen i A och B. Genom att välja olika x får man olika värden på styrsignalerna och därmed med blir även matriselementen olika. Detta resulterar i olika modeller och därmed olika L i LQ-återkoppling. 7.5.2 Potentiella förenklingar I och med att uttrycken är väldigt långa kan det vara smidigt att göra ytterligare förenklingar. Förslag på sådana kan till exempel vara att modellera om F xr, vilket förenklar. 7.6 Gränssnitt I detta avsnitt beskrivs all information som regulatorn använder och skapar. 7.6.1 Intressanta storheter ˆx ẑ y v ref Skattade tillståndet hos bilen. Kommer från målföljningssystemet. De intressanta reglerstorheterna. Mätsignaler som används av regualtorn. Referenshastigheten för bilen.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 21 u offline u L L 0 Offlineberäknade styrsignaler. Används i framkoppling. Önskade styrsignaler. Bestäms med LQ-teknik. Gain-scheduling beroende på vilken hastighet bilen har. Bestäms så att slutna systemet får önskade statiska egenskaper. 8 Referensinterface Referensinterfacet är det system som sköter kommunikationen mellan regulator och referenstrajektorian, se figur 2. Givet de skattningar som trackingssystemet ger samt referenstrajektorians värden, skickar referensinterfacet mätningar som regulatorn återkopplar från. De mätningar som regulatorn förväntar sig från referensinterfacet beskrivs i ekvation (37) till (41). = v x,bil (37) V y = v y,bil (38) Ω z = θ (39) r e = XY bil XY ref (40) θ e = θ bil θ ref (41) där XY i är positionen i globala koordinatsystemet, v bil är hastigheten i bilens longitudinella riktning samt θ i är vinkeln mellan bilens longitudinella riktning och den globala X-axeln (i {bil, ref}). För att avgöra vilken referenspunkt som ska användas tar referensinterfacet den punkt där avståndet mellan trajektorian och bilens masscentrum är som minst. Dessutom innehåller referensinterfacet även styrsignalerna från optimeringslösaren. Med hjälp av detta kan en framkopplingslänk till regulatorn implementeras. 8.1 Gränssnitt I detta avsnitt beskrivs vad interfacet förväntar sig för in- och utsignaler från de olika delsystemen. 8.1.1 Insignaler från offlinesystemet trajektoria Information om referenstrajektorian läses in från en fil som optimeringslösaren skapat. 8.1.2 Insignaler från onlinesystemet x Tillståndet för bilen från trackingssystemet. 8.1.3 Utsignaler till onlinesystemet y Mätsignaler till regulatorn.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 22 v ref u offline Referenshastigheten för bilen. De styrsignaler som optimeringslösaren beräknat offline.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 23 Referenser [1] Almroth, M. Modellering av racerbil. Linköpings Universitet, Linköping, 2012. [2] Danielsson, H. Vehicle path optimisation. Lunds Universitet, Lund, 2007. [3] Cardemone, L. Searching for the Optimal Racing Line Using Genetic Algoritm. University of Illinois, Illinois USA, 2010.
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 24 A Appendix A.1 A-matrisen, tillståndsform a 11 = 2AV x + B + Cu g c αf c f u s(ω zl 1 + V a 12 = c αf c f u s mv x a 13 = c αf c f u sl 1 mvx a 14 = 0 a 15 = 0 + Ω z + V y Vx 2 m y ) a 21 = c αf l 1 Ω z + c αf Vy V 2 m a 22 = c αf mv x a 23 = c αf l 1 mvx a 24 = 0 a 25 = 0 x c αr mv x + c αf l 2 mv x c αrl 2 Ω z mv 2 x V x + c αrvy mvx 2 Ω z l 1 Ω z + Vy a 31 = l 1 c αf V 2 a 32 = l 1c αf V x I z + l 2c αr V x I z a 33 = l2 1c αf V x I z l2 2c αr V x I z a 34 = 0 a 35 = 0 x I z + l 2 c αr l 2 Ω z Vy Vx 2 I z a 41 = 0 a 42 = 1 a 43 = 0 a 44 = 0 a 45 = Vx a 51 = 0 a 52 = 0 a 53 = 1 a 54 = 0 a 55 = 0
Vidareutveckling av Optimal Styrning av Radiostyrd Racerbil 25 A.2 B-matrisen, tillståndsform b 11 = CV x + 2Du g + E b 12 = 2 c αf c f m b 21 = 0 b 22 = c αf c f m b 31 = 0 b 32 = l 1c αf c f I z b 41 = 0 b 42 = 0 b 51 = 0 b 52 = 0 u s + c αf c f (Ω zl 1 + V y ) V x m