Jste zde

Motory a jejich řízení s MCU - 2.část - spínací můstky a jejich připojení k MCU

Zatímco v prvním díle seriálu "Motory a jejich řízení s MCU" byly uvedeny základní informace o hlavních typech a provedeních motorů využívaných v současné době, následující druhý díl se zaobírá možnostmi řízení elektromotorů pomocí mikrokontrolérů, strukturou spínacích můstků vhodných pro konkrétní typy motorů a základními informacemi pro realizaci řídícího programu v MCU a DSP.

Spínací můstky a buzení motorů

Spínací můstky slouží jako převodníky řídících signálů na výkonové napájení (buzení) motoru. Běžné jsou následující můstky:

  • Plný spínací H-můstek - umožňuje provoz motorů v obou směrech, využívá rychle smínaných MOSFET tranzistorů. Pro ochranu Back-EMF a indukce se připojují diody. Pro řízení bipolárních krokových motorů jsou potřeba dva plné H-můstky.

  • Poloviční H-můstek - využívá se pro řízení 3fázových a některých stejnosměrných motorů (např. BLDC). Zde se využívá 3 polovičních H-můstků, jeden pro každé vinutí U, V a W . Jedny konce každého vinutí jsou společně spojeny a musí být u řízení spínání tranzistorů zajištěno, aby nebyly zároveň otevřeny oba tranzistory - generování tzv. mrtvého pásma (Dead-Band), tj. překrývání doby PWM impulsů. Pro vysokonapěťové napájení se někdy místo MOSFET tranzistorů využívá IGBT.
 

Plný spínací H-můstek

Poloviční spínací H-můstek

Buzení hradel výkonových spínacích tranzistorů

Řídící MCU využívají normální výstupní napětí přičemž budiče hradel zvednou jeho hodnotu na úroveň potřebnou pro hradlo spínacích MOSFET neb IGBT tranzistorů. Zároveň vytvářejí oddělovací rozhraní pro eliminaci vlivu rušení, ochranu proti zkratu, spínací překryv (Dead-time) pro zamezení zkratu způsobeného současným sepnutím obou tranzistorů v polovičním H-můstku. Některé budiče nebo MCU mohou hlídat nadproud a tím chránit motor. Zabržděný (zaseknutý, zablokovaný) motor může spotřebovávat nadměrný proud.


 

Pulsní algoritmus (Chopper algorithm)

Pulsní algoritmus (Chopper algorithm) využívá PWM modulaci a v základním provedení se používá pro řízení průměrného stejnosměrného (zdánlivého) napětí u stejnosměrných BLDC a univerzálních motorů. Velikost tohoto napětí totiž určuje rychlost otáčení. Například PWM signál se střídou 50/50 % o aplitudě 20 V se motoru jeví jako 10 V stejnosměrné napětí. Dále čím větší amplitudu mají pulsy, tím větší je velikost proudu v impulsu a právě jeho velikost určuje točivý moment. Pro bipolární krokové motory se PWM spínání (přerušování) aplikuje ve 4 stavech - na vinutí v dopředné či zpětné polarizaci, různé algoritmy pro generování potřebného točivého momentu a hladkého pohybu. Proměnná střída PWM pak může generovat napětí podobné sinusovému průběhu. Toho se využívá u řízení střídavých motorů. Čím více pulsů, tím více se průběh blíží sinusovce. Větší četnost (frekvence) impulsů vytváří hladší průběh a tím generuje menší rušení (šum) a méně tepla. Při použití PWM na více fázové motory se PWM aplikuje v sekvencích tak, že jednoho vinutí je kladně napájené, ostatní vinutí nejsou napájená vůbec, reverzně napájená nebo se využívá kombinace obou.

 

Realizace uzavřené regulační smyčky (zpětné vazby)

  • Měření příčného proudu větví H-můstku - kontrola proti nadproudu, optimální řízení PWM, hrubá realizace zpětné vazby

  • Back-EMF (bezsenzorové snímání = sensorless) - měří napětí indukované v zrovna nenapájených vinutích, které se v tu chvíli chovají jako generátor, tzn. točivé mag. pole v nich indukuje napětí úměrné jeho velikosti, které je tak úměrné rychlosti otáčení motoru. Jeho nevýhoda je nutnost dlouhého snímání. Po převodu napětí A/D převodníkem, lze pomocí komparátoru vytvořit impulsní signál jehož frekvence je úměrná rychlosti otáčení.

  • Enkodér natočení (Position encoder)
    • Snímač s Hallovým senzorem - generuje signál detekcí střídání magnetického pole, obvykle neumožňuje přímo zjišťovat směr otáčení
    • Absolutní optický enkodér - generuje příliš složitý signál
    • Inkrementální snímače otáčení (Incremental encoder) - nejběžnější je optický. Dvoukanálové provedení umožňuje určovat nejen pozici, směr otáčení i rychlost. Jeho nevýhoda je, že na straně MCU musí být buď alespoň dva dostatečně rychlé čítače nebo lépe kvadraturní enkodér (QEI). Poskytuje však největší přesnost.

  • Tachodynamo (Tachogenerátor) - pracuje jako stejnosměrný generátor (motor), umožňují určit směr pohybu ze směru generovaného proudu, přesnější typy mohou mít sinusový výstup, využívají se obvykle jen pro velké motory

Nejjednodušším způsobem, jak realizovat zpětnou vazbu, je měření proudu větví H-můstku prostřednictvím A/D převodníku řídícího MCU

Enkodér s Hallovým snímačem (nahoře) a inkrementální enkodér (dole)

Topologie řízení a připojení motorů k MCU

 

Připojení a řízení univerzálních motorů

Univerzální motory jsou díky své univerzálnosti dnes dost často využívány v domácích spotřebičích, jakou jsou vysavače, různé ruční nástroje, kuchyňské stroje (mixéry, šlehače, sekáčky). Díky své konstrukci kartáčového komutátorového motoru s napájeným vinutím statoru i rotoru, a tím, že je lze napájet stejnosměrným (DC) i střídavým (AC) napětím a proudem, je možné jejich běh ovládat dvěma způsoby:

  • Přímým spínáním střídavého napětí triakem řízený MCU - na první pohled jednoduší, ale prakticky ne moc efektivní regulace pomocí řízení fáze (phase angle control).
  • Spínáním usměrněného napětí tranzistorem MOSFET nebo IGBT - jednoduší pro řídící program MCU a zajišťuje kvalitnější regulaci.

 

V prvém případě, tj. při řízení fáze (phase angle control), je univerzální motor napájen přímo střídavým napětím, například klasickým zásuvkovým napětím 230 V, a rychlost otáčení, resp. točivý moment, který je maximální při pomalých otáčkách a naopak minimální při otáčkách vysokých, se řídí spínáním triaku zapojeného na fázový vodič. V nejjednodušší variantě není potřeba ani MCU a spínání triaku reguluje některý k tomu vhodný neprogramovatelný integrovaný obvod (například TDA 1085), kdy se při průchodu sinusového průběhu nulou (bodem, kdy je napětí nulové) triak sepne a po nějaké době dané velikostí časovacího rezistoru, dojde k rozepnutí triaku ("rozpojení" obvodu). Tím se sinusový průběh "usekne", a protože je průměrná hodnota napětí a tím i rychlost otáčení úměrná velikosti plochy pod sinusovým průběhem, je výsledkem jednoduché řízení motoru. Bohužel jednoduchost je vykoupena zvýšeným hlukem otáčení, nekonstantním (zvlněným) průběhem točivého momentu a výrazným vysíláním rušení do elektrické sítě způsobené "ostrým seseknutím" sinusovky. V případě, že chceme regulovat motor softwarově, použije se MCU, které však musí mít výstup buď posílený externím tranzistorem (v horším případě) nebo je oddělený od triaku optočlenem, aby se k němu nepřenášelo rušení. Triak se však zapojuje do zpětného napájecího vodiče.

Metoda regulace univerzálního elektromotoru pomocí spínání triaku je hardwarově jednodušší, ale méně efektivní a v případě MCU softwarově složitější

V druhém případě je univerzální motor napájen stejnosměrně z usměrňovače tvořeného diodovým můstkem a filtračním kondenzátorem a průměrná hodnota napájecího napětí je regulována spínáním IGBT tranzistoru řízeného přes budič z MCU se spínacím algoritmem (tj. pomocí PWM modulace). Tzv. LCA dioda odstraňuje přepětí při rozepnutí tranzistoru a při zastavování motoru. Zatímco v prvním případě musel mikrokontrolér detekovat průchod sinusovky nulou a pak provádět časování, zde lze jen jednoduše časovat. Navíc PWM modulaci má většina mikrokontrolérů již řešenou jako periferii (PWM blokem), kde často stačí jen do řídícího registru tohoto bloku nastavit údaje o časování a nastavit zdroj hodin, příp. některé další a vestavěná logika již sama generuje na výstupní pinu PWM signál.

Jednotranzistorové spínání však umožňuje jen regulaci rychlosti otáčení a nelze měnit směr pohybu. To umožňuje až spínání napájení prostřednictvím plného H-můstku.

Připojení a řízení komutátorových kartáčových motorů

Kartáčové motory jsou konstruované pro napájení stejnosměrným napětím, a proto se zde využívá spínacího režimu "pouze" k řízení střední hodnoty napájecího napětí, protože té odpovídá rychlost otáčení rotoru. I když to lze provést v nejjednodušším případě jen jedním spínacím výkonovým MOSFET tranzistorem, pro zajištění kvalitní a univerzální regulace i s možností ovládání směru otáčení se využívá jeden plný H-můstek, jehož spínací tranzitory se řídí PWM signálem z MCU. Rychlost otáčení motorů (průměrná hodnota napájecího napětí) je tedy dána vzájemným poměrem četností stavů zapnuto / vypnuto, tedy střídou. Zpětná vazba zde není nutná, pokud není nutné provádět přesnou regulaci.

Řízení kartáčového (komutátorového) stejnosměrného a bipolárního krokového motoru (krokový motor využívá dva plné H-můstky, jeden pro každé vinutí).

Připojení a řízení krokových motorů

Bipolární krokový motor pak z principu své funkce vyžaduje dva spínací H-můstky, každý pro jedno statorové vinutí. K buzení hradel spínacích tranzistorů je tedy nutné použít 3 PWM kanály pro nastolení stavu H (High), L (Low), Enable. Jako zpětné vazby se nejvíce hodí snímání proudu můstkem přes A/D převodník MCU a inkrementálního dvoukanálového optického snímače připojeného na vstup kvadraturního enkodéru pro přesné měření rychlosti otáčení nebo natočení.

Připojení BLDC a střídavých 3fázových motorů

K řízení BLDC i střídavých třífázových motorů (synchronních i asynchronních) se vzhledem k prakticky stejnému provedení statoru využívá stejného systému tvořeného 3 polovičními H-můstky, kde každý řídí průběh budícího signálu pro jednodo vinutí (jednu fázi) fázi připojení k MCU. Ve výsledku je tedy potřeba u řídícího MCU mít k dispozici 6 kanálů, které přes budiče hradel řídí 6 spínacích tranzistorů (často se využívají IGBT). Pro zajištění stabilní funkce elektromotoru, je zde velmi vhodné použít regulaci v uzavřené smyčce, tedy využít některou zpětnou vazbu. V nejjednodušším případě se využívá měření indukovaného proudu v právě nebuzeném statorovém vinutí prostřednictvím třech kanálů A/D převodníku (metoda Back-EMF). V lepším případě se využívá dvoukanálového inkrementálního optosnímače a kvadraturní enkodér (QEI) k přímému měření pozice rotoru, rychlosti a směru otáčení.

Pro BLDC a střídavé motory se využívájí 3 poloviční H-můstky - 6 PWM výstupů MCU řídí přes budiče hradel 6 IGBT, A/D převodník měří proud vinutími, QEI měří natočení (pozici) a směr otáčení.

Z pohledu řízení spínacích tranzistorů jsou nejběžnější dvě následující metody řízení úrovně stejnosměrného napětí, podobně jako u univerzálních motorů:

  • Pomocí stejnosměrného řízení fáze (dc phase angle control)
  • Pomocí pulsně-šířkové modulace (PWM)

První metoda se sice vyznačuje hladším chodem samotného motoru a menším generováním rušení, ale zase to vše je vykoupené složitější konstrukcí. Ne ani tak hardwarovou jako softwarovou. Tato metoda je totiž založená na kombinaci řízeného usměrňovače, kde usměrňovací můstek z poloviny tvoří tyristory ovládané z mikrokontroléru, stejně jako následující MOSFET tranzistory ve třech polovičních spínacích můstcích. Tyristory se reguluje úroveň usměrněného (stejnosměrného) napětí a následný třífázový můstkový invertor pak provádí "jen" 6krokou komutaci. Dohromady tak usměrňovač a spínací můstky řídí výstupní frekvenci. Tuto metoda lze použít jak pro střídavé indukční asynchronní, tak i pro BLDC motory. Výhodou je dobré výstupní napětí, i když obdélníkový průběh spínaného signálu obsahuje velké množství sudých harmonických. V případě použití PWM modulace pro řízení můstku se sníží harmonické zkreslení a zvlnění průběhu točivého momentu.

Jedna možná varianta řízení 2fázových AC i BLDC elektromotorů je použít řízený usměrňovač i spínací můstky

Druhá metoda využívající jen 3 poloviční H-můstky nezávisle řízené PWM, který co nejvíce simuluje ze stejnosměrného napětí sinusový průběh, je o něco jednodušší a proto výrazně více populárnější pro řízení 3fázových střídavých indukčních elektromotorů. BLDC motory také mohou využívat tohoto principu, který produkuje nejhladší chod, ale zároveň lze pro ně použít při stejném zapojení i softwarově jednodušší kombinaci 6krokové komutace a PWM. Často se v můstcích horní tranzistory využívají pro řízení komutace (výběru budícího vinutí) a spodní tranzistory řízené PWM simulují v potřebném okamžiku střídavý budící průběh. Také je možné "napájet" PWM signálem dva ze tří polovičních H-můstků, což vytváří čtyřkvadrantové řízení. Jinak v můstcích mohou být v obou případech použity MOSFET i IGBT tranzistory, přičemž IGBTy jsou levnější, ale pomalejší, takže u nich vznikají větší ztráty, takže pokud nerozhodují peníze, je lepší použít MOSFETy.

Běžnější pro řízení 3fázových střídavých a BLDC elektromotorů je použití pouze 3 polovičních H-můstků, které jsou v případě AC motorů nezávisle řízené PWM a v případě BLDC lze v méně náročných aplikacích využít i jednodušší kombinace PWM a 6krokové komutace

Připojení reakčních motorů

Reakční motory jsou v tomto směru odlišné proti výše zmíněným typům v tom, že nevyužívají pro řízení standardní spínací můstky, ale níže uvedené provedení, kdy jednotlivá tři budící vinutí jsou připojena vždy mezi dva tranzistory jedné spínací větvě. Tranzistory jsou proti přepětí z vinutí chráněné diodami. Výhodou tohoto zapojení je, že nemůže za žádných okolností dojít ke zkratu ve spínací větvi, vlivem chybného řízení (spínání), jak je tomu možné u H-můstků. Zároveň je však nutné použít uzavřenou regulační smyčku. Jako zpětná vazba je zde nejvíce preferovaný inkrementální snímač s kvadraturním enkodérem, i když "v případě nouze" lze využít i bezsenzorové zpětné vazby realizované měřením proudu vinutími prostřednictvím A/D převodníku.

Řízení pro reakční motory - naznačené cívky jsou jednotlivá vinutí motoru, zapojení nelze dostat do zkratu, jako zpětná vazba se využívá QEI nebo měření proudu vinutími

Realizace řídícího programu v MCU

Pro potřeby regulace motorů je vhodné řízení spínacích můstků realizovat pomocí generování žádostí o přerušení (ISR) od jednotlivých bloků provádějící periodické časování nebo měření, tedy například od PWM, nebo od bloků zajišťující komunikaci MCU (Communiocation ISR), např. CAN, UART či jiná sériová komunikace s nadřazeným systémem (procesorem). V době, kdy není nutné se zabývat ani jednou z výše uvedených úkonů, je řízení předáno hlavní programové smyčce (Main application), která může provádět i další úkony (vykonávat jiné podprogramy či funkce). Přerušení od periferií provádějící samotné řízení motoru (Motor control ISR), jakými jsou bloky PWM, A/D převodník, časovače (Timers), chybové stavy, teplotní senzor apod., obvykle mají nejvyšší prioritu, protože jsou tzv. časově kritické. Jednoduše řečeno nelze například nikdy odložit zpracování přepnutí stavu některého PWM kanálu či monitorovat nový stav inkrementálního snímače, protože by byla porušena kontinuita posloupnosti spínání a tím i například rychlost otáčení motoru nebo v horším případě i k jeho zaseknutí. Proto musí mít tyto bloky či části programu absolutní prioritu například před HMI rozhraním. V žebříčku priority pak následují komunikační bloky (Ethernet, CAN, UART apod.). Ostatní aplikace (například uživatelské ovládací HMI rozhraní a hlavní programová smyčka běží na nižší prioritě a v případě potřeby je jejich běh přerušen. K tomu se využívá maskování přerušení nebo zablokování aplikací v případě, že nastanou kritické chvíle.

Řízení motorů v MCU se obvykle řeší pomocí generování žádostí přerušení ISR od jednotlivých hardwarových periferií (od řízení motorů - PWM a A/D převodník, od datové komunikace - CAN apod.), kdy se programový kód obhospodařující regulaci vykonává jen v potřebný okamžik.

V případě DSP či MCU s výkonnějším jádrem se využívá dokonalejšího způsobu řízení a zpracování zpětně naměřených dat pomocí tzv. multitaskingu, tedy současného běhu několika programů či podprogramů realizovaný přidělováním (přepínáním) času pro zpracování podle priority, požadavku na návaznost (posloupnost) zpracování dat a informací, nebo vytíženosti procesoru. Využívá se zde semaforů (semaphors), předávání zpráv a dat (mailboxy), front dat apod. Vše řídí v procesoru neustále běžící kernel (jednoduchý operační systém - firmware) či složitější RTOS. Tohoto způsobu se využívá hlavně při náročném přesném vektorovém řízení, kdy je potřeba hodně času věnovat samotnému výpočtu.

Na opačné straně lze v nejjednodušším případě, například u PLC, řízení realizovat stavovým automatem, jehož postup je definován časováním a přísunem potřebných dat, například ze zpětné vazby.

K realizaci řídí desky lze dvěma způsoby: jedním výkonným DSP, které realizuje celé řízení, případně doplněným malým MCU realizující jen HMI rozhraní, nebo kombinaci dvou středně výkonných, ale specializovaných MCU, kde například jedno MCU provádí samotné řízení spínacího můstku motoru, zatímco druhé realizuje komunikaci, HMI rozhraní apod.

 

~ 3. pokračování bude o řídících algoritmech a příkladu konkrétní realizace řízení s MCU Stellaris ~

 

Antonín Vojáček

Download & Odkazy

  • Stránky společnosti Freescale Semiconductor, výrobce MCU a periferií pro řízení motorů - www.freescale.com
  • Stránky společnosti Luminary Micro, výrobce speciálních MCU pro řízení motorů - www.luminarymicro.com
  •  
Hodnocení článku: