Kérkel segíts, hogy ne maradjon hibás információ az oldalon!
Ha szerinted valami nem fedi a valóságot, kérlek írd meg, hogy javítani tudjam. Ha kérdésed van, fordulj hozzám bizalommal!

2009. október 30., péntek

A BLDC motorok hajtása

A BLDC motorok semmilyen körülmények között nem képesek vezérlő nélkül működni. A mai mikrokontrollereknek viszont nem ellenfél egy ilyen hajtás vezérlése. A vezérlési startégia többféle is lehet. Azt, hogy mikor melyiket választjuk a típus és a funkció dönti el. Az egyetlen közös bennük az, hogy valamilyen módon a kommutációs szekvenciát kell követnünk. A kommutációs szekvenciát a gyártó az adatlapon közli. Ezen kívül az, hogy a meghajtó tudhat sebességet állítani (PWM jelekkel) vagy sem. Ha más sebességet is akarunk állítani, akkor a szabályozás lehet nyílt hurkú (nincs visszacsatolás) vagy zárt (visszacsatolás hall szenzorokon vagy EMF jeleken keresztül).

A maradék hasonlóság (azaz, inkább egyezés) a vezérlő felépítésében és a teljesítmény elektronikában van. Egy elvi felépítést mutat a következő ábra (amit egy nagyon jó cikkből emeltem át, nem nagy kedvem volt újra berajzolni egy ilyet, ezer van belőle a neten):
Tehát alapvetően 5 jól elkülöníthető részből áll:

  1. vezérlő MCU
  2. meghajtó fokozat
  3. teljesítmény fokozat (végfok)
  4. motor
  5. visszacsatolás.

Vezérlési/Szabályozási elvek, stratégiák:

Legegyszerűbben a szenzorozott motorokat lehet meghajtani. A szenzorok kimenete adja meg, hogy mi a következő kommutációs lépés. Amikor bejön a szenzorokon a jel, mi egyszerűen kitesszük a kimenetre és a megfelelő tranzisztorokat kapcsoljuk. Az ilyen, sorozatos kapcsolgatással a motort csak maximum sebességen tudjuk járatni.
Szoftver szempontból kétféle lehet a megvalósítás:
  • megszakítás alapon: a szenzorok jele olyan processzor lábakra érkezik, amelyek megszakítást generálnak a processzorban. A megfelelő kimenet beállítását a megszakítás függvény teszi meg. Ez a legkényelmesebb, legjobb megoldás, főleg hosszútávon.
  • "polling" (folyamatos ellenőrzés) alapon: a program fő ciklusa folyamatosan ellenőrzi a bemeneteket és annak megfelelően állítja a kimeneteket. Előnytelen, mert gyakorlatilag semmi másra nem lesz alkalmas a vezérlő (főleg nagy sebességnél). Az általam készített vezérlő jelenleg sajnos pollingot használ, de lesz ez még máshogy :).
Apró információ, hogy a szenzorok kimeneti jele kétféle lehet: jöhetnek 60°-os csúszásban egymáshoz képest, vagy 120°-ban csúsztatva. Ennek nem igazán van nagy hatása az életünkre, leszámítva akkor, ha olyan vezérlőt készítünk, ami mind a két féle szenzorozás esetén működőképes. De ez esetben sem nagyon...

Ha a motor szenzor nélküli, a helyzet annyiban változik, hogy további áramkör részekkel kell kiegészíteni a vezérlőnket, amely képes az EMF jelek mikrovezérlőhöz való csatolására. Ezeket a jeleket a vezérlő komparátor lábaira kell kötni és a nulla átmeneteket kell vizsgálni. A feladat még tovább bonyolódik, mert az EMF jelek jelentős késéssel érkeznek csak meg, amit a firmwarenek képesnek kell lenni kompenzálni. Ezt úgy tehetjük meg, hogy a jelek időközeit timerrel mérjük, és már a nulla átmenet előtt megszakítást generálunk és a következő állapotba tesszük a kimenetet.

Ez a technika egyébként a szenzorozott esetekben is használhat és Phase Advance (Fázis siettetés) a neve. Növeli a motor nyomatékát és legfőképpen akkor használjuk, ha a névlegesnél magasabb fordulatokat akarunk elérni.

További nehézség a szenzorozatlan motor meghajtásánál, hogy álló helyzetben (és alacsony fordulatokon) nem ismerjük a rotor pozícióját. Ezért az ilyen esetekben a mozgatást nyílt húrkú vezérléssel kell kezdeni, ellenőrizni, hogy a rotor megmozdult-e (lock) és csak aztán lehet átállni az EMF jelek használatára, ha azok nagysága elegendő.

Sebesség beállítás
A motor sebességét a mágneses terek által kifejtett nyomaték adja. A nyomaték a tekercsekben folyó árammal arányos. Ha kevesebb áram folyik a tekercseken át, a motor lassabban fog forogni. Ezt legegyszerűbben a PWM (Impulzus szélesség moduláció) segítségével tudjuk elérni.

Vissza csatolatlan esetben a sebesség vezérlést U/f vezérlésnek is hívják. Ekkor nem foglalkozunk a motor valós sebességével, hanem arra építünk, hogy adott feltételek alapján a motor adott PWM jeleknél mindig ugyanazzal a sebességgel fog forogni és a sebesség a kitöltési tényezővel arányosan változik. A PWM jelekkel elég az alsó (v. felső) kapcsoló tranzisztorok jeleit modulálni.
Bár ez nem mindig igaz, sok esetben ennyi már pont elég. Mint pl. az általam készített vezérlőnél is a kezelő a potméterrel állítja be a kívánt sebességet és a feladat a sebesség tartásra nem érzékeny.

Egyszerűen tudunk visszacsolt rendszert készíteni, hiszen a hall szenzorok (vagy az EMF jelek) körülfordulásonként 3 jelet is adnak számunkra. Ha mérjük a közöttük eltelt időt, ki tudjuk számítani a motor sebességét és egyszerű szabályozó stratégiákkal, vagy pl egy PID szabályozó implementálásával a motorra a kívánt sebességet tudjuk kényszeríteni. (A szabályozó kimenete a PWM jel kitöltési tényezőjét állítja.)


A Mikéntek és Hogyanok miatt lásd a már elkészített vezérlőmet és nézz vissza később is, valószínűleg lesz még cikk erről.

Nincsenek megjegyzések: