Érzékelők és beavatkozók DC motorok 4.rész egyetemi docens - 1 -
Az alkalmazott DC motor Cytron Technologies SPG30-30K hajtóműves motor Névleges feszültség: 12 VDC Üresjárási fordulatszám: 7000 RPM Induló nyomaték: 23.5 mnm Induló áram: 1.8 A Névleges teljesítmény: 1.1 W 5200 RPM fordulatszám mellett Nyomaték: 5.88 mnm Áram: 410 ma Hajtómű Áttételi arány: 1:30-2 -
Az alkalmazott DC motor Cytron Technologies SPG30-30K hajtóműves motor - 3 -
Az alkalmazott DC Motor vezérlő - 4 -
Az alkalmazott DC Motor vezérlő MOSFET-ek IRF7309 N+P csatornás duál 1 félhidat realizál V DSS N: +30V, P: -30V R DS(on) N: 50mΩ, P: 100mΩ I D N: 4.0A, P: -3.0A Jellemzők: Logikai szintekkel vezérelhető 4 kapcsoló H-híd formában Hídáram mérés (R = 0.1Ω) Back EMF mérés 5V-os LDO - 5 -
A cél: fordulatszám szabályozás A cél: Olyan DC motorvezérlés megvalósítása, amely adott fordulatszámot széles nyomatéktartományban tud biztosítani. Ezt képes legyen egészen kis fordulatszámoktól a maximális fordulatszámig biztosítani. Feltételek: Ellenütemű PWM vezérlés valósuljon meg. A vezérlés CAN hálózaton keresztül történjen, továbbá a működési paraméterek CAN hálózaton elérhetők legyenek (kétirányú kommunikáció). Fordulatszám mérés BEMF jel nem használható az ellenütemű vezérlés miatt. Fordulatszám mérés a motor hátsó tengelyére erősített diametriális polarizációjú mágnes és inkrementális mágneses forgó jeladó segítségével. - 6 -
Fordulatszám mérés Austria Microsystems (AMS) AS-5035 Motor hátsó tengely Mágnes foglalat Neodímium mágnes Áramköri panel Érzékelő IC Csatlakozó A-B kvadratúra jelek + I index A és B jelek: fordulatonként 64 impulzus A és B között 90º eltolás: forgási irány I index: fordulatonként egy impulzus - 7 -
Mikroszámítógép modul AT90CAN128 alapú mikrovezérlő modul, 5 V, 16 MHz, JTAG, CAN transciever - 8 -
Mikroszámítógépes kapcsolat Hídvezérlő jelek: UL,UR,LL,RL A Timer1 és Timer3 16-bites időzítő perifériákhoz tartozó OCR A és B kimenethez kapcsolva. Akár PWM periféria kimenetként, akár logikai kimenetként kezelhetők. Analóg mérések: ADC0: BEMF mérés ADC1: VIR árammérés ADC2: PSENS motor tápfeszültség mérés Fordulatszám mérés: A és B kvadratúra jelek: külső megszakításkérésre alkalmas bemenetekre csatlakoznak Jelzések: 1-1 piros és sárga LED - 9 -
Mikroszámítógépes teszt verzió CANboard kísérleti panel: Megjelenítés további LED-eken és 4x20 karakters LCD kijelzőn. Beavatkozás nyomógombokkal és egy potméterrel. Két szabadon felhasználható kimeneti jel, USR_SIG, USR_TRIG jelzések és/vagy trigger jelek (oszcilloszkóp) céljára. - 10 -
Mikroszámítógépes teszt verzió Kiegészítő mérőpanel: - 11 -
CAN interfész CAN kommunikációs protokoll: vétel irány Alapjel állítás Üzemmód beállítás - 12 -
CAN interfész CAN kommunikációs protokoll: adás irány Mért jelek küldése. Alapjel érték visszaadása Üzemmód visszajelzés - 13 -
Vezérlési modell +V r UL + UR Ellenütemű vezérlés: LL - LR Ø A motor +V r vagy V r tápfeszültséget kap V e soha nem jelenik meg EMF nem mérhető - 14 -
DC Motor PWM Szimmetrikus vagy fázishelyes (Phase Correct) PWM AT90CAN128-15 -
DC Motor PWM Alkalmazott elvek: A PWM generálás CPU-tól és a megszakításoktól független, autonóm folyamat legyen. Biztosítsa az azonos hídágak alsó és felső kapcsolói közti kölcsönös kizárást holtidő (dead-time) alkalmazásával. Biztosítson jó felbontást a kitöltési tényező állításában, nagy PWM alapfrekvencia mellett. Nyújtson lehetőséget a mérések szinkronizált végrehajtására. Automatikus módszert adjon a tápfeszültség változásból eredő problémák kiküszöbölésére. - 16 -
DC Motor PWM - 17 -
A tápfeszültség függés kompenzálása: Sorosan kapcsolt 3 LiPo cella: nominális feszültség 11.1 V Feszültségosztó: 3kΩ 4.7kΩ ellenállásokkal DC Motor PWM State Voltage ADC value 3.0 1024 Upper 1 Just charged 12.6 = 4.9090 4.9090 1005 3.0 + 4.7 5.0 limit 3.0 1024 2 Nominal 11.1 = 4.3247 4.3247 886 Ok 3.0 + 4.7 5.0 3.0 1024 Lower 3 Discharged 9.6 = 3. 7403 3.7403 766 3.0 + 4.7 5.0 limit Deep 3.0 1024 4 8.4 = 3.2727 3.2727 670 Illegal discharging 3.0 + 4.7 5.0 0 > 12.5 V > 1000 Overcharged 1 9.6 V 12.5 V 768 1000 Ok 2 8.4 V < 9.6 V 670-768 Discharged 3 < 8.4 V < 670 Deeply discharged A tápfeszültség-korrekció: a PWM frekvencia tápfeszültségtől függő megválasztásával. Ha a tápfeszültség csökken, a PWM frekvencia vele arányosan nő, illetve a PWM periódus csökken. - 18 -
DC Motor szabályozás Az alkalmazott PWM frekvencia (nominális): 3.2 khz. A szabályozás mintavételi frekvenciája: 200 Hz. A változó PWM frekvencia következményei: A PWM-el szinkron mérések nem történnek a szabályozással szinkron. Megoldás: újramintavételezés. A zajcsökkentés érdekében: digitális szűrés a szabályozás mintavételi frekvenciájának megfelelően. - 19 -
Diszkrét PID szabályozó Diszkretizálás Diszkrét PID szabályozó - 20 -
Diszkrét PID szabályozó Rekurzív forma - PID Rekurzív PI szabályozó - 21 -
Diszkrét PID szabályozó PI szabályozó realizálása Jelen időponthoz tartozó számított irányító jel Az irányító jel előző mintavételi időponthoz tartozó értéke Az ellenőrző jel jelen időponthoz tartozó értéke alapjel és mért kimeneti jel különbsége Az előző mintavételi időponthoz tartozó ellenőrző jel érték Numerikus értékek a mérés elvégzésével rendelkezésre állnak, a számítás minden ciklusban elvégezhető. - 22 -
Problémák: Diszkrét PID szabályozó Windup jelenség: az integrátor kimenete túllépi az ábrázolható vagy realizálható számtartományt. Fixpontos számábrázolás: szorzás, osztás elvégezhetőségének biztosítása. Windup: Nemlineáris jelenség túllép a lineáris modell érvényességén. Windup bekövetkezésekor alatt nem működik a PID vagy PI szabályozás felszakad a szabályozási kör. Lényeges a felismerése és kezelése: Windup esetén más irányítási elv (arányos irányítás) alkalmazása Az integrátor érték folyamatos korrekciója a tényleges kimeneti jelek értéke alapján. Számábrázolás: Adatok átskálázása nagyobb felbontások alkalmazásával (pl. 32-bites 65568-szoros adatábrázolás). - 23 -
Digitális szabályozó tervezés Opciók: Folytonos rendszermodellel folytonos idejű szabályozó tervezés, majd a szabályozó diszkretizálása. Diszkrét idejű rendszermodell meghatározása, szabályozótervezés és realizálás diszkrét időben. Diszkrét idejű rendszermodellek: Tipikusan folytonos idejű rendszermodellek diszkretizálása Véges differenciák módszere (Euler) Bilineáris transzformáció (Tustin) Más, pl. optimalizáláson alapuló módszerek Hátrányok: a folytonos idejűtől eltérő és általában bonyolultabb modellek keletkeznek. Szabályozó diszkretizálása: Miért fontos? A gyakorlatban realizálható forma a differencia-egyenlet: differenciáloperátor helyett differencia-operátor mintavételi periódusidővel való eltolás. Differenciálegyelet megoldását produkálni akár numerikusan is sokkal bonyolultabb lásd különböző solver-ek a Matlab-ban. - 24 -
Arányos fordulatszám-szabályozás Arányos szabályozás: C konstans erősítés Szabályozó tervezés: C erősítés meghatározása ω s + - C V m W m (s) ω Szabályozási elvek: Minőségi kritériumok: beállási idő, periodikus/aperiodikus beállás, túllövés szimuláció útján ellenőrizhető. Adott fázistartalékra tervezés: a modell alapján analitikusan kiszámítható - 25 -
Arányos fordulatszám-szabályozás Diszkrét idejű realizáció: v m ( k) = C( ω( k) ω ( k) ) s alapjel beavatkozó jel mért kimeneti jellemző k az aktuális időponthoz tartozó értékek ω s + - V m C W m (s) ω Időzítési bizonytalanság: a méréshez viszonyítva mikor adjuk ki a beavatkozó jelet? a mérés utáni legkorábban lehetséges időpontban (determinisztikus?) két mérés között meghatározott időpontban (pl. a felénél) A beavatkozó jel számítása: a numerikus számábrázolásnak megfelelően - 26 -
Fordulatszám mérés: Fordulatszám-mérés A fordulatszám érzékelő 64 pulzust ad fordulatonként, azaz a fordulatszám-jel frekvenciája ill. periódusideje Periódusidőt mérünk 2MHz-es órajellel, periódusa 0.5 µs. Egy periódusnak megfelelő számérték, illetve ennek reciprok értéke (fordulatszám) 1.000.000 szorzóval A motortengely forgási körfrekvenciája A mért N numerikus érték és a körfrekvencia összefüggése: A fordulatszámmérés erősítési tényezője : - 27 -
Jelölések: A beavatkozó jel előállítása f CLK - az órajelfrekvencia N PS a PWM generátor előosztója által előállított arány N TOP - a PWM generátor számlálójának csúcsértéke N DC a generált PWM jel kitöltési tényezőjét meghatározó számérték f a generált PWM jel alapfrekvenciája f ref a referencia tápfeszültséghez tartozó PWM frekvencia V PS a bemeneti tápfeszültség aktuális értéke V PSref a tápfeszültség referencia értéke V m a generált PWM jelnek megfelelő átlagfeszültség Állandók: f CLK = 16,000,000 Hz (16 MHz) N PS = 1 f ref = 3,200 Hz (3.2 khz) V PSref = 11.1 V (3 soros LiPo akkumulátor cella névleges feszültsége) - 28 -
A beavatkozó jel előállítása Fázishelyes PWM-et alkalmazva a PWM alapfrekvencia: Az ennek megfelelő számláló csúcsérték: A PWM által generálódó átlagfeszültség: Tápfeszültség-függés kompenzálása: legyen c = const. Referenciapont: V PSref bemeneti tápfeszültségnél legyen a PWM alapfrekvencia f ref, nyilvánvalóan - Kifejezve c-t: Frekvenciára áttérve: V PS -től független - 29 -
A beavatkozó jel előállítása A beavatkozás erősítési tényezője : a konkrét értékekkel: A digitális szabályozás megvalósításánál az erősítéseket a mérés ill. beavatkozás erősítési tényezői figyelembevételével kell meghatározni. - 30 -
A digitális szabályozás Fordulatszám-szabályozás A digitális szabályozó erősítése N s -N ω A CD N DC A PWM V m A m ω m A ω N ω N s + - C N DC /V m W m (s) ω m N ω /ω m A motorra alkalmazott teljes szabályozó A C = A CD A PWM A ω A CD = A A C PW M A ω A konkrét számértékekkel: A = CD AC 0.0226127343-31 -
A digitális szabályozás PI szabályozás yval pyval ppi tiinv xval pxval 256-szoros skálázás setpval alapjel xval = (INT32)(setpVal - asensval) << 8; asensval mért érték xtemp = xval + ((xval * tiinv) >> 8) - pxval; yval = pyval + ((xtemp * ppi) >> 8); if (yval > CTRLSIG_MAX) yval = CTRLSIG_MAX; if (yval < CTRLSIG_MIN) yval = CTRLSIG_MIN; pyval = yval; pxval = xval; actval = (INT16)(yval >> 8); actval beavatkozó jel - 32 -
A digitális szabályozás Paraméterek: Inicializálás: pp a digitális arányos szabályozás erősítési tényezőjének 256-szorosa ppi a digitális PI szabályozás P erősítési tényezőjének 256-szorosa tiinv a digitális PI szabályozás integrálási időállandó reciprok értékének 256-szorosa pp = (INT32)lround(PP * 256.0); // P Gain p * 256 ppi = (int)lround(pip * 256.0); // PI Gain p * 256 tiinv = (INT32)lround(256.0 / PITI); // Integration Time 256 / Ti PP, PIP, PITI - definiált konstansok - 33 -