AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Power Steering for ATV 15.1. - Loppuraportti Työn valvoja: Ville Matikainen Projektin tekijät: Juuso Meriläinen Antti Alakiikonen Aleksi Vulli Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 1/14
Sisältö 1. Projektin esittely ja tavoite 2. Suunnitelma 2.1 Työvaiheet 2.2 Suunnitelman toteutuminen ja ajankäyttö 3. Työn tulokset 3.1 Ohjaussensorin toimintaperiaate 3.2 Alkuperäisen ohjaustehostimen toiminnan emulointi 3.3 Manuaalimoodin kytkeminen ohjauspyörää kääntämällä 3.4 Ohjelmakoodin refaktorointi 3.5 Testaus mönkijään asennettuna 4. Yhteenveto 5. Viitteet 6. Liitteet Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 2/14
1. Projektin esittely ja tavoite Tässä työssa jatkamme viime syksynä 2013 alkanutta projektia mönkijän instrumentoinnista autonomiseen käyttöön. Projektin laajuudesta johtuen koko työtä ei saatu valmiiksi yhdessä lukukaudessa, ja tämän osaprojektin tavoitteena oli kehittää mönkijän ohjausta eteenpäin. Mönkijän ohjausjärjestelmää on projektin aiemmissa vaiheissa implementoitu kahteen CoDeSys alustaiseen EPEC ohjausyksikköön. Järjestelmän toiminta on hajautettu näihin siten, että toinen yksiköistä ( Steering and Odometry ) vastaa mönkijän kääntämisestä sekä odometriasta, kun taas toisen yksikön ( Acceleration and Dashboard ) tehtävänä on toteuttaa nopeusohjaus ja kojelaudan toiminnot. Yksiköiden välinen kommunikointi on toteutettu CAN väylällä. Syksyllä 2013 mönkijän autonomista ohjausta varten hankittiin jälkiasenteinen ohjaustehostin, joka ohjelmoitiin kääntämään renkaita toisen EPEC ohjausyksikön avulla. Syksyn projektiryhmä asensi ohjaustehostimen mönkijään ja asensi siihen lisäksi enkooderin ohjauskulman määrittämiseksi. Tämän työn tehtävänä oli kolme osa aluetta liittyen ohjaustehostimen laajamittaisempaan käyttöönottoon. Ensiksi ohjaustehostimen ratin vääntömomenttia mittaavan anturin toimintaperiaate selvitetään, jotta sitä voidaan hyödyntää ohjaustehostimen ohjauksessa myös erillisellä ohjausyksiköllä, alkuperäisen ohjausyksikön sijaan. Toiseksi ohjaustehostimen toiminta emuloidaan toimimaan uudella ohjausyksiköllä niin, että alkuperäistä voimasensoria hyödynnetään ohjauksen helpottamiseksi. Kolmanneksi ohjausyksikköön ohjelmoidaan toiminto, joka vastaa siitä, että mönkijä järjestelmän automaattitila kytketään pois päältä rattia käännettäessä ja siirrytään ns. manuaalitilaan. Työ päätettiin toteuttaa 3op/henkilö laajuisena. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 3/14
2. Suunnitelma Projektin suunnitelma luotiin tukemaan työn oikeellisuutta ja oikea aikaisuutta. Ajankäyttö työvaiheineen mitoitettiin työtehtävien mukaan määritettiin Gantt kaavioon, jota muokattiin etenemisen mukaan. Aikataulun hahmotuttua riittäväksi katsottiin, että työtä tehdään enimmäkseen kerran viikossa koko ryhmän voimin. Yksilöllisiä tehtäviä tai aikatauluja ei luotu. Projektin työvaiheet on esitetty alaluvussa 2.1 ja suunnitelman lopullinen toteutuminen alaluvussa 2.2. 2.1. Työvaiheet Alla on esitetty projektisuunnitelmassa määritellyt työvaiheet. 1. Käytettävän sensorin toiminnallisuuden selvittäminen 2. Työn tarkempi suunnittelu uuden tiedon nojalla 3. Alkuperäisen ohjaustehostimen toiminnan emulointi 3.1. Edellisen projektin ratkaisuun tutustuminen 3.2. Kehitysympäristöön tutustuminen 3.3. Käytettäviin teknologioihin tutustuminen 3.3.1. CoDeSys 3.3.2. PLC ohjelmointi 3.3.3. Havaitun sensorityypin vaatimat teknologiat (väylä, enkoodaus,...) 4. Manuaalimoodiin siirtyminen kun rattia käytetään 5. Testaus 5.1. Testauksen suunnittelu 5.2. Yksikkötestit (CoDeSys) 5.3. Integraatiotestit 6. Dokumentaatio 6.1. Instrumentointi 6.2. Ohjelmakoodi 6.3. Kurssiraportit Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 4/14
2.2. Suunnitelman toteutuminen ja ajankäyttö Laadukkaan suunnittelun tuloksena myöhästymisiltä vältyttiin ja projekti saatiin päätökseensä aikataulussa. Suunnitelman mukaisesti työtunnit merkittiin ylös kullakin tapaamiskerralla, kuten myös tehdyt toimet. Työhön käytetyt työtunnit on esitetty yksilökohtaisesti alla kuvassa 1 ja projektin lopullinen Gantt kaavio liitteessä 1, luvussa 6. Kuva 1: Työryhmän henkilökohtaiset työtunnit Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 5/14
3. Työn tulokset Kuten luvussa 1 mainittiin, työn tavoitteet voitiin jakaa kolmeen osa alueeseen: 1. Ohjaussensorin toimintaperiaatteen selvittäminen 2. Alkuperäisen ohjaustehostimen toiminnan emulointi 3. Manuaalimoodin kytkeminen ohjauspyörää kääntämällä Tässä luvussa käsitellään kunkin tavoitteen täyttämiseksi tehdyt ratkaisut. Lisäksi tarkastellaan aikaisemman ohjelmakoodin refaktorointia, jonka nähtiin edistävän järjestelmän kehittämistä jatkossa. Luvun lopussa pureudutaan järjestelmän testaukseen. 3.1. Ohjaussensorin toimintaperiaate Osana syksyn 2013 projektityötä hankittiin PS P RAN400 ohjaustehostinjärjestelmä, jonka alkuperäinen toiminnallisuus ohitettiin automaatiokäytön mahdollistamiseksi. Tehostimen moottoria hyödynnettiin tällöin ainoastaan automaatiotilassa. Tässä projektissa selvitettiin alkuperäisen tehostinjärjestelmän toiminnallisuus, jotta sitä vastaava ohjauksentehostus saatiin käyttöön myös manuaalisessa ajossa. Tämä luku käsittelee sensorin toimintaa. Tekninen kuvaus perustuu laitevalmistaja saatuun kuvaukseen, joka myös varmennettiin omissa testimittauksissa. Alkuperäinen PS P RAN400 ohjaustehostin koostuu kahdesta yksiköstä: EPS FS220 Power Steering Unit ECU FS220 Electronic Control Unit Näistä ECU FS220 ohitettiin aiemmassa projektissa varsinaisen tehostinyksikön käytön mahdollistamiseksi automaattiohjauksessa, eikä sitä tulla käyttämään myöskään tässä projektissa. EPS FS220 tehostinyksikön moottori on käytössä automaatiossa, ja nyt toteutuksen alla on saman moottorin käyttö myös manuaaliohjauksen tehostuksessa. Tätä varten selvitettiin yksikköön kuuluvan momenttisensorin toiminnallisuus. Momenttisensorin toiminta perustuu kiertyvän tangon kulman mittaamiseen. Alkuperäisessä ohjaustehostinjärjestelmässä sensori kytkeytyy EPS FS220 yksikköön, ja yksikön moottorille syötettävä jännite on suoraan verrannollinen mitattuun vääntömomenttiin. Sensorin mittaus saadaan kahtena analogisena tasajännitesignaalina, joista toinen kuvastaa vääntömomenttia myötä ja toinen vastapäivään. Momentin ollessa nolla molemmat jännitteet ovat 2,46V ja momentin kasvaessa jompaan kumpaan suuntaan toinen jännitteistä kasvaa kohti 5V:n arvoa ja toinen vastaavasti pienenee kohti 0V:a. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 6/14
Kahden signaalin käyttö mahdollistaa sensorin toiminnan varmentamisen. Ratin ollessa vapaana voidaan tarkastaa jännitteiden välinen ero. Alkuperäisessä järjestelmässä 0,5V:n poikkeama jännitteissä aiheuttaa ECU FS220 tehostinjärjestelmässä virhetilan. Sensorin kytkentöjen värikoodaukset on esitetty kuvassa 1. Kuva 2: Sensorin johtojen värikoodaukset 3.2. Alkuperäisen ohjaustehostimen toiminnan emulointi Ohjauspyörän momenttisensori kytkettiin ohjaamisesta ja odometriasta vastaavaan EPEC 5050 ohjausyksikköön ( Steering and Odometry ). Mikäli mönkijä on manuaaliohjauksella, mitattua momenttia käytetään alkuperäisen järjestelmän tavoin suoraan verrannollisesti tehostinmoottorin syöttöjännitteen laskentaan. Tehostinmoottorin ohjauksessa käytetään moottoriohjainta samalla tapaa kuin automaatiotilassa. Ohjauksen looginen toteutus onkin molemmissa tiloissa sama, kuitenkin sillä erotuksella, että heräte lasketaan manuaalitilassa ohjauspyörän vääntömomentista ja automaatiotilassa EPEC:n CoDeSys ohjelmaan implementoidulta PID säätimeltä. Moottoriohjaimen tekninen kuvaus on esitetty syksyn projektin loppuraportissa [1]. Ohjelmallinen toteutus on jaettu CalculateTorqueManual funktioon ja InterpretMotorControl ohjelmaan (kuvat 2 ja 3). CalculateTorqueManual skaalaa momenttimittauksen moottoriohjaimelle välille [ 400, 400] ja InterpretMotorControl asettaa ohjaimelle oikean suunnan sekä ohjaussignaalin. InterpretMotorControl ohjelmaa ajetaan sekä automaatio että manuaalitilassa. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 7/14
Kuva 3: Ohjauspyörän vääntömomentin laskenta (CalculateTorqueManual) Muuttuja Treshold on konfiguroitavissa oleva kynnysarvo, jota pienempiä mittauksen arvoja ei huomioida ohjauksentehostuksessa. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 8/14
Kuva 4: Ohjauksen asettaminen moottoriohjaimelle (InterpretMotorControl) 3.3. Manuaalimoodin kytkeminen ohjauspyörää kääntämällä ATV:hen toteutettiin toiminto, jonka avulla se automaatiotilassa ollessaan siirtyy takaisin manuaaliseen ohjaukseen, mikäli kuljettaja kääntää ohjauspyörää. Tämän tarkoituksena on mahdollistaa nopea siirtyminen manuaaliohjaukseen siten, että kuljettajalla on heti siirryttäessä kontrolli mönkijän suunnasta. Koska mönkijän automaatiojärjestelmässä on kaksi ohjausyksikköä, viestitetään automaatiotilasta poistumisesta myös toiselle ( Acceleration and Dashboard ) CAN viestillä SWAL_TorqueOverLimit. Ohjaustilan päivitys on konfiguroitu ajettavaksi jokaisen pääohjelman kierroksen yhteydessä CodeSySin Task Configuration toiminnolla. Ohjaustilan päivitykseen käytettävän ohjelman ST ohjelmakoodi on esitetty kuvassa 4. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 9/14
Kuva 5: Ohjaustilan tarkastus ja päivitys Steering and Odometry yksiköllä (UpdateControlMode) Kuvan 5 FBD ohjelma on Acceleration and Dashboard ohjausyksikön tilantarkastus. Automaatiotila kytketään pois SWAL_TorqueOverLimit muuttujan nousevalla kynnyksellä. Automaatiotila kytketään päälle DI_X1_11_automation_master_switch_input muuttujan nousevalla kynnyksellä. Käytännössä tämä tarkoittaa, että automaatiotilaan siirtymiseksi on asetettava kojelaudan automaatiokytkin ON asentoon, minkä seurauksena kytkintä on ensin käytettävä OFF asennossa, mikäli manuaalitilaan on siirrytty rattia kääntämällä. Kuva 6: Ohjaustilan tarkastus ja päivitys Acceleration and Dashboard yksiköllä (AutomationMasterSwitch) Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 10/14
3.4. Ohjelmakoodin refaktorointi Ohjauksen ja odometrian PLC laitteen ohjelmakoodia kehitettiin projektityön aikana vastaamaan paremmin SAE J1939 standardin [2] vaatimuksiin. Osana tätä pääohjelma refaktoroitiin SFC ohjelmana toteutettuun kolmen tilan tilakoneeseen (kuva 6). Kuva 7: Pääohjelman tilarakenne (Main) Ohjelman suoritus alkaa aina manuaalitilasta. Mikäli automaatio ohjaus on kytketty tai kytketään päälle, siirrytään AutomationRestart tilaan. AutomationRestart tilassa suoritetaan SAE J1939 Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 11/14
AS 0.3200Automaatio jasysteemitekniikanprojektityöt PowerSteeringforATV standardin mukainen kättely ohjaustietokoneen kanssa CAN kommunikaation toiminnan varmentamiseksi. Mikäli kättely onnistuu, siirrytään varsinaiseen automaatiotilaan. Automaatiotilassa pysytään, kunnes se kytketään pois joko kojelaudan kytkimestä tai rattia kääntämällä. 3.5. Testaus mönkijään asennettuna Työn lopuksi testasimme toteutuksen toiminnallisuutta vielä mönkijään asennettuna (kuva 7). Ohjaus ja kaasupolkimen signaaleja emuloitiin USB joystickillä. Testauksessa huomasimme että toteutus toimii tavoitellulla tavalla. Kuitenkin ohjauksessa oli viivettä ja oskillointia oli havaittavissa. Tulimme siihenlopputulokseen,ettälopullisetsäädintenparametrienkonfiguroinnit tulee kuitenkin suorittaa vasta kentällä, kun mönkijässä on renkaat alla ja kun sillä voi ajaa loppukäyttöä simuloivia reittejä maastossa. Samoin vasta maastossa selviää onko ohjaustehostimessariittävästivoimaarenkaidenliikuttamiseenesimerkiksipaikallaanasfaltilla. Kuva8:Testi setup,laitteetasennettunamönkijääntestaustavarten. JuusoMeriläinen,AnttiAlakiikonen,AleksiVulli 12/14
4. Yhteenveto Tässä projektissa tavoitteena oli onnistua kolmessa osa alueessa sähkökäyttöisen mönkijän instrumentoinnissa, liittyen sen ohjauksen automatisointiin. Osa alueet olivat 1. Jälkiasenteisen ohjaustehostimen sensorin toiminnallisuuden selvittäminen, 2. ohjaustehostimen toiminnan emulointi alkuperäistä sensoria hyödyntäen ja 3. turvatoiminto, joka kytkee automaattiohjauksen pois päältä kun rattiin kosketaan. Kaikki osa alueet saatiin toteutettua ja niitä ehditiin lyhyesti testaamaan mönkijään asennettuina. Testaus osoitti, että kukin implementoitu osa alue toimi määrätyllä tavalla. Kattavaa integraatiotestausta lopullisessa ympäristössä, eli maastoajossa, kuitenkin vielä tarvitaan, jotta tarvittavat säätöparametrit voidaan määritellä ja todeta ohjaustehostimen voiman riittävyys/riittämättömyys mönkijän ohjaamiseen maastossa. Varsinaisessa ajossa testaaminen ei tämän projektin puitteissa ollut mahdollista. Projekti eteni yllättävän hyvin alkuperäisten suunnitelmien mukaan, ja vastoinkäymisiltä vältyttiin. Työssä saimme kattavasti tukea sekä työn ohjaajalta, projektin tutkimusassistentilta sekä muulta laitoksen henkilökunnalta. Nopea tuki auttoi meitä keskittymään projektin kannalta oleellisiin seikkoihin, mikä varmasti oli suuri osatekijä onnistuneelle ajankäytölle sekä suunnitelmien pitävyydelle. 5. Viitteet [1] http://autsys.aalto.fi/intranet/as 0.3200/attach/A13 05/Finalreport.pdf, noudettu 3.3.2014 [2] Society of Automotive Engineers. Off road Vehicle Mobility Evaluation, SAE J939. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 13/14
6. Liitteet [1] Projektin Gantt kaavio. Otos tiedostosta ProjektiAikatauluGanttUpdated.xlsx. Juuso Meriläinen, Antti Alakiikonen, Aleksi Vulli 14/14