Rok / Year: Svazek / Volume: Číslo / Number: Jazyk / Language 2018 20 1 CZ Řídicí modul pro poziční rotační elektromechanický systém A Control Module for a Position Rotational Electromechanical System David Krolák david.krolak@vutbr.cz Fakulta elektrotechniky a komunikačních technologií VUT v Brně DOI: - Abstract: This article presents one of simple possible solutions of a flexible control module for control- ling a positioning rotational electromechanical system using a personal computer (PC). The rotating electromechanical system consists of an incremental quadrature rotational encoder and a DC motor driving by the MAR 25/2 servo-amplifier manufactured by Mattke AG. The electromechanical system with the implemented control module enables controlling rotor rotation speed from 1 to 180 rpm in both directions of rotation. The control module is able to record angular position of the mechanical system rotor with maximum sampling rate 500 kSa/s during rotation of the rotor. The system also allows stepping of the rotor angular position with discrete position step in range from 10 ∘ to 180∘ ± 1′. This article describes the electromechanical system, the DC motor control method and processing of recorded data by a single chip microcomputer. An example of a simple communication protocol be- tween the module and the PC via Universal Serial Bus (USB) is mentioned. A sample of a control software and measured properties of the described control module with the given electromechanical system is also included. Řídicí modul pro poziční rotační elektromechanický systém David Krolák Fakulta elektrotechniky a komunikačních technologií VUT v Brně Email: david.krolak@vutbr.cz Abstrakt – Tento článek prezentuje jedno z možných jednodu- chých řešení flexibilního řídicího modulu pro řízení pozičního rotačního elektromechanického systému pomocí osobního po- čítače (PC). Rotační elektromechanický systém se skládá z in- krementálního kvadraturního rotačního kodéru a stejnosměr- ného (DC) motoru buzeného servozesilovačem MAR 25/2 vyro- beného firmou Mattke AG. Uvedený elektromechanický systém s realizovaným řídicím modulem umožňuje regulaci rychlosti otáčení rotoru od 1 do 180 ot/min v obou směrech otáčení. Během otáčení rotoru mechanického systému je řídicí modul schopen zaznamenávat úhlovou pozici rotoru s maximální rych- lostí vzorkování pozice 500 kSa/s. Systém také umožňuje kroko- vání úhlové pozice s diskrétním krokem od 10° do 180° ±1’. V článku je uveden popis elektromechanického systému, metody řízení DC motoru a zpracování zaznamenaných dat jednočipo- vým mikropočítačem. Dále je zmíněn příklad jednoduchého komunikačního protokolu mezi modulem a PC prostřednictvím sběrnice USB (Universal Serial Bus). Součástí je také ukázka ovládacího software a naměřených vlastností popisovaného řídicího modulu s daným elektromechanickým systémem. Úvod Cílem tohoto článku je ukázat jedno z možných jednoduchých řešení řídicího modulu pro daný elektromechanický rotační sys- tém s výbornými dosaženými vlastnostmi a maximální flexibi- litou použití v porovnání s doposud publikovanými řešeními elektromechanických pozičních systémů. Popisovaný řídicí modul dokáže kromě nastavení rychlosti otáčení také zazname- návat úhlovou pozici rotoru při nastavené rychlosti otáčení a krokovat úhlovou pozici po nastavených diskrétních úhlových krocích. Předkládané řešení řídicího modulu daného elektrome- chanického systému v porovnání s podobným elektromechanic- kým pozičním systémem a jeho metodou řízení publikovaným v [1] a [2] přináší více funkčních možností. Popisovaný řídicí modul byl navržen a realizován v rámci řešení zadání diplo- mové práce pro firmu ON Design Czech s.r.o. Detailní popis rozboru a návrhu popisovaného řešení řídicího modulu je uve- den v [3]. Následující text je rozdělen do pěti základních kapitol a za- měřuje se pouze na popis realizovaného řídicího modulu včetně metod nastavení rychlosti otáčení a měření úhlové pozice z dů- vodů zamýšleného rozsahu článku. První kapitola se zabývá obecným popisem daného elektromechanického systému. Roz- bor řešení včetně konceptu blokového zapojení elektronického systému řídicího modulu se nachází v kapitole druhé. Popis pro- gramu (firmware) pro řídicí mikropočítač včetně metod měření úhlové pozice a nastavení rychlosti otáčení rotoru uvádí kapi- tola třetí. Ukázku řídicí PC aplikace a komunikačního protokolu pro komunikaci mezi PC a řídicím modulem uvádí kapitola čtvrtá. Závěrečná pátá kapitola představuje shrnutí výsledných vlastností popisovaného řídicího modulu s daným elektrome- chanickým systémem. 1 Elektromechanický systém Elektromechanický systém od zadavatele diplomové práce se skládá z inkrementálního kvadraturního rotačního kodéru EDH 581 firmy INDUcoder [4] a DC motoru s tachodyna- mem buzeného servozesilovačem MAR 25/2 vyrobený firmou Mattke AG [5]. Skutečnou podobu elektromechanického rotač- ního systému ukazuje Obrázek 1. Obrázek 1: Elektromechanický rotační systém. Servozesilovač MAR 25/2 je analogový servozesilovač s re- gulací typu PI (proporcionální a integrační) primárně určený pro buzení DC motoru vybaveným tachodynamem. Tachody- namo nebo také jen dynamo je elektrický stroj, který generuje stejnosměrné napětí přímo úměrné otáčivé rychlosti rotoru tachodynama. Tachodynamo tak slouží jako snímač otáček ro- toru pro servozesilovač, jehož úkolem je udržovat nastavenou otáčivou rychlost rotoru konstantní [6]. Elektrický DC motor byl zvolen zadavatelem jako pohon elektromechanického sys- tému díky jeho vhodným charakteristikám řízení rychlosti. Moderní řešení s krokovým motorem např. dle [7] umožňuje jednoduché nastavování úhlové pozice definovaným počtem budících pulzů, ale kvůli nežádoucímu nespojitému pohybu při nízkých otáčkách a výsledné ceně celého zařízení bylo po- necháno původní řešení. Daný elektromechanický systém byl doplněn o řídicí mo- dul, který byl navržen pro umožnění ovládání systému pomocí PC za účelem automatizovaného měření vlastností úhlových pozičních senzorů. Při návrhu řídicího modulu bylo rozhodnuto využít plného potenciálu řídicího mikropočítače (MCU) a tím rozšířit původní zamýšlenou funkci měření referenční úhlové pozice rotoru při konstantní rychlosti otáčení pomocí PC na další funkce. Mezi tyto další funkce patří nastavování VOL.20, NO.1, FEBRUARY 2018 6 rychlosti otáčení a krokování úhlové pozice po předem nasta- vených úhlových krocích. Celý systém byl navržen pro případ, kdy je na PC spuštěna příslušná aplikace zajišťující komunikaci a zpracování zaznamenaných údajů z řídicího modulu. Při ná- vrhu systému byla také brána v úvahu možnost připojení exter- ního modulu pomocí dedikovaných signálů. Mezi tyto signály patří synchronní vzorkovací signál úhlové pozice rotoru SYNCB (aktivní v logické nule) při konstantní rychlosti otáčení a signály pro hardwarové řízení krokování úhlové pozice DO STEPB (udělej krok, aktivní v logické nule), STEP DIR (směr kroku, např. logická jednička znamená směr po směru hodinových ručiček) a DONE (krok dokončen). Externím modulem může být například generátor impulsů pro přesné vzorkování úhlové pozice rotoru při rotaci danou rychlostí. Celkové blokové schéma elektromechanického sys- tému, které se skládá z DC motoru, tachodynama, planetové převodovky s převodem na nižší rychlost otáčení, řídicího mo- dulu a servozesilovače pro buzení DC motoru, je uvedeno na Obrázku 2. Obrázek 2: Blokové schéma elektromechanického systému. Z důvodu přehlednosti není v blokovém schématu systému zakresleno napájení jednotlivých částí. K tomuto blokovému schématu bylo navrhnuto blokové regulační schéma elektrome- chanického systému uvedené na Obrázku 4, kde M je DC mo- tor, T je tachodynamo a K je inkrementální rotační kodér. Celý elektromechanický regulační systém je založen na celkem třech uzavřených regulačních smyčkách. První dvě uzavřené re- gulační smyčky jsou proudová a napěťová implementované v servozesilovači. Proudová regulační smyčka omezuje maxi- mální proud DC motorem a určuje tak maximální točivý mo- ment motoru. Napěťová regulační smyčka nastavuje napětí na svorkách DC motoru tak, aby rychlost otáčení rotoru snímána tachodynamem ve formě napětí uT(t) odpovídala požadované rychlosti otáčení n. Požadovaná rychlost otáčení rotoru se na- stavuje pomocí napětí analogového signálu SPD uSPD(t). Digi- tální signál STOP uSTOP(t) slouží pro okamžité zastavení rotoru pomocí aktivace regulace nulového točivého mementu DC mo- toru. Třetí uzavřená regulační smyčka je digitální uzavřená re- gulační smyčka řídicího modulu pro nastavování požadované úhlové pozice rotoru φ. Referenčním snímačem digitální uza- vřené regulační smyčky je kvadraturní inkrementální rotační kodér EDH 581 generující digitální signál c(t) ve formě sledu pulzů. Tato uzavřená regulační smyčka je také využita při ka- libraci řídicího modulu po zapnutí a při krokování úhlové pozice podobně jak je uvedeno v [2]. 2 Řídicí modul Návrh elektronického systému řídicího modulu vychází z poža- davku zachování přesností řízení rychlosti otáčení a měření úh- lové pozice určenými daným elektromechanickým systémem. Výsledné blokové zapojení elektronického systému řídicího modulu je uvedeno na Obrázku 3. Obrázek 3: Blokové zapojení elektronického systému řídicího modulu. DA převodník Napěťová reference MCU M T KAU=2 + - AU=4 + - URE F URE F xDAC(t) uSTOP(t) uT(t) uM(t)uSPD(t) c(t) uDAC(t) φ, n Analogový servozes ilovač Řídicí modul Daný elektromechanický systém Obrázek 4: Blokové regulační schéma popisovaného elektromechanického systému. Lineární servo- zesilovač Řídicí modul PC A, B, M DO STEPB, STEP DIR, SYNCB, DONE USB STOP DC motor Dynamo s převo- dovkou Rotační kodér Tacho Motor Externí modul SPD MCU +10 V Rozdílový zesilovač -10 V SPD STOP +A −A +B −B +M −M USB 5V +D −D USB GND SYNCB In kr e m e n tá ln í r o ta čn í ko d é r P C U SB Ex te rn í m o d u l Li n . s e rv o ze si lo va č Napěťová reference 2,5 V STEP DIR DO STEPB Rx RS422 A B M U SB O TG USB ISO DONE LDO regulátor DC/DC konvertor +5V/+30V + 3,3V 5V EXT/INT +3,3V + 3,3V +5V +5V VOL.20, NO.1, FEBRUARY 2018 7 V první etapě návrhu řídicího modulu bylo nutné zvolit roz- sah nastavitelné rychlosti otáčení rotoru. Teoretická maximální nastavitelná rychlost otáčení pro spolehlivý záznam úhlové pozice rotoru při otáčení byla stanovena 180 ot/min dle odvo- zeného vztahu: 𝑛max = 60 ∙ 𝑓max 𝑁 . (1) Vztah (1) byl odvozen na základě přímé úměrnosti maxi- mální rychlosti otáčení nmax, uvažovanou v otáčkách za minutu, s maximálním kmitočtem snímaných kvadraturních digitálních signálů rotačního kodéru A a B ve vztahu označeným fmax. Výrobce použitého rotačního kodéru uvádí mezní kmitočet budičů signálů A a B 300 kHz. Parametr N v uvedeném vztahu udává počet pulzů signálů A a B rotačního kodéru na jednu mechanickou otáčku. V tomto případě je parametr N roven hod- notě 100 000 pulzů. Přesnost zaznamenané polohy je v uvede- ném řešení dána použitým rotačním kodérem, u něhož výrobce udává přesnost ±1 úhlovou minutu [4]. Minimální nastavitelná rychlost otáčení byla stanovena 1 ot/min z důvodu experimen- tálně zjištěného omezení regulačních vlastností použitého ser- vozesilovače. Z důvodů částečně automatizovaného ovládání a zpracová- vání digitálních signálů včetně jejich zaznamenávání bylo zvo- leno řešení modulu s MCU. MCU řídí zařízení k němu vhodně připojená a také zajišťuje komunikaci s PC, která zahrnuje po- vely včetně předávání zaznamenaných dat. Řídicí modul dále obsahuje snižující DC/DC konvertor, napěťový regulátor s níz- kým napěťovým úbytkem (LDO), přijímače linek standardu RS422 pro inkrementální rotační kodér, napěťovou referenci, rozdílový zesilovač a obvod galvanického oddělení USB sběr- nice (USB ISO) s protekcí proti elektrostatickému výboji do této sběrnice. Fotografie realizovaného řídicího modulu je uvedena na Obrázku 5. Obrázek 5: Realizovaný řídicí modu. Na Obrázku 6 se nachází zapojení rozdílového zesilovače, který byl navrhnut pro potřebu generování záporného řídicího napětí servozesilovače uSPD(t). Pomocí velikosti tohoto napětí se nastavuje požadovaná rychlost otáčení a pomocí polarity směr otáčení rotoru DC motoru. Požadovaný rozsah řídicího napětí cca od -10 do +10 V lze dosáhnout nejen vhodnou vol- bou zesílení rozdílového zesilovače a předzesilovačů signálů do něj vstupujících, ale i volbou referenčního napětí. Toto refe- renční napětí je pro digitálně analogový převodník (DAC) a na- vrhnutý rozdílový zesilovač společné. OZ1 OZ3 OZ2 R1 R2 R3 R4 R6 R5 UREF UDAC GND GND USPD Obrázek 6: Schéma zapojení rozdílového zesilovače. Výsledné výstupní napětí uvedeného zapojení rozdílového zesilovače popisuje následující vztah: 𝑈SPD = (𝐴UOZ2 ∙ 𝑈DAC − 𝑈REF) ∙ 𝐴UOZ3, (2) kde AUOZx jsou napěťová zesílení jednotlivých stupňů s danými operačními zesilovači (OZx) a UREF je velikost společného re- ferenčního napětí. Požadovanému rozsahu řídicího napětí zhruba od -10 do +10 V odpovídají hodnoty napěťových zesí- lení 2 pro zesilovač s operačním zesilovačem OZ2 a 4 pro roz- dílový zesilovač s operačním zesilovačem OZ3. Tyto velikosti zesílení platí za podmínky použití společného referenčního napětí o velikosti 2,5 V. 3 Firmware řídicího modulu Na Obrázku 7 je uveden stavový diagram výsledného firmware řídicího modulu. Přechody ve stavovém diagramu jsou podmí- něny přijatým příkazem z PC nebo splněním dané podmínky uvedené v diagramu. Při přechodu z většiny stavů na jiné stavy jsou poté ještě volány další procedury, jako je například zasta- vení otáčení rotoru a odeslání zaznamenaných vzorků pozice do PC v případě přechodu zestavu MPOS loop (smyčka měření po- zice) na stav Idle (vyčkávání). Tyto procedury nejsou pro zjed- nodušení ve stavovém diagramu zakresleny. Obrázek 7: Stavový diagram firmware řídicího modulu. Reset Idle MPOS set Příkaz = MPOS MPOS loop Příkaz = STOP nebo Index data = cílový počet vzorků STEP set STEP loop Příkaz = STOP MSPD set Příkaz = MSPD Zmačknutí tlačítka Stop Příkaz = STEP SYNCB proc STEP proc DO STEPB přerušení nebo DO STEP příkaz SYNCB přerušení Kalibrace Zpráva „Hi ONROT_CTRL!“ přijata Příkaz = CALIB Krokování pozice nastaveno Měření pozice nastaveno Kalibrace dokončena Krok proveden Záznam pozice proveden VOL.20, NO.1, FEBRUARY 2018 8 Význam použitých názvů ve stavovém diagramu uvádí ná- sledující Tabulka 1. Tabulka 1: Význam názvů ve stavovém diagramu. Název stavu Popis Idle Vyčkávání na příkaz z PC Kalibrace Proces provedení kalibrace elektrome- chanického systému MSPD set Mód nastavení a měření rychlosti otá- čení rotoru STEP set Mód nastavení krokování úhlové po- zice rotoru STEP loop Mód krokování úhlové pozice rotoru, vyčkávání na příkaz „DO STEP“ z PC nebo na sestupnou hranu signálu „DO STEPB“ spouštějící provedení úhlového kroku STEP proc Provedení definovaného úhlového kroku rotoru MPOS set Mód zaznamenávání úhlové pozice ro- toru při nastavené rychlosti otáčení, nastavení parametrů a roztočení rotoru na požadovanou rychlost otáčení MPOS loop Vyčkávání na sestupnou hranu syn- chronního vzorkovacího signálu „SYNCB“ SYNCB proc Provedení záznamu aktuální pozice ro- toru do datové paměti MCU 3.1 Měření úhlové pozice rotoru Úhlová pozice je snímána na základě počítání pulzů 32 bito- vým čítačem pozice v MCU, který umožňuje přímé připojení kvadraturního signálu z inkrementálního rotačního kodéru. Kvadraturní signál se skládá ze signálů A a B se vzájemným posuvem 90° elektrických. Rozlišení kodéru je využitím této vlastnosti zvýšeno ze 100 000 na 400 000 pulsů na jednu me- chanickou otáčku díky reakcím čítače pozice jak na nástupné, tak sestupné hrany kvadraturního signálu rotačního kodéru. Čítač pozice také na základě sledu pulsů signálů A a B, který určuje směr otáčení rotoru, zvyšuje nebo snižuje svou hodnotu. Hodnota registru čítače pozice tak přesně odpovídá úhlové pozici rotoru. V případě příchodu sestupné hrany signálu M z rotačního kodéru je obsah registru čítače pozice vynulován, protože signál M označuje nulovou (počáteční) pozici rotoru ro- tačního kodéru. Tohoto signálu se také využívá při kalibrační proceduře, kdy se na závěr kalibrace nastaví rotor na nulovou pozici danou sestupnou hranou signálu M. 3.2 Nastavení rychlosti otáčení rotoru Rychlost otáčení se nastavuje pomocí digitální hodnoty DA převodníku na základě výpočtu pomocí odvozeného vztahu a zjištěných konstant. Pro odvození vztahu popisujícího závis- lost rychlosti otáčení na výstupním napětí DA převodníku se vyšlo ze vztahu (3), který popisuje indukované napětí na svorkách DC motoru přímo úměrné rychlosti otáčení jeho rotoru [6]. 𝑈DCmotor = 𝑘BEMF ∙ 𝜔n. (3) Konstanta kBEMF ve vztahu (3) je známa jako konstanta úměrnosti indukovaného napětí, kterou určuje použitý DC mo- tor. Parametr ωn je úhlová rychlost rotoru motoru [6]. Zavede- ním podobného vztahu (4), který popisuje rychlost otáčení n v závislosti na řídicím napětí USPD, a jeho doplněním o vztah (2) se získá vztah závislosti rychlosti otáčení na výstupním napětí DA převodníku (5). 𝑛 = 𝑘𝑛analog ∙ 𝑈SPD + 𝑛offset , (4) 𝑛 = 𝑘𝑛analog ∙ (𝐴UOZ2 ∙ 𝑈DAC − 𝑈REF) ∙ 𝐴UOZ3 + 𝑛offset . (5) Konstanta knanalog v uvedených vztazích je zavedená pře- vodní konstanta pro převod řídicího napětí servozesilovače na mechanické otáčky rotoru. Jednotkou této konstanty je ot/(min∙V). Hodnota převodní konstanty knanalog zahrnuje zisk servozesilovače včetně konstant úměrnosti indukovaného na- pětí DC motoru a tachodynama. Parametr noffset označuje nežá- doucí rychlost otáčení při výstupním napětí DA převodníku odpovídajícímu nulové rychlosti otáčení rotoru. Tato nežádoucí chyba nastavené rychlosti otáčení je způsobena zejména vstup- ními napěťovými nesymetriemi rozdílového zesilovače a servo- zesilovače. Pro nastavovací algoritmus rychlosti otáčení ve firmware byl zaveden vztah (6). Tento vztah vychází ze vztahu (4) a po- pisuje velikost nastavené rychlosti otáčení na digitální hodnotě DA převodníku označenou parametrem XDAC. offset DACmax DACdigital 2 n X Xknn              . (6) Zavedená digitální převodní konstanta kndigital s jednotkou ot/(min∙kód) slouží k určení digitální hodnoty DA převodníku v závislosti na požadované rychlosti otáčení dle vztahu (8). Dále byla definována klidová hodnota DA převodníku rovná polovině jeho rozsahu, protože za předpokladu lineárního regu- lačního systému se pro tuto hodnotu očekává nulová rychlost otáčení. Toto řešení umožňuje nastavování rychlosti otáčení ro- toru v obou směrech pouze digitální hodnotou DA převodníku bez dalšího digitálního signálu určujícího požadovaný směr otá- čení rotoru. Vztah (7) vznikl doplněním známého vztahu pro maximální hodnotu DA převodníku do vztahu (6), kde m ozna- čuje počet bitů použitého DA převodníku. Ze vztahu (7) byl poté odvozen již zmíněný vztah (8). offsetDACdigital 2 12 nXknn m                 , (7)           2 12 digital offset DAC m kn nn X . (8) Konstanty noffset a kndigital jsou zjišťovány při kalibrační pro- ceduře, která se defaultně provádí po úspěšném navázání komu- nikačního spojení řídicího modulu s řídicí aplikací na PC. VOL.20, NO.1, FEBRUARY 2018 9 Při kalibraci se nejprve desetkrát změří nežádoucí rychlost otáčení noffset pro digitální hodnotu DA převodníku odpovídající polovině jeho rozsahu. Z těchto naměřených hodnot se vypočte aritmetický průměr, který se uloží do paměti MCU. Poté násle- duje nastavení hodnoty DA převodníku do třech předem daných hodnot pro nízkou, střední a vysokou rychlost otáčení. Při těchto hodnotách DA převodníku se pokaždé změří rychlost otáčení a určí se převodní konstanta kndigital dle vztahu (9), který byl odvozen ze vztahu (7). Nakonec se vypočte aritme- tický průměr hodnot této převodní konstanty, který se také uloží do paměti MCU a měřicí systém je tak připraven k použití.   212 DAC offset    mdigital X nn kn . (9) Na Obrázku 8 jsou uvedeny grafy relativních chyb kalibrací vůči aritmetickému průměru hodnot kndigital a noffset, které byly získány na základě výsledků provedení deseti kalibrací elektro- mechanického systému. Obrázek 8: Přesnost kalibrační procedury. 3.3 Měření rychlosti otáčení rotoru Firmware provádí měření rychlosti otáčení na základě myš- lenky, že 1 mechanická otáčka za 1 sekundu je změna úhlové pozice rotoru odpovídající počtu pulsů rotačního kodéru za 1 sekundu. Pomocí této myšlenky byl odvozen následující vztah určující rychlost otáčení za 1 minutu: max 60      t n , (10) kde n jsou otáčky, Δφ je změna úhlové pozice v pulzech ro- tačního kodéru za zvolenou dobu Δt a φmax je počet pulzů na jednu mechanickou otáčku použitého rotačního kodéru. V tomto případě, kdy čítač pozice reaguje jak na nástupné, tak i sestupné hrany kvadraturního signálu rotačního kodéru, je ma- ximální hodnota čítače pozice 400 000 pulzů na jednu mecha- nickou otáčku. Doba měření rychlosti otáčení Δt je doba od odečtení počáteční úhlové pozice φ1 po odečtení koncové úhlové pozice φ2. Rozsah doby měření lze v závislosti na roz- sahu měřené rychlosti otáčení popsat vztahem (11) vycházející ze vztahu (10). maxmax max maxmin min 6060           n t n . (11) Po dosazení uvažovaného rozsahu měřené rychlosti otáčení od 1 do 180 ot/min a změny hodnoty čítače pozice od 1 do 400 000 pulzů je rozsah doby měření rychlosti otáčení od 150 µs do cca 333 ms. Ve firmware byla s dostatečnou re- zervou zvolena doba měření rychlosti otáčení 100 ms. Firmware také obsahuje ošetření chyby výpočtu rychlosti otáčení v zadaném směru při průchodu rotoru nulovou úhlovou pozicí. Při výpočtu rychlosti otáčení dle odvozeného vztahu (10) může například při otáčení ve směru hodinových ru- čiček opakovaně s určitou pravděpodobností nastat situace, kdy je koncová pozice φ2 po uplynutí stanovené doby Δt menší než počáteční pozice φ1 na začátku měřicího cyklu. Při této situaci je výsledek výpočtu rychlosti otáčení nesmyslný a je nutné provést korekci určení změny úhlové pozice Δφ. Korekce změny úhlové pozice s podmínkami použití jsou uve- deny v následující Tabulce 2. Tabulka 2: Vztahy pro výpočet změny úhlové pozice při měření rychlosti otáčení a jejich podmínky použití. Směr Výpočet změny úhlu Podmínka Ve směru hodinových ručiček (CW) 12   12     max12   12   Proti směru hodinových ručiček (CCW) 12   12     1max2   12   3.4 Krokování úhlové pozice rotoru Po zadání požadovaného úhlového kroku rotoru jako změny hodnoty pozičního čítače Δφ z PC aplikace je pomocí MCU do- počítána koncová úhlová pozice φ2. Poté řídicí modul vyčkává na příkaz provedení úhlového kroku. V případě požadavku pro- vedení úhlového kroku řídicí modul deaktivuje digitální signál STOP a nastaví nízkou rychlost otáčení rotoru 10 ot/min. Během otáčení rotoru firmware testuje hodnotu čítače pozice, jestli byla dosažena cílová pozice rotoru. Pokud je hodnota čítače pozice rovna cílové hodnotě, aktivuje se digitální signál STOP pro servozesilovač, který zastaví DC motor. Pro správný výpočet koncové úhlové pozice platí podobné korekce výpočtu jako při měření rychlosti otáčení v rámci ošetření chyby výpo- čtu kvůli průchodu rotoru nulovou úhlovou pozicí. Koncová úhlová pozice se spočítá nejprve bez korekce dle požadovaného směru otočení. Poté následuje otestování podmínkou, zdali je výsledná koncová úhlová pozice větší jak nula a zároveň menší než maximální rozsah rotačního kodéru φmax. Při nesplnění této podmínky se provede korekce výpočtu koncové pozice dle ade- kvátního vztahu z Tabulky 3. -8 -4 0 4 8 -0,8 -0,4 0,0 0,4 0,8 1 2 3 4 5 6 7 8 9 10 re l. ch yb a n o ff se t [% ] re l. ch yb a kn d ig it al [% ] číslo měření rel. chyba kndigital rel. chyba noffsetrel. chyba kndigital rel. chyba noffset VOL.20, NO.1, FEBRUARY 2018 10 Tabulka 3: Vztahy pro výpočet koncové úhlové pozice při kro- kování úhlové pozice rotoru a jejich podmínky platnosti. Směr Výpočet Podmínka Ve směru hodinových ručiček (CW) 𝜑2 = 𝜑1 + ∆𝜑 𝜑2 > 0 ⋀ 𝜑2 < 𝜑𝑚𝑎𝑥 𝜑2 = 𝜑1 + ∆𝜑 − 𝜑𝑚𝑎𝑥 - Proti směru hodinových ručiček (CCW) 𝜑2 = 𝜑1 − ∆𝜑 𝜑2 > 0 ⋀ 𝜑2 < 𝜑𝑚𝑎𝑥 𝜑2 = 𝜑1 − ∆𝜑 + 𝜑𝑚𝑎𝑥 - 3.5 Přesnost nastavovaných rychlostí otáčení rotoru Přesnost nastavovaných rychlostí otáčení rotoru pro vyšší a nižší nastavované rychlosti otáčení než 10 ot/min v obou smě- rech otáčení uvádí grafy na Obrázcích 9 a 10. Nastavení a mě- ření rychlostí bylo provedeno pomocí výše uvedených metod implementovaných ve firmware MCU řídicího modulu. Obrázek 9: Přesnost nastavení vyšších rychlostí otáčení než 10 ot/min. Obrázek 10: Přesnost nastavení nižších rychlostí otáčení než 10 ot/min. 3.6 Maximální vzorkovací rychlost úhlové pozice a mi- nimální úhlový krok rotoru Obrázek 11 ukazuje osciloskopem změřenou dobu reakce řídi- cího modulu na sestupnou hranu synchronizačního (vzorkova- cího) signálu SYNCB v módu synchronního záznamu úhlové pozice při nastavené rychlosti otáčení. Změřena reakční do- ba pro zpracováni požadavku záznamu úhlové pozice je cca 1,8 µs, která zároveň definuje minimální vzorkovací peri- odu úhlové pozice rotoru signálem SYNCB. Tato vzorkovací perioda byla změřena pomocí signálu DONE, který je v řídicím modulu také použit k informaci o dokončení úhlového kroku. Klidová úroveň tohoto signálu je logická jednička (vysoká úroveň). Podle změřené reakční doby na signál SYNCB byla stanovena maximální vzorkovací rychlost úhlové pozice rotoru s dostatečnou rezervou 500 kSa/s. Obrázek 11: Reakce signálu DONE na synchronní vzorkovací signál SYNCB. Minimální krok v módu krokování úhlové pozice byl zvolen 10° mechanických zejména z důvodu elektromechanické ode- zvy na jednotkový skok řídicího signálu servozesilovače. Toto dynamické chování elektromechanického systému s daným řešením nelze ovlivnit, protože je dané použitým servozesilo- vačem. Odezvu na náhlé aktivování regulace rychlosti otáčení rotoru servozesilovačem pomocí deaktivování digitálního sig- nálu STOP s prvním prototypem řídicího modulu ukazuje foto- grafie osciloskopem nasnímaných průběhů napětí tachody- nama, signálu A z rotačního kodéru a výstupního napětí rozdí- lového zesilovače na Obrázku 12. Obrázek 12: Odezva elektromechanického systému po deakti- vaci signálu STOP, který nastavuje nulový točivý moment DC motoru. -1 0 1 2 3 4 5 10 30 50 70 90 110 130 150 170 190 re l. ch yb a n n as ta ve n é [% ] nnastavené [ot/min] CW CCW -60 -40 -20 0 20 40 60 80 100 1 2 3 4 5 6 7 8 9 10 re l. ch yb a n n as ta ve n é [% ] nnastavené [ot/min] CW CCW VOL.20, NO.1, FEBRUARY 2018 11 4 Ukázka PC aplikace a komunikačního pro- tokolu Pro uživatelsky přívětivé ovládání popisovaného řídicího mo- dulu byla vytvořena PC aplikace, jejichž grafické uživatelské rozhraní je uvedeno na Obrázku 13. Obrázek 13: Ukázka grafického uživatelského rozhraní apli- kace řídicího modulu pro PC. Pomocí této aplikace lze nastavit požadovaný mód řídicího modulu, přijmout zaznamenaná data úhlové pozice rotoru při nastavené rychlosti otáčení a zpracovat je do grafů jak v ča- sové, tak i v kmitočtové oblasti pomocí rychlé Fourierovy trans- formace (FFT). Ta se provádí na základě známé vzorkovací periody, kterou udává synchronní vzorkovací signál SYNCB. Aplikace také provádí záznam komunikace, který je v případě potřeby možné uložit na pevný disk PC ve formě textového sou- boru dat pro další zpracování. Ukázka zaznamenaných úhlo- vých pozic rotoru při nastavené rychlosti otáčení 40 ot/min v časové oblasti je na Obrázku 14 a ukázka obrazu v kmitočtové oblasti takto zaznamenaných úhlových pozic je na Obrázku 15. Obrázek 14: Ukázka zaznamenaných úhlových pozic při nasta- vené rychlosti otáčení 40 ot/min (ručně vzorkováno). Obrázek 15: Ukázka kmitočtového spektra zaznamenaných úh- lových pozic při nastavené rychlosti otáčení 40 ot/min (ručně vzorkováno, 1 Hz odpovídá 1 ot/s). V řídicím modulu a v PC aplikaci je implementován komu- nikační protokol využívající virtuální sériový port na sběrnici USB, který je součástí použitého MCU. Tento sériový port je provozován v režimu asynchronní sériové komunikace ozna- čované jako USART (Universal Serial Asynchronous Re- ceiver/Transmitter). Asynchronní sériová komunikace nevyu- žívá taktovací linku, ale využívá přesně definovaných časových intervalů datových bitů přenášených po blocích přes datovou linku. Z tohoto hlediska je důležité, aby přijímací strana dodr- žela předem nastavenou rychlost komunikace jako vysílací strana [8]. V řídicím modulu je například přednastavená komu- nikační rychlost s PC 9600 b/s. Ukázku příkazových zpráv pro komunikaci PC s řídicím modulem uvádí následující Tabulka 4. Tabulka 4: Ukázka příkazů řídicího modulu. Příkaz Funkce Hi ROT_CTRL! Zahájení komunikace s řídicím modu- lem CALIB Opětovné provedení kalibrace elektro- mechanického rotačního systému MPOS n směr N Nastavení módu zaznamenávání úhlové pozice pro nastavení rychlosti otáčení, směru otáčení a maximálního počtu vzorků úhlové pozice STEP spouš- tění krok Nastavení módu krokování úhlové po- zice s definovaným typem spuštění pro- vedení kroku (EXT nebo SW) a veli- kosti úhlového kroku DO STEP směr Provedení úhlového kroku zvoleným směrem MSPD n směr Volba módu nastavení a měření rych- losti otáčení pro nastavenou rychlost otáčení v požadovaném směru otáčení STOP Ukončení aktivního módu VOL.20, NO.1, FEBRUARY 2018 12 Komunikační protokol mezi PC a řídicím modulem se sklá- dá z definovaných příkazů, systémových odpovědí a datových zpráv. Komunikace mezi PC a řídicím modulem je prováděna na základě dotazu a odpovědi. Atributy jsou od příkazu a od se- be odděleny jednou mezerou. Každý příkaz s atributy odeslaný z PC do řídicího modulu a odpověď v opačném směru jsou za- končeny řídicím znakem CR (Carriage Return, „\r“). Tím je jed- noznačně definován konec komunikace a začátek zpracování příkazu. 5 Závěr Cílem tohoto článku bylo stručně popsat jedno z možných jed- noduchých řešení řídicího modulu pro řízení pozičního rotač- ního elektromechanického systému pomocí PC. Publikovaná část je zaměřená především prakticky a poskytuje náměty k re- alizaci podobného pozičního elektromechanického systému. Popisovaný řídicí modul s uvedenými nastavovacími metodami umožňuje flexibilní použití jak v průmyslu, tak i ve výuce. Žádné jiné doposud publikované řešení pozičního elektrome- chanického systému neumožňuje tolik funkcí jako popisované řešení. Jediným nedostatkem řídicího modulu je nekompenzo- vaná nelinearita vyskytující se v blízkosti počátku regulační charakteristiky servozesilovače s nízkofrekvenčním šumem, se kterými se při vývoji řídicího modulu nepočítalo. Tyto jevy způsobují nezanedbatelnou chybu nastaveni rychlosti otáčení menší než 10 ot/min (viz Obrázek 10). Dosažené parametry uvedeného řešení elektromechanického systému s popsaným řídicím modulem uvádí Tabulka 5. Tabulka 5: Parametry řídicího modulu s daným elektromecha- nickým systémem. Parametr Hodnota Napájecí napětí Nastavitelné, 5 nebo 30 V Maximální příkon 1,4 W Rozsah nastavení rychlosti otáčení Od 1 do 180 ot/min po 1 ot/min v obou směrech Přesnost nastavení rychlosti otáčení Ve směru hod. ručiček: ± 5 % od 10 do 40 ot/min ± 1 % od 40 do 180 ot/min Proti směru hod. ručiček: ± 5 % od 7 do 20 ot/min ± 1 % od 20 do 180 ot/min Přesnost zaznamenané úh- lové pozice ± 0°1' Rozsah kroku při krokování úhlové pozice Od 10° do 180° ± 1' Minimální perioda syn- chronního vzorkovacího sig- nálu pozice SYNCB 2 µs (500 kHz) Literatura [1] CIUCUR, V. V. Speed position control system for DC mo- tor. 2014 16th International Conference on Harmonics and Quality of Power (ICHQP). Bucharest. IEEE, 2014, s. 876-879. ISBN 978-1-4673-6487-4. DOI: 10.1109/ICHQP.2014.6842915. [2] MORAR, A. DC MOTOR SPEED AND POSITION CON- TROL SYSTEM. IFAC Proceedings Volumes. 2007, 40(8), s. 203-208. ISSN 14746670. DOI: 10.3182/20070709-3-RO-4910.00034. [3] KROLÁK, D. Modul pro verifikaci rotačních pozičních senzorů. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav radi- oelektroniky, 2016. 73 s. Diplomová práce. [4] INDUCODER MESSTECHNIK GMBH. Standard No Shaft Encoder EDH 581. Duisburg, Germany, 2017. URL: http://www.inducoder.de/en/product/stand- ard-no-shaft-encoder-edh581.html [5] MATTKE AG. Linear amplifier 4-Q for DC-motors, MAR 25/2. Freiburg, Germany, 2015. URL: https://www.mattke.de/MAR-25-2-12-3.92.0.html? &L=1 [6] DE SILVA, C. W. Sensors and Actuators: Control Sys- tems Instrumentation. Boca Raton, FL: CRC Press, 2007. ISBN 1420044834. [7] LE K., H. Hoang, J. Jeon. An Advanced Closed-Loop Con- trol to Improve the Performance of Hybrid Stepper Mo- tors. IEEE Transactions on Power Electronics. 2017, 32(9), s. 7244-7255. 2017. ISSN 0885-8993. DOI: 10.1109/TPEL.2016.2623341. [8] KAINKA, B. Měření, řízení a regulace pomocí PC: Vývoj hw a sw pro praxi. Praha: BEN – technická literatura, 2003, 271 s. ISBN 80-7300-089. VOL.20, NO.1, FEBRUARY 2018 13 http://www.inducoder.de/en/product/standard-no-shaft-encoder-edh581.html http://www.inducoder.de/en/product/standard-no-shaft-encoder-edh581.html https://www.mattke.de/MAR-25-2-12-3.92.0.html?&L=1 https://www.mattke.de/MAR-25-2-12-3.92.0.html?&L=1