Inverterad dubbelpendel Modellering, reglering och balansering av en inverterad dubbelpendel Kandidatarbete SSYX02-16-24 Rasmus Söderström Olsson Jeanette Warnborg Fredrika Zeidler Institutionen för Signaler och System CHALMERS TEKNISKA HÖGSKOLA Göteborg, 2016 Kandidatarbete SSYX02-16-24 Inverterad dubbelpendel Modellering, reglering och balansering av en inverterad dubbelpendel Rasmus Söderström Olsson Jeanette Warnborg Fredrika Zeidler Institutionen för Signaler och System Avdelningen för Reglerteknik, Automation och Mekatronik Chalmers Tekniska Högskola Göteborg, 2016 Inverterad dubbelpendel Modellering, reglering och balansering av en inverterad dubbelpendel RASMUS SÖDERSTRÖM OLSSON JEANETTE WARNBORG FREDRIKA ZEIDLER © Rasmus Söderström Olsson, Jeanette Warnborg, Fredrika Zeidler, 2016. Handledare: Bo Egardt, Institutionen för Signaler och System, Reglerteknik Examinator: Anders Grauers, Institutionen för Signaler och System Kandidatarbete SSYX02-16-24 Institutionen för Signaler och System Avdelningen för Reglerteknik, Automation och Mekatronik Chalmers Tekniska Högskola 412 96 Göteborg Telefon +46 31 772 1000 Omslag: Skisserad bild på prototypuppställningen. Abstract This thesis cover the modelling, design of control, simulation and construction of two pendulums linked together standing in an upright position. A mathematical model of the system has been developed and used to conduct rigorous simulations of the system. Using this model a controller was designed. This thesis also cover the construction of the proto- type and the problems that might occur when implementing the controller. The results from the simulations show that the controller is able to balance the pendu- lums within the constrians of the prototype. Unfortunately we were not able to test the controller on the actual prototype due to problems regarding the implementation. Keywords: Inverted, Double pendulum, Control theory, Bachelor thesis iii Sammandrag Denna rapport behandlar modellering, regulatordesign, simulering och konstruktion av två sammanlänkade pendlar som ska stå i upprätt läge med hjälp av ett återkopplat regler- system. En matematisk modell som återspeglar det fysikaliska systemet har tagits fram och simulerats. Utifrån denna modell kunde en regulator för konstruktionen designas. Rapporten behandlar även den praktiska uppställningen och svårigheten att implementera en regulator på denna. Simuleringsresultaten visar på att regulatorn klarar av att balansera pendlarna samt håller sig inom gränserna för konstruktionen. Regulatorn kunde tyvärr inte testas på det verkliga systemet på grund av problem med implementeringen. Nyckelord: Inverterad, Dubbelpendel, Reglerteknik, Kandidatarbete. v Tack Gruppen vill tacka vår handledare Bo Egardt för sitt stöd och engagemang långt utanför rollen som handledare. Dessutom har examinator vår Anders Grauers erbjudit professio- nell granskning och feedback på vårt arbete under processen på såväl rapport som andra moment. Dessutom ska teamet Jan Bragée och Reine Nohlborg i prototyplabbet ha ett stort tack för sin vilja att dela med sig av kunskap, tankar och idéer kring den praktiska uppställningen. Att få tillgång till så mycket erfarenhet är få förunnat och dessa båda herrar kompletterar varandra på ett utmärkt sätt. Avslutningsvis vill gruppen tacka Marcus Jerenvik och Raman Haddad från tidigare års projekt och John Dahl från institutionen för Signaler och System för hjälpen med imple- menteringen av projektet. Rasmus Söderström Olsson, Jeanette Warnborg och Fredrika Zeidler Göteborg, Maj 2016 vii Innehåll Figurer xi Tabeller xiii 1 Inledning 1 1.1 Syfte och mål . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Avgränsningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Systembeskrivning 5 2.1 Signalväg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Positionsgivare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Vinkelgivare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Uppmätta parametrar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Teori 11 3.1 Matematisk modellering . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Olinjära system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Linjärisering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Regulatordesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5 Estimering av tillstånd . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.6 Likströmsmotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4 Metod 17 4.1 Matematisk modellering . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Modell av likströmsmotor med roterande last . . . . . . . . . . . . . . . 20 4.3 Relation mellan motorn och dubbelpendeln . . . . . . . . . . . . . . . . 21 4.4 Linjärisering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5 Regulatordesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.6 Estimering av tillstånd . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.7 Konstruktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.7.1 Val av mikrokontroller . . . . . . . . . . . . . . . . . . . . . . . 25 4.7.2 Analys av brister och fel . . . . . . . . . . . . . . . . . . . . . . 25 4.7.3 Åtgärder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5 Resultat 27 5.1 Simulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.1.1 Regulator 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ix 5.1.2 Regulator 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.3 Regulator 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6 Diskussion 33 6.1 Konstruktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.1 Avväganden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.2 Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.2 Problem vid implementering . . . . . . . . . . . . . . . . . . . . . . . . 34 6.3 Estimering av tillstånd . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.4 Simuleringsresultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.4.1 Regulator 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.4.2 Regulator 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.4.3 Regulator 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.5 Avvikelser från verkligheten . . . . . . . . . . . . . . . . . . . . . . . . 35 7 Slutsats 37 7.1 Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.2 Rekommendationer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Bilaga A Elektriska komponenter I Bilaga B Inkoppling av elektrisk utrustning III Figurer 1.1 Skiss av en inverterad dubbelpendel på en släde. . . . . . . . . . . . . . . 1 1.2 Bild på en människa som står på en segway. (Pixabay, 2013). CC0. . . . . 2 1.3 Bild på ett JAS 39 Gripen-plan (Kabel, 2010), Återgiven med tillstånd. . . 2 1.4 Skyskrapa med en massdämpare som agerar yttre pendel. . . . . . . . . . 3 1.5 De fyra olika jämviktslägena för en dubbelpendel. Längst till höger i bild illustreras det jämviktsläge som det syftas till i rapporten. . . . . . . . . . 4 2.1 Skiss över konstruktionen. . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Vy ovanifrån på den praktiska uppställningen. . . . . . . . . . . . . . . . 6 2.3 Signalväg för systemet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Signalbeskrivning för med- och moturs-rotation hos encoder (Rotary En- coder E6B2-C [Datablad], 2011). . . . . . . . . . . . . . . . . . . . . . 7 2.5 Spänningssatt vinkelgivare som agerar spänningsdelare. . . . . . . . . . . 8 2.6 Kretsschema för vinkelgivare med motkopplad OP som spänningsföljare. 8 3.1 System med förstärkning K i återkopplingen . . . . . . . . . . . . . . . . 14 3.2 System med med förstärkning K samt observatör . . . . . . . . . . . . . 15 3.3 Likströmsmotorns uppbyggnad; borstarna överför strömmen till rotorn mellan statorns nord- och sydpol (Surana, 2013). Omarbetad med tillstånd. 15 3.4 Krafter på ledare i magnetfält i en likströmsmotor. . . . . . . . . . . . . . 15 3.5 Ekvivalent elektrisk krets för likströmsmotor. . . . . . . . . . . . . . . . 16 4.1 Till vänster ses slädens och pendlarnas position beskrivna med kartesis- ka koordinater. Till höger ses slädens och pendlarnas position uttrycka i generaliserade koordinater. . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Ekvivalent elektrisk krets med roterande last för en likströmsmotor. . . . 20 4.3 Beroendet mellan slädens hastighet q̇, motorns vinkelhastighet ω och mo- torns radie r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.4 Motorfäste med dubbla kullager för att avlasta motor och växellåda från radiella krafter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.1 Simuleringsresultat för den inre pendeln, (a), och den yttre pendeln, (b), med Regulator 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.2 Simuleringsresultat för styrsignalen, (a), och slädens position, (b), med Regulator 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.3 Simuleringsresultat för den inre pendeln, (a), och den yttre pendeln, (b), med Regulator 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 xi Figurer 5.4 Simuleringsresultat för styrsignalen, (a), och slädens position, (b), med Regulator 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.5 Simuleringsresultat för den inre pendeln, (a), och den yttre pendeln, (b), med Regulator 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.6 Simuleringsresultat för styrsignalen, (a), och slädens position, (b), med Regulator 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 xii Tabeller 2.1 Uppmätta parameterar hos konstruktionen . . . . . . . . . . . . . . . . . 9 5.1 Förklaring av beteckningar . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 Resultat från simuleringen av systemet med Regulator 1 implementerad . 29 5.3 Resultat från simuleringen av systemet med Regulator 2 implementerad . 31 5.4 Resultat från simuleringen av systemet med Regulator 3 implementerad . 32 A.1 Komponentlista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I B.1 Inkoppling av givare på Arduino . . . . . . . . . . . . . . . . . . . . . . III xiii Tabeller xiv 1 Inledning En inverterad dubbelpendel, se Figur 1.1, består av två sammanlänkade pendlar som står upprätt, vilket är den pendeltyp som kommer undersökas i arbetet. Regleringen av en in- verterad dubbelpendel har främst pedagogiska syften och kommer vara det reglertekniska problem som ligger till grund för detta projekt. Figur 1.1: Skiss av en inverterad dubbelpendel på en släde. För att klara av att reglera en inverterad dubbelpendel krävs ett system som snabbt kan läsa in data och sedan reglera dubbelpendeln utifrån denna. Exempelvis är det nästintill omöjligt för en människa att balansera en inverterad dubbelpendel eftersom tiden mellan att ögat uppfattar att pendeln behöver balanseras upp och handens förflyttning är alldeles för lång (Luce, 1991). Att balansera en enkelpendel är på gränsen till vad den mänskli- ga motoriken klarar av, dock spelar pendelns massa och längd in, jämför exempelvis hur svårt det är att balansera en tändsticka med ett kvastskaft. Ingenjörskonsten som används för att reglera en inverterad enkelpendel kan hittas både i Segways, se Figur 1.2, och JAS 39 Gripen, se Figur 1.3, som båda är instabila utan re- glering (Stein, 2003)(Boniface, McKay, Lucas, Shaffer & Sikka, 2011). En segway, vilket är ett elmotordrivet fordon, kan även detta liknas med en inverterad enkelpendel. Genom 1 1. Inledning Figur 1.2: Bild på en människa som står på en segway. (Pixabay, 2013). CC0. att luta sig förflyttar personen tyngdpunkten och fordonets reglersystem strävar därefter att räta upp fordonet genom att rulla åt samma riktning som föraren lutar (Boniface m. fl., 2011). JAS 39 Gripens reglersystem är kanske mest känt på grund av de olyckor som skedde under utvecklingen av flygplanet, men i grunden är det ett mycket avancerat system då flygplanet inte kan flyga utan reglersystemen i drift (Stein, 2003). Flygplanet designades efter hårda krav på agilitet, vilket innebär förmågan att snabbt byta riktning. Genom att låta planet bli instabilt under färd kan det uppnå en mycket hög manöverduglighet. Figur 1.3: Bild på ett JAS 39 Gripen-plan (Kabel, 2010), Återgiven med tillstånd. 2 1. Inledning En variant av dubbelpendeln används bland annat i skyskrapor för att motverka de sväng- ningar som kan uppstå vid hårda vindar (Poon, Shieh, Joseph & Chang, 2004). Byggnaden utgör den inre pendeln och den yttre pendeln utgörs av ett tungt metallklot som hänger inuti byggnaden och styrs med hydralik, se Figur 1.4 (Poon m. fl., 2004). b b Figur 1.4: Skyskrapa med en massdämpare som agerar yttre pendel. Tidigare års kandidatarbeten och projektkurser på masterprogrammet Systems, Control and Mechatronics har utvecklat en prototyp för en inverterad enkelpendel. Det första pro- jekten syftade till att utveckla tidsoptimal styrning av en nedhängande pendel (Fransson, Mihajlovic & Ståleby, 2013). Projektet gick ut på att förflytta släden med en nedhäng- ande pendel till en ny position och på så kort tid som möjligt få pendeln att hänga still. Detta minimaltidsproblem är applicerbart inom exempelvis containerlossning. I det andra projektet gjordes jämförelser av olika styralgoritmer för uppsving och balansering av en inverterad pendel (Fleckenstein, Gustavsson, Haddad & Jerenvik, 2016). På grund av för mycket friktion och trasig hårdvara gick det tyvärr inte att implementera resultaten på den praktiska uppställningen. 1.1 Syfte och mål Syftet är att med hjälp av reglerteknik balansera en inverterad dubbelpendel på en prak- tiskt uppställning såväl som i en simuleringsmiljö. Detta syfte kommer resultera i följande delmål • Modellera och simulera en inverterad dubbelpendel i Simulink. • Utöka nuvarande konstruktion med ytterligare en till pendel • Reglera ut en initial störning på 5° på den yttre pendeln. 3 1. Inledning 1.2 Avgränsningar Prototypen som används för demonstration av projektet konstrueras inte från grunden ut- an utgår från en befintlig uppställning med en enkelpendel. Det sker inte någon jämförelse mellan olika typer av regulatorer utan regulatorn som kommer implementeras är av typen Linear Quadratic (LQ). Det har i tidigare studier påvisats att den lämpar sig väl för im- plementation av en inverterad enkelpendel (Fleckenstein m. fl., 2016). Balanseringen av pendeln innefattar inte alla jämviktslägen utan endast det när båda pend- larna står i upprätt läge, se Figur 1.5 för en bild av de olika pendelpositionerna. Detta är en avgränsning som valts eftersom projektet är tidsbegränsat. Modellen som tagits fram utgår endast från en dubbelpendel och inga beräkningar eller simuleringar görs därför på inverterade enkel- eller trippelpendlar. b b b b b b Figur 1.5: De fyra olika jämviktslägena för en dubbelpendel. Längst till höger i bild illustreras det jämviktsläge som det syftas till i rapporten. 4 2 Systembeskrivning Systemet som praktisk uppställning består av en släde som förflyttas längs en rak bana med hjälp av en tandrem som drivs av en elmotor. På denna släde är den inre pendeln monterad på vinkelgivarens axel. I den andra änden av den inre pendeln sitter den yttre pendeln monterad, även den med en vinkelgivare, se Figur 2.1. En komplett lista med de elektriska komponenter som används i uppställningen finns i Bilaga A. b b Figur 2.1: Skiss över konstruktionen. Uppställningen kräver i sin nuvarande form en inkopplad dator som utför beräkningar åt systemet. Värt att notera är också att det inte finns någon smidig genomdragning av givarkabeln till den yttre pendeln. Detta kan resultera i att kabeln trasslar sig då pendlarna tillåts snurra fritt. Konstruktionens ungefärliga utförande visas i Figur 2.2. 5 2. Systembeskrivning Figur 2.2: Vy ovanifrån på den praktiska uppställningen. 6 2. Systembeskrivning 2.1 Signalväg Data som beskriver pendlarnas position skickas i form av en analog signal från vinkelgi- varna till ett kretskort med en mikroprocessor tillverkad av Arduino. Fäst på motorn sitter en positionsgivare (hädanefter encorder) som skickar data i form av en digital signal till Arduinon. Datan bearbetas och information om slädens position och riktning skickas via USB vidare till en dator som kör en instans av simuleringverktyget Simulink. Inkopplad på Arduinon finns ett reläkort med extern strömförsörjning som kan styra motorn utan att dra alltför stora effekter genom mikroprocessorn. När Arduinon får tillbaka styrsigna- len från datorn skickas denna till reläkortet som styr motorn och därmed det mekaniska systemet. Se Figur 2.3 för en grafisk representation av signalvägarna i systemet. Figur 2.3: Signalväg för systemet. 2.2 Positionsgivare Slädens position mäts med hjälp av en encoder som är fäst på den genomgående motorax- eln. Encodern genererar ett antal pulser per varv på tre olika faser och genom att bestäm- ma vilken fas som kommer först kan riktningen på förflyttningen bestämmas enligt Figur 2.4. Encodern matas med en spänning på 5 V för att garantera utsignalernas logiska ni- våer till Arduinons digitala in- och utgångar(Rotary Encoder E6B2-C [Datablad], 2011) (Arduino, 2016). Se Bilaga B för en tabell med dessa in- och utgångar. Figur 2.4: Signalbeskrivning för med- och moturs-rotation hos encoder (Rotary Encoder E6B2-C [Datablad], 2011). 7 2. Systembeskrivning 2.3 Vinkelgivare Utökningen av uppställningen till en dubbelpendel kräver förutom nya pendlar även en till vinkelgivare. För att tidseffektivisera processen och minska prestandakraven på mikropro- cessorn används samma sorts vinkelgivare till båda pendlarna. Vinkelgivaren är en mycket precis potentiometer som agerar spänningsdelare enligt Figur 2.5. Spänningsnivån väljs till 3,3 V för att inte överstiga specifikationen av Arduinons inportar (Arduino, 2016). Figur 2.5: Spänningssatt vinkelgivare som agerar spänningsdelare. Vinkelgivarens datablad anger en maximal ström genom glidkontakten på 1 µA, i nor- malläget är detta inget problem då mikroprocessorn hos Arduino-kortet har en ingångs- resistans på 100 MΩ (Novotechnik, 2007) (Arduino, 2016). Under vissa omständigheter väljer Arduinon att koppla in en så kallad ”pulldown-resistor” (se Figur 2.6) för att garan- tera ett logiskt värde på ingången. Denna resistans är omkring 150 kΩ vilket leder till att alltför höga strömmar dräneras genom glidkontakten och kan skada givaren. För att und- vika detta kopplas en motkopplad operationsförstärkare, hädanefter benämnd OP, in som spänningsföljare, enligt Figur 2.6. Inströmmarna till OP:n är mycket låga vilket skyddar givaren samtidigt som spänningsnivån förs vidare till Arduinons ingång. Figur 2.6: Kretsschema för vinkelgivare med motkopplad OP som spänningsföljare. 8 2. Systembeskrivning 2.4 Uppmätta parametrar För att underlätta metodval och framtida simuleringsresultat undersöks konstruktionens fysiska parametrar, dessa värden finns återgivna i Tabell 2.1. Rälslängden är den sträcka släden kan röra sig på utan att slå i något av ändblocken. Slädens vikt samt pendlarnas vikter och utformning är relevanta då de påverkar trögheten för systemet, det vill säga hur snabbt de svara på en förändring hos styrsignalen. Tabell 2.1: Uppmätta parameterar hos konstruktionen Storhet Värde Enhet Beteckning Rälslängd 0,90 m Inre pendel, längd 0,4 m l1 Inre pendel, tjocklek 0,01 m d1 Inre pendel, bredd 0,04 m Inre pendel, massa 0,138 kg m1 Inre pendel, friktion 0,01 N fc,1 Yttre pendel, längd 0,4 m l2 Yttre pendel, tjocklek 0,01 m d2 Yttre pendel, bredd 0,04 m Yttre pendel, massa 0,102 kg m2 Yttre pendel, friktion 0,01 N fc,2 Släde, vikt 0,463 kg m Släde, friktion 0,1 N fc 9 2. Systembeskrivning 10 3 Teori För att beskriva och räkna på mekaniska system och hur de regleras krävs en del teori. I detta kapitel redogörs för den teori som ligger till grund för det arbete som gjorts med att beskriva systemet och hur det beter sig. Vidare även hur systembeskrivningen kan förenklas för att möjliggöra framtagandet av regulator och reglering av systemet. Det finns även beskrivet hur motorns elektriska delar fungerar. 3.1 Matematisk modellering För att beskriva läget för kropparna i ett mekaniskt system kan generaliserade koordinater användas. Med generaliserade koordinater kan ett och samma system beskrivas på flera olika sätt, det är fördelaktigt att välja koordinaterna så att systemets rörelseekvationer blir så enkla som möjligt. Om koordinaterna är oberoende av varandra blir de till antalet lika många som frihetsgraderna hos systemet. För att beskriva systemets rörelse kan Euler- Lagranges ekvationer användas. Lagranges funktion, L, definieras som skillnaden mellan den kinetiska och den potentiella energin hos systemet L = T − V (3.1) där T är den kinetiska energin och V är den potentiella energin. Euler-Langranges ekva- tioner ser ut på följande sätt Q j = d dt ( ∂L ∂q̇ j ) − ∂L ∂q j (3.2) där Q j är de generaliserade krafterna, till exempel friktionskrafter och pålagda krafter och q j och q̇ j är massornas positioner respektive tidsderivator, uttryckta i de generaliserade koordinaterna. Utifrån dessa ekvationer går det att skapa kopplade differentialekvationer för systemet. För att bättre hantera stora och komplicerade system kan ett matrissystem skapas av dif- ferentialekvationerna. Genom att samla de termer som innehåller högsta ordningens deri- vata och sedan bryta ut dessa och göra på samma sätt för lägre ordningar fås ett matris- system. Detta matrissystem är då en representation av systemet som underlättar linjärise- ringen. 11 3. Teori 3.2 Olinjära system Hos ett verkligt system förekommer det alltid någon form av olinjäritet. För att ett system ska klassificeras som linjärt och tidsinvariant behöver följande systemegenskap vara upp- fylld (Glad & Ljung, 2003) • Superpositionsprincipen: Om insignal u1 resulterar i utsignal y1 samt u2 resulterar i utsignal y2, så resulterar αu1 + βu2 i utsignal αy1 + βy2 Följaktligen behöver inte egenskapen ovan gälla för dessa olinjära system. En olinjär tillståndsmodell av ordning n kan respresenteras på följande sätt x = f (x(t), u(t)) (3.3) y = h(x(t), u(t)) (3.4) och är ett system av ett antal kopplade första ordningens olinjära differentialekvationer, ẋ1, . . . , ẋn, där högerledet är beroende av insignaler u1, . . . , um där m är antalet insignaler (Lennartson, 2002). Dimensionering av regulatorer baserat på olinjära modeller är väldigt komplicerat. För att komma runt detta problem tas en approximativ linjär modell fram och regulatorn dimen- sioneras utifrån den. Detta görs genom att studera vad som händer då systemets tillstånd varierar kring en stationär arbetspunkt, vilken definieras som den punkt där systemets tidsderivator är lika med noll. Detta tillvägagångssätt kallas linjärisering och resulterar i en linjäriserad modell. 3.3 Linjärisering För att linjärisera (3.3) och (3.4) antas jämvikt vilket resulterar i arbetspunkten (x0, y0, u0) sådan att f (x0, u0) = 0 samt y0 = h(x0, u0). Då modellen är olinjär önskas en linjär approximation av denna. För att åstadkomma detta görs en Taylorutveckling av (3.3) och (3.4) kring arbetspunkterna (x0, y0, u0), där avvikelserna från arbetspunkterna beskrivs enligt ∆x(t) = x(t) − x0 , ∆y(t) = y(t) − y0 , ∆u(t) = u(t) − u0 (3.5) Den linjära tillståndsmodell som erhålls av detta är ∆ẋ(t) = A∆x(t) + B∆u(t) (3.6) ∆y(t) = C∆x(t) + D∆u(t) (3.7) Matriserna A, B, C och D består av första ordningens partiella derivator som skapats utifrån (3.3) och (3.4) . Dessa matriser kallas jacobianer. Exempelvis ser matris A från (3.6) ut på följande sätt ∂ f ∂x =  ∂ f1 ∂x1 . . . ∂ f1 ∂xn ... . . . ... ∂ fn ∂x1 . . . ∂ fn ∂xn  (3.8) 12 3. Teori 3.4 Regulatordesign Reglering av ett system innebär att en styråtgärd baserad på återkopplingen appliceras på systemet. Detta för att uppnå ett önskat beteende hos ett systemet där alla tillstånd antas mätbara. LQ-regulatorn återkopplar alla tillstånd från systemet genom en förstärkning i form av en viktfaktor för att uppnå ett önskat beteende hos systemet. Denna reglerings- metod går ut på att minimera följande designkriterium min(||e||2Q+||u||2R) = min ∫ eT(t)Qe(t) + uT(t)Ru(t)dt (3.9) vilket är en avvägning mellan reglerfelet e och storleken på insignalen u (Glad & Ljung, 2003). I (3.9) är Q följande matris Q =  q1 0 · · · 0 0 q2 · · · 0 ... ... . . . ... 0 0 · · · qn  , n = antal tillståndsvariabler (3.10) Denna matris bestämmer hur fel i respektive reglerstorhet värderas. Viktmatrisen R från (3.9) ser ut på följande sätt R =  r1 0 · · · 0 0 r2 · · · 0 ... ... . . . ... 0 0 · · · rm  , m = antal insignaler (3.11) och är den matris som bestämmer hur felet i respektive styrsignal värderas. Förstärkningen, K, som finns i återkopplingen, se Figur 3.1, fås genom att lösa Ricca- tiekvationen AT S + S A + Q − S BR−1BT S = 0 (3.12) för S , där S är den entydigt positiva lösningen (Glad & Ljung, 2003). Lösningen för S sätts sedan in i följande ekvation K = R−1BT S (3.13) och resulterar i förstärkningen K, vilket är en vektor med lika många element som syste- met har tillståndsvariabler. I ekvationerna ovan är A och B jacobianmatriserna från (3.6). 3.5 Estimering av tillstånd Hos fysikaliska system där alla tillstånd inte är mätbara behövs de icke mätbara tillstånden skattas. I det enklaste fallet går det att skatta de mätbara tillståndens derivator med hjälp av derivering (Muñiz-Rodríguez, Beauchamp-Báez, Cruz-Díaz & Carlos Santos-Ferrer, 2015). De skattade tillstånden ges då av G(s) = as s + a (3.14) 13 3. Teori ẋ = Ax + Bu u y −K C x Figur 3.1: System med förstärkning K i återkopplingen där a är polen till G(s). Detta sätt att skatta ett tillstånd kan dock resultera i högfrekventa störningar på systemet om den uppmätta signalen är brusig. Ett annat sätt att skatta icke mätbara tillstånd är att införa en observatör, se Figur 3.2. En observatör skattar de tillstånd som ej går att mäta genom att mäta utsignalen från systemet. En observatör kan beskrivas enligt ˙̂x = Ax̂ + Bu + L(y −Cx̂) (3.15) där A, B och C kommer från tillståndsmodellen för systemet, y är utsignalen och x̂ är en skattning från det simulerade tillståndet. Matrisen L är den matris som är möjlig att di- mensionera för att förändra beteendet hos observatören. En vanlig omskrivning av (3.15) är ˙̂x = (A − LC)x̂ + Bu + Ly (3.16) I (3.16) är (A − LC) systemmatrisen för observatören, där egenvärderna till denna matris resulterar i observatörens poler. Matrisen L kan dimensioneras för att uppnå ett önskad polplacering hos observatören. En tumregel är att polerna till (A − LC) ska vara två till fem gånger snabbare än polerna till (A − BK) (Bakshi & Bakshi, 2008). Detta för att ob- servatörens dynamik inte ska påverka det återkopplade systemets dynamik (Stein, 2003). Ju större värde på observatörens poler i förhållande till det återkopplade systemet, desto snabbare kommer skatttningsfelet x̃ = x − x̂ (3.17) gå mot noll. Konsekvenserna av att ha snabba poler hos observatören är att den blir mer känslig för mätstörningar. Ett krav för att kunna inför en observatör är att systemet är observerbart (Lennartson, 2002). Observerbarhet uppfylls då matrisen O från (3.18) har full rang vilket motsvarar det(O) , 0. O =  C CA CA2 ... CAn−1  (3.18) I (3.18) är A-matrisen från (3.6) samt C är matrisen från (3.7). 14 3. Teori y = Cx −K ˙̂x = (A − LC)x̂ + Bu + Ly ẋ = Ax + Bu u y Figur 3.2: System med med förstärkning K samt observatör 3.6 Likströmsmotor Den elektriska likströmsmotorn är enkel i sin uppbyggnad. En rotor som leder en elekt- risk ström sitter inuti en permanentmagnetiserad stator enligt Figur 3.3. Magnetfältet, B, verkar då med en kraft, F, på ledaren enligt F = Bil (3.19) där i utgör strömmen i ledaren med längd l, som är ortogonal med B. Se även Figur 3.4. Figur 3.3: Likströmsmotorns uppbyggnad; borstarna överför strömmen till rotorn mellan statorns nord- och sydpol (Surana, 2013). Omarbetad med tillstånd. b NS F F Figur 3.4: Krafter på ledare i magnetfält i en likströmsmotor. 15 3. Teori Den elektriska delen av likströmsmotorn kan beskrivas med en ekvivalent elektrisk krets enligt Figur 3.5 (Lennartson, 2002). Den pålagda spänningen, ua, från en extern spän- ningskälla läggs över den inre resistansen, Ra, och induktansen, La, som hämtats från datablad (MicroMotors, 2011). Matematisk modell av likströmsmotorn Motorn som används är en ankarstyrd permanentmagnetiserad likströmsmotor. Att en mo- tor är ankarstyrd innebär att fältströmmen, i f , är konstant och ankarströmmen, ia, kan va- riera. Det andra fallet är när motorn är fältstyrd innebär att ankarströmmen, ia, är konstant och i f den styrande strömmen (Lennartson, 2002). Ankarströmmen bestämmer vridmo- mentet för motorn enligt Td = Kmia (3.20) där Km är motorkonstanten och Td det drivande momentet. Motorn kan schematiskt be- skrivas som i Figur 3.5. Med hjälp av Kirchoffs spänningslag fås ua = Raia + La dia dt + um (3.21) med beteckningar enligt Figur 3.5. Den inducerade spänningen um uppstår på grund av ro- torns rotation i det konstanta magnetfältet från statorn. Denna spänning är proportionerlig mot rotorns vinkelhastighet ω enligt um = Kmω (3.22) + − Ra La umua ia + − Figur 3.5: Ekvivalent elektrisk krets för likströmsmotor. 16 4 Metod I detta kapitel appliceras teorin från föregående kapitel på det fysikaliska system som ska regleras. En matematisk modell som beskriver systemets rörelse tas fram för att kun- na skapa en modell av systemet i en simuleringsmiljö. Utifrån denna modell kommer en observatör samt regulator dimensioneras. Kapitlet behandlar även processen med påbygg- naden samt upprustningen av den praktiska uppställningen. 4.1 Matematisk modellering För att kunna göra en matematisk modell av systemet behöver slädens och pendlarnas positioner beskrivas. Detta görs med generaliserade koordinater. Dessa är framtagna ge- nom att studera hur massorna i systemet rör sig. De båda pendlarna beskrivs med var sin vinkelkoordinat, θ1 respektive θ2, då de endast roterar kring en axel. Slädens förflyttning sker endast i horisontalled. Då räcker det med en koordinat, q, för att beskriva dess po- sition. De generaliserade koordinaterna är oberoende av varandra vilket innebär att om en koordinat fixeras kan resten av systemet fortfarande röra sig fritt. Om istället kartesis- ka koordinater används för att beskriva systemet krävs det fem koordinater (till exempel xsläde, x1, y1, x2, y2), som inte är oberoende av varandra. Modell av inverterad dubbelpendel I Figur 4.1 illustreras de generaliserade koordinater som används för att beskriva positio- nerna för de olika massorna. q0, q1 och q2 representerar positionerna för m, m1 respektive m2 uttryckta i de generaliserade koordinaterna. Den översta raden beskriver positionen hos massorna i horisontalled och den undre raden i vertikalled. Slädens position beskrivs med följande generella koordinat q0 = q0  Då pendlarna är homogena beräknas masscentrum ligga i mitten av pendlarna och de generella koordinaterna för den inre respektive den yttre pendeln blir då q1 = q + sin(θ1) l1 2 cos(θ1) l1 2  , respektive q2 = q + sin(θ1)l1 + sin(θ2) l2 2 cos(θ1)l1 + cos(θ2) l2 2  där l1, l2 är längden hos pendlarna. 17 4. Metod m1 m m2 xsläde m1 m m2 q b b (x2, y2) (x1, y1) θ1 > 0 θ2 < 0 Figur 4.1: Till vänster ses slädens och pendlarnas position beskrivna med kartesiska ko- ordinater. Till höger ses slädens och pendlarnas position uttrycka i generaliserade koordi- nater. Pendlarnas utformning kan ses som ett rätblock och masströghetsmomentet för den inre pendeln ges av I1 = m1 12 ( l2 1 + d2 1 ) (4.1) och på samma sätt blir det för den yttre pendeln I2 = m2 12 ( l2 2 + d2 2 ) (4.2) där d1 och d2 är tjockleken och m1, m2 är massan hos pendlarna. Euler-Lagranges ekvationer För att bestämma systemets rörelse används Euler-Lagranges ekvationer. Systemets kine- tiska energi, T , i (3.1) ges av T = 1 2 m∥q̇0∥2+ 1 2 m1∥q̇1∥2+ 1 2 m2∥q̇2∥2= = 1 2 ( mq̇2 + m1 (q̇ + θ̇1 l1 2 cos(θ1) )2 + ( θ̇1 l1 2 sin(θ1) )2+ m2 (q̇ + l1θ̇1 cos(θ1) + l2 2 θ̇2 cos(θ2) )2 + ( sin(θ1)θ̇1l1 + sin(θ2)θ̇2 l2 2 )2 ) (4.3) 18 4. Metod och systemets rörelseenergi, V , i (3.1) ges av V = g [ m1 l1 2 cos(θ1) + m2 ( cos(θ1)l1 + cos(θ2) l2 2 )] (4.4) För de generaliserade krafterna gäller följande Q0 = u − fc , Q1 = − fc,1 , Q2 = − fc,2 där u är den pålagda kraften från motorn och fc, fc,1 och fc,2 friktionskrafterna för släden och pendlarna. Tm-matrisen blir då: Tm = Q0 Q1 Q2  (4.5) Genom att sätta in (4.4), (4.3) i (3.1) och sedan använda den ekvationen tillsammans med (4.5) i (3.2) erhålls andra ordningens kopplade differentialekvationer som beskriver systemet. Dessa ekvationer är komplicerade och ett ekvivalent matrissystem skapas därför för att underlätta beräkningarna. Matrissystemet som byggs upp ges av följande D(θ1, θ2)ẍ + E(θ1, θ2, θ̇1, θ̇2)ẋ +G(θ1, θ2) = Tm (4.6) där D-matrisen innehåller koefficienter för andraderivator, E-matrisen innehåller koeffi- cienter för förstaderivator, G-matrisen innehåller termer utan derivator och Tm-matrisen innehåller de generaliserade krafterna. Vektorerna x och ẋ beskriver de generaliserade koordinaterna samt dess derivator enligt x =  q θ1 θ2  , ẋ =  q̇ θ̇1 θ̇2  D-matrisen för systemet ser ut enligt D(θ1, θ2) =  d1 d4 cos(θ1) d7 cos(θ2) d2 cos(θ1) d5 d8 cos(θ1 − θ2) d3 cos(θ2) d6 cos(θ1 − θ2) d9  (4.7) där koefficienterna är följande d1 = m + m1 + m2 d2 = l1 (0, 5m1 + m2) , d3 = 0, 5l2m2  d4 = l1 (0, 5m1 + m2) d5 = l2 1 ( 0, 52m1 + m2 ) + I1 , d6 = 0, 5l1l2m2  d7 = 0, 5l2m2 d8 = 0, 5l1l2m2 d9 = l2 2m2 + I2 Motsvarande E-matris som innehåller koefficienterna för systemets första derivator blir E(θ1, θ2, θ̇1, θ̇2) = 0 e4e5 sin(θ1) e7 sin(θ2)θ̇2 0 0 e8 sin(θ1 − θ2)θ̇2 0 e6 sin(θ1 − θ2)θ̇1 0  (4.8) 19 4. Metod där koefficienter är  e4 = − (0, 5m1 + m2) l1 e6 = −0, 5l1l2m2 e7 = −0, 5l2m2 e8 = 0, 5l1l2m2 Slutligen, innehållande de icke-deriverade koefficienterna, fås G-matrisen enligt G(θ1, θ2) =  0 gd2 sin(θ1) −gd3 sin(θ2)  (4.9) 4.2 Modell av likströmsmotor med roterande last Motorn har ett drivande moment, Td, samt dämpning B. Ur Figur 4.2 kan momentekva- tionen på lastsidan härledas och ger följande Td = Bω + J dω dt (4.10) där det externa vridmomentet, Tl, kan ses som Tl = J dω dt (4.11) I (3.21) kan induktansen, La, antas vara liten nog att försummas. En kombination av (3.21), (3.20) och (3.22) gör att ia kan elimineras och leder till följande ekvation Tl = Kmua Ra − ( B + K2 m Ra ) ω (4.12) I den matematiska modellen (4.6) är insignalen, u, den kraft som verkar på släden. Ef- tersom släden är direkt kopplad till motorn leder detta till att vridmomentet, Tl, är det vridmoment som verkar på släden. Sambandet mellan vridmomentetet, Tl, och kraften, Fl, är Fl = Tl r (4.13) där r är drivhjulets radie. + - Ra La umua ia + - J Td B Θ, ω = Θ̇ Figur 4.2: Ekvivalent elektrisk krets med roterande last för en likströmsmotor. 20 4. Metod 4.3 Relation mellan motorn och dubbelpendeln För att få en fullständig bild av systemet krävs en beskrivning av hur motorn integrerar med konstruktionen. Dessa två har i avsnitt 4.1 samt 4.2 modellerats separat men behöver bindas samman för att implementeras i Simulink. b b b ω q̇ r Figur 4.3: Beroendet mellan slädens hastighet q̇, motorns vinkelhastighet ω och motorns radie r. Släden är mekaniskt sammankopplad med motoraxeln via dragremmar, vilket visas i Figur 4.3. Detta resulterar i q̇ = rω. (4.14) I modelleringen implementeras detta genom att återkoppla q̇ från tillståndsmodellen till motorn. 4.4 Linjärisering För att kunna designa en regulator behöver systemet linjäriseras. Systemet som beskrivs i (4.6) uppfyller ej kraven för ett linjärt system då superpositionsprincipen, beskriven i avsnitt 3.2, ej är uppfylld. Eftersom en regulator ska designas till systemet behöver därför en linjärisering genomföras. Först definieras följande tillståndsvektor x =  x1 = q x2 = θ1 x3 = θ2 x4 = q̇ x5 = θ̇1 x6 = θ̇2 (4.15) 21 4. Metod Eftersom systemet inte är linjärt kan inte en linjär tillståndsmodell beskriva systemet. Tillståndsmodellen som ska beskriva det linjäriserade systemet ser ut som följer ẋ = Ax + Bu (4.16) y = Cx (4.17) där ẋ är en vektor som består av derivatorna ẋ1, . . . , ẋ6. För att (4.6) ska efterlikna (4.16) bryts högsta derivatorna, ẋ, ut från (4.6) till vänsterledet. Detta ger en liknande modell som (4.16) men där matriserna A, B och C är beroende av x1, . . . , x6. Denna olinjära modell kan skrivas som ẋ = A(x)x + B(x)u (4.18) y = C(x)x (4.19) För att linjärisera och skapa en linjär tillståndsmodell skapas jacobianmatriserna, A, B samt C. Jacobianmatriserna består av första ordningens partiella derivator till respektive matris, A(x), B(x) ochd C(x), där arbetspunkterna (x1, . . . , x6) är satta till noll. Utifrån följande matris A(x) = 6×6︷ ︸︸ ︷ 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 D(x2, x3)−1E(x2, x3, x5, x6)︸ ︷︷ ︸ 3×3 0 0 0  6×1︷︸︸︷ x1 x2 x3 x4 x5 x6  + 6×1︷ ︸︸ ︷ 0 0 0 −D(x2, x3)−1G(x2, x3)  (4.20) kan jacobianmatrisen A tas fram enligt teorin som beskrivs i avsnitt 3.3. På samma sätt kan jacobianmatrisen B tas fram utifrån B(x) = 6x1︷ ︸︸ ︷ 0 0 0 D(x2, x3)−1Tm  (4.21) samt jacobianmatrisen C från C(x) = 3×6︷ ︸︸ ︷1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0  6×1︷︸︸︷ x1 x2 x3 x4 x5 x6  (4.22) I ovan ekvationer fås matriserna Tm, D(x2, x3), E(x2, x3, x5, x6) och G(x2, x3) från (4.5), (4.7), (4.8) samt (4.9). Detta ger då en linjär tillståndsmodell enligt (4.16). För att skapa en 22 4. Metod tillståndsåterkoppling där alla tillstånd kan regleras måste systemet vara styrbart. Denna beräkning gjordes i Matlab och systemet visade sig vara styrbart. För att kontrollera att systemet är styrbart bildas en styrbarhetsmatris med hjälp av A och B enligt S = [B AB . . . An−1B] (4.23) där n är antalet tillståndsvariabler. Om systemet har en insignal, vilket det studerade syste- met har, är det styrbart om det(S) , 0. Detta innebär att en önskad polplacering kommer kunna uppnås med hjälp av en regulator i tillståndsåterkopplingen. 4.5 Regulatordesign För att uppfylla projektmålet att klara en vinkelavvikelse på 5° vid startläget krävs en väl dimensionerad regulator. De begränsningar den fysiska konstruktionen har finns med i beräkningarna när regulatorn dimensioneras. Dessa begränsningarna är följande: • Motorns maximala peak-to-peak är 24 V, där −12 V är den lägst tillåtna spänningen och 12 V den högst tillåtna. • Banan släden kan röra sig på är 0,9 m lång och släden kan börja var som helst på banan. Tillståndsmodellen har sex tillståndsvariabler samt en insignal vilket gör att viktmatriser- na blir följande Q =  q1 0 0 0 0 0 0 q2 0 0 0 0 0 0 q3 0 0 0 0 0 0 q4 0 0 0 0 0 0 q5 0 0 0 0 0 0 q6  , R = r1 (4.24) Genom teorin från avsnitt 3.4 kan en vektor med sex förstärkningar tas fram med hjälp av valen av q1, . . . , q6 samt r1 som gjorts för respektive regulator. Dessa förstärkningar viktas med respektive tillstånd i återkopplingen. Det bestämdes i projektet att tre olika regulatorer skulle dimensioneras och simuleras men endast en var tänkt att implementeras på konstruktionen. Kravet som ställs på alla regulatorerna är att de ska klara av projektets mål, alltså ska pendlarna kunna balanseras vid en startvinkel på 5°. Utöver detta krav ska respektive regulator även klara av följande: • Regulator 1: Ska endast klara av projektets mål. Det är denna regulator som är tänkt att implementeras på konstruktionen. • Regulator 2: Ska använda så liten del som möjligt av banans längd. • Regulator 3: Ska klara så stor vinkelavvikelse vid start som möjligt. Regulatorerna dimensionerades med hjälp av simuleringar där slädens position, vinkeln hos både den inre och yttre pendeln samt styrsignalen studerades. I simuleringarna testa- des olika straff för q1, . . . , q6 samt r1 för att uppnå ett önskat beteende hos systemet. 23 4. Metod 4.6 Estimering av tillstånd Eftersom endast x1, x2 och x3 är mätbara på konstruktionen krävs en metod för att skatta dess derivator, x4, x5 och x6. Systemet uppfyllde kravet för observerbarhet vilket resultera- de i att en observatör kunde skapas. Polerna till systemet med Regulator 1 implementerad togs fram och resulterade i (A − BK)poler =  −186, 63 −7, 95 + 5, 04i −7, 95 − 5, 04i −0, 32 −1, 01 + 0, 91i −1, 01 − 0, 91i  (4.25) Utifrån polplaceringen för det återkopplade systemet kunde ett lämpligt val för polplace- ring till (A − LC) göras. För att bestämma hur polerna skulle väljas testades olika polpla- ceringar för (A− LC) för att sedan studera hur det modellerade systemet tillsammans med införande av observatör beteende sig med dessa. Detta resulterade i L enligt L =  11, 27 0 0 0 10, 12 0 0 0 272, 6 15, 96 −4, 4 0, 4814 0 78, 28 −27, 85 0 −93, 37 526, 84  (4.26) och polplaceringen för (A − LC) resulterade i (A − LC)poler =  −270, 9 −9, 6 −9, 6 −0, 5 −1, 7 −1, 7  (4.27) Detta val av L gav mellan 1, 1 till 1, 7 gånger snabbare poler hos (A − LC) i förhållande till polerna hos (A − BK). 4.7 Konstruktion För att använda de teoretiska modeller och simuleringar som behandlats tidigare krävs någon form av praktisk uppställning för att visa att pendeln går att balansera. En del för- enklingar har gjorts gentemot verkligheten i den matematiska modellering när det gäller att behandla exempelvis tröghetsmoment hos oregelbundna former. Exempelvis består den inre pendeln av fästen och givare och är därför inte ett exakt rätblock till formen. 24 4. Metod 4.7.1 Val av mikrokontroller Valet av mikrokontroller föll på en Arduino DUE då Simulink har ett färdigt paket för integration mellan Arduino och Simulink. Att bygga en egen motsvarande enhet hade va- rit ett alternativ, men ligger långt utanför projektets ramar, detta då såväl hårdvara som mjukvara måste byggas från grunden. Arduino DUE använder sig av 3,3 V-logik och där- för måste viss försiktighet iaktas vid inkoppling av sensorer som kräver högre spänningar för att inte skada I/O-portarna (Arduino, 2016). 4.7.2 Analys av brister och fel Den tidigare prototypuppställningen var konstruerad för ett tidigare kandidatarbete och för att förbättra den analyserades dess starka och svaga sidor. Vid undersökningen fram- kom det att de fanns stor friktion och tröghet i systemet vilket omöjliggör den snabba responstid som krävs för att lyckas balansera en dubbelpendel. Tidigare års arbete hade dessutom problem med att deras mikrokontroller slutade fungera mycket nära slutet av deras projekt utan att de lyckades ta reda på varför. Felsökning har visat att den elektriska kontakt på reläkortet som styr spänning och ström till motorn var kortsluten, detta har troligtvis lett till att den tidigare mikrokontrollern fått för höga spänningsnivåer på I/O- portarna och därmed bränt mikroprocessorn. Reläkortet kan användas till att strömförsöja hela mikrokontrollen om spänningen till motorn inte överstiger 9 V. Tidigare projekt för- sörjde den med 12 V vilket ledde till att mikroprocessorn skadades. 4.7.3 Åtgärder För att undvika att mikroprocessorn bränns har kretsen brutits på reläkortet vilket resul- terat i att spänningen över motorn inte kan överstiga 9 V. För att minska trögheten hos släden har cirka 40% av dess volym frästs bort vilket har lett till att vikten minskat från cirka 800 g till 463 g. En större ombyggnad av infästningen av drivhjulet på motorsidan har skett, detta för att minska friktionen. Detta ledde till att problemet som tidigare funnits med ojämn gång i växellådan lösts. Den tidigare infästningen har byggts om från grunden till det nuvarande motorfästet med två kullagrade axelhållare. Denna nybyggnation kan nu stå emot stora krafter från remmen, detta gör att det går att spänna remmen hårdare och därmed få mindre fördröjning i systemet. Se Figur 4.4 för en bild av hur det nya motorfästet är konstruerat. 25 4. Metod Figur 4.4: Motorfäste med dubbla kullager för att avlasta motor och växellåda från radi- ella krafter. 26 5 Resultat I detta kapitel presenteras samt studeras resultat från simuleringar där tre olika regulatorer testats. Resultaten är inhämtade från simuleringar i Simulink och sedan exporterade till Matlab för att underlätta analys samt skapa grafer. 5.1 Simulering I simuleringsförsöken undersöktes tre olika dimensioneringar av LQ-regulatorer. Respek- tive regulator skulle balanserad dubbelpendeln och samtidigt uppfylla kraven som ställdes i avsnitt 4.5. Regulatorerna dimensionerades utifrån antagandet att alla tillstånd är mätba- ra. I avsnitten nedan presenterar vi styrsignalens karaktäristik samt slädens och pendlar- nas läge. Viktiga värden från simuleringsresultaten förklaras i Tabell 5.1 och resultaten av dessa värden presenteras under respektive avsnitt för varje regulator. Tabell 5.1: Förklaring av beteckningar Beteckning Förklaring vpp Peak-to-peak-värdet för styrsignalen till motorn under simuleringstiden [V] vmin Minsta värdet för motorn under simuleringstiden [V] vmax Största värdet för motorn under simuleringstiden [V] pinre,pp Peak-to-peak-värdet för inre pendel under simuleringstiden [°] pinre,min Minsta värdet för inre pendel under simuleringstiden [°] pinre,max Största värdet för inre pendel under simuleringstiden [°] tinre,0,01 Tiden innan inre pendeln befinner sig inom ±0,01° från jämviktsläget [s] pyttre,pp Peak-to-peak-värdet för yttre pendel under simuleringstiden [°] pyttre,min Minsta värdet för yttre pendel under simuleringstiden [°] pyttre,max Största värdet för yttre pendel under simuleringstiden [°] tyttre,0,01 Tiden innan yttre pendeln befinner sig inom ±0,01° från jämviktsläget [s] spp Slädens förflyttning längs banan under simuleringstiden [m] 27 5. Resultat 5.1.1 Regulator 1 Den första regulatordesignen skulle göra att dubbelpendel klarade av en initial vinkelav- vikelse på 5° från jämviktsläget. Viktmatriserna Q och R dimensionerades enligt Q =  10 0 0 0 0 0 0 10 0 0 0 0 0 0 150 0 0 0 0 0 0 150 0 0 0 0 0 0 500 0 0 0 0 0 0 500  , R = 1 (5.1) Denna regulatordesign resulterade i pendelrörelser enligt Figur 5.1 och styrsignal och slädförflyttning enligt Figur 5.2. (a) Inre pendelns rörelse under 10 s med en startvinkel på 5°. (b) Yttre pendelns rörelse under 10 s med en startvinkel på 5°. Figur 5.1: Simuleringsresultat för den inre pendeln, (a), och den yttre pendeln, (b), med Regulator 1. Med Regulator 1 tar det cirka 6 s för båda pendlarna att stabiliseras och balanseras i upp- rätt läge. Styrsignalen planar ut och går mot 0 V efter 4 s, trots det fortsätter slädens för- flyttning i flera sekunder. Detta är ett resultat av den låga friktionskonstant, fc, för släden som användes i simuleringen. För exakta tider och övrigt värden för simuleringen med Regulator 1 se Tabell 5.2. 28 5. Resultat (a) Motorns styrsignal under 5 s med Re- gulator 1. (b) Slädens förflyttning längs banan un- der 15 s. Figur 5.2: Simuleringsresultat för styrsignalen, (a), och slädens position, (b), med Regu- lator 1. Tabell 5.2: Resultat från simuleringen av systemet med Regulator 1 implementerad Beteckning Förklaring vpp 18, 14 V vmin −11, 2 V vmax 6, 93 V pinre,pp 8,27° pinre,min -1,80° pinre,max 6,47° tinre,0,01 5,10 s pyttre,pp 6,69° pyttre,min -1,70° pyttre,max 4,99° tyttre,0,01 5,08 s spp 0,43 m 5.1.2 Regulator 2 Den andra regulatorns syfte var att reglera systemet så att slädens förflyttning längs banan var så liten som möjligt. Detta innebär att spp skulle minimeras. Utifrån simuleringstester kunde viktmatriserna väljas enligt Q =  120 0 0 0 0 0 0 25 0 0 0 0 0 0 25 0 0 0 0 0 0 200 0 0 0 0 0 0 60 0 0 0 0 0 0 70  , R = 0, 89 (5.2) Denna regulatordesign resulterade i pendelrörelser enligt Figur 5.3 och styrsignal och slädförflyttning enligt Figur 5.4. Under de första sekunderna varierar den inre pendelns 29 5. Resultat (a) Inre pendelns rörelse under 10 s med en startvinkel på 5°. (b) Yttre pendelns rörelse under 10 s med en startvinkel på 5°. Figur 5.3: Simuleringsresultat för den inre pendeln, (a), och den yttre pendeln, (b), med Regulator 2 (a) Motorns styrsignal under 5 s med Re- gulator 2. (b) Slädens förflyttning längs banan un- der 15 s. Figur 5.4: Simuleringsresultat för styrsignalen, (a), och slädens position, (b), med Regu- lator 2 vinkel kraftigt, men efter 6 s har båda pendlarna stabiliserats och balanseras i upprätt läge. Styrsignalen oscillerar till en början men planar ut och går mot 0 V efter 4 s. Släden visar på liknande beteende som för Regulator 1 med den låga friktionen, skillnaden i detta fallet är att förflyttningen är mindre. Slädens rörelse längs banan, spp, blev 0,23 m, vilket redovisas i Tabell 5.3 tillsammans med andra utvalda värden från simuleringen med Regulator 2. 30 5. Resultat Tabell 5.3: Resultat från simuleringen av systemet med Regulator 2 implementerad Beteckning Förklaring vpp 23,73 V vmin -11,88 V vmax 11,88 V pinre,pp 13,08° pinre,min -4,92° pinre,max 8,16° tinre,0,01 3,60 s pyttre,pp 6,99° pyttre,min -2,00° pyttre,max 4,99° tyttre,0,01 3,55 s spp 0,23 m 5.1.3 Regulator 3 Den tredje regulatorns syfte var att reglera systemet så att den initiala vinkelavvikelsen från jämviktsläget hos både inre och yttre pendeln kunde bli så stor som möjligt. Detta resulterade i viktmatriser enligt Q =  4 0 0 0 0 0 0 10 0 0 0 0 0 0 80 0 0 0 0 0 0 11 0 0 0 0 0 0 500 0 0 0 0 0 0 500  , R = 1, 45 (5.3) (a) Inre pendelns rörelse under 10 s med en startvinkel på 5°. (b) Yttre pendelns rörelse under 10 s med en startvinkel på 5°. Figur 5.5: Simuleringsresultat för den inre pendeln, (a), och den yttre pendeln, (b), med Regulator 3 31 5. Resultat Denna regulatordesign resulterade i pendelrörelser enligt Figur 5.5 och styrsignal och slädförflyttning enligt Figur 5.6. Med en större startavvikelse för pendlarna tar det 10 s för Regulator 3 att stabilisera och balansera pendlarna i upprätt läge. Styrsignalen planar ut och går mot 0 V efter 5 s. Släden visar på liknande beteende som för de två tidigare regulatorerna med den låga friktionen, skillnaden i detta fallet är att släden utnyttjar nästan hela räslängden, vilket redovisas i Tabell 5.4 tillsammans med andra utvalda värden från simuleringen med Regulator 3. Med Regulator 3 kunde systemet klara av en startvinkel på 6,99° för den inre pendeln och 6,99° för den yttre pendeln. (a) Motorns styrsignal under 5 s med Re- gulator 2. (b) Slädens förflyttning längs banan un- der 15 s. Figur 5.6: Simuleringsresultat för styrsignalen, (a), och slädens position, (b), med Regu- lator 3 Tabell 5.4: Resultat från simuleringen av systemet med Regulator 3 implementerad Beteckning Förklaring vpp 18,83 V vmin -6,94 V vmax 11,89 V pinre,pp 10,74° pinre,min -2,02° pinre,max 8,72° tinre,0,01 9,79 s pyttre,pp 8,90° pyttre,min -1,90° pyttre,max 6,99° tyttre,0,01 9,76 s spp 0,85 m 32 6 Diskussion I detta kapitel kommer resultaten presenteras samt diskuteras tillsammans med de avvi- kelserna från verkligheten som uppstår i en simuleringsmiljö. Varför våra resultat enbart är presenterade som simuleringar diskuteras i 6.2, arbetet stötte på problem som tog för lång tid att lösa för att hinna leverera ett resultat från implementeringen. Även avvikelser från vårt källmaterial såsom polplaceringen hos vår observatör diskuteras. 6.1 Konstruktion Att få arbeta praktiskt har varit mycket lärorikt och givande. Nya typer av problem har dykt upp som har ställt höga krav på vår förmåga att lösa problem. Processen ger bättre bild av svårigheterna som uppstår i en verklig process från modell till prototyp. 6.1.1 Avväganden För arbetet med konstruktionen har framförallt tidsaspekten spelat en stor roll vid beslut kring investeringar och ombyggnationer. En stegmotor hade varit önskvärd för styrka och precision hos styrningen av släden, dock skulle detta försena tidsplanen för mycket. Detta eftersom en större ombyggnation av motorfästet inte kunde påbörjas innan den nya mo- torn levererats. Erfarenheter från byggnationen av det valda motorfästet visar också på att det kan finnas avvikelser i databladen gällande mått och toleranser, vilket ytterligare påverkar den tid som krävs vid konstruktion. Tack vare en del funderande så finns det nu en komplett prototypuppställning som kan förflytta släden med tillräcklig hastighet och dessutom leverera sensordata med hög upplösning till Arduinon. 6.1.2 Process För att få till en lyckad konstruktion har de tillgängliga resurserna i prototyplabbet i form av erfarenhet och kunskap hos Jan och Reine utnyttjats till stor grad vid byggnationen. Att få stöd och kunskap under hela processen har varit avgörande för kvaliteten. Handledarna säger ifrån och tillåter inte alltför många genvägar vilket ger en bra förståelse för hur svårt det är att leverera en komplett produkt som ska uppfylla hårda krav på kvalitet och funktionalitet. 33 6. Diskussion 6.2 Problem vid implementering Målet med projektet var att balansera en dubbelpendel i upprätt läge, det har vi i skrivande stund inte lyckats med. Det uppstod stora problem när givarsignalerna skulle skickas från encodern till Arduinon för att sedan behandlas i Simulink. Från början var förhoppningen att vi skulle göra ett program, ladda över det till Arduinon som gjorde alla beräkningar och skickade och tog emot signaler till motorn och från givarna. Vi hittade ett paket till Simulink med block som hanterade signalerna från encodern på ett önskvärt sätt men det var mer komplicerat att få det att fungera än vad vi trott. Vi har parallellt försökt att läsa av signalen och behandla den separat men eftersom encodern skickar mätdata med hög frekvens klarar nuvarande implementation på Arduinon inte av att utföra nödvändiga be- räkningar. Vi fick även problem med att läsa av vinkelgivaren. När den kopplades in och vi läste av datan i Simulink fick vi en icke-linjär utsignal, vilket inte var väntat. Vid vidare under- sökning fann vi att utdatan faktiskt var linjär men att detta inte gick att se i Simulink. 6.3 Estimering av tillstånd Polerna som valdes till (A − LC) är långsammare än den tumregel som gäller vid val av poler för en observatör. Detta val gjordes eftersom systemet inte gick att stabilisera när snabbare poler valdes till (A − LC). 6.4 Simuleringsresultat För att komma fram till viktmatriserna gjordes ett antal tester där olika val av straff (q1, . . . , q6 samt R) studerades. Eftersom straffen är beroende av varandra gick det inte att ändra på ett straff utan att påverka ett tillstånd som i praktiken är kopplat till ett annat straff. Därför gjordes många försök att dimensionera en regulator som gjorde att systemet uppnådde ett önskat beteende. Eftersom en implementering aldrig gjordes dimensionera- des regulatorerna utifrån antagandet att alla tillstånd var mätbara. Simuleringsresultaten visar att vår regulator skulle klara av att balansera pendlarna vid en implementation. Dess- utom finns det viss marginal att göra vidare studier enligt Regulator 2 och 3 och samtidigt uppfylla projektets mål och avgränsningar. 6.4.1 Regulator 1 Eftersom den inre pendeln balanserar upp den yttre pendel drogs slutsatsen att den yttre pendel är den svåraste delen att balansera. Detta resulterade i att stor vikt lades på regle- ring av den yttre pendeln, det vill säga stora straff på tillstånden x3 samt x6 i förhållande till övriga straff. I denna dimensionering användas inte motorns fulla kapacitet eller räl- sens hela längd. Dessa marginaler är väldigt viktiga att ha då regulatorn har dimensioneras utifrån ett system med endast en låg friktion som störning. 34 6. Diskussion 6.4.2 Regulator 2 För att få släden att röra sig så lite som möjligt längs banan valde vi ett mindre R än i föregående regulatordesign. Detta för att öka styrsignalen och därmed utnyttja hela det spann mellan ±12 V som motorn klarar av. Straffen på x1 samt x4, det vill säga de tillstånd som hör till släden, valdes större än tidigare jämfört med övriga straff. Detta för att få snabbare reaktion hos släden och därmed kunna uppnå målet att röra sig på så liten del av banan som möjligt. Denna snabba reaktion hos släden visade sig även hos tiden det tog för båda pendlarna att stabilisera sig. Den inre och den yttre pendel befann sig inom 0,01° från jämviktsläget efter 3,60 s, respektive 3,55 s. Detta i jämförelse med den första regulatordesignen då motsvarande tider var 5,10 s respektive 5,08 s. 6.4.3 Regulator 3 I den tredje dimensioneringen satte banans längd samt motorns maximala ankarspänning begränsningen på hur stor initial vinkelavvikelse systemet klarade av. Vinkelavvikelsen kunde vara nästan 2° större än projektets mål på 5°. Tiden det tar för pendlarna att befinna sig inom ±0, 01° från jämviktsläget var 9,76 s för den yttre pendeln och 9,79 s för den inre. Detta var ett väntat resultat eftersom pendlarnas vinkelavvikelse vid start var större än i föregående regulatorer vilket borde leda till längre tid att finna jämviktsläget. 6.5 Avvikelser från verkligheten Simuleringarna gjordes under antagandet att systemet inte utsätts för några andra yttre störningar än friktion samt att alla tillstånd är mätbara. Den friktionskonstant som an- vänds i simuleringarna är troligtvis väldigt låg jämfört med den egentliga friktionen för släden. Dessa faktorer leder till att resultaten från en implementation troligtvis skulle skil- ja sig från simuleringsresultaten. På konstruktionssidan är det, förutom friktionen, drivremmen som är en störning i sy- stemet. Drivremmen är den del som binder samman drivningen från motorn med släden. Remmen är av gummi och därför töjbar, vilket är något som hade gjort att resultaten från simuleringen hade skilt sig från verkligheten. 35 6. Diskussion 36 7 Slutsats I detta kapitel diskuteras arbetsprocessen samt reflektioner kring hur väl syftet i avsnitt 1.1 uppfylldes. Kapitlet behandlar även rekommendationer för framtida projekt med samma konstruktion där syftet är att balansera en inverterad pendel, såväl enkel som dubbel. 7.1 Process I och med simuleringsresultatet är syftet uppfyllt då vår framtagna regulator klarar av att balansera den inverterade dubbelpendeln. Tyvärr har vi inte lyckats att balansera den på den praktiska uppställningen, även om indikationerna från simuleringarna tyder på ett lyc- kat resultat vid en implementation. Regulatorn uppfyller samtliga krav gällande fysiska begränsningar på rälslängder och styrsignaler till motorn. Det är oklart hur mycket påver- kan de faktorer som togs upp i avsnitt 6.5 kommer ha på en framtida implementering av regulatorn. Arbetet har blivit försenat på grund av en rad problem som inte har med regulatorn att göra, utan snarare kommunikation och databehandling mellan Simulink, Arduino och de givare som används. Exempelvis har en högupplöst encoder använts, vilket lett till att nuvarande implementation gör att Arduinon inte kan sampla alla steg. Detta leder till att systemet förlorar information vilket ger ett instabilt system. Problem har även härstam- mat från trasig hårdvara då ett av fyra reläer var trasigt samt feltolkningar av tillgänglig information från tidigare arbete. Trots detta har vi goda förhoppningar om att lyckas med implementeringen till den praktiska uppställningen inom en inte alltför lång tidsrymd. 7.2 Rekommendationer För att ytterligare lyfta konstruktionens prestanda gällande minskad tröghet samt friktion hade ett byte av linjärlager, vilket är den del som gör att släden kan röra sig längs banan, varit fördelaktigt. Även en ombyggnation av den sida på konstruktionen där motorn inte sitter hade bidragit till minskad tröghet samt friktion. Vidare skulle en elektrisk släpring i leden närmast släden möjligöra fri rotation på pendlarna utan risk för att signalkablarna trasslar ihop sig. Gällande motorval så valde vi att behålla likströmsmotorn, men för att kontrollera styrningen av släden mer exakt så rekommenderar vi en framtida uppgradering till en stegmotor. Detta hade även underlättat positionsavläsningen eftersom stegmotorn har detta integrerat till skillnad från likströmsmotorn. 37 7. Slutsats För att uppnå syftet att balansera en dubbelpendel på en praktisk uppställning borde frik- tionstester genomföras. Pendlarnas dynamik borde även undersökas för få den matema- tiska modell så verklighetstrogen som möjligt då även dessa tillför friktion till systemet. Detta hade gett mer exakta parametrar vilket hade underlättat vid designen av regulatorn. 38 Litteraturförteckning Arduino. (2016, mar). Arduino products > arduino due [datablad]. Hämtad 2016-05-02, från https://www.arduino.cc/en/Main/ArduinoBoardDue Bakshi, U. A. & Bakshi, M. E. (2008). Modern control theory. India, 1a uppl.: Technical Publications Pune. Boniface, K., McKay, M. P., Lucas, R., Shaffer, A. & Sikka, N. (2011). Serious injuries related to the segway personal transporter: A case series. Annals of Emergency Medicine, 57(4), 370-374. Fleckenstein, M., Gustavsson, A., Haddad, R. & Jerenvik, M. (2016). Swing up of a pendulum on a cart; Comparison of a Lyapunov based controller and a fuzzy logics controller. . (Projektarbete, Chalmers Tekniska Högskola, Instutionen för Signaler och System). Fransson, M., Mihajlovic, A. & Ståleby, A. (2013). Optimal styrning av pendel. In- stitutionen för signaler och system, Chalmers tekniska högskola. (Kandidatarbete, Chalmers Tekniska Högskola, Instutionen för Signaler och System). Glad, T. & Ljung, L. (2003). Reglerteori: flervariabla och olinjära metoder. Lund, 2a uppl.: Studentlitteratur. Kabel, M. (2010, jun). Jas 39 gripen [elektronisk bild]. Hämtad 2016-05-13, från https://commons.wikimedia.org/w/index.php?curid=10726578 Lennartson, B. (2002). Reglerteknikens grunder. Lund, 4e uppl.: Studentlitteratur. Luce, R. D. (1991). Response times: their role in inferring elementary mental organiza- tion. Oxford, New York: Oxford University Press. MicroMotors. (2011). Technical data series e192 [datablad] (1a utgåvan). Viale Piave, 80/82 - 23879 VERDERIO. Hämtad 2016-04-20, från http://www.micromotors .eu/E192.pdf Muñiz-Rodríguez, F., Beauchamp-Báez, G., Cruz-Díaz, G. & Carlos Santos-Ferrer, J. (2015). Optimal control design and implementation for the double inverted pen- dulum system in a graduate control course. I Frontiers in Education Conference (FIE), 21-24 Oktober 2015. El Paso, Texas. doi: 10.1109/FIE.2015.7344272 Novotechnik. (2007, jan). Standard potentiometers series p2500 [datablad] (2a ut- gåvan). Postfach 4220 73745 Ostfildern. Hämtad 2016-04-05, från http:// www.novotechnik.com/pdfs/P2500.pdf Pixabay. (2013, okt). Segway, scooter, balans, enhet [elektronisk bild]. Häm- tad 2016-05-13, från https://pixabay.com/sv/segway-scooter-balans -enhet-160537/ Poon, D. C. K., Shieh, S.-S., Joseph, L. M. & Chang, C.-C. (2004). Reaching for the sky. Civil Engineering (08857024), 74(1), 55 - 72. Rotary encoder e6b2-c [datablad]. (2011, Okt). Hämtad 2016-05-14, från http:// 39 https://www.arduino.cc/en/Main/ArduinoBoardDue https://commons.wikimedia.org/w/index.php?curid=10726578 http://www.micromotors.eu/E192.pdf http://www.micromotors.eu/E192.pdf http://www.novotechnik.com/pdfs/P2500.pdf http://www.novotechnik.com/pdfs/P2500.pdf https://pixabay.com/sv/segway-scooter-balans-enhet-160537/ https://pixabay.com/sv/segway-scooter-balans-enhet-160537/ http://www.omron-pro.ru/doc/sensor/encoder/e6b2.PDF http://www.omron-pro.ru/doc/sensor/encoder/e6b2.PDF Litteraturförteckning www.omron-pro.ru/doc/sensor/encoder/e6b2.PDF Stein, G. (2003). Respect the unstable. IEEE Control Systems, 23(4), 12-25. Surana, N. (2013, Jan). Working or operating principle of dc motor [elektronisk bild]. Hämtad 2016-05-13, från http://www.electrical4u.com/working-or -operating-principle-of-dc-motor/ 40 http://www.omron-pro.ru/doc/sensor/encoder/e6b2.PDF http://www.omron-pro.ru/doc/sensor/encoder/e6b2.PDF http://www.electrical4u.com/working-or-operating-principle-of-dc-motor/ http://www.electrical4u.com/working-or-operating-principle-of-dc-motor/ A Elektriska komponenter Nedan följer en övergripande lista på de komponenter som använts vid den praktiska uppställningen. Listan är ej komplett då basala komponenter har utelämnats. Tabell A.1: Komponentlista Benämning Tillverkare Modell Beskrivning Likströmsmotor Micro Motors E192.12.5 12 V, integrerad 5:1 pla- netväxel Vinkelsensor Novotechnik P2501A202 345° elektrisk avkän- ning, 2 kΩ, spännings- delare Encoder Yumo E6B2-CWZ3E 1024 pulser per varv, 3 faser Mikrokontroller Arduino DUE 12-bit sampel på analo- ga 12 I/O, 54 digitala I/O, 3,3 V-logik Reläkort Arduino Motor Shield 5-12 VDC, 2 A, broms och strömmätning AC/DC-Adapter N/A 1205 12 V, 5 A I A. Elektriska komponenter II B Inkoppling av elektrisk utrustning De givare som använts kopplades in på mikrokontrollern enligt Tabell B.1 Tabell B.1: Inkoppling av givare på Arduino Komponent Funktionalitet Arduino pin Vinkelgivare 1 Spänningsförsörjning 3,3 V Signal A2 Jord GND Vinkelgivare 2 Spänningsförsörjning 3,3 V Signal A3 Jord GND Encoder Spänningsförsörjning 5 V Signal, Fas A D30 Signal, Fas B D31 Signal, Fas Z D32 Spänningsreferens GND Jord GND Motor Shield Riktning D13 PWM D11 Broms D8 Strömmätning A1 III Figurer Tabeller Inledning Syfte och mål Avgränsningar Systembeskrivning Signalväg Positionsgivare Vinkelgivare Uppmätta parametrar Teori Matematisk modellering Olinjära system Linjärisering Regulatordesign Estimering av tillstånd Likströmsmotor Metod Matematisk modellering Modell av likströmsmotor med roterande last Relation mellan motorn och dubbelpendeln Linjärisering Regulatordesign Estimering av tillstånd Konstruktion Val av mikrokontroller Analys av brister och fel Åtgärder Resultat Simulering Regulator 1 Regulator 2 Regulator 3 Diskussion Konstruktion Avväganden Process Problem vid implementering Estimering av tillstånd Simuleringsresultat Regulator 1 Regulator 2 Regulator 3 Avvikelser från verkligheten Slutsats Process Rekommendationer Bilaga Elektriska komponenter Bilaga Inkoppling av elektrisk utrustning