Sillanpää Teemu SÄHKÖKÄYTÖN EMULOINTI SIMULINK-DSPACE-M1 -YMPÄRISTÖSSÄ Seminaarityön loppuraportti, joka on jätetty tarkastettavaksi kurssin Sulautettujen järjestelmien seminaarikurssi osasuorituksena. Lappeenrannassa 16. marraskuuta 2011 Sillanpää Teemu teemu.sillanpaa@iki.fi
Sisältö 1 Sovelluksen yleinen kuvaus 3 1.1 Asiakkaan nykyinen järjestelmä...................... 3 1.2 Ongelmanasettelu............................... 4 2 Vaatimusmäärittely 5 3 Toiminnallinen ja tekninen määrittely 6 4 Tekninen toteutus 8 Lähdeluettelo 10 2
Sovelluksen yleinen kuvaus 3 1 SOVELLUKSEN YLEINEN KUVAUS 1.1 Asiakkaan nykyinen järjestelmä Asiakkaalla on olemassa oleva kuvan 1.1 mukainen järjestelmä, jossa fyysinen taajuusmuuttajaohjattu sähkökäyttö toimii osana PC-järjestelmässä pyörivää simulointimallia. Kommunikointi, esimerkiksi vääntömomentti- tai nopeusohje, MATLAB Simulink -simulointimallin ja ABB ACSM1 -taajuusmuuttajan välillä tapahtuu kenttäväylän ylitse. PC-ympäristö Simulink C-kielinen lohko yhteyden hallintaan Kenttäväylän ajurit & fyysinen kerros Kenttäväylä ABB ACSM1 PM Prosessi Kuva 1.1. Asiakkaan olemassa oleva järjestelmä. Kommunikointiominaisuus Simulink-ympäristöön on ohjelmoitu C-kielisenä toteutuksena, joka näkyy ulospäin käyttäjälle kuvan 1.2 mukaisena abstraktina lohkona. Lohko vastaa yhteydenpidosta Simulink -ohjelmiston ja PC-raudassa sijaitsevan kenttäväyläliitännän välillä, yhteistyössä Windows-järjestelmän palveluiden ja kenttäväylälaitteiston ajureiden kanssa. Enable Mode Register InputData Busy Error OutputData OutputRegister SerialClock ABB M1+DRIVE Kuva 1.2. Taajuusmuuttaja näkyy simulointimallissa abstraktina lohkona.
Sovelluksen yleinen kuvaus 4 Järjestelmän tarkoituksena on saattaa sähkökäyttö ja sen pyörittämä todellinen prosessi osaksi simulointimallia. Tämänkaltaisella järjestelyllä, jossa todellinen prosessi pyörii saumattomana osana simulointimallia, voidaan prosessista saatava informaatio (esim. eri suureiden mittausdata) tuoda edelleen MATLAB Simulink - järjestelmään analysoitavaksi, ja vastaavasti ohjata prosessia saadun informaation pohjalta. Ohjausdata Simulointiohjelmisto MATLAB / Simulink? Taajuusmuuttaja ABB ACSM1 Mittausdata Kuva 1.3. Uuden reaaliaikaiseen simulointiin kykenevän järjestelmän periaatemalli (UML kommunikaatio-/vuorovaikutuskaaviota mukaillen). 1.2 Ongelmanasettelu Olemassa olevan järjestelmän pyöriessä normaalissa MATLAB Simulink -järjestelmässä, ei simulointimallilta ollut saavutettavissa kovinkaan hyvää suorituskykyä pyrittäessä reaaliaikaiseen simulointiin. Järjestelmällä pystyttiin mallintamaan pitkän aikavakion omaavia prosesseja reaaliajassa, mutta nopeampivasteisten tai monimutkaisempien mallien simuloiminen reaaliajassa ei onnistunut. Asiakkaan tilaama ratkaisu on Simulink-ohjelmistoon pohjautuva päivitetty järjestelmä, joka kykenisi reaaliaikaiseen suorittamiseen monimutkaisemmillakin simulointimalleilla.
Vaatimusmäärittely 5 2 VAATIMUSMÄÄRITTELY Ratkaisun tulisi toteuttaa ongelmanasettelu tuomalla taajuusmuuttajan hallinta Simulink-simulointimalliin abstraktina lohkona toteuttaen reaaliaikaisuusvaatimuksen. Ratkaisun tulee siis toteuttaa tarvittava kenttäväylä simulointimallin ja taajuusmuuttajan välisen kommunikointiyhteyden saavuttamiseksi, sekä lisäksi toteuttaa simuloinnin reaaliaikaisuusvaatimus. Reaaliaikaisuuden reunaehdoksi määriteltiin vähintään 10 millisekunnin välein kenttäväylän ylitse päivittyvä nopeus-/vääntömomentti-/paikkaohje ABB ACSM1 -taajuusmuuttajalle. Toteutusalustana tulee toimia Windows-käyttöjärjestelmällä varustettu PC, simulointimallin pohjautuessa MATLAB Simulink -ohjelmiston simulointiominaisuuksiin. Taajuusmuuttajana toimii ABB ACSM1, varustettuna tarvittavan kenttäväylän toteuttavilla korttilaajennuksilla. Simulink-lohkon toteuttamien palveluiden käyttötapauskaavio on esitetty kuvassa 2.1. Taajuusmuuttaja Ohjauskomento (Start, Stop, Run enable,...) Ohjausarvon asettaminen (nopeus-, momenttitai paikkaohje) Simulink Tilakysely (nopeuden/ momentin/paikan todellinen arvo, muuttajan tila) Parametrien asettaminen (asetusarvot) Kuva 2.1. UML käyttötapauskaavio abstraktin Simulink-lohkototeutuksen kannalta.
Toiminnallinen ja tekninen määrittely 6 3 TOIMINNALLINEN JA TEKNINEN MÄÄRITTELY Kenttäväylän ylitse tapahtuvaa kommunikaatiota on kuvattu kuvan 3.1 vuorovaikutuskaavion avulla. Tarkempi viestiliikenne määräytyy taajuusmuuttajassa käytettävän kenttäväylälaajennuskortin, ja taajuusmuuttajan määrittelyn mukaisesti. Taajuusmuuttajan toteuttama kommunikointiprofiili on kuvattu tarkasti taajuusmuuttajan ohjekirjoissa. Esimerkkinä kuvassa 3.2 näkyvä CANopen-moduulin toteuttama tilakaavio taajuusmuuttajan sisäisistä tiloista, ja vastaavista kenttäväylän ylitse välittyvistä ohjaus- ja tilasanoista. Simulink ABB ACSM1 Ohjaussana / Control Word (CW) Ohjearvot / References Tilasana / Status Word (SW) Oloarvot / Actual Values Parametrien luku- / kirjoituspyyntö Parametrien luku- / kirjoitusvaste Kuva 3.1. UML vuorovaikutuskaavio Simulink-ohjelmiston ja ABB ACSM1 - taajuusmuuttajan välisestä liikenteestä. Reaaliaikaisen simuloinnin toteuttamiseksi on saatavilla MathWorksin itsensä tarjoama MATLAB Simulink -laajennuskirjsto - Real-Time Windows Target. RTWTlaajennus mahdollistaa lohkokaavioesityksen muuntamisen C-kieliseksi toteutukseksi, joka on käännettävissä automaattisesti konekieliseksi suoritettavaksi ohjelmaksi. RTWT asentaa oman kernelinsä PC-raudan ja Windowsin väliin, kaapaten ajastinkeskeytykset. Toteutuksella saavutetaan suorituskykyisempi reaaliaikainen ympäristö, mutta kernelin kaapatessa ajastinkeskeytykset ei Windowsin palvelut, kuten laitteistoajurit ja oheiskirjastot, ole käytettävissä. Tällöin esim. kenttäväylätuen to-
Toiminnallinen ja tekninen määrittely 7 teuttaminen tarkoittaisi tarvetta ohjelmoida protokollatoteutus alusta asti puhtaalta pohjalta. 3. osapuolien tarjoamat RTWT-yhteensopivat liityntäkortit rajoittuivat lähinnä puhtaaseen analogiseen ja digitaalisen I/O:hon, eikä kenttäväylätoteutuksia ollut saatavilla. Asiakkaalla oli aiempaa kokemusta toimintaperiaatteiltaan vastaavankaltaisesta 3. osapuolen tarjoamasta dspace-laitteistosta. dspace-ohjelmisto tarjoaa mahdollisuuden kääntää Simulink-simulointimalli C-kieliseksi toteutukseksi, joka käännetään automaattisesti dspace-prosessorikorteilla ajettavaksi. Kortit tarjoavat monipuolisen I/O-tuen, sekä ohjelmiston reaaliaikaisen sovelluksen hallintaan, valvontaan, sekä ajonaikaisen mittausdatan tiedonsiirtoon. from any state CW: Control Word SW: Status Word State transition (0) START Power-on, self-initialisation FAULT REACTION ACTIVE SW: xxxxxxxxx0xx1111 Fault reaction completed NOT READY FAULT TO SWITCH ON SW: xxxxxxxxx0xx0000 SW: xxxxxxxxx0xx1000 Initialised (1) successfully (15) CW: xxxxxxxx1xxxxxxx SWITCH-ON DISABLED SW: xxxxxxxxx1xx0000 CW: xxxxxxxxxxxxx110 (2) CW: xxxxxxxxxxxxx01x (7) or CW: xxxxxxxxxxxxxx0x READY TO SWITCH ON SW: xxxxxxxxx01x0001 CW: xxxxxxxxxxxxx01x or CW: xxxxxxxxxxxxxx0x CW: xxxxxxxxxxxxx111 (3) (10) (6) CW: xxxxxxxxxxxxx110 (8) CW: xxxxxxxxxxxxx110 SWITCHED ON SW: xxxxxxxxx01x0011 Quick stop completed CW: xxxxxxxxxxxx1111 (4) or (12) CW: xxxxxxxxxxxxxx0x (5) CW: xxxxxxxxxxxx0111 (9) OPERATION (11) QUICK STOP ENABLED SW: xxxxxxxxx01x0111 ACTIVE SW: xxxxxxxxx0xx0111 CW: xxxxxxxxxxxxxx0x CW: xxxxxxxxxxxxx01x Kuva 3.2. Tilakaavio ABB ACSM1 -taajuusmuuttajan CANopen-moduulin toteuttamista sisäisistä tiloista, ja vastaavista ohjaus- ja tilasanoista (ABB 2010).
Tekninen toteutus 8 4 TEKNINEN TOTEUTUS Kurssin aikataulun puitteissa ei päästy käytännön toteutuksen asteelle, mutta pyrittiin selvittämään eri mahdollisuuksia lopullisen ratkaisun saavuttamiseksi. Asiakkaalta löytyi jo ennestään käytöstään dspace DS1103-prosessorikortti, joka otettiin osaksi lopullisia ratkaisumalleja. Kuvassa 4.1 on esitetty toinen ratkaisumalliehdotuksista. Simulointimalli laaditaan Simulink-ohjelmistossa jota on laajennettu dspacen tarjoamilla RTI ja RTI CAN -lohkokirjastoilla. Simulointimalli kääntyy dspace DS1103 -prosessorikortille, ja malli kommunikoi dspace-kortilta löytyvän CAN-väylän ylitse ABB ACSM1 - taajuusmuuttajan kanssa. ABB ACSM1 -taajuusmuuttajan CAN-väylän toteuttava ABB FCAN-01 -laajennuskortti kommunikoi CANopen-protokollan avulla CAN-väylällä, joten tarvittaessa toteutettavaksi jää vielä CANopen protokollatoteutuksen implementoiminen simulointimalliin tai dspace-prosessorille, jollei dspace RTI CAN -kirjasto tarjoa tarvittavia ominaisuuksia. PC-ympäristö Simulink dspace RTI -blockset dspace RTI CAN -blockset dspace DS1103 -kortti CAN-väylä (CANopen) ABB ACSM1 PM Prosessi Kuva 4.1. Ratkaisumalli 1, perustuen dspace-laitteiston tukemaan CAN-väylään. Kuvan 4.2 mukainen toinen ratkaisumalli on hyvin pitkälti ensimmäisen ratkaisumallin kaltainen, mutta kenttäväylän protokollatoteutus on tuotu dspace-kortin ulkopuolelle, erilliselle muuntimelle, joka muuntaa dspace-kortin ja muuntimen välisen raa an sarja-/rinnakkaismuotoisen dataliikenteen kenttäväylälle yhteensopivaksi.
Tekninen toteutus 9 Muunnin voidaan toteuttaa esim. mikrokontrolleria tai FPGA-piiriä hyväksikäyttäen. Piireille löytynee valmiina protokollatoteutuksia eri kenttäväylille, ja kenttäväylän voi valita monista ABB ACSM1 -taajuusmuuttajan tukemista kenttäväyläprotokollista. Esimerkkinä on otettu esille RS-485 -sarjaliitännän päällä toimiva Modbus-protokolla, jolle löytyy kohtuu yksinkertaisena protokollana valmiita toteutuksia mm. AVR-mikrokontrollereille (toteutuksen reaaliaikatarpeet suorituskyvyn suhteen huomioiden). PC-ympäristö Simulink dspace RTI -blockset dspace DS1103 -kortti n bit parallel I/O RS422 Parallel / Serial to kenttäväylä -muunnin kenttäväylä (esim. Modbus/RS-485) ABB ACSM1 PM Prosessi Kuva 4.2. Ratkaisumalli 2, perustuen dspace-laitteistoon liitettyyn ulkoiseen kenttäväylämuuntimeen.
LÄHDELUETTELO 10 Lähdeluettelo ABB Oy. CANopen Adapter Module FCAN-01. Käyttöohje. 2010. Saatavilla: http:// search.abb.com/library/abblibrary.asp?documentid=3afe68615500&languagecode= EN&DocumentPartId=1&Action=Launch