Skip to main content

BME Formula Racing Team

Megjelent: 2020. december 07.

BME 1A BME Formula Racing Team hazánk első Formula Student csapata, amely 2007 óta tervez és épít együléses, formulatípusú versenyautókat az egyetemi hallgatóknak megrendezett nemzetközi Formula Student konstruktőri versenysorozatba. A csapat évről évre jobb eredményeket ér el, felküzdve magát a mezőny élvonalába.

 

 

Az elektromos versenyautó mellett az NJE (Neumann János Egyetem, Kecskeméti Főiskola) kutatóival közösen önvezető autót is építenek, amellyel már 2018 óta vesznek részt nemzetközi versenyeken. A csapat különböző alegységekből áll, a teljesség igénye nélkül például Negyedjármű, Váz, Elektronika és Operatív csoport. Újkeletű, ám annál fontosabb szerepkörű a Vehicle Dynamics Control – Járműdinamikai irányítás – elnevezésű csoport, amelynek tevékenysége jelen cikk témáját is szolgáltatja.

 

Meghajtás és kommunikáció

Az autó meghajtását kerekenként egy-egy állandó mágneses szinkronmotor biztosítja. Ezek a motorok 21 Nm maximális nyomatékkal és 21 500 rpm maximális fordulatszámmal rendelkeznek, és minden motort külön lehet vezérelni, ami lehetőséget nyújt arra, hogy a nyomatékok megfelelő elosztásával javuljon a jármű irányíthatósága. Ez a járműdinamikai irányító szoftver (Vehicle Dynamics Control, VDC) feladata, aminek a felépítését és fontosabb funkcióit az alábbiakban mutatjuk be.
Az autó elektronikája egy elosztott rendszert alkot, ahol az egységek CAN (Controller Area Network) protokollt használva kommunikálnak egymással. Az egységek nyomtatott áramköreit a csapattagok tervezik az adott egység feladatának megfelelően. Az egységeket Texas Instruments TMS570 mikrovezérlők irányítják, amely mikrovezérlők egyikén fut a VDC szoftver is.

 

BME 2

 

Irányító szoftver

A korábban említett elektromos motoroktól egy összetett modell kéri ki az adott helyzetnek megfelelő nyomatékot. Ezt a modellt MatLab Simulink környezetben egy blokkdiagramként valósította meg a csapat, mert ebben viszonylag jól vizualizálható és könnyen átlátható, megérthető a felépítése. A MatLab egy algoritmus alapján a modellt C-kóddá alakítja, amit már a mikrokontrollerre készített programban is fel tudnak használni.
A modell a jármű különböző pontjain rögzített szenzorok – gyorsulás (elöl és hátul), kormányszög, fékerő, gázpedálállás, fordulatszámok, első és hátsó fékkör nyomása, magas- és alacsonyfeszültségű akkumulátor celláinak feszültsége és hőmérséklete – bemenetei alapján közelítőleg kiszámolja a versenyautó dinamikai állapotát. Ehhez társul még a kormányon 5 forgókapcsoló (egyenként 12 állással) és 4 nyomógomb, amivel a pilóta bizonyos paramétereket tud beállítani.
A következőkben néhány szó esik a fontosabb funkciókról. A teljesítményszabályozók feladata az, hogy a motorokat a biztonságos működés keretei között tartsa, védje az akkumulátor celláit – ezért a versenyszabályzat is 80 kW-os összteljesítményt enged meg. Abban az esetben, ha az akkumulátor által leadott teljesítmény több, mint 500 ms-ig átlépi a 79 kW-os határt, a modell lekapcsolja mind a négy motorra kikért nyomatékigényt. Ez csak egy biztonsági funkció, a tényleges limitálást másik logika végzi. Ez a teljesítmény függvényében csökkenti a kikért összes nyomatékot, és jól behangolva szabályozóként működik egy adott érték körül ingadozva tartva a teljesítményt, és ily módon valóban a megengedett teljesítményhatár közelében tud „menni” az autó.
Emellett nem szabad megfeledkezni a motor karakterisztikájáról, nyomatékok limitálásáról sem, hiszen egyrészt 21 Nm-nél nagyobb érték nem kérhető ki, másrészt a nagy nyomatékoknál – nem elhanyagolhatóan – rosszabb hatásfok tapasztalható. A kipörgés veszélye miatt számolni kell a kerekek és a talaj közti erővel. Ebben az esetben a kipörgésgátló logika szabályozza a nyomatékot, a jobb menettulajdonságok mellett a fogyasztás is csökkenthető.
A motorokkal regeneratív fékezést lehet megvalósítani, visszanyerve a mozgási energia egy részét, ezáltal javul a hatásfok és csökken a szükséges akkumulátorkapacitás, és a tömeg is. Az autó biztonsági okból kifolyólag mechanikusan is tud fékezni, de a csapat egy olyan megoldást alkalmaz, ami a regeneratív fékezést maximálisan kihasználja. A fékpedált egy gázrugó előfeszíti, ezért egy bizonyos erőt kell kifejteni a pilótának, hogy a fékpedál elmozduljon és elkezdődjön a mechanikus fékezés. Ezen a ponton a regeneratív fékezés maximális, ennél kisebb kifejtett erő esetén lineárisan nő a regeneratív fékezés ereje, nagyobb értékek esetén pedig a modell becslést ad a mechanikus fékerőkre, és ezeket az értékeket egészíti ki oly módon a kikért nyomatékokkal, hogy az eloszlás ideális legyen az első és hátsó tengelyek között. Ideálisnak azt tekintjük, ha a fékerők aránya a tengelyeken megegyezik a tengelyekre eső terheléssel. Az ideális eloszlás görbéje az 1. ábrán látható.

 

1abra

1. ábra  Ideális és mechanikai fékezés eloszlása az első és hátsó tengely között


A függőleges tengely körül forgatóhatás érhető el a négy motor eltérő nyomatékaival, amelyek elosztását a „yaw control” nevű alrendszer számolja. Ennek az a célja, hogy a kanyarodás szögsebességét a jármű dinamikai állapota alapján az ideálishoz közelítse. A szenzorok jeleiből meghatározza a függőleges tengely körüli ideális szögsebességet, és a valós szögsebesség eltérése alapján határoz meg egy forgatónyomatékot, ami az autó kanyarodását segíti. Az elosztásban fontos a kerék és út között ébredő, függőleges irányú erő, mert a jobban terhelt keréken nagyobb nyomaték lehet kipörgés nélkül. Forgókapcsolóval az első, illetve hátsó kerekek közötti nyomatékelosztás is állítható. A megfelelő érték a jármű tömegeloszlásától függ. A yaw control fékezéskor is módosít a jobb és bal oldal közötti elosztáson, hogy kanyarban is segítse a pilótát. Teszteken rögzített adatokból kimutatta a csapat, hogy javítani tudtak az alulkormányzottságon ezzel a funkcióval.
A bemutatott funkciók kimenetei alapján a nyomatékelosztó logika meghatároz négy nyomatékértéket, ez lesz a modell kimenete.

 

2abra

2. ábra  Az 5 ms-onként lefutó feladat vázlata

 

Szoftveres környezet

A fentiekben elsősorban optimalizálásról volt szó, biztonságról kevés. Az elosztott rendszerben előfordulhat olyan probléma, amelynek következtében meghibásodik valamelyik bemenet, ezért egyes funkciók rosszul működnek. Ilyen hibalehetőség, hogy egy másik egység lefagy, vagy a kommunikáció vagy a szenzorok meghibásodnak. A szoftveres környezetben ezért a beérkező CAN üzenetek ellenőrzésre kerülnek. Minden jelhez definiált a csapat egy tartományt, amelyben jónak tekinti az értékét (ez többnyire a szenzor mérési tartománya). Továbbá minden jelhez tartozik egy számláló, ami periodikusan növekszik, és az üzenet érkezésekor 0-ra áll, ezen számláló értéke megmutatja, mennyi ideje nem érkezett üzenet, és minden jelhez tartozik ennek egy megengedett felső határa. Ha valamelyik szempontból hibás a jel, a modellben kikapcsolódnak azok a funkciók, amelyek működéséhez a jel szükséges.

 

BME 3


A program fő része egy 5 ms-onként ütemezett feladatként fut le, és főbb funkcióit a 2. ábra szemlélteti. Ez a bemutatott Simulink modellből generált C-kódból, valamint az ezt kiegészítő függvényekből áll. A generált kód tartalmaz egy-egy struktúrát a bemeneteknek és a kimeneteknek – ezeket használva tud a környezet bemenő értékeket megadni és eredményeket kiolvasni. A környezet először a jelek értékeit a generált kód bemeneti struktúrájába másolja, amennyiben azok mindkét fentnevezett kritérium szerint helyesek, ellenkező esetben hibásnak tekinti a jelet, és letilt bizonyos funkciókat. A funkciók engedélyezését is a bemeneti struktúrában kapja meg a modell, ezen még a forgókapcsolóval állítható paraméterezés részben módosítani tud. Minden bemeneti érték beállítása után lefut a korábban bemutatott modell, majd a kimeneti struktúrában található értékekből összeállít a program egy 8 bájtos CAN üzenetet, ami a motorvezérlőket utasító üzeneteket tartalmazza, és kiküldi ezeket a hálózatra.
A program további üzeneteket küld ki, amelyek tartalmazzák a jelek hibáit, a beállított paramétereket és a modell fontosabb értékeit. Más egység ezeket nem használja, üzenetek csak diagnosztikai célt szolgálnak, ezért a csapat által fejlesztett valós idejű telemetriával az értékeket ellenőrizve gyorsan kideríthető, mi okoz esetlegesen hibát az irányítás működésében.

 

Szerzők: Bekes Nándor, Budaházi Flóra, Pungor Péter

 

BME Formula Racing Team
Fülöp Simon
E-mail: Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.
www.frt.bme.hu