ELEC-C1110 Automaatio- ja systeemitekniikan

Transcription

ELEC-C1110 Automaatio- ja systeemitekniikan
ELEC-C1110 Automaatio- ja
systeemitekniikan perusteet
Harjoitustyö 1
Kevät 2016
1. Johdanto
Kurssin ensimmäisessä pakollisessa harjoitustyössä tarkastellaan robottikäsivarsijärjestelmää, joka
esitellään tarkemmin luvussa 2. Tavoitteena on mallintaa robotin yksittäisen nivelen dynamiikkaa ja
simuloida sitä Matlabin Simulink-ohjelmistolla. Harjoitustyössä vaaditut tehtävät ja palautettavan
raportin rakenne kuvaillaan luvuissa 3 ja 4. Tehtävänannon lopussa on vinkkejä harjoitustyöhön.
Parit: Harjoitustyö tehdään pareittain tai tarvittaessa yksin. Parin voi valita vapaasti. Pareja ei tarvitse ilmoittaa kurssihenkilökunnalle. Paria saa vaihtaa toiseen harjoitustyöhön.
Työn palautus: Raportti ja Simulink-tiedosto palautetaan viimeistään 28.2.2016 kello 23.55 kurssin MyCourses-sivun palautuslaatikkoon. Riittää, että toinen ryhmän jäsenistä palauttaa tiedostot.
Harjoitustyön arviointi: Ensimmäinen harjoitustyö muodostaa neljäsosan kurssiarvosanasta. Harjoitustyöstä täytyy saada vähintään 40 prosenttia maksimipisteistä. Palautetun raportin selkeydellä
(katso luku 4) on keskeinen osa harjoitustyön arvostelussa.
Kysymykset harjoitustyöstä: Lähetä mahdolliset kysymykset sähköpostilla harjoitustyöassistentti
Mikko Vihlmanille (mikko.vihlman at aalto.fi). Lähetä samalla mahdollisimman paljon informaatiota, kuten toimimaton Simulink-malli. Harjoitustyöassistentin kanssa voi tarvittaessa sopia myös
lyhyen tapaamisen. Yleisistä ongelmista ja muista esille nousevista asioista tiedotetaan kurssin
MyCourses-sivulla. Siellä voi myös esittää kysymyksiä harjoitustyöstä yleisellä tasolla.
Harjoitustyön materiaali: Harjoitustyö liittyy erityisesti kurssin neljän ensimmäisen luennon aiheisiin ja vastaavia asioita käsitteleviin laskuharjoitustehtäviin.
Tehtävänannon liitteet: Simulink-toteutuksen pohjana kannattaa käyttää annettua Simulinkmallipohjaa Harjoitustyo_1_pohja.slx. Tiedosto on tehty Matlabin versiolla R2014b ja sitä on testattu myös versioilla R2015a ja R2015b. Oheislukemisena kannattaa käyttää kurssin MyCoursesmateriaaleista löytyvää lyhyttä Simulink-johdantoa (Simulink-ohje.pdf ja simulink_esimerkkeja.slx).
Ohjelmisto: Työssä käytetään Matlabia ja erityisesti sen Simulink-ohjelmistoa. Matlab on opiskelijoiden käytössä yliopiston Otaniemen kampuksen tietokoneilla, ja sen voi ladata omalle tietokoneelleen opiskelukäyttöön osoitteesta http://download.aalto.fi . Kannattaa huomata, että tietyllä Simulink-versiolla tehty tiedosto ei välttämättä toimi oikein toisella Simulink-versiolla.
Työskentely ja eettiset ohjeet: Työmäärän on tarkoitus jakaantua parin jäsenten välillä tasapuolisesti. Molempien kannattaa opetella harjoitustyön asiat kunnolla, koska ne ovat tarpeellisia kurssin
tentissä. Ilmoita harjoitustyöassistentille, jos parisi ei osallistu työhön kunnolla. Jos teet harjoitustyön yksin, työ on tarkoitus tehdä itsenäisesti. Plagiointi parien välillä on kielletty. Lisää tietoa Aalto-yliopiston eettisissä ohjeissa https://into.aalto.fi/pages/viewpage.action?pageId=3772443 .
1
2. Järjestelmä
Tarkasteltavana on robottikäsivarsijärjestelmä, jonka virtuaalinen malli on esitetty kuvassa 1. Robotin osien nimitykset juontuvat etäisesti ihmisen käsivartta muistuttavasta rakenteesta. Tämä on tyypillistä robottikäsivarsien osien nimeämisessä. Robotilla on kaksi vartta, olkavarsi ja kyynärvarsi,
joita ohjataan säätämällä olkanivelen ja kyynärnivelen kulmia. Kyynärvarren päässä on rannenivelellä pyöritettävä tarttuja, jolla robotti voi poimia siirrettäviä tavaroita esimerkiksi tuotantolinjalla.
Robotin ohjaus tapahtuu muuttamalla nivelissä olevien moottoreiden vääntömomentteja. Kaikki
kolme niveltä (olkanivel, kyynärnivel ja rannenivel) pyörivät rajattomasti.
Kuva 1. Tarkasteltava robottikäsivarsi.
Robotin nivelet noudattavat kukin pääosin samaa dynamiikkaa, jonka mallintamisessa pitää huomioida seuraavat kolme asiaa:
1. Kussakin nivelessä on moottori, jonka vääntömomentilla kyseistä niveltä ohjataan.
2. Kussakin nivelessä on pyörimiseen vaikuttavaa kitkaa.
3. Kussakin nivelessä on robotin osien massojen aiheuttamaa hitautta.
Loput voimat voidaan jättää huomiotta. Harjoitustyössä tehdään siis monia yksinkertaistavia oletuksia, esimerkiksi seuraavat:




Niveltä ohjaavan moottorin sisäistä toimintaa ei mallinneta, vaan moottorille annetaan suoraan siltä haluttu vääntömomentti.
Yksittäisen nivelen vääntömomentti ei näy suoraan muissa nivelissä.
Keskipakois-/keskihakuvoimaa, Coriolis-voimia, ilmanvastusta tai muita mainitsematta jääneitä luonnonilmiöitä ei huomioida.
Liikettä tarkastellaan ainoastaan tasossa. Robotti ei liiku ylös tai alas.
2
Kunkin nivelen dynamiikkamallissa täytyy siis huomioida ainoastaan niveltä ohjaavan moottorin
vääntömomentti sekä nivelen kitka ja hitaus. Nivelten kitkaan vaikuttaa todellisuudessa monta tekijää, mutta se mallinnetaan tässä harjoitustyössä kokonaan viskoosina kitkana, joka on suoraan verrannollinen pyörimisnopeuteen. Hitautta puolestaan mallinnetaan kullekin nivelelle ominaisella
hitausmomentilla. Kunkin nivelen vaimennusvakiot ja hitausmomentit on listattu taulukkoon 1.
Alaindekseillä O, K ja R viitataan olkaniveleen, kyynärniveleen ja ranneniveleen. Olkanivelen hitausmomentti on muihin niveliin nähden hieman monimutkaisempi, koska olkaniveleen kohdistuu
myös kyynärvarren vaikutus. Tarttujan asennon vaikutus olka- ja kyynärniveleen on häviävän pieni.
Olkanivelen hitausmomentti siis riippuu kyynärnivelen kulmasta, mutta kyynärnivelen ja tarttujan
hitausmomentit ovat vakiot.
Taulukko 1. Robotin nivelten hitausmomentit ja nivelten kitkaan liittyvät vaimennusvakiot.
Suure
Lukuarvo/kaava
: Olkanivelen hitausmomentti
jossa
,
on kyynärnivelen kiertymiskulma
: Kyynärnivelen hitausmomentti
: Rannenivelen hitausmomentti
: Olkanivelen vaimennusvakio
: Kyynärnivelen vaimennusvakio
: Rannenivelen vaimennusvakio
3. Tehtävät
Harjoitustyössä mallinnetaan ja simuloidaan ainoastaan olkanivelen dynamiikkaa. Oletetaan siis,
että kyynärnivel ja rannenivel on lukittu tiukasti paikoilleen kulmiin
Robotti on
aluksi levossa ja olkanivelen kulma on
. Olkanivelelle annetaan yksi pulssimainen syöte,
jonka korkeus on 10 yksikköä ja kesto on 0,1 sekuntia (likimäärin yksikköimpulssi). Yhden pulssin
jälkeen syöte pidetään arvossa 0. Tavoitteena on mallintaa olkanivelen pyörimisliikettä ja tarkastella, millaisen pyörimisliikkeen kyseinen vääntömomentti tuottaa. Varsinaiset tehtävät ovat seuraavat:
Tehtävä 1: Olkanivelen dynamiikkayhtälön muodostaminen ja simulointi
 Johda olkanivelen dynamiikkayhtälö, siis differentiaaliyhtälö, joka kuvaa olkanivelen pyörimisliikettä. Taulukossa 1 annettua hitausmomentin yhtälöä ei tarvitse johtaa, mutta se pitää
kuvailla. Mallin täytyy toimia mielivaltaisella vakioarvoisella kyynärnivelen kulmalla
,
vaikka kulma pidetäänkin tässä harjoitustyössä arvossa
.
 Kuvaile (ilman simulointia) nivelen toimintaa pulssimaisella syötteellä. Mitä uskot tapahtuvan, kun vääntömomentti laitetaan päälle? Entä kun vääntömomentti menee takaisin pois
päältä? Miten kukin differentiaaliyhtälön osa vaikuttaa odottamiisi tapahtumiin?
 Toteuta dynamiikkayhtälö ja simuloi olkanivelen kulmaa ja kulmanopeutta yllä kuvatulla
pulssisyötteellä 500 sekuntia. Mikä on kulma hetkillä 10 s, 30 s, 100 s ja 500 s? Mikä on nivelen suurin pyörimisnopeus? Esittele raportissa Simulink-toteutus, kulman ja kulmanopeuden kuvaajat ja pyydetyt lukemat. Vertaa kuvaajia toisiinsa ja ennakko-odotuksiisi.
3
Tehtävä 2: Kulmanopeuden simulointi Laplace-muunnoksen avulla
 Oletetaan nyt, että kyynärnivelen kulma todellakin on koko ajan arvossa
. Muotoile
olkanivelen differentiaaliyhtälö kulmanopeuden
ja/tai sen derivaattojen funktiona. Laplace-muunna yhtälö ja muodosta siirtofunktio vääntömomentilta kulmanopeudelle. Oleta
siis, että vääntömomentin
ja kulmanopeuden
Laplace-muunnokset ovat
ja
, ja laske Laplace-muunnetusta differentiaaliyhtälöstä suhde
Voit
halutessasi käyttää symbolien
ja
tilalla symboleita
ja
.
 Toteuta siirtofunktio Simulink-malliin ja simuloi sitä samalla pulssisyötteellä kuin tehtävässä 1. Esittele raportissa Simulink-toteutus ja siirtofunktion ulostulona saatu kulmanopeuden
kuvaaja. Vertaa sitä tehtävässä 1 saatuun kulmanopeuden kuvaajaan.
 Laske olkanivelen kulmanopeuden impulssivaste ajan funktiona. Oleta siis, että vääntömomentin Laplace-muunnos on
ja laske Laplace-käänteismuunnoksella
.
 Toteuta saatu impulssivasteen funktio annettuun Simulink-pohjaan ja simuloi sitä (syötteenä
on nyt vain simulointiaika). Esittele raportissa Simulink-toteutus ja saatu impulssivasteen
kuvaaja. Vertaa impulssivastetta edellä saatuihin nopeuden kuvaajiin.
Tehtävä 3: Kulman simulointi Laplace-muunnoksen avulla
 Oletetaan yhä, että kyynärnivelen kulma on
. Tee tehtävä 2 uudestaan olkanivelen
kulmalle . Muotoile siis differentiaaliyhtälö kulman
ja/tai sen derivaattojen funktiona.
Muodosta sitten siirtofunktio vääntömomentilta nivelkulmalle,
, jossa
on olkanivelen kulman Laplace-muunnos. Toteuta siirtofunktio Simulink-malliin ja
simuloi sitä tehtävän 1 pulssimaisella syötteellä. Laske sitten käänteismuunnoksella impulssivaste ajan funktiona,
, toteuta se Simulink-malliin ja simuloi sitä (syötteenä simulointiaika). Esittele Simulink-toteutukset ja saadut kuvaajat. Vertaa tuloksia tehtävään 1.
Tehtävä 4: Pohdinta
 Kirjoita lopuksi lyhyt pohdinta. Miten työssä tarkastellut kolme simulointitapaa eroavat lähestymis- ja toteutustavoiltaan? Onko menetelmillä etuja tai huonoja puolia? Miten menetelmillä saadut tulokset eroavat toisistaan ja miksi? Millaiset vasteet saataisiin, jos tarkasteltaisiin olkanivelen sijasta kyynär- tai ranneniveltä, tai impulssivasteen sijasta askelvastetta?
Jos jokin meni harjoitustyössä pieleen, mistä se voisi johtua?
Tehtävä 5: Palaute
 Kirjoita harjoitustyöstä rakentavaa palautetta.
4. Raportti
Tehkää raportti, joka sisältää ratkaisut edellä kuvattuihin tehtäviin. Tavoitteena on, että lukija pystyy raportin perusteella ymmärtämään tehdyt asiat ja tulokset lukematta tehtävänantoa ja näkemättä
Simulink-tiedostoa. Näyttäkää ja kuvailkaa siis kaikki pyydetyt tai muuten tarpeelliset kuvaajat ja
Simulink-mallin osat. Pitäkää raporttinne mahdollisimman ytimekkäänä, mutta muistakaa perustella
kukin vaihe ja selittää selkeästi, mitä olette tekemässä. Näyttäkää laskutoimitusten välivaiheet.
Muistakaa merkitä mahdolliset lähteet (esimerkiksi kaavakokoelma) tekstiin. Kuvien, kaavojen,
välivaiheiden ja/tai selitysten puute voi alentaa harjoitustyöstä saatavaa pistemäärää merkittävästi.
4
Raportin ensimmäinen sivu on nimilehti, josta ilmenee opiskelijoiden nimet, opiskelijanumerot ja
sähköpostiosoitteet. Muuten raportin rakenteen voi valita vapaasti. Raportti voi esimerkiksi noudattaa luvussa 3 olevaa tehtävien järjestystä. Toinen hyvä vaihtoehto on johtaa ja esitellä ensin kaikki
kaavat, ja näyttää sitten Simulink-toteutukset, simulointitulokset ja pohdinnan. Raportin kieli voi
olla suomi, ruotsi tai englanti. Raportti ja Simulink-malli palautetaan kurssin MyCourses-sivun palautuslaatikkoon. Raportti palautetaan mieluiten PDF-muodossa, mutta myös DOC-, DOCX- tai
ODT-tiedostomuodot ovat sallittuja. Laittakaa tiedostojen nimiin omat sukunimenne (ä, å ja ö muutetaan a:ksi ja o:ksi), esimerkiksi:
HT1_Virtanen_Jarvinen.pdf
HT1_Virtanen_Jarvinen.slx
5. Vinkkejä tehtäviin










MyCourses-sivulla oleva Simulink-johdanto (Simulink-ohje.pdf ja simulink_esimerkkeja.slx)
kannattaa käydä kunnolla läpi ennen Simulink-toteutuksen aloittamista.
Simulink-tehtävät kannattaa tehdä yhdellä mallilla, annettuun Simulink-pohjaan. Siinä on
valmiiksi vaaditut syötteet ja ulostulot. Malliin tarvitsee toteuttaa vain sen alijärjestelmät.
Tehtävässä 1 kannattaa lähteä liikkeelle pyörimisliikkeen perusyhtälöstä
, joka on
analoginen lineaarisen liikkeen yhtälölle
. Pyörimisliikkeen yhtälössä kokonaisvoima
on korvattu kokonaisvääntömomentilla
, massa
on korvattu hitausmomentilla ja lineaarinen kiihtyvyys kulmakiihtyvyydellä .
Tehtävässä 1 saatua differentiaaliyhtälöä ei ole tarkoitus ratkaista käsin, vaan Simulinkin integraattori-lohkoilla. Tästä on esimerkkejä Simulink-johdannossa.
Simulinkissä ja Matlabissa kulmat ovat oletuksena radiaaneja. Työssä on tarkoitus käyttää
radiaaneja, eikä mitään muunnoksia asteista radiaaneihin tai radiaaneista asteisiin tarvita.
Hitausmomentin laskennassa tarvittavan kosinifunktion voi toteuttaa esimerkiksi kategoriasta Math Operations löytyvällä Trigonometric Function -lohkolla.
Siirtofunktio kannattaa toteuttaa kategoriasta Continuous löytyvällä Transfer Fcn -lohkolla,
jonka asetuksiin asetetaan osoittajan ja nimittäjän kertoimet. Lohkoon asetettu siirtofunktio
näkyy lohkon kuvassa; tarvittaessa lohkoa voi suurentaa, jotta funktio näkyy kokonaan.
Nopein tapa toteuttaa Laplace-käänteismuunnoksella saatu impulssivasteen funktio lienee
kategoriasta User-Defined Functions löytyvä Fcn-lohko, johon voi kirjoittaa suoraan muodostetun kaavan. Lohkon sisääntuloksi laitetaan aika, jonka pitäisi olla vakioparametrien lisäksi ainoa muuttuja lopullisessa impulssivasteen kaavassa. Funktiolohko näyttää siirtofunktiolohkon tapaan sisältönsä lohkon kuvassa, olettaen että kuva on laitettu riittävän suureksi.
Vasteita voi halutessa tarkastella myös Matlabin puolella korvaamalla mallipohjassa olevat
Scope-lohkot To Workspace -lohkoilla.
Simulink-mallin muuntaminen kuvaksi tapahtuu helpoimmin Edit-valikon komennolla Copy
Current View to Clipboard ja valitsemalla formaatiksi mieluiten Metafile (Windows), muuten Bitmap. Windows-ympäristössä yksittäisen ikkunan (esimerkiksi scope-kuvaajan) sisällön saa kopioitua leikepöydälle näppäinyhdistelmällä Alt + Prt Sc, kun ikkuna on aktiivinen.
Sama toimii monissa linux-versioissa, mutta kuva saattaa leikepöydän sijasta tallentua suoraan tiedostoksi. Tarvittaessa kannattaa katsoa kyseisen järjestelmän pikanäppäinkomennot.
5