• Ei tuloksia

Lego - robotti säätötekniikan opetuksen demonstraatiovälineenä

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Lego - robotti säätötekniikan opetuksen demonstraatiovälineenä"

Copied!
25
0
0

Kokoteksti

(1)

Kandidaatintyö 21.5.2019 LUT School of Energy Systems

Sähkötekniikka

LEGO – ROBOTTI SÄÄTÖTEKNIIKAN OPETUKSEN DEMONSTRAATIOVÄLINEENÄ

A Lego robot implemented as an educational device for control engineering

Pekka Vanhanen

(2)

TIIVISTELMÄ

Lappeenrannan teknillinen yliopisto LUT School of Energy Systems Sähkötekniikka

Pekka Vanhanen

Lego -robotti säätötekniikan opetuksen demonstraatiovälineenä

2019

Kandidaatintyö.

23 s.

Tarkastajat: TkT Niko Nevaranta, DI Pekko Jaatinen

Säätötekniikan teorianopetusta tukemassa on hyödyllistä käyttää rinnalla havainnollistavia ja konkreettisia esimerkkejä. Tässä työssä tarkastellaan säätötekniikan opetukseen sopivaa, luonnostaan epästabiilia kaksipyöräistä Lego Mindstorms EV3 – robottia ja työn tavoitteena on kehittää balansoiva säätö Lego - robotin rungon sivuttaissuuntaiselle kallistuskulmalle estäen robotin kaatumisen. Robotin dynamiikka mallinnetaan tilayhtälöiden avulla, jotka si- sältää systeemi -, tulo –, lähtö – ja myötäkytkennän matriisit. Työn tuloksena on Matlab – koodi, joka sisältää Lego – robotin mallinnuksen sekä työssä analysoidaan järjestelmää tun- netuilla menetelmillä; avoimen – ja suljetun – sekä säädetyn piirin askelvasteilla ja napa – nollakohtadiagrammin avulla. Työssä havainnollistetaan Simulink - simulointimalli, joka koostuu mm. edellä mainituista Matlabin matriiseja hyödyntävästä tilayhtälöt – lohkosta, PID - säätimestä ja takaisinkytkennästä. Työn tarkastelu rajataan robotin stabiloivaan sää- töön ja kaksi muuta liikeakselia, joilla käännetään robottia ja liikutetaan sitä eteen – tai taak- sepäin, jätetään tarkastelun ulkopuolelle.

(3)

ABSTRACT

Lappeenranta University of Technology LUT School of Energy Systems

Electrical Engineering Pekka Vanhanen

A Lego robot implemented as an educational device for control engineering

2019

Bachelor’s Thesis.

23 p.

Examiners: D.Sc. Niko Nevaranta, M.Sc. Pekko Jaatinen

It is useful to use illustrative and concrete examples alongside supporting theoretical teach- ing in control technology. This thesis covers the unstable two-wheeled Lego Mindstorms EV3 robot, which is suitable for the teaching of control technology, and aims to develop balancing closed loop control law for the lateral tilt angle of the Lego robot body, preventing the robot from falling. Robot dynamics are modelled by state space equations that include system, input, output, and positive feedback matrices. The result of the thesis is the Matlab code, which includes the modelling of the Lego robot, and this thesis also analyzes the sys- tem with known methods; open - and closed - as well as closed loop step responses and pole - zero diagram. The thesis illustrates the Simulink simulation model, which consists of e.g.

the above-mentioned Matlab matrix-based state space equations - block, PID controller and feedback. Scope of this thesis is limited to stabilizing the robot. Two other motion axes – one that rotates the robot and another that drives it forward or backward - are excluded.

(4)

SISÄLLYSLUETTELO

Käytetyt merkinnät ja lyhenteet

1. Johdanto ... 7

1.1 Tavoite ja tutkimuskysymykset ... 8

2. Lego mindstorms Ev3 ... 9

2.1 Mallinnus ... 9

2.2 Järjestelmän parametrit ... 13

2.3 Analysointi ... 14

3. Säätimen suunnittelu ja testaus ... 16

3.1 Simulointimalli ... 16

3.2 Tulokset ... 17

4. Yhteenveto/johtopäätökset ... 21

Lähteet ... 23

Liitteet

Liite 1. Matlab - koodi Lego – robotin mallinnuksesta.

(5)

KÄYTETYT MERKINNÄT JA LYHENTEET

ARM Advanced RISC Machines

PID Proportional – Integral – Derivative PWM Pulse Width Modulation

RAM Random Access Memory

SD Secure Digital

USB Universal Serial Bus

A1 systeemimatriisi A2 systeemimatriisi B1 tulomatriisi B2 tulomatriisi

C lähtömatriisi

D myötä kytkennän matriisi

E matriisi

fm kitkakerroin rungon ja tasavirtamoottorin välillä fw kitkakerroin maan ja renkaan välillä

g putoamiskiihtyvyys

i imaginääriyksikkö

I vakio

j matriisin rivi

J vakio

Jm tasavirtamoottorin roottorin hitausmomentti Jw renkaan hitausmomentti

JΦ rungon kaltevuuskulman (yx – tasossa) hitausmomentti JΨ hitausmomentti rungon kallistuskulman suhteen

k matriisin sarake

K vakio

Kb tasavirtamoottorin nopeusvakio KD säätimen derivointivahvistus KI säätimen integrointivahvistus KP säätimen vahvistus

(6)

Kt tasavirtamoottorin vääntömomenttivakio

L etäisyys renkaan akselilta robotin painopisteeseen

m renkaan massa

M robotin rungon massa

n vaihteen välityssuhde

R renkaan säde

Rm tasavirtamoottorin resistanssi

t aika

u tulo, tulovektori

W rungon leveys

vl vasemman tasavirtamoottorin jänniteohje vr oikean tasavirtamoottorin jänniteohje x1 tilavektori

𝑥̇1 tilavektorin derivaatta ajan suhteen x2 tilavektori

𝑥̇2 tilavektorin derivaatta ajan suhteen

y lähtö

α vakio

β vakio

θ renkaan kiertymiskulma

𝜃̇ renkaan kulmanopeus

ϕ rungon kiertymiskulma

𝜙̇ rungon kulmanopeus kiertymiskulman suhteen Ψ rungon kallistuskulma

Ψref rungon kallistuskulman referenssiarvo

𝛹̇ rungon kulmanopeus kallistuskulman suhteen

(7)

1. JOHDANTO

Säätötekniikka on erityisen tärkeässä roolissa erilaisten prosessien ja järjestelmien ohjauk- sessa. Opetettaessa säätötekniikkaa teoriapainotteisen opetuksen tueksi on tärkeää saada ha- vainnollistavia esimerkkejä. Nykysuuntaus on, että liikkeenohjauksen havainnollistamiseen perustuvia säädönopetusvälineitä, kuten erilaiset robotit, käytetään usein koulutustarkoituk- sessa niiden visuaalisuuden takia. Esimerkiksi Legolla on tähän tarkoitukseen Lego Minds- torms – robotti, jota on mahdollista muokata ja ohjelmoida erilaiseen tarpeisiin. Kuvassa 1.1 on esitettynä Lego – robotteja, joilla on tarkoitus havainnollistaa epästabiilin systeemin sää- töä, tässä tapauksessa robotin tasapainotusta.

Kuva 1.1 Esimerkkejä kaksipyöräisistä ja itsebalansoituvista Lego Mindstorms EV3 – roboteista. (Valk 2016).

Lego - robotteja on käsitelty laajasti opinnäytetöissä sekä akateemisissa artikkeleissa. Yh- dessä opinnäytetyössä on samaa aihetta tutkittu laajasti ensin johtamalla liikeyhtälöt robotin eri osille esim. renkaille, jonka jälkeen niistä kehitettiin siirtofunktio analyysia ja säädön viritystä varten. Epästabiili järjestelmä stabiloitiin PID – säätimellä, jota testattiin myös si- mulaatioilla sekä käytännön kokeilla. (Silfver 2018).

(8)

8

Eräässä aikaisemmassa tutkimuksessa on perehdytty laajasti EV3 – tyyppisen Lego - robotin siirtofunktion määrittelemiseen kokeellisesti eri menetelmin. Tutkimuksen tuloksena on joh- dettu systeemiä kuvaava toisen- ja kolmannen kertaluokan siirtofunktio huomioimatta sääti- men vaikutusta. (Norouzi Kandalan 2016).

Yksi tutkimus selvittää miten robotiikkaa käytetään opetuksessa ts. Lego Mindstorms – ro- botin käyttämisestä opetuksessa Yhdistyneen arabiemiirikunnan kouluissa ja kuinka opetta- jat voivat yhdistää tai lisätä robotiikkaa opetussuunnitelmaan. Tutkimus myös ehdottaa te- hokkaita keinoja robotiikan käytöstä opetusvälineenä sekä antaa suosituksia oppimiskoke- musten parantamiseksi ja kuinka se vaikuttaa oppilaiden mielenkiintoon tieteeseen, tekno- logiaan sekä tekniikkaan ja matematiikkaan liittyvissä aineissa. (Afari 2017). Vastaavasti (Alimisis et al. 2016) käsittelee robotiikkaan liittyviä aiheita laajasti ja monipuolisesti mm.

robotiikan soveltamisesta teoriassa ja käytännössä koulutuksessa.

Tässä kandidaatintyössä tarkastellaan kuvan 1.1 mukaista Lego – robottia sekä mallinnetaan robotti Matlab – ympäristössä ja suunnitellaan sille PID – pohjainen säätörakenne.

1.1 Tavoite ja tutkimuskysymykset

Työn tarkoitus on mallintaa balansoiva säätö EV3 – Mindstorms Lego – robotin rungon kal- listuskulmalle Ψ eli käytännössä kehittää säätörakenne, jonka avulla voidaan tasapainottaa liikkumaton ja pystyssä renkaiden päällä seisova robotti. Säätö mallinnetaan Matlab- / Si- mulink ohjelmilla ja työssä käsiteltyä matemaattista mallia voidaan käyttää säätötekniikan opetuksen tukivälineenä sekä mahdollisesti visualisoimaan säädön vaikutusta.

Tarkastelun alla olevan Lego – robotin mallinnuksessa hyödynnetään tilamalliesitystä. Tila- mallina voidaan hyödyntää jo olemassa olevaa, toisen mallisen Lego – robotin tilamallia (NXTway – GS), jonka parametrit määritetään tutkimuksessa käytettävään robottiin sopi- vaksi simulointimalliin.

(9)

2. LEGO MINDSTORMS EV3

Mindstorms EV3 on tanskalaisen Legon kehittelemä kolmannen sukupolven robottien ra- kennussarja, joka julkaistiin syyskuussa 2013. Sen uusi ohjelmoitava ydin eli keskusyk- sikkö, on teknisesti kehittyneempi kuin edeltäneessä Mindstorms NXT – robotissa sekä yti- mellä on mikro SD – kortinlukija ja USB – portti. Tässä uuden sukupolven ytimessä, käyt- töjärjestelmänä toimii Linux, sekä siinä hyödynnetään ARM9 - prosessoria verrattuna edel- lisen sukupolven ARM7 - prosessoriin. RAM - ja Flash muistien kokoa on kasvatettu 64 ja 256 kilotavusta 64 ja 16 megatavuun. Mindstorms EV3 – robotti on varusteltu kahdella suu- remmalla ja yhdellä pienemmällä tasavirtamoottorilla sekä erityyppisillä antureilla: kosketus -, väri -, gyro – ja ultraäänianturilla. (Norouzi Kandalan 2016).

Säätötekniikan opetuksen kannalta robotin ohjelmointi on suoraviivaista, koska se tukee Matlab/Simulink ympäristöä omalla lohkokirjastollaan.

(https://se.mathworks.com/hardware-support/lego-mindstorms-ev3-matlab.html)

2.1 Mallinnus

Mallinnuksen lähtökohtana Lego – robotin geometrinen ulkomuoto on yksinkertaistettu ja oletettu laataksi ja kahdeksi kiekoksi, joiden tiheys on vakio, matemaattisen mallin laskentaa varten kuvassa 2.1. Kyseinen ns. heilurimalli on riittävän tarkka kuvaamaan massan kierty- mistä toisin sanoen kulmaa (θ, Ψ, ϕ) ja sen kulmanopeutta (𝜃̇, 𝛹̇, 𝜙̇) kuvassa 2.1 määritetty- jen akseleiden suhteen ja mallinnuksen tuloksena ovat tilaesitykset. Mallinnus perustuu kul- miin (θ, Ψ, ϕ) sekä niiden kulmanopeuksiin (𝜃̇, 𝛹̇, 𝜙̇), jotka ovat myös järjestelmän säädet- täviä suureita.

(10)

10

Kuva 2.1 Lego – robotin yksinkertaistettu heilurimalli, jossa säätöjärjestelmän lähtösuureet ovat zx – tasossa rungon kallistuskulma Ψ sekä renkaan kiertymiskulma θ ja yx – tasossa ϕ on rungon kiertymiskulma. Lisäksi kuvassa ovat laskennassa käytetyt parametrit: L, H, R, W ja D. (Ya- mamoto 2009).

Robotin dynamiikka voidaan esittää tilamallien avulla, (Yamamoto 2009):

𝑥̇1 = 𝐀1𝑥1+ 𝐁1𝑢, (2.1)

𝑥̇2 = 𝐀2𝑥2+ 𝐁2𝑢, (2.2)

jossa A1, A2, B1 ja B2 ovat tilamallin parametrit sisältävät matriisit ja jotka sisältävät matrii- sin E, (Yamamoto 2009):

𝐄 = [(2𝑚 + 𝑀)𝑅2+ 2𝐽w+ 2𝑛2𝐽m 𝑀𝐿𝑅 − 2𝑛2𝐽m

𝑀𝐿𝑅 − 2𝑛2𝐽m 𝑀𝐿2+ 𝐽Ψ+ 2𝑛2𝐽m], (2.3) jossa m on renkaan massa, M on robotin rungon massa, R on renkaan säde, Jw on renkaan hitausmomentti, n on vaihteen välityssuhde, Jm on tasavirtamoottorin roottorin hitausmo- mentti, L on etäisyys renkaan akselilta robotin painopisteeseen ja JΨ on hitausmomentti run- gon kallistuskulman suhteen. Yhtälöiden (2.1) ja (2.2) tilavektori x1 voidaan esittää, (Yama- moto 2009):

𝑥1 = [𝜃 𝛹 𝜃̇ 𝛹̇]𝑇, (2.4)

(11)

jossa θ on renkaan kiertymiskulma ja Ψ on rungon kallistuskulma tunnetun pisteen suhteen pystytasossa sekä niiden derivaatat eli kulmanopeudet. Vastaavasti tilavektori x2 voidaan esittää, (Yamamoto 2009):

𝑥2 = [𝜙 𝜙̇]𝑇, (2.5)

jossa ϕ on rungon kiertymiskulma ja 𝜙̇ on sen kulmanopeus tunnetun pisteen suhteen vaa- katasossa. Tulovektori u voidaan esittää, (Yamamoto 2009):

𝑢 = [𝑣l 𝑣𝑟]𝑇, (2.6)

jossa vl ja vr ovat vasemmalle ja oikealle tasavirtamoottorille syötetyt jänniteohjeet. Systee- mimatriisi A1 on muotoa, (Yamamoto 2009):

𝐀1 = [

0 0 1 0

0 0 0 1

0 −𝑔𝑀𝐿𝐄(1,2)

det(𝐄)

−2[(𝛽+𝑓w)𝐄(2,2)+𝛽𝐄(1,2)]

det(𝐄)

2𝛽[𝐄(2,2)+𝐄(1,2)]

det(𝐄)

0 𝑔𝑀𝐿𝐄(1,1)

det(𝐄)

2[(𝛽+𝑓w)𝐄(1,2)+𝛽𝐄(1,1)]

det(𝐄)

−2𝛽[𝐄(1,1)+𝐄(1,2)]

det(𝐄) ]

, (2.7)

jossa β on vakio ja se lasketaan yhtälöllä, (Yamamoto 2009):

𝛽 =𝑛𝐾t𝐾b

𝑅m + 𝑓m, (2.8)

jossa Kt on tasavirtamoottorin vääntömomenttivakio, Kb on tasavirtamoottorin nopeusvakio, Rm on tasavirtamoottorin resistanssi ja fm on kitkakerroin rungon ja tasavirtamoottorin vä- lillä. Matriisissa (2.7) E(j, k) viittaa matriisin (2.3) kyseiseen alkioon (j = 1,2, k = 1,2), g on putoamiskiihtyvyys ja fw on kitkakerroin renkaan ja lattian välillä. Matriisi A2 on muotoa, (Yamamoto 2009):

𝐀2 = [0 1

0 −𝐽/𝐼], (2.9)

jossa J on vakio ja se lasketaan yhtälöllä, (Yamamoto 2009):

𝐽 = 𝑊2

2𝑅2(𝛽 + 𝑓w), (2.10)

jossa W on rungon leveys. Matriisissa (2.9) I on vakio ja se lasketaan yhtälöllä, (Yamamoto 2009):

(12)

12

𝐼 =1

2𝑚𝑊2 + 𝐽Φ+ 𝑊2

2𝑅2(𝐽w+ 𝑛2𝐽m). (2.11)

jossa JΦ on rungon kaltevuuskulman (yx – tasossa) hitausmomentti. Matriisi B1 ts. tulomat- riisi on muotoa, (Yamamoto 2009):

𝐁1 = [

0 0

0 0

𝛼[𝐄(2,2)+𝐄(1,2)]

det(𝐄)

𝛼[𝐄(2,2)+𝐄(1,2)]

det(𝐄)

−𝛼[𝐄(1,1)+𝐄(1,2)]

det(𝐄)

−𝛼[𝐄(1,1)+𝐄(1,2)]

det(𝐄) ]

, (2.12)

jossa α on vakio ja se lasketaan yhtälöllä, (Yamamoto 2009):

𝛼 =𝑛𝐾t

𝑅m. (2.13)

Matriisissa (2.12) E(j, k) viittaa matriisin (2.3) kyseiseen alkioon. Matriisi B2 ts. tulomatriisi on muotoa, (Yamamoto 2009):

𝐁2 = [ 0 0

−𝐾/𝐼 𝐾/𝐼], (2.14)

jossa K on vakio, joka lasketaan yhtälöllä, (Yamamoto 2009):

𝐾 = 𝑊

2𝑅𝛼. (2.15)

Matriiseihin (2.7) ja (2.12) sijoitettu determinantti lasketaan:

det(𝐄) = [(2𝑚 + 𝑀)𝑅2+ 2𝐽W+ 2𝑛2𝐽m] ∙ (𝑀𝐿2+ 𝐽Ψ+ 2𝑛2𝐽m) − (𝑀𝐿𝑅 − 2𝑛2𝐽m)2. (2.16) Järjestelmän lähtö y on yleisesti muotoa, (Savolainen 1998):

𝑦 = 𝐂𝑥1,2+ 𝐃𝑢, (2.17)

jossa C on lähtömatriisi, x1, 2 on joko tilavektori (2.4) tai (2.5) ja D on myötäkytkennän mat- riisi, joka tässä tapauksessa oletetaan nollaksi koska lähtö y ei riipu tulosta u, (Savolainen 1998), niin yhtälö (2.17) sievenee muotoon, kun tarkasteltava lähtönä y on rungon kallistus- kulma Ψ ja sen derivaatta 𝛹̇:

(13)

𝑦 = 𝐂𝑥1 = [

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1

] [ 𝜃 𝛹 𝜃̇

𝛹̇

] = [ 0 𝛹 0 𝛹̇

]. (2.18)

Säädössä vain paikkaa käytetään takaisinkytkentänä. Tilamalleissa (2.1), (2.2) ja (2.18) lähtö y ja tilavektoreiden derivaatat ajan suhteen 𝑥̇1 sekä 𝑥̇2 riippuvat suoraviivaisesti tulosta u ja tilavektoreista x1, 2 ts. y ja 𝑥̇1 sekä 𝑥̇2 ovat lineaarisia niiden suhteen, joten edellä mainittuja tilamalleja voi kutsua lineaariseksi vakiokertoimiseksi differentiaaliyhtälömalliksi ja sen si- sältämät kerroinmatriisit A1, A2, B1 ja B2 eivät riipu ajasta t. (Savolainen 1998).

2.2 Järjestelmän parametrit

Lego – robotin mallinnus perustuu edellä johdettuihin yhtälöihin sekä mainittuihin paramet- reihin. Taulukossa 2.1 on esitetty laskennassa sekä simuloinnissa käytetyt parametrit, jotka löytyvät myös liitteessä 1 olevasta Matlab - koodista. Liitteenä 1 oleva Matlab – koodi sisäl- tää myös järjestelmän tilamallin.

(14)

14

Taulukko 2.1 Matlab - koodissa käytetyt parametrit ja niiden arvot. Hitausmomentit JΨ ja JΦ on laskettu taulukon yhtälöillä kuvan 2.1 mukaisen kulman pyörähdysakselin suhteen. Renkaan hitaus- momentti Jw on laskettu keskiakselinsa suhteen. (Yamamoto 2009).

Suure Arvo Yksikkö

g 9,81 m/s2

m 0,03 kg

R 0,04 m

Jw = mR2/2 2,4·10-5 kgm2

M 0,6 kg

W 0,14 m

D 0,04 m

H 0,144 m

L = H/2 0,072 m

JΨ = ML2/3 0,001 kgm2

JΦ = M(W2+D2)/12 0,0011 kgm2

Jm 1·10-5 kgm2

Rm 6,69 Ω

Kb 0,468 Vs/rad

Kt 0,317 Nm/A

n 1

fm 0,0022

fw 0

2.3 Analysointi

Heilurimalliin perustuva Lego - robotti ja sen tilayhtälö ovat luonnostaan epästabiileja, koska robotti pyrkii kaatumaan eteen - tai taaksepäin pystyasennosta luonnollisesti vaakata- soon eikä rungon kallistumista saada rajoitettua haluttuun asetusarvoon ilman takaisinkyt- kentään perustuvaa säätöä.

Säätämättömän – ja myös säädetyn järjestelmän dynaamista käyttäytymistä voidaan tutkia napa – nollakohtadiagrammilla kun tunnetaan järjestelmän siirtofunktio, kuva 2.2. Siirto- funktion osoittajan nollakohdat ovat järjestelmän nollia ja nimittäjän nollakohdat ovat jär- jestelmän napoja, jotka näkyvät kuvassa 2.2 merkinnöillä (o) ja (x). (Savolainen 1998).

(15)

Kuva 2.2 Säätämättömän järjestelmän napa – nollakohta – diagrammi kompleksitasossa, jossa rastit (x) ovat järjestelmän napoja (pole) ja ympyrät (o) nollia (zero). Kuvaan on merkitty toinen napa kompleksikonjukaattiparista (7,44 + 1,39·10-7 i) [1/s] oikeaan puolitasoon eli järjestelmä on epästabiili.

Yleisesti ehto järjestelmän stabiilisuudelle on, että kaikki navat sijaitsevat vasemmassa puo- litasossa, kun keskellä on imaginääriakseli. Kun johonkin napaan (x) kuuluu imaginääriosa esim. kuvassa 2.2, niin se aiheuttaa askelvasteeseen värähtelyä ja mitä suurempi on ima- ginääriosan itseisarvo niin sitä suurempi on värähtelyn kulmataajuus. Reaaliakselilla olevat navat (x) eivät siis aiheuta värähtelyä ja yleisesti mitä kauempana napa (x) on origosta (ns.

nopea napa eli pieni aikavakio), sitä pienempi on sen vaikutus järjestelmään, joten lähimpänä origoa olevat navat (x) ovat dominoivimpia. Sama pätee myös nolliin (o) eli kauimmaisilla on vähäisin merkitys ja oikeassa puolitasossa oleva reaaliosaltaan positiivinen nolla (o) ai- heuttaa askelvasteeseen notkahduksen, sitä suuremman mitä lähempänä nolla (o) on origoa.

Niiden sijainti ei vaikuta stabiilisuuteen. (Savolainen 1998).

Tämän tulkinnan sekä kuvan 2.2 perusteella järjestelmä on epästabiili ja vaatii siten takai- sinkytketyn säädön.

(16)

16 3. SÄÄTIMEN SUUNNITTELU JA TESTAUS

Lego – robotin sivusuuntaista kallistuskulmaa säädetään pyörittämällä molempia renkaita tasavirtamoottoreilla samanaikaisesti ts. järjestelmän lähtö eli säädettävä suure on rungon kallistuskulma Ψ, jota mitataan gyrolla eli kallistuskulmasensorilla. Systeemin tuloina toimii yksinkertaistettuna molemmille tasavirtamoottoreille syötettävät jännitteet. Balansoivalla kallistuskulman säädöllä pyritään estämään robotin kaatuminen. Tässä työssä mallinnuk- sessa ja analyysissä ei oteta huomioon robotin vapaata liikkumista eteen- tai taaksepäin eikä kääntymistä paikallaan tai liikkeessä.

Matlabin avulla voidaan tarkastella kuinka stabiili takaisinkytketty järjestelmä eli samalla itse säätö on.

3.1 Simulointimalli

Edellä kuvattujen matriisien (2.3), (2.7), (2.9), (2.12) ja (2.14) alkioiden arvot sekä determi- nantti (2.16) lasketaan Matlabin avulla. Laskennassa hyödynnetään parametrejä, kuten ro- botin massa M sekä fyysisiä dimensioita kuten etäisyys L. Lisäksi robotin dynamiikkaa ku- vataan mekaniikan yhtälöillä, ts. tunnettujen hitausmomenttien Jm, Jw ja JΨ avulla. Lasketut matriisit A1, A2, B1 ja B2 sijoitetaan tilamallia kuvaavaan yhtälöön/yhtälöihin (2.1) ja (2.2), joista seuraavaksi kehitetään järjestelmän siirtofunktio. Se mallinnetaan Simulink – ohjel- maan yhdessä sopivan säätimen kanssa.

Kuvassa 3.1 on esitetty Simulink - ohjelmalla mallinnettu Lego – robotin säätöjärjestelmä, johon kuuluu askeleena syötettävä ohjearvo, eroelin, säädin, saturaatio – lohko, järjestelmän dynamiikkaa kuvaava tilayhtälöt – lohko sekä siitä lähtösuureena saatavat neljä tilasuuretta matriisissa (2.4), joista tarkastellaan vain rungon kallistumiskulmaa Ψ ja sen kulmanopeutta 𝛹̇. Jotta säädettävästä avoimesta järjestelmästä saataisiin stabiili, niin siihen on lisättävä ta- kaisinkytkentä, jolloin säätöjärjestelmästä tulee suljettu. Takaisinkytkentä on toteutettu mit- taamalla kulmaa Ψ Lego – robotin gyro – anturilla, kuva 3.1. Tarkastelussa rungon kallistu- miskulma Ψ on rajattu korkeintaan ± 10 asteeseen, jolloin toimitaan realistisella toiminta - alueella ts. säätöjärjestelmä pystyy estämään Lego – robotin kaatumisen varmuudella.

(17)

Kuva 3.1 Lohkokaavio Lego – robotin takaisinkytketystä säätöjärjestelmästä, jossa mittasuureena gyrolla mitattu rungon kallistuskulma Ψ sekä lähtö - ja mittasuureen erotuksesta laskettava ja PID - säätimelle syötettävä erosuure.

Järjestelmän erosuure PID - säätimelle lasketaan mitta - ja tulosuureen erotuksesta ja sääti- mestä välitetään molempien tasavirtamoottoreiden jänniteohjeet ohjaussuureena tilayhtälöt – lohkolle, joka voidaan käsittää järjestelmän toimilaitteena Simulinkissa. Säätöjärjestelmä käyttää rungon kallistuskulman Ψ ja sen kulmanopeuden 𝛹̇ yksikkönä radiaania ja rad/s, jotka skaalataan asteina syötetystä ohjearvosta. Lähtösuureet skaalataan takaisin asteiksi ja pyörimisnopeus lasketaan kierroksia sekunnissa.

Kuvassa 3.1 säätimen ja tilayhtälöt – lohkon välissä on saturaatio – lohko, jonka tehtävänä on määrätä pulssileveysmoduloidun (PWM) tulosignaalin eli jänniteohjeen ylä - ja alarajat, jotka on asetettu + 100:aan ja – 100:aan. Kun jänniteohje on ylä – ja alarajan välissä niin se läpäisee lohkon muuttumattomana, mutta jos se on näiden rajojen ulkopuolella niin se raja- taan eli saturoidaan joko ylempään tai alempaan rajaan, (Nise 2000).

3.2 Tulokset

Kun kuvan 3.1 säätöjärjestelmän tulosuureena (referenssinä) Ψref on 0 astetta, joka kuvaa robotin pystyasentoa. Stabilointia kuvataan asettamalla tilayhtälöt – lohkoon alkukulmaksi 8 astetta. Muutostilanteessa rungon kallistuskulman Ψ ja sen kulmanopeuden 𝛹̇ askelvasteet ovat kuvien 3.2 ja 3.3 mukaiset. Suunnittelun lähtökohdaksi on valittu PID – säädin sen monipuolisuuden takia (Savolainen 1998) ja johon on optimoitu parametrit käyttäen apuna

(18)

18

Simulinkin autotune - ominaisuutta: KP = - 193,1, KI = - 3595 ja KD = - 0,4541. Johtuen parametrien optimoimisesta PID - säädin ei jätä jatkuvuustilan virhettä asetusarvon 0 astetta ja rungon kallistumiskulman Ψ välille, kuva 3.2.

Kuva 3.2 Rungon kallistumiskulma Ψ [°] ajan t [s] funktiona (punainen käyrä) kun asetusarvoksi on syötetty 0 ° (sininen käyrä) ja kun alkukulma on 8 °. PID – säätimen parametrit ovat: KP = - 193,1, KI = - 3595 ja KD = - 0,4541.

Kulmanopeus 𝛹̇ laskee kiihtyvästi heti arvoon noin - 2 1/s eli moottorit pyörittävät renkaita negatiiviseen ts. päinvastaiseen suuntaan kuin 8 asteen kallistuma ja tämän jälkeen kul- manopeus 𝛹̇ nousee nollaan samalla hidastuen eli moottorit pysähtyvät, kuva 3.3.

(19)

Kuva 3.3 Rungon kallistumiskulman kulmanopeus 𝛹̇ laskettuna pyörimisnopeudeksi [1/s] ajan t [s]

funktiona kun asetusarvoksi on syötetty 0 ° ja kun alkukulma on 8 °. PID – säätimen paramet- rit ovat: KP = - 193,1, KI = - 3595 ja KD = - 0,4541.

Kuvan 3.2 perusteella robotin paikoitus on mahdollista tarkasti pysty – eli tasapaino - asen- toon kun liike lähtee paikaltaan (𝛹̇ = 0) ja alkukulmasta 8 astetta.

PID – säädin syöttää ohjaussuureen tilayhtälöt – lohkolle eli käytännössä vasemman – ja oikean tasavirtamoottorin jänniteohjeen (vl, vr), jotka ovat samat koska molempia renkaita pyöritetään synkronoidusti. Kun alussa rungon kallistuskulma Ψ ja myös mittasuure on 8 astetta, niin PID - säätimen syöttämät jänniteohjeet ovat suurimmillaan. Erosuureen pienen- tyessä ja kallistumiskulman Ψ lähestyessä tasapainoasemaa eli 0 astetta, niin jänniteohjeet- kin ensin pienentyvät jyrkästi ja kun kallistumiskulma Ψ ylittää tasapainoaseman eli renkai- den pyörimissuunta vaihtuu, niin jänniteohjeet muuttuvat negatiivisiksi. Lopulta jänniteoh- jeet asettuvat nollaan moottoreiden pysähdyttyä tasapainoasemassa, kuva 3.4. Erosuure on nolla, kun mitta – ja tulosuureen erotus on nolla.

(20)

20

Kuva 3.4 PID - säätimen jänniteohje ajan t [s] funktiona kun rungon kallistumiskulma Ψ ja sen kul- manopeus 𝛹̇ ovat kuvien 3.2 ja 3.3 mukaiset. Kuvassa kanavien signaalit (Mux) ovat päällek- käin eli samat ja vastaavat jänniteohjeita eli ohjaussuuretta tilayhtälöt – lohkolle.

(21)

4. YHTEENVETO/JOHTOPÄÄTÖKSET

Kaksipyöräisen Lego Mindstorms EV3 – robotin dynamiikan kuvaamiseen tarvitaan matrii- simuotoisia tilamalleja, jotka sisältävät tulovektorin u ja tilavektorit (x1, x2) sekä tilamallin parametrit sisältävät matriisit (A1, A2, B1 ja B2). Tilavektorit esittävät järjestelmän säädettä- viä suureita, joista mallinnuksessa tarvitaan käytännössä vain kahta (Ψ, 𝛹̇). Tilamalliin kuu- luu myös järjestelmän lähtö y, joka sisältää lähtömatriisin C ja tilavektorin x1.

Lego – robotti on luonnostaan epästabiili eikä pysy ilman säätöä tasapaino – eli pystyasen- nossa eli pelkästään matriisimuotoiset tilamallit ja – lähtö muodostavat epästabiilin avoimen piirin. Avoimesta – sekä suljetusta piiristä voi muodostaa myös s – tason siirtofunktion ti- layhtälöiden matriiseilla ja esimerkiksi avoimen piirin siirtofunktiosta voi muodostaa napa – nollakohtadiagrammin, jonka avulla tutkitaan stabiilisuutta Matlabissa. Järjestelmän sta- biloimiseksi siihen lisätään takaisinkytkentä, joka on myös mittasuure robotin kallistuskul- masensorilta eli gyrolta, ja sopiva säädin tilayhtälöt – lohkon kanssa sarjaan Simulinkissa, jolloin säätöjärjestelmästä tulee suljettu. Säätöjärjestelmässä käytetään PID – säädintä, jonka parametrit voi syöttää joko manuaalisesti tai optimoida Simulinkin avulla automaattisesti.

Tehdyn mallinnuksen avulla voidaan tutkia ja visualisoida erilaisen säätimen vaikutusta jär- jestelmän askelvasteeseen eli lähtöön sekä kuinka parametrien esim. robotin eri osien mas- sojen tai fyysisten mittojen muuttaminen Matlabissa vaikuttaa tilamalleihin ts. järjestelmän dynamiikkaan ja itse säätöön Simulinkin puolella. Lisäksi säätimen vapaan valinnan lisäksi sen parametrejä voi myös vapaasti itse kokeilla vaikka Simulinkissa onkin autotune – omi- naisuus parametrien optimoimiseksi ja näin havainnoida niiden vaikutusta rungon kallistus- kulmaan Ψ ja sen kulmanopeuteen 𝛹̇ eli lähtöihin. Näin ollen voidaan kokeilla manuaalisesti erilaisia säätimiä eri parametreilla ja hakea parasta kombinaatiota, vaikka se ei ole nopein tapa.

Säädön todettiin olevan tarkka, jos liike lähtee paikaltaan aloituskulmasta 8 astetta ja tu- losuureena 0 astetta eli pystyasento.

Jatkokehittelyssä voidaan myös tarkastella kahta muutakin lähtösuuretta (θ, ϕ). Jälkimmäi- sen kulman tapauksessa pitäisi kuvan 3.1 mukaisessa lohkokaaviossa vaihtaa matriisit A1

sekä B1 A2:een sekä B2:een ja muokata lähtömatriisia C tilayhtälöt – lohkossa. Renkaan

(22)

22

kiertymiskulman θ tapauksessa riittäisi vain lähtömatriisin C muokkaus sekä takaisinkyt- kennän lisääminen tälle lähdölle. Kaikkien kolmen kulman yhtäaikainen säätäminen vaatisi jo suurempia lisäyksiä lohkokaavioon mm. uuden tilayhtälöt .- lohkon ja sille säätimen ta- kaisinkytkentöineen samoin kuin kahden uuden tulon lisäyksen nykyiseen verrattuna. Mal- lintamisessa ei otettu huomioon ns. häiriösuuretta esim. robottia tönäistään sormella sen ol- lessa liikkeessä, mutta sen lisääminen onnistuu Simulinkissa. Lisäksi säädön ja sen virityk- sen verifiointi on hankalaa pelkästään simulointimallin avulla, koska oikea robotti on epäli- neaarinen ja sisältää useita epäideaalisuuksia.

(23)

LÄHTEET

Afari, E., Khine, M. S. 2017. Robotics as an Educational Tool: Impact of Lego Mindstorms.

IJIET, Vol. 7, No. 6, s. 437 – 442.

Alimisis, D., Menegatti, E., Moro, M. 2016. Educational Robotics in the Makers Era.

EDUMOTIVA. International Conference: Educational Robotics 2016. November 25, Ath- ens, Greece.

LEGO MINDSTORMS EV3 Support from MATLAB [verkkodokumentti]. [viitattu 19.5.2019]. Saatavissa

https://se.mathworks.com/hardware-support/lego-mindstorms-ev3-matlab.html

Nise, N. S. 2000. Control Systems Engineering. Third Edition. New York: Wiley.

Norouzi Kandalan, R. 2016. The Modeling and Simulation of EV3 Motor Dynamics. Uni- versity of North Texas. [verkkodokumentti]. [viitattu 8.10.2018]. Saatavissa

https://digital.library.unt.edu/ark:/67531/metadc862751/

Savolainen, J., Vaittinen, R. 1998. Säätötekniikan perusteita. 2. painos. Saarijärvi: Gumme- rus Kirjapaino Oy

Silfver, T. 2018. Control Synthesis for Balancing Robots. Aalto University. Espoo.

Valk, L. 2016. Tutorial: Self – Balancing EV3 Robot [verkkodokumentti]. [Viitattu 4.5.2019]. Saatavissa:

http://robotsquare.com/2014/07/01/tutorial-ev3-self-balancing-robot/

Yamamoto, Y. 2009. NXTway-GS Model-Based Design – Control of self-balancing two–

wheeled robot built with LEGO Mindstorms NXT. First Edition. Cybernet Systems Co., Ltd.

(24)

LIITE I LIITTEET

Matlab – koodi Lego – robotin mallinnuksesta clc

clearvars close all

%vakiot

g=9.81;%putoamiskiihtyvyys, [m/s^2]

m=0.03;%renkaan massa, [kg]

R=0.04;%renkaan säde, [m]

Jw=m*R^2/2;%renkaan hitausmomentti, [kgm^2]

M=0.6;%rungon massa, [kg]

W=0.14;%rungon leveys, [m]

D=0.04;%rungon syvyys, [m]

H=0.144;%rungon korkeus, [m]

L=H/2;%massakeskipisteen etäisyys renkaan akselilta, [m]

Jksii=M*L^2/3;%rungon kaltevuuskulman (zx -tasossa) hitausmo- mentti, [kgm^2]

Jfii=M*(W^2+D^2)/12;%rungon kaltevuuskulman (yx -tasossa) hi- tausmomentti, [kgm^2]

Jm=1e-5;%tasavirtamoottorin hitausmomentti, [kgm^2]

Rm=6.69;%tasavirtamoottorin resistanssi, [ohm]

Kb=0.468;%tasavirtamoottorin nopeusvakio (back EMF constant), [Vs/rad]

Kt=0.317;%tasavirtamoottorin vääntömomenttivakio (torque constant), [Nm/A]

n=1;%välityssuhde

fm=0.0022;%kitkakerroin rungon ja tasavirtamoottorin välillä fW=0;%kitkakerroin renkaan ja lattian välillä

alfa=n*Kt/Rm;%vakio

beta=(n*Kt*Kb)/Rm+fm;%vakio

I=0.5*m*W^2+Jfii+W^2/(2*R^2)*(Jw+n^2*Jm);%vakio J=W^2/(2*R^2)*(beta+fW);%vakio

K=W/(2*R)*alfa;%vakio

%matriisit

E=[(2*m+M)*R^2+2*Jw+2*n^2*Jm M*L*R-2*n^2*Jm;M*L*R-2*n^2*Jm M*L^2+Jksii+2*n^2*Jm];%E matriisi

A1_32=-g*M*L*E(1,2)/det(E);%A1 matriisin 3. rivi, 2. sarake A1_42=g*M*L*E(1,1)/det(E);%A1 matriisin 4. rivi, 2. sarake A1_33=-2*((beta+fW)*E(2,2)+beta*E(1,2))/det(E);%A1 matriisin 3. rivi, 3. sarake

A1_43=2*((beta+fW)*E(1,2)+beta*E(1,1))/det(E);%A1 matriisin 4. rivi, 3. sarake

A1_34=2*beta*(E(2,2)+E(1,2))/det(E);%A1 matriisin 3. rivi, 4.

sarake

A1_44=-2*beta*(E(1,1)+E(1,2))/det(E);%A1 matriisin 4. rivi, 4. sarake

B1_3=alfa*(E(2,2)+E(1,2))/det(E);%B1 matriisin 3. rivi B1_4=-alfa*(E(1,1)+E(1,2))/det(E);%B1 matriisin 4. rivi

(25)

C1=[0 0 0 0;0 1 0 0;0 0 0 0;0 0 0 1];%y1=C*x1 C2=[1 0;0 1];%y2=C2*x2

D1=[0 0;0 0;0 0;0 0];%D1 matriisi

A1=[0 0 1 0;0 0 0 1;0 A1_32 A1_33 A1_34;0 A1_42 A1_43 A1_44];%A1 matriisi

B1=[0 0;0 0;B1_3 B1_3;B1_4 B1_4];%B1 matriisi A2=[0 1;0 -J/I];%A2 matriisi

B2=[0 0;-K/I K/I];%B2 matriisi

I1=eye(4);%I1 matriisi eli 4x4 yksikkömatriisi

sys=ss(A1,B1,C1,0);%x1' eli matriiseista A1, B1 ja C1 luotu tilamalli

% (state-space)

step(sys);%x1' askelvaste figure(2);

sys2=ss(A2,B2,C2,0);%x2' eli matriiseista A2, B2 ja C2 luotu tilamalli

% (state-space)

step(sys2);%x2' askelvaste

G=tf(sys);%x1' tilamallista luotu siirtofunktio (transfer function)

Kp = -193.1;%proportionaalinen vahvistus Ki = -3595;%integrointivahvistus

Kd = -.4541;%derivointivahvistus s = tf('s');%Laplace muuttuja s

PID = Kp+Ki/s+Kd*s;%PID-säätimen siirtofunktio T=C1*((s*I1-A1)^-1)*B1%järjestelmän siirtofunktio Gavoin = T*Kp;%lähtö T ilman takaisinkytkentää

G_suljettu=feedback(T(2,1)*PID,1)%takaisinkytketty suljettu piiri: input 1,

%output 2 figure(3);

step(G_suljettu);%suljetun piirin askelvaste title('Askelvaste');

figure(4);

pzmap(T);%luo kuvaajan,jossa ovat säätämättömän piirin navat ja nollat

Viittaukset

LIITTYVÄT TIEDOSTOT

Tämän vuoksi robotti tulee suunnitella siten, että se on helppo purkaa osakokonai- suuksiin ja helppo koota takaisin.. Myös tietojen käsittely toiminnan onnistumisesta, ro-

Lopulliseen aineis- toon päätyivät elokuvat: Angry Birds 2-elokuva, Corgi-Kuningattaren koiranpentu, Frozen 2, Lego 2-elokuva, Lemmikkien salainen elämä 2, Näin

Imberman Susan (2003): Teaching Neural Networks Using LEGO Handy Board Robots in an Artificial Intelligence Course, SIGCSE, Special Interest Group on Computer Science Education,

As a special education teacher, Danielle decided to form a FIRST LEGO League Challenge team for her students with intellectual disabilities – the first team of its kind in

Jos oppilas siirtyy toisen opetuksen tai koulutuksen järjestäjän opetukseen tai koulutukseen, aikaisemman opetuksen järjestäjän on pyydettävä oppilaan tai tarvittaessa

VTT:n kehittämä robotin dynaaminen tur- vajärjestelmä mahdollistaa aidattoman ro- bottisolun, jossa ihminen ja robotti voivat työskennellä samalla alueella ja robottia

Tässä tutkimuksessa on keskitytty metalliteollisuuden alihankintatoiminnan johtamisproblematiikkaan tavoitteena kehittää käytännöllisen alihankintayhteis- työn

Tätä havaintoa tuki myös tutkimus (Ilomaa 2008, 62), jossa todettiin, että yleisesti ottaen oppilaat ovat kykeneviä ja motivoituneita käyttämään ja tutustumaan