Implementace regulátoru otáček do budičů BLDC motorů

Podobné dokumenty
Převodník Ethernet ARINC 429

Návrh konstrukce odchovny 2. dil

Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný

Jízda po čáře pro reklamní robot

5. A/Č převodník s postupnou aproximací

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Praktické úlohy- 2.oblast zaměření

BKD/ BKF 7000 tyristorové DC měniče od 5 do 1100 kw

Přednáška - Čítače. 2013, kat. měření, ČVUT - FEL, Praha J. Fischer. A3B38MMP, 2013, J.Fischer, ČVUT - FEL, kat. měření 1

ZOBRAZOVACÍ JEDNOTKA

Komunikační protokol MODBUS RTU v jednotce M4016. Seznam služeb protokolu MODBUS podporovaných řídící jednotkou M4016 je v tabulce.

FVZ K13138-TACR-V004-G-TRIGGER_BOX

NÁVOD K OBSLUZE. ústředna CS-484E-3

DIGITÁLNÍ ODPALOVACÍ PULT

České vysoké učení technické v Praze Fakulta elektrotechnická. Katedra měření. Dokumentace. Rotační enkodér

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

Quido RS 2/16 OC. 2 vstupy pro kontakt 16 digitálních výstupů 1 teploměr -55 až +125 C komunikace přes RS485 nebo RS232

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Základy elektrotechniky

1 Podrobná specifikace Yunifly Datasheet

Návrh konstrukce odchovny 3. dil

ZOBRAZOVACÍ ZAŘÍZENÍ DIS2351C1R4

Použití programovatelného čítače 8253

MODUL 3 KANÁLOVÉHO D/A PŘEVODNÍKU 0 25 ma

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

AD4RS. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

RE3USB programovatelné USB relé

Modbus RTU v DA2RS. kompletní popis protokolu. 13. března 2018 w w w. p a p o u c h. c o m

RE3USB programovatelné USB relé

D/A převodník se dvěma napěťovými nebo proudovými výstupy. (0 10 V, 0 5 V, ±10 V, ±5 V, 4 20 ma, 0 20 ma, 0 24 ma)

Ṁikroprocesory v přístroj. technice. Ohm-metr ... Petr Česák

Prostředky automatického řízení Úloha č.5 Zapojení PLC do hvězdy

Software pro vzdálenou laboratoř

SEMESTRÁLNÍ PROJEKT Y38PRO

4IOT-SEN-01 Sensor pro IoT aplikace Technická dokumentace

SW24x3 programovatelné relé

ZOBRAZOVACÍ ZAŘÍZENÍ DIS2351C1R1

Pokojový termostat řízený pomocí SMS zpráv v síti GSM

Převodník MM 6012 AC DC

Bakalářská práce Realizace jednoduchého uzlu RS485 s protokolem MODBUS

NÁVOD K OBSLUZE ENLINK 2RS PLUS

FREESCALE TECHNOLOGY APPLICATION

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Speciální obvody a jejich programování v C 2. díl

Novar 314RS. Regulátor jalového výkonu. Vlastnosti. pro kompenzaci rychlých změn účiníku (rozběh motorů atd.)

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

Návod na obsluhu Pípáku2 verse V0.1 (PŘEDBĚŽNÝ NÁVOD).

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

Modul univerzálních analogových vstupů R560. Shrnutí

Úloha 5 Řízení teplovzdušného modelu TVM pomocí PC a mikropočítačové jednotky CTRL

Výuková laboratorní sestava seminář pro učitele

Rozběh a reverzace asynchronního motoru řízeného metodou U/f

Canon Controller. Komunikační protokol. Řídicí jednotka k objektivům Canon EF/EF-S

Zadání semestrálního projektu

Interface CAR2FMS v2 firmware CAN data generátor

Quido - MODBUS. Kompletní popis protokolů MODBUS RTU a TCP v I/O modulech Quido. 20. listopadu 2015 w w w. p a p o u c h.

Kompaktní mikroprocesorový regulátor MRS 04

ZAŘÍZENÍ PRO MĚŘENÍ DÉLKY

Temp-485-Pt100. Teplotní čidlo (senzor Pt100 nebo Pt1000) komunikující po sběrnici RS-485 s jednoduchým komunikačním protokolem. Temp-485-Pt100 Box2

REGULÁTOR TEPLOTY. typ REGU REGU2198 Technická dokumentace. REGU2198 Technická dokumentace

TW15 KONCOVÝ PRVEK MSKP. Popis výrobku Technická data Návod k obsluze. Technologie 2000 s.r.o., Jablonec nad Nisou

NÁVOD K OBSLUZE. ústředna CS-484E-3

MK3x3 programovatelné relé

TGZ. 2-osé digitální servozesilovače

Komunikační protokol

Maturitní témata - PRT 4M

VETRONICS 760. Technická specifikace mobilní jednotky

Přípravek pro demonstraci řízení pohonu MAXON prostřednictvím

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ

Programovatelné relé Easy (Moeller), Logo (Siemens)

Firmware řídící jednotky stejnosměrného generátoru

Návod k obsluze [CZ] VMS 08 Heineken. Řídící jednotka pro přesné měření spotřeby nápojů. Verze: 1.1 Datum: Vypracoval: Vilímek

Měřič reziduální kapacity HomeGuard

ZAŘÍZENÍ PRO MĚŘENÍ DÉLKY

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

Síťový přenos PWM 132uni

EC Motor. IO Modul EC200. EC200 Int. EC200 Ext. Verze 1.20, revize PMControl s.r.o.

FEL ČVUT Praha. Semestrální projekt předmětu X31SCS Struktury číslicových systémů. Jan Kubín

FILIP SCHWANK. Katedra měření, listopad 2017

Základní pojmy z oboru výkonová elektronika

Stejnosměrné měniče. přednášky výkonová elektronika

Vana RC0001R1 RC0001R1

Obousměrný modul ECX-4

Novar 206/214. Regulátor jalového výkonu. Vlastnosti. pro náročné a středně náročné aplikace s nestandardním měřicím napětím

A/D a D/A PŘEVODNÍK 0(4) až 24 ma DC, 16 bitů

Systém řízení sběrnice

ixport RS I16O8 Inteligentní modul

TIO. výkonový člen systému TQS. 1x přepínací kontakt relé. 1x vstupní kontakt. komunikace RS září 2004 w w w. p a p o u c h.

ILH Detektor těkavých organických látek Návod k obsluze

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Komunikace modulu s procesorem SPI protokol

Sekvenční shift light SL-06. verze fw 1.3

MĚŘICÍ PŘÍSTROJ PRO PC. 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 RS232 DRAK 4 U1 U2 U3 U4

Vývojové kity Mega48,

Měření Záznam Online monitorování Regulace Alarmování

Ksenia auxi wls. Instalační a programovací manuál. Ksenia: Bezpečnost on-line. 1

Vysoká škola Báňská. Technická univerzita Ostrava

Komunikační protokol MODBUS RTU v přípojné desce EPD.

ČEMU ROZUMÍ MIKROPROCESOR?

Stejnosměrné generátory dynama. 1. Princip činnosti

Transkript:

Základy robotiky 2014 Projekt M12 Implementace regulátoru otáček do budičů BLDC motorů Vypracoval: Vladimír Stříteský (studijní skupina: M1KAM/05) Vedoucí práce: ing. Vlastimil Kříž

Obsah: Zadání projektu:... 3 Popis HW... 3 Návrh SW... 4 Komutace motoru... 4 Funkce pro komutaci... 5 Funkce pro běh motoru... 6 Komunikace IIC... 6 Funkce pro komunikaci... 6 Návrh převodníku RS232-IIC... 7 Realizace a testování... 8 Závěr... 9 Literatura... 9

Zadání projektu: Implementujte regulaci otáček do předloženého budiče BLDC motorů projektu MikroKopter BL-Ctrl 2.0. Regulátor bude také posílat do nadřazeného systému informace o aktuální rychlosti motorů, případně i odebíraném proudu. Obr. 1 MikroKopter 2.0 [1] Popis HW Hardware modulu MikroKopter 2.0 je založen na mikrokontroléru Atmel ATmega 168P. Dále jsou zde přítomny pomocné obvody sloužící k detekci polohy motoru, měření teploty, proudu a napájecího napětí. Nesmí samozřejmě chybět obvod pro stabilizaci napětí, v tomto případě na 5V, a dvojice červená a zelená LED k jednoduché signalizaci. Zajímavě je pak řešena část ovládající šestici výkonových MOS-FET. Spodní polovina transistorů, která připíná nulové napětí, je ovládaná přímo mikropočítačem. Spínání horní poloviny je zajištěno pomocnými tranzistory, a je řešeno tak, aby mohl být sepnut libovolný tranzistor jedním společným výstupem z mikropočítače. Pulsní šířkovou modulaci tak stačí přivést na jeden výstupní pin. Tímto se velmi zjednoduší celkové ovládání výkonové části, protože generování PWM na daném pinu je hardwarově zajištěno pomocí funkce 16 bitového čítače/časovače. Zároveň je to ale dosti nešťastné řešení jelikož zbývající dva čítače/časovače jsou již pouze 8 bitové. Obr. 2 Zapojení výkonové části [2]

Návrh SW Software byl napsán v prostředí AVR Studio 6.1, které je vyvíjeno přímo společností Atmel. Jsou zde tudíž k dispozici knihovny pro všechny mikrokontroléry typu AVR vyráběné touto firmou. Komutace motoru Základní funkcí navrženého software je zajistit správnou komutaci vstupů BLDC motoru. Každá elektrická otáčka se skládá ze šesti kroků, přičemž v každém z nich je sepnuta jiná dvojice tranzistorů, tak aby se vytvořilo rotující magnetické pole. Obr. 3 Komutace BLDC motoru [3] Toho lze dosáhnout pouze, pokud známe aktuální rychlost a polohu rotoru vůči statoru. Ta je detekována v každém kroku komutace tak, že se na právě nevyužité fázi detekuje průchod napětí nulou. V ideálním případě k tomu dojde přesně 30 elektrické otáčky po komutaci, tedy 30 před další komutací. Bohužel obvod použitý pro detekci otáček obsahuje RC články, které způsobují zpoždění detekce, což musíme kompenzovat, obzvláště ve vysokých otáčkách. Obr. 4 Průběh fázového napětí v nízkých otáčkách

Obr. 5 Fázové napětí ve vysokých otáčkách bez kompenzace Funkce pro komutaci setphase(unsigned char step) Tato funkce zajišťuje šesti-krokovou komutaci. Vstupním parametrem je číslo požadovaného kroku v rozmezí 1-6. Při zadání čísla 7 se aktivuje celá spodní polovina tranzistorů a dojde tak k brždění. Pro jakékoli jiné číslo dojde k deaktivaci všech tranzistorů, motor se pak voně dotočí. setpwm(unsigned int pwm) Touto funkcí se řídí střída spínání horních transistorů. Vstupní parametr může nabývat hodnot 0-511, přičemž 0 znamená zastavení motoru a 511 plný výkon. zerodetect(unsigned char step) Nastaví analogový komparátor na příslušnou nevyužitou fázi a aktivuje přerušení při průchodu nulou. Obr. 6 Průběh napětí na komparátoru

nextstep() Vykoná následující krok komutace. Využívá globální proměnou step a rotation. Posune hodnotu step v kladném směru při rotation = 1, opačně při rotation = 0. Následně se zavolají všechny předchozí funkce. cycletimer(unsigned char run) Při vstupním parametru run = 1 vynuluje a spustí časovač pro měření doby jednoho kroku. Pro 0 pak časovač zastaví. Funkce pro běh motoru startengine() Nejnáročnější operace je právě rozběh motoru. Při spouštění motoru nemáme informaci o jeho poloze, tudíž musíme motor rozeběhnout naslepo čili v otevřené smyčce bez zpětné vazby. Nejprve se na 300ms aktivuje první krok, poté se provedou další 4 kroky s periodou 30ms. Při pátém kroku se s předstihem spustí časovač a řízení se přepne na zpětnovazební (openloop = 0). Posledních 5 kroků se případně opakuje tak dlouho, dokud se rozběh nepodaří. Poté se přepne dělička časovače z 8 na 1, což zajistí přesnější měření i při vysokých otáčkách. stopengine(unsigned char brake) Dojde k vypnutí všech časovačů a fáze se nastaví tak aby došlo k zastavení motoru. Při brake = 1 dojde k rychlému brždění, při 0 se motor volně dotočí. regulationloop() Velice primitivní funkce pro dosažení požadovaných otáček. Porovnává požadovanou a skutečnou periodu jednoho kroku, podle toho pak zvyšuje či snižuje střídu PWM, čímž dochází k regulaci rychlosti. Tuto funkci by bylo vhodné zdokonalit ale bohužel na to již nezbyl čas. Komunikace IIC Komunikace mezi měničem a nadřazeným systémem probíhá dle protokolu IIC. Měnič je vždy nastaven ve slave módu a jeho adresa je dána následujícím způsobem. Nejvyšší 4 bity jsou pevně dané na 0111. Následující 3 bity jsou pak určeny podle vyznačených pájecích zkratovacích propojek, přičemž bez propojky je na daném bitu 1. Adresa tedy nabývá hodnot 0111000 0111111. Samotná komunikace je pak velice jednoduchá. Pokud měnič detekuje svoji adresu následovanou write bitem (nebo obecné volání pro zápis) očekává, že budou následovat další 2 byty s požadovanou hodnotou otáček za minutu (RPM), první byte je MSB. Tato hodnota je ve formátu int16, tedy v rozsahu -32 768 až 32 767. Pro záporné hodnoty se nastaví směr otáčení na opačný. Pokud adresu následuje read bit, měnič přejde do vysílacího módu a odešle data o posledních naměřených otáčkách, ve stejném formátu jako je přijímá. Funkce pro komunikaci initiicslave() Provede inicializaci komunikačního rozhraní. Volá funkci getiicaddress.

unsigned char getiicaddress() Provede kontrolu napájených propojek a vrátí zjištěnou adresu. setrpm(int RPM) Přepočte požadované otáčky na požadovanou periodu jednoho kroku a nastaví šířku PWM zhruba na požadovanou hodnotu. Pro přesné nastavení otáček pak slouží regulační smyčka. int getrpm() Vrátí poslední naměřenou periodu jednoho kroku přepočítanou na otáčky za minutu (RPM). LEDGR(unsigned int GR) Pro parametr GR = 1 rozsvítí zelenou LED, pro 0 červenou. Návrh převodníku RS232-IIC Pro testování navrženého software měniče bylo zapotřebí vyzkoušet i funkčnost komunikace. Za tímto účelem byl sestrojen na nepájivém poli jednoduchý převodník z RS232 na IIC. Je zde využit mikroprocesor (byl zrovna po ruce) ATtiny 13. Ten však nemá hardwarovou podporu ani UART ani IIC, proto je komunikace zajištěna čistě softwarově. Pro převod napěťových úrovní slouží obvod MAX232. Komunikace ze strany RS232 probíhá s rychlostí 9600bps. Pokud první přijatý byte končí nulou, write bitem, pak se vyčkává na další 2 byty (LSB první). V okamžiku kdy dorazí, odešlou se po sériové lince zpět jako potvrzení o příjmu. Následuje odeslání přijatých dat po IIC v pořadí adresa, MSB, LSB. Obr. 7 Průběh IIC zápisu (vypnutá detekce ACK) V případě že první byte končí 1, tedy read bitem, dojde ihned ke zpětnému přeposlání opět jako potvrzení příjmu. Následně se odešle přijatý byte po IIC. Pokud žádné zařízení nepotvrdí příjem

pomocí ACK, odešlou se po sériové lince zpět dva prázdné byty. Pokud příjem potvrdí, následuje čtení 2 datových bytů (MSB první), které se pak vrátí po sériové lince v opačném pořadí (LSB první). Realizace a testování Zkompilovaný program byl nahrán do mikropočítače pomocí vyvedeného SPI rozhraní. K tomuto účelu bylo využito zařízení AVRprog USB v2. Stejným způsobem byl program nahrán i do převodníku UART-IIC. Zařízení byla navzájem propojena, motor byl použit Turnigy Aerodrive 1130kv. Funkčnost komunikace byla ověřena pomocí převodníku USB-RS232 a programu RealTerm 2.0.0.70. K měření otáček posloužil podomácku sestrojený bezkontaktní měřicí přístroj. Obr. 8 Testovací zapojení Obr. 9 Přístroj pro bezkontaktní měření otáček

Závěr Podařilo se vytvořit jednoduchý funkční software pro měnič BLDC motoru komunikující pomocí IIC. V návrhu hardware jsem objevil několik poměrně významných nedokonalostí. Především použití výstupu jediného dostupného 16 bitového čítače pro generování PWM a návrh obvodu pro vytvoření virtuální nuly motoru, který obsahuje RC články, které zpožďují detekci průchodu nulou. Tyto záležitosti značně komplikovaly návrh softwaru. Z nedostatku času pak nebyl implementován plnohodnotný regulátor otáček ale pouze velmi zjednodušená funkce minimalizující odchylku od požadované hodnoty pomocí inkrementace či dekrementace šířky pulsu. Do budoucna by také bylo užitečné přidat do programu obsluhu dalších obvodů přítomných na desce, tedy měření odebíraného proudu, teploty a napětí akumulátorů. Literatura [1] MikroKopter. [online]. [cit. 2014-05-08]. Dostupné z: http://www.mikrokopter.de/ucwiki/en/bl-ctrl_2.0 [2] MikroKopter. Wiring diagram [online]. [cit. 2014-05-08]. Dostupné z: http://mikrocontroller.com/files/bl_ctrl_v2_0_doku.pdf [3] DUŠEK, Miroslav. Quadrotor - dálkové řízení. Praha, 2011. Diplomová práce. ČVUT FEL.