Lantos Béla BME Irányítástechnka és Informatka Tanszék STAD-ALOE C PROGRAMFEJLESZTÉS GÉPJÁRMŰ ÜTKÖZÉSMETES PÁLYATERVEZÉSÉRE ÉS PREDIKÍV IRÁYÍTÁSÁRA MÉRHETŐ ÁLLAPOTOK ESETÉ. SZOFTVER ÉS DOKUMETÁCIÓ Tanulmány Készült a RET. Járműforgalm rendszerek modellezése és rányítása projekt keretében Elektronkus Jármű és Járműrányítás Tudásközpont Budapest, 7. júnus
Tartalm összefoglaló A Matlab lcenszhez kötött fejlesztés környezet rendelkezk olyan fordítóval, amely jelentős megszorításokkal ugyan, de lehetővé tesz a költséges Matlab fejlesztés környezet elhagyását és Matlab lcenszet nem génylő stand-alone futtatható programok létrehozását. Ennek során fgyelembe kellett venn, hogy a Matlab nterpretált nyelv, és a stand-alone programnak az nterpreterek hányában s korrektül kell működne. A kutatás során először meghatároztuk a rendelkezésre álló két legfejletteb termék, a Matlab 6.5 R3 Compler 3 és a Matlab R6a R4 Compler 4 korlátat stand-alone programok létrehozása során. Megállapítottuk, hogy a Matlab 6.5 Compler Verson 3 C/C nyelvre tudja a Matlab függvényeket lefordítan, amely azután stand-alone programmá összeszerkeszthető, de a Matlab toolbook nem, vagy csak lényeges megszorításokkal használhatók. Mvel a perspektívkus célok előnyben részesítk a C/C nyelvet a továbbfejlesztések során, ezért részletesen analzáltuk a fordítót a korlátok tekntetében. A vzsgálatok eredményeképpen szükség volt a feladat szempontjábol kulcsfontosságú Optmzaton Toolbo lecserélésére egy saját fejlesztésű változatra a korlátok felszámolása érdekében. A szoftver technológalag fejlettebb Matlab R6a Compler 4 nem C/C nyelvre, hanem a felhasználó számára nem defnált és üzlet okokból krptografkus kulcsokkal védett közbenső CTF formátumra fordít, amely függ a futtató rendszertől, és amelyet azután a stand-alone program az ndításkor automatkusan értelmez és végrehajt. A Matlab Optmzaton Toolbo szolgáltatása lefordírhatók, a korlátok az alkalmazás szempontjából nem krtkusak, a probléma a C/C kmenet hánya. Az így szerzett tapasztalatokra alapozva lehetőség nyílt stand-alone program kfejlesztésére az automatkus akadályelkerülő pálya meghatározására és rányítással történő megvalósítására. Ennek során fgyelembe vettük a Matlab Compler megsmert korlátat, és a szükséges mértékben átdolgozzuk a korább programverzót a stand-alone korlátok fgyelembevételével. A program elvárt bemenet adatat a statkus akadály pl. elől haladó járműről leesett teher és a mozgó akadály szembejövő jármű geometra paramétere befoglaló kör középpontja és sugara alkotják, valamnt a mozgó akadály és a saját jármű sebessége. Tovább bemenet adatok azonosítják az útszakaszt bal oldal és jobb oldal sávszélesség. Az akadályelkerülő pályát az elasztkus szalag elvére épülve határozzuk meg, amely nagyméretű nemlneárs egyenletrendszerre vezet, amelyet az Oprmzaton Toolbo fsolve függvényével oldunk meg. Az akadályelkerülő pályát dfferencálgeometra elvű és predktív rányítás mozgó horzontú, RHC módszerekkel valósítjuk meg. Mnden horzont kezdetén a rendszer meghatározza a mozgó jármű dőnvaráns vagy dőben változó lnearzált modelljét az aktuáls állapot vagy a teljes állapot-trajektóra körül, és a predktív rányítást a mozgó horzonton belül a keletkező LTI vagy LTV rendszerre alapozza. A kfejlesztendő stand-alone program első verzója mérhető állapotokat sebesség, oldalcsúszás szög, orentácó és derváltja, X és Y pozícó feltételez. Ugyan az összes állapot csak rtkán mérhető közvetlenül, de így lehetőség nyílt az rányítás alaposabb önálló tesztelésére. A fejlesztés erdményeként a Matlab Compler 3 felhasználásával stand-alone verzó került kfejlesztésre, egy a saját, egy másk pedg az eredet Optmzaton Tollbo felhasználásával az utóbb fordításakor számos warnng utalt az eredet toolbo hányosságara, amely komoly kockázatot jelent valós dejű körülmények között. Egy harmadk verzó a Matlab Compler 4 felhasználásával készült. Mndhárom verzó telepítve lett a Matlabot nem tartalmazó futtató környezetben, és helyes müködésük bemutatásra került a BME Közlekedésautomatka Tanszéken a RET. projekt keretében. A fejlesztés tovább ránya kétantennás GPS, valamnt 3D gyorsulásérzékelők és groszkópok adatara épülő állapotbecslés bellesztése lehet a stand-alone programmokba.
Tartalomjegyzék. Célktűzés.... A MATLAB Compler korlátanak felderítése.... A Matlab Compler általános megszorítása.... Matlab Compler verzók eltérése....3 Stand-alone programok telepítése... 3.3. Átültetés mechanzmus Matlab 6a esetén... 3.3. Átültetés mechanzmus Matlab 6.5 esetén... 4.4 Az automatkus akadályelkerülő és predktív rányítás program stand-alone applkácójának felhasználó leírása... 5.5 CD-n átadott fájlok térképe... 7 3. Automatkus ütközésmentes pályatervezés... 8 3. Induló elasztkus szalag generálása... 8 3. Akadályelkerülő elasztkus szalag generálása... 8 3.. Elasztkus szalag struktúrája... 8 3.. Elasztkus szalag belső potencálja... 9 3..3 Az útszegélyek külső potencálja... 9 3..4 Statkus akadályok külső potencálja... 3..5 Mozgó akadályok külső potencálja... 3..6 Az egyensúly helyzet meghatározása... 3.3 Referenca jel tervezés az rányításokhoz... 4. Jármű dnamkus modellje és Le-algebra tulajdonsága... 9 4. A pontos nemlneárs járműmodell... 9 4. Appromált nemlneárs járműmodell... 4.3 Az appromált modell Le-algebra tulajdonsága... 4.4 emlneárs kmenet vszacsatoláson alapuló rányítás... 5. A nemlneárs predktív rányítás algortmus... 3 5. Választható alternatívák... 3 5. A megvalósított predktív rányítás elmélet alapja... 3 5.4 A megvalósított predktív rányítás algortmus... 5 6. A szabályozásokat megvalósító keretprogram... 7 6. Modell konverzó folytonos dőről dszkrét dőre... 7 6. A szabályozásokat megvalósító framecas keretprogram... 7 7. Összefoglalás... 3 8. Felhasznált rodalom... 3 9. MATLAB programlsták... 3 9. abph... 3 9. apprfundot... 35 9.3 avodrgobs... 36 9.4 bandter... 38 9.5 ddc_euler... 45 9.6 deltawsv... 47 9.7 derv3... 48 9.8 dfapprd... 49 9.9 dg_controller... 5 9. funframecas... 5 9. fundot... 57 9. fundvec... 59 9.3 nt_gps_is... 6 9.4 ntband... 6 9.5 nthorzon... 65 9.6 ntvehclepar... 66 9.7 knematcs... 67 9.8 LTVvehcle... 69 9.9 pause... 7
9. plotband... 7 9. plots_kn... 7 9. precfundot... 74 9.3 read_syspar... 75 9.4 rhc_controller... 78 9.5 steppng... 8 9.6 Svdeltaw... 8 9.7 uu... 83 9.8 ybar... 84 9.9 SysparFle.tt... 85 M. Melléklet. CAS6p5 Standalone C Lsták /csak elektronkus formában/ Modfed Optmzaton Toolbo > no warnngs... pp. -767 M. Melléklet. OrgCAS6p5 Standalone C Lsták /csak elektronkus formában/ Orgnal Optmzaton Toolbo > warnngs... pp. -898
. Célktűzés A Matlab lcenszhez kötött fejlesztés környezet rendelkezk C/C nyelvre fordítóval, amely jelentős megszorításokkal ugyan, de lehetővé tesz a Matlab fejlesztés környezet elhagyását és Wndows vagy más Un, Lnu, target processzor rendszer és C fejlesztés környezet Vsual C stb. számára C nyelvű programkomponensek előállítását. A C nyelvű programkomponensek a Matlab C Compler szolgáltatásaval bzonyos korlátozások mellett Matlab lcenszet nem génylő stand-alone futtatható programmá szerkeszthetők. A kutatás cél kettős: egyrészt fel kívánjuk deríten a rendelkezésünkre álló két legfejlettebb termék, a Matlab 6.5 R3 Compler 3 és a Matlab R6a R4 Compler 4 korlátat standalone programok létrehozása során. Másrészt tovább kívánjuk fejleszten az automatkus akadályelkerülő pálya CAS megvalósításához a felső szntű rányítás módszereket, és a korábban kfejlesztett dfferencálgeometra elvű DGA rányítás mellé k kívánjuk fejleszten a mozgó horzontú RHC nemlneárs predktív rányítást, valamnt az rányítás módszerek standalone megvalósítását. Az első cél megoldásakor fgyelembe kell venn, hogy a Matlab nterpretált nyelv, amely 3 nterpretert Matlab, Smulnk, Java tartalmaz. A stand-alone programok nem gényelk a Matlab lcenszet, de nem s tartalmazzák a fejlesztés környezetet és nterpreterjet. A stand-alone programnak az nterpreterek hányában s korrektül kell működne. A Matlab 6.5 és a Matlab R6a között lényeges koncepcóváltást hajtott végre a MathWorks cég: A Matlab 6.5 Compler Verson 3 C/C nyelvre tudja a Matlab függvényeket lefordítan, amelyek azután stand-alone programmá összeszerkeszthetők. Matlab toolbook azonban nem használhatók. Ezzel szemben a Matlab R6a Compler 4 nem C/C nyelvre, hanem egy a felhasználó számára nem defnált és üzlet okokból krptografkus kulcsokkal védett közbenső CTF formátumra Component Technology Fle fordít, amely függ a futtató rendszertől, és amelyet azután a stand-alone program az ndításkor automatkusan értelmez és végrehajt. A Matlab R6a és toolboa objektum orentáltak, a Matlab toolbook néhány szolgáltatása lefordírható, ezek korlátaról a Matlab dokumentácók adnak felvlágosítást. Mvel a perspektívkus célok előnyben részesírhetk a C/C nyelvet, célszerű mndkét Matlab fordítót vzsgáln. Ehhez azonban szükség lehet az Optmzaton Toolbo lecserélésére a korlátok felszámolása érdekében. A másodk cél a korábban kfejlesztett Matlab programcsomag stand-alone továbbfejlesztése gépjármű ütközésmentes pályatervezésére és predktív rányítására mérhető állapotok esetén. Ennek során fgyelembe vesszük a Matlab C Compler megsmert korlátat, és a szükséges mértékben átdolgozzuk a korább programverzót a stand-alone korlátok fgyelembevételével. A program elvárt bemenet adatat a statkus akadály pl. elől haladó járműről leesett teher és a mozgó akadály szembejövő jármű geometra paramétere befoglaló kör középpontja és sugara alkotják, valamnt a mozgó akadály és a saját jármű sebessége. Tovább bemenet adatok azonosítják az útszakaszt bal oldal és jobb oldal sávszélesség. Az akadályelkerülő pályát az elasztkus szalag elvére épülve határozzuk meg, amely nagyméretű nemlneárs egyenletrendszerre vezet, amelyet az Oprmzaton Toolbo fsolve függvényével oldunk meg. Az akadályelkerülő pályát dfferencálgeometra elvű és predktív rányítás mozgó horzontú, RHC módszerekkel valósítjuk meg. Mnden horzont kezdetén a rendszer meghatározza a mozgó jármű dőnvaráns vagy dőben változó lnearzált modelljét az aktuáls állapot vagy a teljes állapot-trajektóra körül, és a predktív rányítást a mozgó horzonton belül a keletkező LTI vagy LTV rendszerre alapozza. A kfejlesztendő stand-alone program első verzója mérhető állapotokat sebesség, oldalcsúszás szög, orentácó és derváltja, X és Y pozícó feltételez. Ugyan a feltételezés rendszertechnkalag kérdéses, de lehetőséget ad az rányítás és a később állapotbecslés tesztelésének szétválasztására.
. A MATLAB C Compler korlátanak felderítése A Matlab lcenszhez kötött fejlesztés környezet rendelkezk fordítóval Matlab Compler, amely jelentős megszorításokkal ugyan, de lehetővé tesz a Matlab fejlesztés környezet elhagyását és Wndows vagy más Un, Lnu rendszer számára Matlab lcenszet nem génylő ú.n. stand-alone futtatható program generálását.. A Matlab Compler általános megszorítása A Matlab nterpretált nyelv, amely 3 nterpretert Matlab, Smulnk, Java tartalmaz. A standalone programok nem gényelk a Matlab lcenszet, de nem s tartalmazzák a fejlesztés környezetet és nterpreterjet. A stand-alone programnak az nterpreterek hányában s korrektül kell működne. A fejlesztés környezet elhagyása nem függetleníthető a Matlab Complert tartalmazó a fordítást végző rendszer C/C fejlesztő környezetétől és annak könyvtáratól, valamnt a stand-alone programot futtató Matlab-ot nem tartalmazó rendszer és környezete könyvtáratól. A Matlab Compler kér a C/C fejlesztő környezet megadását, amely számára egységesen Mcrosoft Vsual C 6. lett megadva és a fordítást végző rendszeren nstallálva. A Matlab toolbook szolgáltatásanak lefordíthatóságát a Matlab Compler általában nem garantálja, ezért csak a saját fejlesztésű m-függvények lefordíthatóságára lehet számítan. Csak a program modulok egyenként fordításakor és az összeszerkesztés során kapott hbaüzenetekből azonosítható, hogy a saját fejlesztésű Matlab forrásprogram kelégít-e a Matlab Compler elvárásat. 3 A saját fejlesztésű m-programok automatkusan bevonhatnak Matlab függvényeket s lneárs algebra, grafka stb. a megvalósításukkor, ezért a saját m-függvény használata sem abszolút garanca a lefordíthatóságra.. Matlab Compler verzók eltérése Stand-alone programok generálására a két legfejlettebb rendelkezésünkra álló verzó, a Matlab 6.5 R3 és a Matlab R6a R4 jöhetett számításba. A két verzó között lényeges koncepcóváltást hajtott végre a MathWorks Inc. cég: A Matlab 6.5 R3 Compler Verson 3 C/C nyelvre tudja a Matlab függvényeket lefordítan, amelyek azután stand-alone programmá összeszerkeszthetők. Matlab toolbook nem használhatók. A szerkesztés lehetővé tesz megosztott könyvtárak bevonását DLL s. A Matlab R6a R4 Compler 4 két automatkusan generált modul kvételével nem C/C nyelvre, hanem egy a felhasználó számára nem defnált és üzlet okokból krptografkus kulcsokkal védett közbenső CTF formátumra Component Technology Fle fordít, amely függ a futtató rendszertől, és amelyet azután a stand-alone program az ndításkor automatkusan értelmez és végrehajt. A Matlab R6a és toolboa objektum orentáltak. A Matlab toolbook néhány szolgáltatása lefordírható, ezek korlátaról a Matlab dokumentácók adnak felvlágosítást. Az Optmzaton Toolbo szolgáltatása általában lefordíthatók. Általános korlát, hogy a GUI-t tartalmazó toolbo szolgáltatások nem fordíthatók le. A szerkesztés lehetővé tesz megosztott könyvtárak bevonását DLL s. Ksérleteket végeztünk mndkét Compler bevonásával az automatkus akadályelkerülő CAS és a mozgó horzontú RHC predktív rányítás programrendszer fokozatos konvertálására standalone programmokká. Ennek során, mvel szükség volt a Optmzaton Toolbo bzonyos szolgáltatásara fsolve stb., ezért a Matlab 6.5 Compler esetén módosítottuk és lecseréltük az optmalzálás toolboot egy saját fejlesztésűre, hogy elkerüljük a fordító által jelzett wornng üzeneteket. Megállapítást nyert a ksérletek során, hogy egyk Compler sem kezel a pause utasításokat. Ez azért fontos, mert a pause tesz lehetővé, hogy a keletkező ábrákat fgures megszemléljük, melőtt a számítás továbblépne. Kínálkozott ezért a törekvés a pause emulálására egyetlen karakter beolvasására váró nput utasítással, amelynek keretében a karakter bevtelre várakozás
alatt megfgyeljük az ábrákat, a karakter leütése után pedg továbblépünk a számítás folytatására. Megállapítottuk, hogy a kétféle Compler az nput utasítás alatt s eltérően vselkedk: A Matlab 6.5 R3 Compler Verson 3 felhasználásával keletkezett ábrák az nput utasítás keretében a karakter leütésre várakozás alatt nem teknthetők meg, mert a command pront ablaka nem hagyható el. Ezért az nput utasítás keretében a karakter bevtelre várakozásnak nncs értelme. A számítás nem függeszthető fel, az ábrák futás közben nem teknthetők meg. Az egyedül lehetőség a program logka vége elérésének kvárása, amkor s a keletkezett és megmaradt ábrák fgures a command promt ablak letörléség megteknthetők. Az ábrák nem menthetők world dokumentumba, mert hányzk a fgures menüben a Matlab alatt szokásos felső parancs sor, amelyben a vágólapra mentéshez szerepelne a copy fgure és copy opton parancs. Az egyedül lehetőség a fgure fájlba mentése, amely a stand-alone futtatáskor s elérhető a fgure parancs sorában megfelel a Matlab alatt szokásos másodk menü sornak. A kmentett ábra a fájlból később standard eszközökkel áttehető a word dokumentumba. Vegyük észre, hogy az ábrák megtekntésének befejezése együtt jár a command prompt ablakának lezárásával, ezért újabb stand-alone futtatáshoz új command pont ablak és új path beállítás kell. A Matlab R6a R4 Compler 4 felhasználásával keletkezett stand-alone program futásakor a keletkezett ábrák a pause utasítást karakter leütésre váró nput tet, s utasítással emuláló megoldással futás közben az nput elérésekor megteknthetők, a fgures parancs sor szolgáltatásaval pedg gény esetén fájlba menthetők, de a továbblépéshez be kell lépn a command promt ablakába a karakter leütése előtt. A program logka végének elérésekor az alatt lehetőségek s megmaradnak. Most azonban a program logka végére kerülhet egy nputra alapozott wat/stop cklus, amelynek alkalmazásával stop s hatására lezárhatók az ábrák close all, és az újabb ndításhoz nem kell a path-t smét beállítan..3 Stand-alone programok telepítése A stand-alone programok mndkét Compler esetén génylk egy futtató környezet telepítését a Matlab-ot nem tartalmazó futtató célrendszerre, amelyet szntén előállítottunk. A kétféle Compler lehetőséget ad az alkalmazás cél függvényében a választásra a könnyebben bővíthető C/C flozófájú Matlab 6.5 és a kevesebb megszorítást tartalmazó, de CTF formátumú Matlab R6a és ezért nehezebben bővíthető stand-alone program között. A Matlab környezetben előállított stand-alone C applkácót egy valós alkalmazás esetén tpkusan olyan környezetben kell futtatn, ahol nncs Matlab nstallálva. A továbbakban megadjuk azokat a lépéseket, amelyek szükségesek ahhoz, hogy a stand-alone applkácó Matlab hányában s futtatható legyen. Az átültetés mechanzmus függ attól, hogy az algortmusok fejlesztéseés a fordítás eredetleg Matlab R3 vagy Matlab 6a környezetben történt..3.. Átültetés mechanzmus Matlab 6a esetén A Matlab környezetben lefordított automatkus akadályelkerülő CAS és a mozgó horzontú RHC predktív rányítás program stand-alone applkácója a Standalone\CASR6a könyvtárban található. Az applkácó Matlab mentes környezetbe való átültetéséhez 4 fájlra van szükség [6]: funframecas.ee A Matlab compler segítségével előállított fájl, amelynek futtatásával az applkácó majd ndítható lesz. funframecas.ctf Component Technology Fle. Ez a fájl tartalmazza kódolt formában a matlab függvényeket. Platform függő fájl, amelynek meg kell egyezne a végfelhasználó platformjával. Syspar_Fle.tt Kötött formátumú szövegfájl, amelyben a felhasználónak az jelek után meg kell adna az akadályok és a futtatás paraméteret. MCRInstaller.ee Önktömörítő Matlab Component Runtme lbrary. Platform függő fájl, amelynek meg kell egyezne a végfelhasználó platformjával. Wndows esetén ez a fájl tartalmazza azokat a dll fájlokat, amelyek a végső felhasználó platformján való futtatáshoz szükségesek. A fájl a matlabroot\toolbo\compler\deploy\wn3 3
könyvtárban található meg, de a dokumentumhoz csatolt CD-n s megtalálható a d:\mcr könytárban A stand-alone applkácó átültetéséhez szükséges lépések:. A végső felhasználó Wndows platformján admnsztrátor jogkörrel be kell jelentkezn.. Az MCRInstaller.ee fájlt át kell másoln egy deglenes munkakönyvtárba. 3. Az MCRInstaller.ee ndításával egy varázsló véggvezet az nstallácós épéseken. Itt megadható a Runtme lbrary végső helye a célgépen. 4. Klépés admnsztrátor jogkörböl és felhasználó jelszóval bejelentkezés. 5. funframecas.ee, funframecas.ctf és Syspar_Fle.tt fájlok átmásolása. 6. funframecas.ee program futtatása. em szükséges Command Prompt-ból ndítan Bármely tovább futtatás során csak a 6. lépést kell végrehajtan. A program első futtatásakor keletkezk egy funframecas.mcr könyvtár, ezért az első futás lassúbb, mnt a több. Ez a könyvtár 3 tovább alkönyvtárat és bennük smét alkönyvtárakat és fájlokat tartalmaz. Fgyelem: az ezekben található *.m fájlok nem Matlab függvények, hanem specálsan kódolt nformácó a futtatáshoz..3.. Átültetés mechanzmus Matlab 6.5 esetén A Matlab környezetben lefordított automatkus akadályelkerülő CAS és a mozgó horzontú RHC predktív rányítás program stand-alone applkácó a Standalone\CAS6p5 és a Standalone\OrgCAS6p5 könyvtárakban találhatók. A saját fejlesztésű Optmzaton Toolbo alkalmazása esetén CAS6p5 fordítás során nem volt warnng, az eredet Matlab Optmzaton Toolbo alkalmazása esetén OrgCAS6p5 fordítás során volt warnng tartalmazza a fordítás eredményet. A továbbakban csak a CAS6p5 esetet mutatjuk be, a másk esetben hasonlóan kell eljárn, de értelemszerűen a másk nevet kell alkalmazn. Az applkácó Matlab mentes környezetbe való átültetéséhez 4 fájlra van szükség [5]: funframecas.ee A Matlab compler segítségével előállított fájl, amelynek futtatásával az applkácó majd ndítható lesz. Syspar_Fle.tt Kötött formátumú szövegfájl, amelyben a felhasználónak az jelek után meg kell adna az akadályok és a futtatás paraméteret. bn A FgureMenuBar.fg és a FgureToolBar.fg fájlokat tartalmazza. dataread.dll Az mglnstaller.ee hbája folytán pótolandó fájl, amely a Matlab matlabroot\bn\wn3 része mglnstaller.ee Önktömörítő Matlab Compler Run-Tme Lbrary nstallácós fájl. Wndows esetén ez a fájl tartalmazza azokat a dll fájlokat, amelyek a végső felhasználó Wndows alapú platformján való futtatáshoz szükségesek. A fájl a matlabroot\etern\lb\wn3 könyvtárban található meg, de a dokumentumhoz csatolt CD-n s megtalálható a d:\mglnstaller könytárban A stand-alone applkácó átültetéséhez szükséges lépések:. A végső felhasználó Wndows platformján admnsztrátor jogkörrel be kell jelentkezn.. Az mglnstaller.ee fájlt át kell másoln abba a könyvtárba, ahová nstalláln szeretnénka programot. Legyen ez pl.: C:\Program Fles\MGLI 3. Az mglnstaller.ee ndításával a Matlab Compler Run-Tme Lbrary fájlja kcsomagolódnak a megadott könyvtárban. 4. Klépés admnsztrátor jogkörböl és felhasználó jelszóval bejelentkezés. 5. funframecas.ee, Syspar_Fle.tt, bn, dataread.dll fájlok átmásolása a végfelhasználó számítógépére. 6. Command Prompt ndtása Az operácós rendszer Start\Kellékek ll. angol nyelvű Start 4
7. A Command Promptban a cd paranccsal funframecas.ee fájl könyvtárának aktuálssá tétele. 8. A Command Promptban a path paranccsal a Run-Tme Lbrary elérés útvonalát hozzá kell adn a korább útvonalakhoz. Ez az mglnstaller.ee könyvtárán belül a \bn\wn3 alkönyvtárban található. A. lépésben megadott könyvtár esetén az a következő parancs kadását jelent: path C:\Program Fles\MGLI\bn\wn3; path Megjegyzés: A Command Prompthoz tartozó ablak bezárása és újranytása után ezt a parancsot meg kell smételn. Gyakor futtatásnál célszerű egy.bat keterjesztésű fájlba másoln a fent parancssort és ezt a batch fájlt ndtan. 9. A funframecas.ee program futtatása Command Promptból, am egyszerűen a funframecas begépelésével és az Enter bllentyű megnyomásával megtehető. Bármely tovább futtatás esetén az előzőekben megadott lépéssorozatot a 6. lépéstől kell végrehajtan..4 Az automatkus akadályelkerülő és predktív rányítás program stand-alone applkácójának felhasználó leírása A program a korábban kfejlesztett Matlab programcsomag továbbfejlesztése az automatkus akadályelkerülő és a mozgó horzontú predktív rányítás algortmus stand-alone megvalósításával. A továbbfejlesztett program ntegrálva tartalmazza az akadályelkerülő pálya tervezését, a dfferencálgeometra elvű DGA és a mozgó horzontú RHC predktív rányítást, a jelen fázsban mérhető állapotokat feltételezve. Ennek során tekntetbe vettük a Matlab Compler megsmert korlátat, és a szükséges mértékben átdolgoztuk a korább programverzót a stand-alone korlátok fgyelembevételével. A program elvárt bemenet adatat a statkus akadály pl. elől haladó járműről leesett teher és a mozgó akadály szembejövő jármű geometra paramétere befoglaló kör középpontja és sugara alkotják, valamnt a mozgó akadály és a saját jármű sebessége. Tovább bemenet adatok azonosítják az útszakaszt bal oldal és jobb oldal sávszélesség. Az akadályelkerülő pályát az elasztkus szalag elvére épülve határozzuk meg, amely nagyméretű nemlneárs egyenletrendszerre vezet, amelyet az Oprmzaton Toolbo fsolve függvényével oldunk meg. Az akadályelkerülő pályát dfferencálgeometra elvű és predktív rányítás mozgó horzontú, RHC módszerekkel valósítjuk meg. Mnden horzont kezdetén a rendszer meghatározza a saját jármű dőnvaráns vagy dőben változó lnearzált modelljét az aktuáls állapot körül, és a predktív rányítást a mozgó horzonton belül erre alapozza. A program első verzója feltételez az összes állapot sebesség, oldalcsúszás szög, orentácó és derváltja, X és Y pozícó mérhetőségét. Ugyan a mérhető állapotok feltételezése rendszertechnkalag kérdéses, mndazonáltal lehetőséget ad az rányítás és a később állapotbecslés tesztelésének szétválasztására. Mnd a Matlab 6.5 Compler 3, mnd pedg a Matlab R6a Compler 4 felhasználásával kfejlesztettük a stand-alone program egy-egy verzóját gépjármű ütközésmentes pályatervezésére és predktív rányítására mérhető állapotok esetén. A kétféle Compler lehetőséget ad az alkalmazás környezet és a potencáls hosszú távú bővítések elvárása függvényében a választásra a könnyebben bővíthető C/C flozófájú Matlab 6.5, valamnt a kevesebb megszorítást tartalmazó, de a CTF közbenső formátum Matlab R6a matt nehezebben bővíthető standalone programok között. A program vezérlése egységesen a SysparFle.tt alapján történk. A szövegfájl kötött formátumú, az egyes paramétereket a nevük azonosítja, amely jelre végződk, és amely után kell megadn a paraméter numerkus vagy strng értékét. A jeltől a sor végég a karakterek szűrve lesznek comment. A paraméterek értelmezéséhez kellő mértékben el kell sajátítan a soronkövetkező fejezeteket akadályok megadása, rendszermodellek, szabályozás módszerek stb.. 5
Syspar_Fle.tt fájl preparált tartalma az átadott anyagban: *************************************************** Input fle for CAS system parameters *************************************************** ntband parameters fv_own; Own car average velocty fstat_obs[4.5]; [r ry d] statc_obstacle_ fmov_obs[ 3.5 4 5]; [r ry d v] movng_obstacle froad_wde[7.75.5]; [total_wde left_porton rght_porton] funframecas parameters fsys_appr; ->appromated_model_n_use fsys_estm; ->state_estmator_s_runnng fsys_contr'nonlnpred'; ->predctve_control_n_use fdeltaw_horzon; ->u_s_deltaw, ->u_s_sv_transversal fdgfresh_horzon; ->u_by_dffgeom, ->p_to_, ->u_to_um flambda_horzon; lambda_weghts_u_or_deltau_n_cost_functon fnt_horzon; ->ntegrator_n_rhc_controller fltv_horzon; ->LTV_lnearzaton_n_the_horzons A paraméterek jelentése: fv_own fstat_obs fmov_obs froad_wde fsys_appr fsys_estm fsys_contr fdeltaw_horzon flambda_horzon fnt_horzon fltv_horzon saját kocs átlagsebessége statkus akadály r, ry koordnátá és d átmérője a saját kocs koordnátá a knduláskor, a jobb oldal sáv közepén, mnden akadály koordnátája ehhez értendő mozgó akadály r, ry koordnátá, d átmérője és v sebessége kétsávú út teljes szélessége, a bal oldal sávhatár aránya és a jobb oldal sávhatár aránya a saját kocs kndulás helyzetében tranzensek szmulálásakor használt nemlneárs modell, >közelítő, >precíz >van állapotbecslés, >nncs állapotbecslés, nonlnpred vagy dffgeom a választott szabályozás algortmus szernt >az első beavatkozó jel az első kerék w szögelfordulása, >az első beavatkozó jel az első kerék Sv transzverzáls ereje, másodk beavatkozó jel mndg a hátsó kerék FlR longtudnáls ereje a beavatkozó jel nomnálstól való eltéréséből álló U sorozat normájának λ súlyozó tényezője a költségfüggvényben a nagy beavatkozások büntetésére >van ntegrátor a szabályozóban, >nncs ntegrátor a szabályozóban >LTV modell a horzontban, >LTI modell a horzontban, amely a nemlneárs modell lnearzálása révén áll elő predktív rányítás esetén em változtatható paraméterek: A jármű modelljének paraméteret az ntvehcle.m, az elasztkus szalag ncalzálás adatat az ntband.m függvény tatalmazza lásd Matlab *.m függvények lstája. A mntavétel dő T. s, a horzont mérete a mntavételek számában mérve. 6
A keletkező ábrák jelentése: Fgure Fgure Fgure 3 Fgure 4 Fgure 5 Fgure 6 Fgure 7 Fgure 8 Fgure 9 Fgure Fgure Fgure Fgure 3 Fgure 4 Fgure 5 Az elasztkus szalag kndulás helyzete Az elasztkus szalag egyensúly helyzete Az t jel és derváltja Az yt jel és derváltja A pályament sebesség és derváltja A pályament görbület és a pálya Az orentácó és derváltja Az jel másodk derváltja Az jel harmadk derváltja Az y jel másodk derváltja Az y jel harmadk derváltja Az rányítások t és yt alapjele Állapotváltozók Beavatkozó jelek A hbajelek alakulása zárt szabályozás körben.5 CD-n átadott fájlok térképe Lantos_7_6_6 CAS_Doc CAS_Doc_Lantos.doc, CAS_Doc_Lantos.pdf, M.doc, M.doc CAS_6p5 OptmModf, PrvateModf, SourceAndCompled, Standalone OrgCAS_6p5 SourceAndCompled, Standalone CAS_R6a SourceAndCompled, Standalone Standalone CAS6p5 funframecas.ee, Syspar_Fle.tt, bn, dataread.dll OrgCAS6p5 funframecas.ee, Syspar_Fle.tt, bn, dataread.dll CASR6a funframecas.ee, funframecas.ctf, Syspar_Fle.tt, funframecas_mcr mgnstaller6p5 mcenstallerr6a 7
3. Automatkus ütközésmentes pályatervezés algortmus Az automatkus pályatervezés központ problémája a gépjármű ütközést elkerülő rendszereknek Collson Avodance Systems, CAS. A megvalósított pályatervezés algortmus az elasztkus szalag elvén alapul Brandt & Sattel, 5. A módszer lehetővé tesz a pályatervezés során statkus akadályok például elől haladó járműről leeső teher és dnamkus akadályok például másk sávban szembejövő jármű kkerülését. A pályatervezés automatkus és valós dőben zajlk. A statkus és dnamkus akadályok paramétere a program bemenet adata, amelyek a SysparFle.tt kötött sztasú szövegfájlban adhatók meg. Ezek az nformácók rendszernt valós dejű képfeldolgozás eredménye, amellyel a rendszer a jövőben bővíthető. A pályatervezés algortmus a következő lépésekre bontható:. Induló elasztkus szalag generálása és terálása az erőegyensúly eléréség.. Pályatervezés az egyensúly akadályelkerülő elasztkus szalaghoz. 3. A pályához tartozó állapotváltozók kszámítása. 3. Induló elasztkus szalag generálása A kfejlesztett program a gyakorlat számára fontos sztuácóra, egy statkus akadály és egy szembejövő jármű esetére koncentrál. Ez a lépés a bemenet adatként szolgáló specfkácó statkus akadály elhelyezkedése és mérete az útpálya sávjaban, szembejövő dnamkus akadály kndulás helyzete, mérete és sebessége smeretében felvesz egy nduló elasztkus szalagot. A bemenet specfkácóban a pályatervezés kezdet t pllanatában az akadályelkerülést végző járműhöz relatívan kell megadn a statkus és dnamkus akadályok geometra adatat és a T szembejövő jármű sebességét. Az akadályelkerülést végző jármű, kndulás helyzetéhez tpkusan a saját sáv közepéhez relatívan kell meghatárzn az akadályelkerülés pályát. Meghatározásra kerül a pályatervezésre rendelkezésre álló becsült mamáls dő és az akadályelkerülést végző jármű becsült célhelyzete. A becsült célhelyzet és az akadályok helyzetének smeretében tsztán geometra szemlélet alapján történk az akadályelkerülés egy megengedett kndulás pályájának kválasztása és elasztkus szalaggal történő közelítése. Ennek során az akadályoktól és az úttest határatól való távolságtartásra, valamnt egyenesekből és körívekből felépülő pálya kválasztására kell törekedn. Az elasztkus szalag szekcónak darabszáma és a rugók kndulás hossza programkonstans, nagyságrendjük kb. 4 csomópont lletve m. 3. Az akadályelkerülő elasztkus szalag generálása Az elasztkus szalag elastc band egy rugókból láncszerűen összellesztett rendszer. A rugók potencál mezeje, az akadályok vrtuáls potencál mezeje és az útszegélyek vrtuáls potencál mezeje eredőjében a jármű pályája úgy lesz kválasztva, hogy a potencál mezőkből keletkező erőhatások egyensúlyban legyenek. A pályatervezés egy teraratív folyamat, mvel véletlenszerűen statkus akadály keletkezhet és jármű bukkanhat fel. A környezetben bekövetkező változások bendítják a pályatervezés folyamatot. 3.. Az elasztkus szalag struktúrája A jármű vehcle pllanatny helyzetében az v, yv koordnáta-rendszer orgójából r ndul az elasztkus szalag. A szalag darab rugóból áll, a rugók csatlakozás helye a csomópontok nodes, melyeket a jármű koordnáta-rendszerében r azonosít az -dk csomópont esetén. A rugószakasz rugóállandója k, a rugószakasz kezdet hossza, amelyek a pályatervezés számára megválaszthatók. Az erőegyensúly helyzet keresésekor mnden teratív lépésben meghatározásra kerül a csomópont t elérés deje s, amely a csomópontok között lneárs nterpolácón és a jármű megválasztható átlagos longtudnáls sebességén alapul. Ha az erőegyensúly helyzethez tartozó pálya az terácó során meghatározásra került, akkor a jármű l, 8
végghalad az elasztkus szalag csomópontjan az átlagos longtudnáls sebesség alapján számított dőpontok fgyelembevételével, a csomópontok között splne-technkával nterpolálva. Az elasztkus szalagot a következő nformácó jellemz: k, l L k, l,, r, t r, t r, t r, t r L, t 3. Az akadályokat bztonság körök modellezk, az O j akadály bztonság körének középpontja O j r, átmérője pedg, amelybe beleértendő az akadályt teljesen lefedő kör átmérője és a jármű szélessége s. d j 3.. Elasztkus szalag belső potencálja Az elasztkus szalag mnden r csomópontjához belső potencálként választható a rugószakasz potencáls energája ennek negatív gradense lesz a csomópontra ható erő: ahol V nt r r, r, r, y r, y k r r l, 3. r az eukldesz távolság. A teljes elasztkus szalag potenáls energája ezért 3..3 Az útszegélyek külső potencálja nt nt V V k r r l. 3.3 Az útszegélyek külső taszító potencálja csökkenjen logartmkusan az út középvonala felé haladva. Az útszegélyek legyenek folytonosak. Az útszegélyek mentén referenca pontokat választunk, amelyekbe mutassanak az az B r q j, q l, r vektorok, ahol az l nde a bal oldal left, r nde pedg a jobb oldal rght útszegély referenca pontjat különböztet meg. Az l r elasztkus szalag mnden r csomópontjához meghatározásra kerül egy-egy r és referenca pont az útszegélyeken tpkusan az csomóponthoz legközelebb, és az útszegély külső hatását az r csomópontra egyedül csak ezek fogják meghatározn. Az r csomópontra ható és az útszegélyektől származó erő legyen F. r B q Párhuzamos útszegély estén akadálymentes esetben elvárható, hogy az elasztkus szalag a jobb oldal sáv közepére legyen pozíconálva, ezért b széles utat és sávot egyet-egyet mndkét rányban feltételezve az Bl B r F F erőegyensúly matt k k B B l r.75b 3.5b aránynak kell teljesülne az útszegélyek rugóállandó között. A rogramban az útszegély potencálhoz tartozó erőt úgy választottuk meg, hogy akadálymentes esetben az nduló elasztkus szalagot a saját sáv közepére vsszapozconálja, továbbá hasonlóan hasson mnd a bal oldal, mnd pedg a jobb oldal sávhatáron: F Bq M B ep[ r r Bq k q B / Bq / σ ln M B Bq / m B B A programban alkalmazott választás M, m.5. σ B r r ] r r Bq Bq B B r 3.4. 3.5 9
3..4 Statkus akadályok külső potencálja A statkus akadályok statc obstacles külső potencálja alapvetően befolyásolja az erőegyensúlyhoz tartozó elasztkus szalag alakját, és így ndrekt módon a pályának vezető szempontból esztétkus voltát, például a pálya görbületét, a centrpetáls gyorsulást stb. Ennek bztosításához a statkus akadálytól távolodva csak lassan megszünő taszító hatást kell kfejtene az akadálynak, amely az eredet eponencáls lecsengéssel nem bztosítható, ezért a programban a statkus akadályhoz tartozó erőt a következőnek választottuk: F O j j j O j d / r r k 3.6 O j O j r r r r O A programban alkalmazott választás j O j k 3, a statkus akadály átmérőjét d jelöl. 3..5 Mozgó akadályok külső potencálja O A mozgó O akadály movng obstacle potencálfüggvénye hasson mnden csomópontra nem j csak a hozzá közel lévőre. A potencálfüggvény kértékelésekor fgyelembe kell venn, hogy az elasztkus szalag csomópontja az r pontban a t dőpontban lesz, ezért az ehhez az dőponthoz tartozó r j t akadályhelyzetet meg kell határozn. Ehhez szükség van az akadály mozgását jellemző kezdet O r j t akadályhelyzetre és O v j O t O feltételezett akadály sebességre, amelyekből lneárs etrapolácóval számítható k r j t. Az O akadály által az elasztkus szalag csomópontjára ható erő a programban a mozgó akadály hatását az aktuáls környezetére korlátozza: F O j j j O O d j r r t j j k ep r r t O. 3.7 j r r t O O 3..6 Az egyensúly helyzet meghatározása Legyen a mozgó és álló akadályok száma M. Az elasztkus szalag mnden egyes csomópontjára ható erőnek egyensúlyban kell lenn: F M sum nt Bl Br F F F j Az egyensúlynak mnden csomópontra szmultán kell fennállna. Legyen ezért F O j. 3.8 T T T T sum T sum T sum T r, r,, r és f F, F,, F T, 3.9 K K akkor a feladat az f nemlneárs egyenletrendszer megoldása.
3.. ábra. Az elasztkus szalag kndulás helyzete 3. ábra. Az elasztkus szalag egyensúly helyzete.
Az egyensúly helyzet meghatározására az fsolve függvényt használtuk, amely az Optmzaton Toolbo része.. Jelentős gyorsítást skerült elérn a futás dő tekntetében azáltal, hogy a függvény mellett a függvény derváltját Jacob-mátrát s átadtuk fsolve-nak, és a függvény és derváltja számítását vektorzáltuk. Az akadálymentes pálya tervezésében résztvevő saját fejlesztésű fontosabb MATLAB függvények függvény prototípus és soros comment a help-hez: functon ntband Intate elastc band functon [fout,jout]bandterrn Compute forces, Jacoban and new nodes for elastc band Az fsolve-nak átadott függvény bandter, amelynek bemenete az aktuáls elasztkus szalag az terácó során, kmenete pedg a függvény értéke és Jacob-mátra. Az akadálymentes pályatervezés eredményét egy tpkus esetben mutatjuk be 4 csomópont, egy.5m átmérőjű statkus és egy 3.5m átmérőjű mozgó akadály, az utóbb sebessége 5m/s, a saját jármű átlagos sebessége m/s. A kndulás helyzetet a 3.. ábra, a megtalált egyensúly helyzetet a 3. ábra mutatja. 3.3 Referenca jel tervezés az rányításokhoz Az elasztkus szalag egyensúly helyzete az akadályelkerülő pálya absztrakt formája, amelyet azonban az rányításokhoz referenca jel dőfüggvényekké kell konvertáln. Célszerű ezen kívül még a mozgás tovább knematka jellemzőt a pálya dő szernt magasabb derváltjat s meghatározn, mvel ezek jelentősen támogatn tudják a rendszertechnka vzsgálatokat. A kfejlesztett programban az elasztkus szalag által generált pályához a saját jármű névleges sebességének fgyelembevételével a MATLAB splne-szolgáltatásaval splne, ppval, unmkpp, mkpp meghatározzuk a pályához tartozó knematka jellemzőket és az dőparaméter elosztását, melyek az rányítások számára referenca jelként fognak szolgáln. Az elasztkus szalag csomópontjat először polgonnal törött vonallal appromáljuk, amely egy, y adatsorozat, majd a saját jármű átlagos sebességének felhasználásával meghatározzuk a csomópontokhoz tartozó t,, t, y adatsorozatokat. Ezután a MATLAB splne technkájának bevonásával a csomópontok között harmadfokú polnomokkal appromálunk, am lehetővé tesz a derváltak számítását a harmadk derválttal bezárólag. Mvel azonban ez utóbb már szakaszonként konstans, am a dnamkus tulajdonságok matt kedvezőtlen, ezért ennek smítására az első derváltat smét appromáljuk harmadfokú polnommal, am sma harmadk derváltat eredményez. Az eredményeket a splne-technka alkalmazása után a 3.3-3.4. ábrák mutatják. Ezekből a jelekből nulla oldalcsúszás szöget feltételezve számítjuk a pályament sebesség v abszolút értékét és dv első derváltját, valamnt a kappa pályament görbületet. Az eredményeket a 3.5-3.6.ábrák mutatják, bemutatván a másodk appromácó smító hatását s. A splne-technával kapott sma pályát szntén a 3.6. ábra tartalmazza. Az orentácót és magasabbrendű derváltjat, az és y jelek magasabbrendű derváltjat, valamnt az t és yt referenca jeleket alapjel dőfüggvényeket rendre a 3.7-3.. ábrák mutatják be. Itt és mnden tovább esetben a jeleket SI egységben kell érten pl. s, m, m/s, rad, rad/s stb..
3.3. ábra. Az t jel és derváltja 3.4. ábra. Az yt jel és derváltja 3
3.5. ábra. A pályament sebesség és derváltja. 3.6. ábra. A pályament görbület és a pálya. 4
3.7. ábra. Az orentácó és derváltja. 3.8. ábra. Az jel másodk derváltja. 5
3.9. ábra. Az jel harmadk derváltja. 3.. ábra. Az y jel másodk derváltja. 6
3.. ábra. Az y jel harmadk derváltja. 3.. ábra. Az rányítások t és yt alapjele. 7
A MATLAB standard splne, ppval, unmkpp, mkpp splne-technkájára épülő saját fejlesztésű fontosabb MATLAB függvények függvény prototípus és soros comment a help-hez a következők: functon [vy,vdy,vdy,vd3y,spp]derv3,y, 3rd order dervatve functon [s_kn,spp,sppy]knematcst Fnd reference states and controls for CAS A derváltak segítségével a knematka mennységeket a referenca mozgásban jogosan nulla oldalcsúszás szöget feltételezve az alább összefüggések alapján számítjuk a knematcs függvényben: v & y& / & && y& && y v& & y& ψ arctan y& / & / && y & y& && ψ& & y& & && y& && y && ψ & y& & && y y& && κ 3/ & y& &&& y & y&&&& & y& 3. A 3.8-3.. ábrákon az -re lletve yy-ra végződő jelek már a később szabályozásokkal kapott válaszjelek, amelyek alapján ellenőrzhető, mennyre tudta megközelíten a dfferencálgeometra elvekre épülő szabályozás a referenca knematka mennységeket. 8
4. Jármű dnamkus modellje és Le-algebra tulajdonsága A jármű dnamkus modelljében az első kerekekre front wheels F betűvel, a hátsó kerekre rear wheels R betűvel hvatkozunk. A dnamkus modell alapjat a Lantos: Algortmusok gépjármű ütközésmentes pályatervezésére és pályakövetésére c. tanulmányban már összefoglaltuk 6. márcusában, tt csak a programfejlesztés során alkalmazott módosításokat foglaljuk össze. A jármű dnamkus modelljében, felhasználva Freund and Mayr, 997 ötletét, az oldalcsúszás szög és a kormányzás szög trgonometrkus függvényet elsőfokú Taylorpolnomokkal appromáljuk, de a több változóban megőrzzük a nemlneárs összefüggéseket. Ezen kívül bemenő jelnek nem a longtudnáls gyorsító erőt és a kormányzás szöget tekntjük, hanem a longtudnáls gyorsító erőt és az első kerékre ható oldalrányú származtatott erőt, amely utóbbból a kormányzás szög számítható. Vezessük be a következő tovább jelöléseket az első Sv és hátsó Sh oldalrányú erőkre: S ullának vesszük az első kereket meghajtó erőt. A rendszer bemenetének tekntjük az állapotvektornak az h lrψ& lfψ& cr β, Sv cf w β 4. v v G G β, ψ, ψ&, v, X, Y FlF G és nemnullának a hátsó kereket meghajtó T u, u u S, F T vektort. v lr T FlR bemenő jel vektort, és Két nemlneárs modellt különböztetünk meg, az elsőben nem alkalmazzuk a Taylor-sorfejtést precíz nemlneárs modell, a másodkban alkalmazzuk a Taylor-sorfejtést appromált nemlneárs modell. Mndkét modell nemlneárs, de az appromált nemlneárs modellnek az az előnye, hogy dfferencálalgebra Le-algebra értelemben létezk a MIMO nemlneárs relatív fokszáma, ezért kmenet vsszacsatolással lnearzálható. A T légellenálást az rányítások során nem vesszük fgyelembe. 4. A pontos nemlneárs járműmodell & β ψ& m v ψ& ψ& && ψ v& G c X& v Y& v { l I zz { F m c G G F v R W F lf v F { F lfψ& β cos v lf G sn cos lrψ& β sn β } v G cos ψ β sn ψ β lf W sn G W l W F β F β F c W F lr β c W lr T sn β R lfψ& β cos v T cos β c lrψ& β cos β } v G F G W W l R c R lrψ& β } v lfψ& β sn v G G W β 4. A vzsgálatok során az FlF és T választással éltünk. Az állapotegyenlet jobb oldalát számító függvény prototípus alakja és egysoros commentje a helphez a következő: 9
functon dotprecfundott,,f_lr,deltaw Compute rght sde of vehcle dynamc model 4. Appromált nemlneárs járműmodell Az jelek kvételével Taylor-sorfejtéssel a következő appromált lneárs modellhez jutunk: X,Y / / / / sn cos / / / 6 5 4 4 4 4 3 4 3 C y u B A F S m I l m m m T I l S m S T lr v v zz F v v v zz R h v h & 4.3 A vzsgálatok során az és lf F T választással éltünk. Az állapotegyenlet jobb oldalát számító függvény prototípus alakja és egysoros commentje a helphez a következő: functon dotapprfundott,,f_lr,deltaw Compute rght sde of appromated vehcle dynamc model 4.3 Az appromált modell Le-algebra tulajdonsága Az appromált nemlneárs dnamkus modellre elvégezve az n j B C j d C C A C C T k A A k A k A,,,, : mn, K 4.4 számításokat és bevezetve a sn, cos S C jelölést kapjuk, hogy ] [,, ] [,, 4 6 4 5 h v A A A h v A A A S C S C T m C S C C S S C S T m C C C C Az appromált nemlneárs rendszer dfferencáls rendje d d, továbbá teljesül ] [ ] [ h v h v d A d A S C S C T m S S C S T m C C C
v v v v m S C m C m C S m S S és det m v S 4.5 S C C S S C m S v 4 6 4 5 S C C C C C M A A A A α α α α α α α α Ezért a nemlneárs rendszerek Le-algebrán alapuló eredménye szernt válaszható { } M w C S u Λ 4.6 ahol, λ λ λ dag. Vezessük be a következő jelöléseket: 4 6 4 5 S w y C w y α α λ α α λ 4.7 akkor átalakítások után kapjuk, hogy a zárt rendszerre teljesül: 4 6 4 5 4 4 4 4 4 4 / ] [ ] [ y y w S w y y y y w C w y y y S y C y C y S S C y S y C y m y S y C T u m y C S y S C S u v v h & && & && & & & & & & && & & α α λ α α λ α α λ α α λ 4.8 4.4 emlneárs kmenet vsszacsatoláson alapuló rányítás Választható λ λ λ :, λ α α : és λ α α, amellyel két szétcsatolt aperodkus határesetű másodrendű rendszerhez jutunk, amelynek karaktersztkus egyenlete. λ λs s w y y y λ α α & & & 4.9 Választható ezért : a a a w w w w & & & α λ, amely után a két szétcsatolt rendszer ] [ a a a a a a y w y w y w w w w y y y λ α α λ λ λ α & & && && && & & && 4. alakú stabl rendszer lesz, ahol a referenca jelek szerepét betöltő t X w a a és a megtervezett ütközést elkerülő pályák. t Y w a a
A dfferencálgeometra elven alapuló rányításhoz szükség van a pálya első és másodk derváltjára s, amelyet splne-technkával korábban már megterveztünk. Vegyük észre, hogy az S v rányítás és az állapotváltozók vagy a becsült állapotváltozók smeretében a valód rányítás, vagys a w kormányzás szög meghatározható: S l ψ& v F w β 4. cf vg A dfferencálgeometra elvekre épülő szabályozó kmenetét számító függvény prototípus alakja és egysoros commentje a helphez a következő: functon [dot,f_lr,deltaw,sv]dg_controllert, Compute control for 'dffgeom'
5. A nemlneárs predktív rányítás algortmus A nemlneárs modellalapú predktív rányítás egy lehetséges megvalósítása a mozgó horzontú rányítás RHC, Recedng Horzon Control, amely mnden horzont kezdetén lnearzálja a nemlneárs rendszert, és az így keletkező lneárs dőnvaráns LTI, vagy lneárs dőben változó LTV rendszert optmalzálja. Az optmalzálás feladat egy költségfüggvény mnmalzálása felnytott körben a rendszer jövőbel vselkedésének jóslására alapozva predkcó. Meghatározásra kerül az optmáls beavatkozó jel control sorozat a horzonton belül, és kadásra kerül a sorozat első eleme aktuáls beavatkozó jelként zárt körben. Ez a lépés cklkusan smétlődk az új horzontra, amely az előzőnek T mntavétel dővel való eltolásával keletkezk. ytott kérdés a zárt nemlneárs rendszer stabltása, amelyre jó hatással van a horzont szélességének növelése a horzont szélessége dőben mérve T. Ha a nemlneárs dnamkus modellt használnánk a predkcóra, akkor egy nemlneárs optmzálás feladat keletkezne, amelynek valós dejű megoldása gyors rendszerek esetén dőkrtkus. Ezért a nemlneárs modell lnearzálását választottuk az előírt nomnáls trajektóra mentén mnden horzont kezdetén, amelyet követ a perturbácós hatás optmalzálása a horzonton belül kvadratkus krtérum szernt és analtkusan kezelhető végfeltétel mellett. Komoly problémát jelent azonban, hogy a jármű alulaktuált, azaz nagyobb a szabadságfoka, mnt a beavatkozó jelek száma, következésképp nem mnden nomnáls pályához létezk azt pontosan megvalósító nomnáls rányítás. Ezért a megtervezett CAS akadályelkerülő pályához sem határozható meg egyszerű numerkus technkával a megfelelő appromácót bztosító nomnáls beavatkozó jel sorozat. Legfeljebb egy appromáló rányítást tételezhetünk fel, amelynek hatására a mozgás a nomnáls pálya közelében halad. 5. Választható alternatívák Két lehetőség kínálkozk: LTI rendszer választása, amelyhez csak, u szükséges, nem pedg a teljes ut dőfüggvény a horzonton belül. LTV rendszer generálása a később smertetendő algortmus szernt. Ehhez abból ndulhatunk k, hogy ha a hba a horzonton belül kcs, akkor a horzonton belül optmáls beavatkozó jel sorozat a megtervezett nomnáls CAS pályához szükséges beavatkozó jel sorozat egy jó appromácójának teknthető. Ezért lnearzáljuk a rendszert az előző horzonton belül kapott optmáls t, u t mentén az új horzont kezdetén, és optmalzáljuk az ekörül perturbácót az új horzonton belül. Vegyük azonban észre, hogy az előző horzonton belül optmáls beavatkozó jel sorozat balra tolása matt az új u a horzont végén hányzk, ezért ennek számítását s k kell dolgozn. A programban mndkét eset kválasztható. A továbbakban az egyszerűség kedvéért nomnálsnak nevezzük az előző horzontban keletkezett optmáls, majd eltolt és kegészített beavatkozó jel sorozatot, és ezzel szemben a kívánt desred beavatkozó jel sorozat az lesz, amely az LTV lnearzált rendszer körül perturbácók hatását mnmalzálja. A módszer természetesen LTI rendszer esetére s alkalmazható, mvel az egyszerűbben képezhető LTI appromácó predktív rányítás szempontból az LTV rendszer rányítása specáls esetének teknthető. 5. A megvalósított predktív rányítás elmélet alapja Jelölje {,, K, } és { u, u, K, u } a nomnáls állapot és bemenő beavatkozó jel sorozatot a horzonton belül, legyen továbbá ˆ a becsült állapot a horzont kezdetén és y C, y C, K, y C } az állapot sorozathoz tartozó kmenő jel sorozat. Legyen { { yd, yd, K, yd } a megkívánt desred kmenő jel sorozat és jelölje az ehhez képest hba jel sorozatot { e yd y, e yd y, K, e yd y }. A nomnáls bemenő jel sorozat lehet a dfferencálgeometra elvű algortmus DGA szernt számított rányítás a legelső horzont esetén, vagy a továbbakban az előző optmáls bemenő jel sorozat eggyel eltolva és egy új elemmel kegészítve, amely pl. egy végfeltételből számítható vagy az utolsó bemenő jel egyszerű megsmétlése lásd később az. lépést az algortmusban. 3
A nemlneárs dnamkus modell lnearzálható a nomnáls állapot és bemenő jel sorozatok mentén, és teknthetők a keletkező lneárs dőben változó LTV rendszer körül ˆ,,, K,,, u u K perturbácók. A lnearzálás történhet a pontos és az apprmált nput affn nemlneárs modell körül. A perturbácókat a u B A LTV rendszer írja le. A kmenet hbasorozat d y e C y, a költségfüggvény pedg választható egy kvadratkus függvénynek, amely büntet a kmenet hbákat és anévleges rányítástól való nagy eltéréseket: J u y e J λ 5. Az állapot és kmenő jel perturbácók a következőképp számíthatók: A A A A A A A A A L L M M B B A B A A A B A B B A A A B A B A B B L L L L L L O L M L L u u u u M 5. A A CA A A CA A CA CA y y y y L L M M CB B CA A B CA CB A B CA CB CA B CB L L L L L L O M M L L u u u u M 5.3 vagy tömör alakban 5.4 U H P y U H P y y y M ahol [ ] [ ] r m T n m T r m T T n m T T h H p P h h H p p P,,, M M és. y m u r n dm, dm, dm Az optmalzálás probléma végfeltétellel a következő alakú: mn U H P e y e u y e J λ 5.5 A 5.4 jelölésekkel a költségfüggvény részletes alakja: 4
> > < <,, e p e e J > < > <,, p p U e h T.,,, > < > < > < U U U U h h U p h T T λ 5.6 Mvel a költségfüggvény konve és a korlátozás lneárs, ezért az optmum szükséges és elégséges feltétele a Lagrange multplkátor szabály. Jelölje a µ vektor a Lagrange multplkátorokat, akkor > > < > < < U H P e J L T T µ µ µ,,, µ λ µ λ T T T T T T H U I H H P H m H U U h h p h e h U d dl 5.7 ahol h e m. A következő jelölésekkel az eredmények egyszerűbb alakban írhatók fel: 5.8 T T H L H L I H H L :, : µ λ Ekkor 5.7 és a végfeltétel korlátozás fgyelembevételével: ] [ ] [ P H L H P m L H e L P H H m L H P e P H H m L U T T T T T µ µ µ µ és ezért } ] [ { P H L H P L H P H m L H L H I e L H L U T T T T T µ µ µ 5.9 A beavatkozó jel zárt körben u u ahol a nomnáls rányítás a horzont kezdetén és a felnytott körben optmáls u r u R U sorozat első eleme. 5.3 A megvalósított predktív rányítás algortmus: Mnden horzontban a következő lépések smétlődnek:. lépés. Az kezdet állapotból és az nomnáls bemenő jel sorozatból meghatározásra kerül az nomnáls állapot sorozat a jármű appromált nemlneárs dnamkus modellje alapján. Itt az eltolt előző horzontból jön, és eltérhet a becsült kezdet állapottól az állapotbecslés bellesztése után. },,, { u u u K },,, { K ˆ Az előírt desred állapot sorozat a megtervezett CAS akadályelkerülő pályából számítható nulla β oldalrányú elcsúszás szög slde slp angle esetén. A kmenő jel, ezért a kívánt desred kmenő jel sorozat kszámítható a kívánt desred állapot sorozatból a horzontban a mátr segítségével, ahol kvételesen az -edk standard egységvektort jelöl. A hbajel sorozat ezek különbsége. A T Y X y, T e e C ] [ 6 5 e legelső horzont esetén a nomnáls bemenő jel sorozat a DGA 5