208 Ventil 23 /2017/ 3 ■ 1 Uvod Sistemi vodenja postajajo vse kompleksnejši, ker se zahteve gle- de vodenja vedno bolj zaostruje- jo. Po drugi strani tem zahtevam sledijo tudi mikrokrmilniki in di- gitalni signalni procesorji – DSP [1]. Postajajo vse zmogljivejši tako po moči procesorja in po komple- ksnosti dodatnih enot. Izstopajo aritmetična enota za računanje s plavajočo vejico in periferni vme- sniki, kot so pulznoširinski mo- dulatorji, merilniki položaja in hitrosti s položajnim kodirnikom, različni komunikacijski kanali in drugo. Z nižanjem cen mikrokrmilnikov se širi področje uporabe teh sis- temov. Izrazita je tudi zahteva po skrajšanju časa razvoja izdelka in s tem po hitrejšem prihodu na trg, kar pa se ne sklada s poveča- njem kompleksnosti programske opreme. Povečano kompleksnost programske opreme obvladuje- mo z uporabo visoko nivojske- ga razvojnega okolja in s temu okolju prilagojenimi prevajalniki oziroma generatorji kode [2], [3]. Model simulacije uporabimo za avtomatsko generiranje kode za vgrajen procesor, ki deluje v re- alnem času. Tak pristop odpravlja komunikacijo sistemskega inže- nirja po sistemskih specifikacijah s programskim inženirjem, ki po- tem po teh specifikacijah pripravi programsko opremo [4]. Seveda je posledica nenatančnosti v spe- cifikacijah oziroma napačno razu- mevanje programskega inženirja nepravilno delovanje takega sis- tema. Pri na modelih osnovanem programiranju izvede kompleten Dvoosni krmilnik za hitro eksperimentiranje v robotskih aplikacijah Milan ČURKOVIČ, Rok PUČKO, Mitja GOLOB, Aleš HACE Dr. Milan Čurkovič, univ. dipl. inž., Rok Pučko, dipl. inž., Mitja Go- lob, izr. prof. dr. Aleš Hace, univ. dipl. inž., vsi Univerza v Maribo- ru, Fakulteta za elektrotehniko, računalništvo in informatiko Izvleček: Predstavljeni dvoosni krmilnik omogoča poenostavljeno in hitro izvajanje laboratorijskih eksperimen- tov v robotskih in podobnih aplikacijah. Krmilnik je zasnovan na zmogljivem DSP-procesorju TMS320F28335, ki je sicer namenjen za vodenje servomotorjev. Pri snovanju in implementaciji algoritmov vodenja lahko uporablja- mo računanje s plavajočo vejico, programiramo pa ga lahko kar v okolju Matlab/Simulink. Elektronsko vezje kr- milnika je zasnovano tako, da omogoča robustno delovanje krmilnika tudi v industrijskih razmerah. Funkcionalna razširitev krmilnika je možna z notranjimi komunikacijskimi vmesniki. Krmilnik smo uporabili v okviru evropskega projekta FP7 HYPSTAIR za napredni HMI s haptičnim vmesnikom za manjše hibridno električno letalo. Ključne besede: vodenje robota, haptični vmesniki, vodenje sile, hitra izvedba algoritmov vodenja SISTEMI VODENJA Slika 1. Laboratorijski mehanizem SCARA 209Ventil 23 /2017/ 3 postopek sistemski inženir, koda se generira avtomatsko, kot doku- mentacija pa služi model sistema. Velika prednost takega pristopa je možnost uporabe že izdelanih, tudi že certificiranih modelov. V nadaljevanju bomo predstavili zgradbo namenskega dvoosne- ga krmilnika [5]. Njegova tipična robotska aplikacija, tj. vodenje preprostega dvoosnega mehaniz- ma SCARA, je prikazana na sliki 1. Sestavne enote našega dvoosne- ga krmilnika in način sestavljanja programskih aplikacij za krmilnik bomo prikazali na primeru haptič- ne pogonske ročice [6], [7] in [8]. Ta primer je samo enoosni, vendar smo ga izbrali zaradi enostavnosti in s tem preglednosti. Sama apli- kacija je podrobno opisana v [9]. Na koncu bo nakazana aplikacija na dvoosnem sistemu za upravlja- nje letala. ■ 2 Komponente sistema Blokovno shemo krmilnika na sliki 2 sestavljajo digitalni signalni pro- cesor, komunikacijski in vhodno-iz- hodni vmesniki ter napajalna eno- ta. Vhodno-izhodni vmesniki in na- pajalna enota so galvansko ločeni. ■ 2.1 Digitalni signalni procesor – DSP Procesorski modul sestavlja- jo Digitalni signalni procesor TMS320F28335 družine Delfino, oscilator, vezje za zagon in vezje za nastavitev obnašanja DSP ob zagonu. Uporaba mikrokrmilnika z vgrajeno procesno enoto, po- mnilnikom in perifernimi enotami bistveno zmanjša zahtevnost izde- lave tiskanega vezja in s tem tudi vpliv zunanjih motenj. Ključne lastnosti TMS320F28335 pri izbiri: - delovna frekvenca 150 MHz, - enota za izvajanje 32-bitnih operacij s plavajočo vejico (IEEE754 Single Precision FPU), - pomnilnik 68 kB RAM, 512 kB FLASH, - 18 izhodov PWM (od tega 6 HRPWM z resolucijo 150 ps), - vmesnik za dva inkrementalna kodirnika položaja, - komunikacijski vmesniki: 2 x CAN, 3 x SCI (UART), SPI, I2C, - 12-bitni ADC, 16 kanalov, 80 ns, 2 x S/H, - sinhronizacija PWM in ADC in ključno - podpora za generiranje izvršne kode iz modela Simulink s knji- žnico perifernih enot DSP-ja [10]. ■ 2.2 Napajanje in gal- vanske ločitve Galvanska ločitev mikrokrmilnika preprečuje vpliv zunanjih motenj. Analogni vhodi sicer niso galvan- sko ločeni, uporabljamo pa nasta- vljivo diferenčno vhodno stopnjo. Napajalno napetost lahko spremi- njamo v širokem območju. Poraba je odvisna od števila in vrste pri- klopljenih enot. Za zmanjšanje mo- tenj v analognih signalih analogne vhodne stopnje napajamo izolirano. Galvansko ločene enote zahtevajo tudi zunanje napajanje, pri enostav- nejših aplikacijah lahko uporabimo neizoliran notranji napajalnik. ■ 2.3 Analogni vhodi ADC-modul mikrokrmilnika ima na vhodu dva osemkanalna mul- tiplekserja s po enim zadrževalni- kom sample/hold. Zasnova omo- goča sočasni zajem vzorcev na obeh kanalih in nato zaporedno analogno digitalno pretvorbo. 12-bitni ADC potrebuje za pre- tvorbo 80 ns. Modul vsebuje tudi posebno vezje, ki strojno izbira analogne vhode, starta posame- zne ali več zaporednih pretvorb in zapiše rezultate pretvorb v ustre- zne registre. Na sliki 3 je prika- zana blokovna shema analogne vhodne stopnje. Vhodne signale najprej filtriramo z nizkopasov- nim filtrom prvega reda. Sledi na- stavljiv diferenčni ojačevalnik, pri katerem izberemo ojačenje, zamik (offset) in lomno frekvenco filtra z vrednostmi uporabljenih pasivnih elementov. Ojačenje lahko nasta- vljamo v širokem območju. Zadnje nizkopasovno sito je neposredno pri vhodnem priključku DSP. SISTEMI VODENJA Slika 2. Blokovna shema krmilnika Slika 3. Analogna vhodna stopnja 210 Ventil 23 /2017/ 3 ■ 2.4 Inkrementalni kodir- niki položaja Vhodni signali inkrementalnega kodirnika položaja na sliki 4 se najprej zaključijo. S tem prepreči- mo odboj signalov na koncih linije in zmanjšajo motnje. Uporabljeno asimetrično vezje omogoča tudi neposreden priklop dajalnikov brez protifaznih signalov. Sledi RS422 sprejemnik in nato galvan- ska ločitev. Ker je sprejemno vez- je galvansko ločeno, ga moramo napajati od zunaj. Pri tem nam je na voljo lokalna napetost, galvan- sko ločena od DSP, ni pa ločena od vhodnega napajanja. ■ 2.5 Digitalni vhodi Posebnost logičnih vhodov je zelo široko območje vhodnih in napajal- nih napetosti. Vezje deluje z logič- nimi nivoji TTL kakor tudi s 24-vol- tnimi signali. Pri tem pa imamo možnost uporabe internega vezja pull-up ali pull-down. Pull-up vezje deluje samo pri 5-voltnih signalih, na višje napetosti pa zaradi dio- de ne vpliva. S tokovnim ponorom kot pull-down vezjem pokrijemo široko območje vhodnih napetosti, pri tem pa se vho- dni tok bistveno ne spreminja. Na sliki 5 je blokovna shema izvedbe digitalnega vhoda, nivo preklo- pa nastavimo s sti- kali. Sledi galvanska ločitev. ■ 2.6 Digitalni izhodi Tudi digitalni izhodi so galvansko ločeni. Podpirajo široko območje napajalnih napetosti od 5 V do 24 V. Dva izmed štirih izhodov sta hitra in omogočata prenos podatkov s hitro- stjo do 10 Mbps. Oba logična nivoja izhodne stopnje sta aktivna. Druga dva izhoda sta počasnejša, vendar tokovno zmogljivejša. Hitrost preno- sa je 100 bps, izhod pa je izveden kot dvosmerno stikalo. Z mostičkoma lahko za vsak izhod izberemo pull- -up ali pull-down način delovanja. Vsi izhodi so galvansko ločeni. ■ 2.7 Pulznoširinski mo- dulator Mikrokrmilnik vsebuje posebno enoto PWM. Štirje izmed šestnajstih PWM-izhodov DSP so speljani na zunanje priključke. Vsi so galvansko ločeni, uporabljajo pa enako vezje in izhodni gonilnik kot hitri digi- talni izhodi. Maksimalna frekvenca je 10 MHz in s tem zagotavlja ne- spremenjeno prevajalno razmerje (ang. Duty cycle) PWM-signalov. Območje izhodne napajalne nape- tosti je 5 V do 24 V. ■ 2.8 Komunikacijski vme- sniki Povezava krmilnika z ostalimi napra- vami poteka s komunikacijskimi vme- sniki. Tako sam DSP kot celoten krmil- nik vsebujeta veliko komunikacijskih vmesnikov: SCI – RS232, SCI – USB in CAN. USB uporabljamo predvsem za povezavo z osebnim računalnikom za spremljanje in nadzor izvajanja apli- kacije, RS232 in CAN pa za povezavo z ostalimi enotami. Vsi komunikacij- ski vmesniki so galvansko ločeni. ■ 2.9 Razširitveni priključki Funkcije krmilnika lahko razširimo z dodatnim vezjem, priklopljenim na razširitvene priključke. Med dru- SISTEMI VODENJA Slika 4. Vhodna stopnja RS422 za inkrementalni kodirnik položaja Slika 5. Digitalni vhodi Slika 6. Digitalni izhodi Slika 7. Dvoosni krmilnik 211Ventil 23 /2017/ 3 gim lahko povečamo število meril- nikov položaja. S posebno izvedbo merilnika, s katerim nadomestimo vključeno eQEP-enoto, zmanjšamo težave pri merjenju majhnih hitrosti v področju pod nekaj pulzov na me- rilni interval. Na sliki 7 je dvoosni krmilnik. Razvojno okolje za programsko opremo na osnovnem nivoju je Code Composer Studio (CCS), ki podpira programira- nje v C-jeziku. CCS uporabljamo tudi pri delu v na modelih osnovanem visokonivojskem programiranju za prevajanje z generatorji kode ustvar- jene kode C. Razporeditev priključkov krmilnika je podana na sliki 8. ■ 3 Hitra gradnja pro- gramske opreme Hitra gradnja programske opreme (ang. Rapid Prototyping) za vode- nje mehatronskih sistemov izhaja iz na modelih osnovanega pristo- pa k načrtovanju sistemov vodenja. Matlab/Simulink oziroma njuni od- prtokodni izvedbi Octave/Scilab so vedno bolj razširjeni pri snovanju in testiranju delovanja različnih dina- mičnih sistemov. Grafični uporabni- ški vmesnik je pregleden in enosta- ven za uporabo. Izdelan simulacijski model vodenja pretvori generator kode v izvršno kodo mikrokrmilnika oziroma DSP-ja in s tem opravi im- plementacijo. ■ 3.1 Sistem haptične po- gonske ročice Haptična pogonska ročica je vme- snik med človekom in strojem. Z velikostjo in obliko povratne sile pri premikanju ročice uporabniku sporoča različne informacije o sta- nju pogonskega sistema [9]. Sistem haptične pogonske ročice na sliki 9 sestavljajo: haptični krmilnik, servo- pogon, haptična pogonska ročica in uporabniški vmesnik HMI. Aktuator v pogonski ročici poganja zanj pri- rejen servopogon oziroma regula- tor toka. Na vhod za referenčni tok je priklopljen PWM-izhod krmilni- ka. Haptična pogonska ročica ima vgrajen senzor dejanske sile, s kate- ro človek deluje na ročico in senzor položaja ročice. Delovanje sistema smo preizkusili s sinusnim referenčnim signalom sile. Položaj ročice nastavljamo z roko, pri čemer se meri dejanska sila. Razliko med referenčno in dejansko silo vodimo na regulator sile, katere- ga izhod kot referenco toka posre- dujemo servopogonu. Na osebnem računalniku teče oddaljena aplikaci- ja uporabniškega vmesnika, ki preko navideznega serijskega vmesnika na USB-vodilu sprejema podatke o položaju, referenčni in dejanski sili. Zaradi kratkega časa vzorčenja (100 µs) in počasne komunikacije z upo- rabniškim vmesnikom na oddalje- nem računalniku sprotni prenos vseh zajetih podatkov ni mogoč, zato jih shranjujemo v RAM-pomnilnik na DSP-ju in prenašamo na zahtevo. Na sliki 10 je Matlab/Simulink mo- del vodenja haptične pogonske ro- čice implementiran na haptičnem krmilniku. Povezava z oddaljeno aplikacijo je izvedena v podsistemu from/to host. Sprejema se signal SISTEMI VODENJA Slika 8. Razporeditev priključkov dvoosnega krmilnika Slika 9. Haptična pogonska ročica Slika 10. Testni model – Simulink 212 Ventil 23 /2017/ 3 Enable, ki omogoči močnostni oja- čevalnik aktuatorja in s tem vode- nje. Ko se Enable umakne, je izho- dni ojačevalnik spet onemogočen, zajeti podatki pa se prenesejo na oddaljeni računalnik. Uporabniški vmesnik na oddaljenem računalniku je predstavljen na sliki 11. Z ročnim stikalom omogočamo ozi- roma onemogočamo močnostni oja- čevalnik aktuatorja. Po izklopu stikala se blok podatkov prenese in zapiše v delovni prostor Matlaba. V nadaljevanju eksperimentalni re- zultati prikazujejo odziv sistema na sinusno obliko referenčne sile ob interakciji s človekom. Na sliki 12 skuša človek držati ročico pri miru, na sliki 13 pa jo premika. V obeh pri- merih, ne glede na položaj ročice, regulator sile zagotavlja ustrezno sledenje dejanske sile referenčni. Izvedeni aplikaciji služita le za po- trjevanje delovanja strojne opreme. Opis uporabe eksperimentalnega sistema haptične pogonske ročice letala s hibridnim električnim pogo- nom je predstavljen v literaturi [9]. Opisani sistem je enoosni. Krmilnik pa omogoča tudi vodenje dvoo- snih sistemov, ki pa so mehansko kompleksnejši. Na sliki 14 je primer dvoosnega sistema za vodenje le- tala (ang. Fly by Wire), primernega za vodenje s predstavljenim krmil- nikom [11]. Dva motorja z dajalnikoma položaja sta povezana s prečnima zobnikoma, vzdolžna zobnika se prosto vrtita na svoji osi, povezani z ročico. Na ročici so prilepljeni merilni lističi za merje- nje vzdolžne in prečne sile. Vrtenje obeh motorjev v isto smer pomeni premik ročice prečno, nasprotno vr- tenje motorjev pa vzdolžno. ■ 4 Zaključek Dvoosni krmilnik poenostavlja ra- zvoj in izvedbo krmiljenja različnih mehatronskih sistemov. Zmogljiv procesor, ki podpira računanje s plavajočo vejico, poenostavlja sno- vanje in izvedbo sistema vodenja in tako povečuje preglednost sistema. SISTEMI VODENJA Slika 11. Aplikacija na oddaljenem računalniku Slika 12. Regulacija sile pri mirujoči ročici Slika 13. Regulacija sile pri gibajoči se ročici 213Ventil 23 /2017/ 3 Sistem dopušča tudi ročno optimi- zacijo posameznih delov algoritma in s tem še dodatne pospešitve pri izvajanju. Isti model lahko poganja- mo na ciljnem krmilniku in v simu- latorju. Eksperimentalni rezultati pri sinusni obliki referenčne sile so pokazali dobro sledenje dejanske sile refe- renčni in s tem potrdili pričakovanja. Načrtujemo dodatno vezje na razši- ritvenem SPI-vodilu z dvema doda- tnima vmesnikoma za inkrementalni kodirnik položaja. Tako bi lahko opi- sani dvoosni krmilnik uporabili tudi za štiriosne aplikacije. Z vezjem bi tudi izboljšali meritev hitrosti s pul- znim kodirnikom položaja. Lahko rečemo, da je Rapid pro- totyping tisto orodje, s katerim pretvorimo visokonivojski opis ali model, uporabljen pri simulaciji, v nizkonivojsko kodo, primerno za prevajalnike uporabljenega mikro- krmilnika. Viri [1] Texas Instruments Incorporated: »TMS320F28335 Delfino Microcontroller | TI.com« [elek- tronski]. Available: http://www. ti.com/product/TMS320F28335/ technicaldocuments. [Poskus do- stopa 2. 3. 2017]. [2] N. Semenič, A. Sarjaš, R. Svečko in A. Chowdhury: »De- sign and Implementation of Rapid Control Prototyping Sys- tem with Matlab/Simulink,« Informacije MIDEM, 2011. [3] B. d. Santos, R. E. Araujo, D. Varajao in C. Pinto: »Rapid Prototyping Framework for Real-Time Control of Power Electronic Converters Using Simulink,« v IECON 2013 – 39th Annual Conference of the IEEE Industrial Electronics Society, Vienna, 2013. [4] M. Ahmadian, Z. J. Nazari, N. Nakhaee in Z. Kostic: »Model based design and SDR, « v The 2nd IEE/EURASIP Conference on DSPenabledRadio, London, UK, 2005. [5] M. Golob, R. Pučko, M. Čurkovič in A. Hace: »Hypstair Haptics Control Board Design 2.0, V1.3,« Laboratorij za in- dustrijsko robotiko, FERI, Maribor, 23. 3. 2015. [6] »Uradna spletna stran projek- ta HYPSTAIR«: [elektronski]. Available: http://www.hypstair. eu/. [Poskus dostopa 2. 3. 2017]. [7] A. Hace: »Haptics in cockpit environment (HYPSTAIR pro- ject – haptic interfaces),« v Symposium E2-Fliegen, Stuttgart, Germany, 18. February 2016. [8] A. Hace: »Experimental proto- type system for haptic power lever: HYPSTAIR T3.3 Report No. 2: project task summa- ry version 1.0.,« UM-FERI, Maribor, 2016. [9] M. Golob, R. Pučko, M. Čurkovič in A. Hace: »Eksperimentalni sistem za haptično pogonsko ročico letala s hibridno elek- tričnim pogonom,« v AIG'17, Maribor, 2017. [10] The MathWorks, Inc.: »TI C2000 Support from Embedded Coder - Hardware Support - MATLAB/Simulink, « [ele- ktronski]. Available: https:// www.mathworks.com/hard- ware-support/ti-c2000.html. [Poskus dostopa 2. 3. 2017]. [11] R. L. Hermans: »Design of an actuated side stick control- ler for the SiMoNa research simulator, « Doctors thesis, Delft University of Technology, Delft, 1999. [12] M. Čurkovič, R. Pučko, M. Golob, in A. Hace: »Dvoosni krmilnik za hitro eksperimenti- ranje v robotskih aplikacijah,« v AIG'17, Maribor, 2017. SISTEMI VODENJA Two-axis controller for a rapid experimentation in robotic applications Abstract: The presented two-axis controller allows simplified and rapid implementation of laboratory experi- ments in robotics and similar applications. The controller is based on a powerful DSP processor TMS320F28335, which can implement control of servomotors. Design and implementation of control algorithms include usa- ge of floating point calculations. The system is programmable in Matlab/Simulink environment. The elec- tronic controller circuitry design enables a robust operation of the controller even in industrial conditions. Functional extensions of the controller are possible with the internal communication interface. The controller was applied within the European FP7 HYPSTAIR project for an advanced HMI with a haptic interface of a light hybrid electric aircraft. Keywords: Robot control, Haptic interfaces, Force control, Rapid control prototyping Zahvala Projekt HYPSTAIR je bil financiran iz 7. okvirnega programa EU za raziskave, tehnološki razvoj in predstavitve s sporazumom št. 605305. Partnerji v projektu so bili Pipistrel, d. o. o., Ajdovščina (Slovenija), Siemens AG (Nemčija), MBVision (Italija), Univerza v Pisi (Italija) in Univerza v Mariboru (Slovenija). Članek je bil predho- dno objavljen na deseti konferenci Avtomatizacija v industriji in gospodarstvu AIG’17 6. in 7. aprila 2017 v Mariboru [12].