Verdák, Motorosport, Tech

Motorparaméterezés

14. MX5-ből villamos hajtású autó

2018. július 20. - SzaboAdam

Végre eltelt a gyártó késése miatti három hetes várakozás, és egy szép napos délelőtt folyamán hozott nekünk a futár - saját szavaival élve - “valami motort”. Egy életre elég újrahasznosított papírgalacsint kaptunk a “frissen tartó fóliába” tekert motorhoz, továbbá grátiszba egy Emrax matricát is, de a történtek fényében nem valószínű, hogy fel fogjuk ragasztani bárhova is. Nézzük mi vár minket a csomagolóanyag alatt!

motor_doboz.png

Eltávolítva a sok-sok sallangot, a szemünk elé tárult ez a kis 12 kilós méregzsák. Ahogy néztük, az utazást megúszta minden sérülés nélkül, és a motorvezérlővel ellentétben itt gondosan ügyeltek a vízcsonkok lezárására, hogy ne kerüljön szennyeződés a rendszerbe. Az alsó képen látható a motor hátulja a 3 fázissal (fekete-piros-kék), a két vízcsonkkal, a hőmérő szenzor kivezetésével (vékony fekete kábel) és az enkóderrel felszerelve. Az enkóder felel a forgórész (rotor) pozíciójának mérésére. Erre azért van szükség, mert ez a motor elektronikusan kommutált, más szóval egy áramkör dönti el, hogy épp mely tekercsekre (fázisra) kell/nemkell feszültséget adni. Ehhez viszont tudni kell, hogy éppen hol áll a forgórész. Egy DC motor esetében ezt a feladatot látják el a szénkefék. A kefe nélküli motoroknál a szén- (vagy bármilyen más csúszó-) kefék súrlódásából, kopásából és vezetési ellenállásából származó veszteségek és egyéb nem kívánt jelenségek, mint például az ívhúzás kiküszöbölése céljából, be kell vállalnunk a bonyolultabb vezérlést. Ehhez pedig nélkülözhetetlen a forgórész pozíciójának érzékelése. Ez az enkóder mágneses elven, az úgy nevezett Hall-effektus alapján működik, azonban nem összekeverendő az olcsóbb Hall-szenzoros BLDC (kefe nélküli egyenáramú) motorokkal. Azokban 3 darab érzékelő található, egy-egy minden fázisra, és csak azt képes érzékelni, hogy éppen a szenzor előtt van-e mágnes (mágneses tér) vagy nincs, azt hogy a mágnes szélességén belül pontosan hol, már nem. Ez a BLDC motoroknál elégséges is, hiszen trapéz/négyszög feszültségjelet vezérlünk ki a motor pólusaira, csak azt kell figyelnünk, hogy be kell-e kapcsolni az adott fázist, erre pedig tökéletesek a kapcsolószerű működést biztosító Hall-szenzorok. Ezzel szemben ennek a PMSM (permanens mágneses szinkron motor)-nak a tengelyére egy sokpólusú mágnes van rögzítve. Továbbá az enkóder nem csak a mágneses tér jelenlétét, hanem annak erősségét is méri, így sokkal pontosabban meg lehet határozni, hogy milyen szöghelyzetben áll a rotor. Egészen pontosan itt 0,09°-os a felbontás. Így nem csak azt tudjuk meghatározni, hogy le kell kapcsolni az 1-es fázist és be a 2-est, hanem azt is, hogy most éppen mennyire van a mágnes az egyik, illetve másik tekercs felett, és milyen arányban kell elosztani a teljeseítményt a két fázis között. Ezzel egy sokkal finomabb, kevesebb nyomatéklüktetéssel járó forgást tudunk megvalósítani. Vegyünk például egy autós játékot: billentyűzettel is lehet irányítani, azonban darabos, kevésbé pontos lesz a mozgás és emiatt lassabb a köridő. Így ez egy kevésbé hatékony irányítás lesz, mintha ugyanezt egy finom beavatkozást lehetővé tevő kormány és pedál kombinációjával tesszük meg. Na valahogy így lehet elképzelni a BLDC és a szinuszos árammal gerjesztett BLAC vagy PMSM közötti különbséget.

img_20180605_120440_hdr.jpg

Első körben le akartuk tesztelni, hogy a hőmérőt és az enkódert jól kezeli-e a motorvezérlő, így a motorfázisokat egyelőre szabadon hagytuk. Erre azért volt szükség, hogyha esetleg valamelyikük hibás lenne, akkor a motorvezérlő véletlenül se csináljon saját magára és a motorra káros dolgokat. Ehhez először be kell állítanunk néhány dolgot a motorvezérlőn. Ahhoz, hogy ezt egyáltalán megtegyük, szükségünk van egy gyári szoftverre, és a csak azzal működő kis USB-s dobozkára, amit jó pénzért vehetünk meg a vezérlővel együtt.

img_20180608_120425.jpg

A hozzá kapott vásárolt szoftver alapvetően jól működik és könnyen kezelhető, de sajnos van benne néhány hiba is. Erre lehetett következtetni a verziószámából, ami még csak 0.39.4.6-nál jár, szóval messze vagyunk az első normális verziótól, ami egy kicsit lehangoló volt, miután kifizeti az ember érte a (nem kevés) pénzt. Cserében készségesen segítettek, a megemlített zavaró hibákat szépen lassan, de kijavították. Azért csak jobb lett volna, ha nem kell ilyenekért e-mailezni velük, na.

error.JPG

Miután a motorvezérlő szoftverében beállítottuk a hőmérő és az enkóder típusát, felbontását, ki tudjuk olvasni az éppen aktuális értéket. A motorvezérlő és a motor hőmérséklete is 28°C-ot jelez (alsó kép, felső diagram), digitális hőmérővel a felületükön 27°C-ot mérek, ekkora eltérés bőven elfogadható, meg nincs is nagyon lehetőség kalibrálni. A motor forgórészét kicsit jobbra balra megmozgatva kipróbáltam az enkódert is (alsó kép, alsó diagram). A motor kézzel mozgatva elég darabosan jár - ez látszik a diagrammon is -, de erre lehetett számítani egy ekkora teljesítményű motornál. Ennek oka, hogy a motor forgórészén található mágnesek vonzzák az állórészen lévő tekercsek vasmagjait, és forgatás közben egyik vasmagtól ugrálnak a mágnesek a következőig.

motor_poz.png

Miután meggyőződtünk a működés helyességéről, felszereltük a motort egy tesztasztalra, ahol majd a tényleges paraméterezést el fogjuk végezni. Ehhez gyártattunk egy acéllemezt ami az asztalhoz rögzíti a motort. Erre azért van szükség, mert ez egy külső forgórészes motor, azaz a fekete köpenye is forog. Így nem tudtuk csak letenni az asztalra és megforgatni. Amúgyis magabiztosabban ül mellette az ember, ha tudja, hogy egy nagyobb nyomatékimpulzus hatására nem ugrik az ölébe a motor, első a biztonság.

psx_20180607_164058.jpg

A motor kicsomagolása közben meglepődve tapasztaltuk, hogy 3 darab maszkolószalag van felragasztva az elejére, és valljuk be, nem nyújt valami szemet gyönyörködtető látványt. Azonban nem csak a motor esztétikai minőségének elrontása miatt vannak ott, ugyanis az elülső csavarok felől nyitott a motor. Amíg azok nincsenek a helyükön, ez a három kis ragacsos papírdarab tartja távol a koszt az érzékeny részektől.

psx_20180607_164401.jpg

Elkezdhettük végre a motorvezérlő paraméterezését. Először be kell állítanunk a motor típusát, póluspár számát, névleges és maximális áramát, nyomatékát. Ez mindenféleképp szükséges ahhoz, hogy úgy mozogjon a motor, ahogyan azt mi szeretnénk. Ezen felül még be lehet állítani jó sok biztonsági paramétert, mint például az akkumulátor feszültséghatárait, hőmérésklet limiteket, fordulatszám maximumot, teljesítményhatárt, áramkorlátot, illetve azt, hogy hogyan reagáljon a motor ezekre a hibákra. Ezek általában nem éles határok, hanem két küszöböt adunk meg, és közöttük lineárisan elveszi a motor teljesítményét. Például túlmelegedés ellen 90°C-ig nem avatkozik be, 100°C-nál pedig teljesen elveszi a teljesítményt, ez mondjuk 95°C-nál 50%-os teljesítményt jelent. Szerintem túl sok állítható paraméter van a vezérlőben, egy több mint 100 oldalas PDF-et kaptunk csak ezekről. Felhasználóbarátabb motorvezérlőknél szokott lenni úgynevezett auto-tuning opció, ami leméri és beállítja helyetted a motor főbb paramétereit, ennek hiányában kicsit jobban észnél kell lennünk, hogy mit hogyan állítunk be.

param4.JPG

param1.JPG

param2.JPG

param3.JPG

Ezt követően jöhet a motor forgatása. Összekötjük a motor 3 fázisát a motorvezérelővel, és egyelőre elővigyázatosságból az akkumulátor helyett egy nagyteljesítményű tápegységgel tápláljuk meg a rendszert. Azt kell feltételezni minden legelső indításnál, hogy valamilyen hiba van a rendszerben, ezért nem szabad rögtön éles tesztet csinálni. A labortápon beállítunk egy mérsékelt áramkorlátot, mi ezt 20A-re választottuk. Ez már elegendő ahhoz, hogy a motor meg tudjon indulni, de hiba esetén nem tud nagy bajt csinálni, hiszen a motor és a vezérlő is bírja a 800A-t.

img_20180607_094606.jpg

Először a forgásirányt határozzuk meg, hogy a motornak és nekünk ugyanazt jelentse az előrefele. Kényelmetlen lenne hat fokozat hátra és csak egy előre. Az ilyen típusú motor forgásirányát két fázis felcserélésével egyszerűen meg lehet változtatni, de a motorvezérlőben is van erre egy külön paraméter. Ezután következhet a finomhangolás, azaz a motorvezérlő szabályzóinak beállítása. Alapvetően két szabályozó található benne: áram és fordulatszám. A motor nyomatéka arányos a rajta átfolyó árammal, így az előbbi felel a nyomaték gyors és stabil kiépítéséért, kulcsfontosságú a motor csendes járása érdekében. A nyomatékhullámzás rezgést, az pedig zajt kelt, ezért érdemes minél jobbra megcsinálni az áramszabályzást. Az alapbeállításokkal az alábbi eredményt nyújtja a vezérlő:

param_curr2.png

A piros a nyomaték alapjel, tehát az elvárt nyomaték, a kék a megvalósított nyomaték, a zöld pedig a szabályozó kimenete. A célunk az, hogy a kék görbe minél inkább megegyezzen a pirossal. Sajnos a valóságban mindennek van valamilyen tehetetlensége, ezért tökéletesen sosem fogjuk tudni megvalósítani az alapjelet, de erre kell törekedni. Ezt a szabályozó két paraméterével - P és I - tudjuk állítani. Akit jobban érdekel a PI szabályozó működése, az a neten utána tud nézni, nálam sokkal ügyesebben elmagyarázzák. Durván leegyszerűsítve a P (proportional, arányos) tag a szabályozó felfutását, azaz a kezdeti szakaszt módosítja, míg az I (integral, integráló) tag a szabályozó beállását, azaz az állandósult szakaszt módosítja. Láthatjuk, hogy elég lassan emelkedik a kék jel, és utána nem közelíti meg eléggé a pirosat, így mind a két paraméteren változtatni kell. A több nem mindig jobb, és ez igaz a szabályzókra is. A P és I értékre is van egy adott szempontok szerinti ideális érték. Ezt a rendszer teljes ismerete függvényében ki is lehet számolni, ehhez viszont tudni kéne a motorvezérlő és motor villamos, szoftveres és mechanikai paramétereit. Mivel ezek javarészt nem állnak rendelkezésünkre, így marad a manuális szabályozó hangolás. Mi a táblázatok bogarászása helyett inkább a saját mérnöki intuíciónkban bíztunk, és tizenpár iteráció után sikerült elérni az alábbi jelalakokat:

param_curr5.png

Látható, hogy az egyes periódusok sokkal inkább hasonlítanak egymásra, nem úgy mint az első ábrán, a kék görbe szépen rásimul a pirosra, és nincs benne az a hullámosság sem. A fordulatszám szabályozót valószínűleg nem fogjuk használni, mert a gázpedállal a kívánt nyomatékot (áramot) fogjuk befolyásolni, mint egy belsőégésű motornál. Ennek ellenére behangoltuk ezt is, mert ha később meggondoljuk magunkat, akkor nagyobb macera lenne visszaszerelni az asztalra.

param_vel2.png

Itt most a kék a kívánt és piros a valós fordulatszám. Láthatjuk, hogy jó nagy lengése van a szabályozónak. Nagyjából 5 perc próbálgatás után elértünk az alábbi végeredményhez.

param_vel1.png

A sikeres paraméterezés és tesztek után rákötöttük az akkumulátorokat a vezérlőre, és a bekapcsológomb megnyomása után magabiztosan kijelenthettük, hogy nem lényegült át a drága berendezés szikrát szóró, füstöt okádó bűvészkellékké. Minden úgy működött, ahogy annak rendje és módja megköveteli, szépen lassan kezd összeállni az egész. Képzeletben már magunk előtt látjuk, ahogyan a motor megforgatja a váltó tengelyét, és az autó lassan megteszi első métereit. Alig várjuk, hogy végre beszerelhessünk mindent az autóba.

img_20180607_094710.jpg

A bejegyzés trackback címe:

https://apexnews.blog.hu/api/trackback/id/tr2714105943

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Xebulon 2018.07.24. 21:05:41

Csak üresen állítottátok be vagy valami műterhelést is adtatok a villanymotorra?

bomberman 2018.07.25. 10:30:38

Pont ezt akartam én is kérdezni, hogy terhelés alatt is teszteltétek? Vagy az már majd beszerelt állapotban az autóval történik?

rezgaras 2018.07.25. 11:08:24

Így első ránézésre a szabélyozási paraméterek beállítása az üres motorra nem hoz sokat, hiszen a kész termékben a motor az autóval együtt alkot egy elektro-mechanikai rendszert. Tehát feltehetőleg újra be kell majd állítani. Hozzá jön, hogy egy értelmes munkapontot is kell találni az optimalizáláshoz - szerencsére csak egy vagy két személy lehet a terhelés ;-))

Amúgy nagy grat a leíráshoz. Amikor elkezdtétek, elolvastam az első cikkeket, de nem nagyon érdekeltek. Jópofa hobby-tevékenység, amúgy a 190 centimmel egy MX5-be bele sem férek (kipróbáltam, de az ülést nem lehet eléggé hátratolni, mert már ott az utastér vége :-(( ) Viszont most elolvastam az összeset. Nagyon szépen, érthetően és amennyire megítélem, pontosan, szabatosan írtatok le minden részletet. Műszakilag kikezdhetetlen!