Full text
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.kr[email protected] 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 controlling 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 180rpm 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 between 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.krol[email protected] Abstrakt – Tento článek prezentuje jedno z možných jednoduchý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 inkrementálního kvadraturního rotačního kodéru a stejnosměrného (DC) motoru buzeného servozesilovačem MAR 25/2 vyrobené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í rychlostí vzorkování pozice 500 kSa/s. Systém také umožňuje kroková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čipový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í systém s výbornými dosaženými vlastnostmi a maximální flexibilitou 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é zaznamená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 elektromechanického systému v porovnání s podobným elektromechanický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í diplomové práce pro firmu ON Design Czech s.r.o. Detailní popis rozboru a návrhu popisovaného řešení řídicího modulu je uveden v [3]. Následující text je rozdělen do pěti základních kapitol a zaměř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. Rozbor řešení včetně konceptu blokového zapojení elektronického systému řídicího modulu se nachází v kapitole druhé. Popis programu (firmware) pro řídicí mikropočítač včetně metod měření úhlové pozice a nastavení rychlosti otáčení rotoru uvádí kapitola 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 elektromechanický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 tachodynamem 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 regulací typu PI (proporcionální a integrační) primárně určený pro buzení DC motoru vybaveným tachodynamem. Tachodynamo 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 rotoru pro servozesilovač, jehož úkolem je udržovat nastavenou otáčivou rychlost rotoru konstantní [6]. Elektrický DC motor byl zvolen zadavatelem jako pohon elektromechanického systé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 ponecháno původní řešení. Daný elektromechanický systém byl doplněn o řídicí modul, 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 nastavený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í externí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 systému, které se skládá z DC motoru, tachodynama, planetové převodovky s převodem na nižší rychlost otáčení, řídicího modulu 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 elektromechanického systému uvedené na Obrázku 4, kde M je DC motor, 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é regulační smyčky jsou proudová a napěťová implementované v servozesilovači. Proudová regulační smyčka omezuje maximální proud DC motorem a určuje tak maximální točivý moment 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 nastavuje pomocí napětí analogového signálu SPD uSPD(t). Digitální signál STOP uSTOP(t) slouží pro okamžité zastavení rotoru pomocí aktivace regulace nulového točivého mementu DC motoru. Třetí uzavřená regulační smyčka je digitální uzavřená regulační smyčka řídicího modulu pro nastavování požadované úhlové pozice rotoru φ. Referenčním snímačem digitální uzavř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 kalibraci ří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žadavku zachování přesností řízení rychlosti otáčení a měření úhlové 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 K AU=2 +-AU=4 + - UREF UREF xDAC(t) uSTOP(t) uT(t) uM(t) uSPD(t) c(t) uDAC(t) φ, n Analogový servozesilovač Řídicí modul Daný elektromechanický systém Obrázek 4: Blokové regulační schéma popisovaného elektromechanického systému. Lineární servozesilovač Řídicí modul PC A, B, M DO STEPB, STEP DIR, SYNCB, DONE USB STOP DC motor Dynamo s převodovkou 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 Inkrementální rotační kodér PC USB Externí modul Lin. servozesilovač Napěťová reference 2,5 V STEP DIR DO STEPB Rx RS422 A B M USB OTG 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 rozsah 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 odvozeného vztahu: 𝑛max =60 ∙𝑓 max 𝑁. (1) Vztah (1) byl odvozen na základě přímé úměrnosti maximá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 hodnotě 100 000 pulzů. Přesnost zaznamenané polohy je v uvedené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 experimentálně zjištěného omezení regulačních vlastností použitého servozesilovač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 zvoleno řešení modulu s MCU. MCU řídí zařízení k němu vhodně připojená a také zajišťuje komunikaci s PC, která zahrnuje povely 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ízký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ěrnice (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 volbou 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 referenční napětí je pro digitálně analogový převodník (DAC) a navrhnutý 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 referenč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 rozdí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 zastavení otáčení rotoru a odeslání zaznamenaných vzorků pozice do PC v případě přechodu zestavu MPOS loop (smyčka měření pozice) na stav Idle (vyčkávání). Tyto procedury nejsou pro zjednoduš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 elektromechanického systému MSPD set Mód nastavení a měření rychlosti otáčení rotoru STEP set Mód nastavení krokování úhlové pozice 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 rotoru 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 synchronního vzorkovacího signálu „SYNCB“ SYNCB proc Provedení záznamu aktuální pozice rotoru 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 bitový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 mechanickou 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 rotač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ávislost 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 motor. Parametr ωn je úhlová rychlost rotoru motoru [6]. Zavedení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řevodní 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 napě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 vstupními napěťovými nesymetriemi rozdílového zesilovače a servozesilovače. Pro nastavovací algoritmus rychlosti otáčení ve firmware byl zaveden vztah (6). Tento vztah vychází ze vztahu (4) a popisuje velikost nastavené rychlosti otáčení na digitální hodnotě DA převodníku označenou parametrem XDAC. offset DACmax DACdigital 2n 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 regulač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í rotoru 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 nXknnm , (7) 2 12 digital offset DAC m kn nn X . (8) Konstanty noffset a kndigital jsou zjišťovány při kalibrační proceduře, která se defaultně provádí po úspěšném navázání komunikač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ásleduje 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 aritmetický 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 m digital 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í elektromechanické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 rotač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 maximální hodnota čítače pozice 400 000 pulzů na jednu mechanickou 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 rozsahu 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 rezervou 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 uvedeny 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 dopočítána koncová úhlová pozice φ2. Poté řídicí modul vyčkává na příkaz provedení úhlového kroku. V případě požadavku provedení ú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 adekvátního vztahu z Tabulky 3. -8 -4 0 4 8 -0,8 -0,4 0,0 0,4 0,8 12345678910 rel. chyba noffset [%] rel. chyba kndigital [%] číslo měření rel. chyba kndigital rel. chyba noffset rel. chyba kndigital rel. chyba noffset VOL.20, NO.1, FEBRUARY 2018 10
Tabulka 3: Vztahy pro výpočet koncové úhlové pozice při kroková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 minimální úhlový krok rotoru Obrázek 11 ukazuje osciloskopem změřenou dobu reakce řídicího modulu na sestupnou hranu synchronizačního (vzorkovacího) signálu SYNCB v módu synchronního záznamu úhlové pozice při nastavené rychlosti otáčení. Změřena reakční doba pro zpracováni požadavku záznamu úhlové pozice je cca 1,8 µs, která zároveň definuje minimální vzorkovací periodu ú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é odezvy 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 servozesilovačem. Odezvu na náhlé aktivování regulace rychlosti otáčení rotoru servozesilovačem pomocí deaktivování digitálního signálu STOP s prvním prototypem řídicího modulu ukazuje fotografie osciloskopem nasnímaných průběhů napětí tachodynama, 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 deaktivaci 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 rel. chyba nnastavené [%] nnastavené [ot/min] CW CCW -60 -40 -20 0 20 40 60 80 100 12345678910 rel. chyba nnastavené [%] nnastavené [ot/min] CW CCW VOL.20, NO.1, FEBRUARY 2018 11
4 Ukázka PC aplikace a komunikačního protokolu Pro uživatelsky přívětivé ovládání popisovaného řídicího modulu 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í aplikace ří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 časové, tak i v kmitočtové oblasti pomocí rychlé Fourierovy transformace (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 souboru dat pro další zpracování. Ukázka zaznamenaných úhlový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 nastavené rychlosti otáčení 40 ot/min (ručně vzorkováno). Obrázek 15: Ukázka kmitočtového spektra zaznamenaných úhlový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 komunikač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 Receiver/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á komunikač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 modulem CALIB Opětovné provedení kalibrace elektromechanické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é pozice s definovaným typem spuštění provedení kroku (EXT nebo SW) a velikosti ú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í rychlosti 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 sebe 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 zakončeny řídicím znakem CR (Carriage Return, „\r“). Tím je jednoznač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 jednoduchý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 realizaci 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 elektromechanického systému neumožňuje tolik funkcí jako popisované řešení. Jediným nedostatkem řídicího modulu je nekompenzovaná 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 elektromechanický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é úhlové pozice ± 0°1' Rozsah kroku při krokování úhlové pozice Od 10° do 180° ± 1' Minimální perioda synchronního vzorkovacího signálu pozice SYNCB 2 µs (500 kHz) Literatura [1] CIUCUR, V. V. Speed position control system for DC motor. 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 CONTROL 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 radioelektroniky, 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/standard-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 Systems Instrumentation. Boca Raton, FL: CRC Press, 2007. ISBN 1420044834. [7] LE K., H. Hoang, J. Jeon. An Advanced Closed-Loop Control to Improve the Performance of Hybrid Stepper Motors. 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