Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék
Lendvai Dániel
KERÉKAGYMOTOROS MODELLAUTÓ IRÁNYÍTÁSI ALGORITMUSAI Magasszintű pályakövető szabályozás tervezése
KONZULENS (MTA SZTAKI)
Dr. Rödönyi Gábor 1 (BME IIT) KONZULENS
Dr. Harmati István BUDAPEST, 2016
Tartalomjegyzék 1 Bevezetés ....................................................................................................................... 4 2 Megvalósított feladatok ............................................................................................... 5 2.1 Szimulációs modellek készítése.............................................................................. 5 2.1.1 Modellautó nemlineáris modelljének implementálása Simulinkben ............... 5 2.1.2 A nemlineáris modell linearizálása, a lineáris modell implementálása Matlab scriptben .................................................................................................................. 12 2.2 Irodalomkutatás a modell-prediktív irányítások témakörében ..................... 14 2.2.1 MPC története röviden ................................................................................... 14 2.2.2 MPC főbb alkalmazási területei ..................................................................... 14 2.2.3 MPC működési elve röviden.......................................................................... 15 2.2.4 Hagyományos szabályzás és MPC összehasonlítása ..................................... 16 2.2.5 MPC használatának előnyei és hátrányai....................................................... 17 2.2.6 Explicit MPC ................................................................................................. 18 2.3 Explicit MPC szabályzó tervezése MATLAB-ban ........................................... 19 2.3.1 Referenciakövető pozíciószabályozás (gyorsulás referenciajellel) ............... 19 2.3.2 Referenciakövető pozíciószabályozás (pozíció referenciajellel) ................... 23 3 Összegzés..................................................................................................................... 28 4 Irodalomjegyzék, források ........................................................................................ 29
2
HALLGATÓI NYILATKOZAT Alulírott Lendvai Dániel, hallgató kijelentem, hogy ezt az írásbeli beszámolót meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat (szakirodalom, eszközök stb.) használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen, a forrás megadásával megjelöltem. Hozzájárulok, hogy a jelen munkám alapadatait (szerző(k), cím, angol és magyar nyelvű tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan hozzáférhető elektronikus formában, a munka teljes szövegét pedig az egyetem belső hálózatán keresztül (vagy hitelesített felhasználók számára) közzétegye. Kijelentem, hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után válik hozzáférhetővé. Kelt: Budapest, 2016. 05. 25.
...……………………………………………. Lendvai Dániel
3
1 Bevezetés A Magyar Tudományos Akadémia Számítástechnikai és Automatizálási Kutatóintézetében egy kerékagymotoros modellautót vizsgáló projekt van folyamatban, ehhez kapcsolódóan kaptam feladatokat az önálló laboratórium tantárgy során. A projekt hosszú távú célja szabályzási algoritmusok készítése. Az autó négy kerekét egy-egy kefenélküli egyenáramú motor hajtja. Az ilyen motorokban a fordulatszám egyenesen arányos a feszültséggel, a nyomaték pedig az áramerősséggel. Az első kerekek kormányozhatók egy szervomotor segítségével. A teljesítményelektronika és a kerekek meghajtásáért felelős elektronika, a hajtáshoz tartozó alacsonyszintű szabályozás és a kormányzás már implementálva van. Ezen kívül készült már longitudinális és laterális szabályozás is az autóhoz. A félév során az én feladatom a modell prediktív szabályozás elméletének tanulmányozása, és a modellautót irányító, ezen az elven működő szabályozó algoritmus tervezése volt.
4
2 Megvalósított feladatok 2.1 Szimulációs modellek készítése 2.1.1 Modellautó
nemlineáris
modelljének
implementálása
Simulinkben A feladatom a laterális modell, valamint a kerék tapadási modell MATLAB Simulinkben való elkészítése volt. Ezek később felhasználhatók a szabályzótervezéshez. Magát a modellezést nem én végeztem el, én a következő irodalmakban található modelleket implementáltam Simulinkben: [1], [2], [3], [4] A modellezés során az autó alvázát merev testnek feltételezzük. A felfüggesztés hatását nem vizsgáljuk, mintha a kerekek mereven kapcsolódnának az autó testéhez. A talaj dőlésével nem foglalkozunk, teljesen vízszintes utat feltételezünk. A légellenállást elhanyagoljuk vizsgálatunk során.
1.
Koordináta rendszerek
A modellek megalkotásához két koordinátarendszert használunk. Az egyik a jármű tömegközéppontjához rögzített koordinátarendszer. Ennek x-tengelye az autó 5
longitudinális haladásának irányába mutat, az y-tengely pedig derékszöget zár be az xtengellyel. A másik koordinátarendszer pedig az autó egyes kerekeihez rögzített koordinátarendszer. Ebben a koordinátarendszerben az x-tengely a kerék síkjával párhuzamos, az y-tengely pedig erre merőleges. 2.1.1.1 Laterális modell
2.
A jármű középpontjához rögzített koordinátarendszer
Az autó tömegközéppontjának, valamint a külső erőhatások támadáspontjának helyét állandónak feltételezzük. A függőleges z-tengely körüli tehetetlenségi nyomaték is konstans értékű vizsgálatunk során. A modell bemenete a longitudinális sebessége, a
kormányzási szög. A modell állapotváltozói az autó
side-slip angle (a kerék iránya és az autó haladási iránya
közti szög), és az r legyezési szögsebesség (yaw rate). Ez utóbbi állapotváltozót tekintjük a laterális modell kimenetének.
6
Az autó laterális dinamikáját a következő egyenletek írják le:
Az egyenletek bal oldalán a mozgást leíró változók állnak, a jobb oldalon pedig az autóra ható különféle erőhatások. Az egyenletekben szereplő erők értéke a következő képletek segítségével határozható meg:
Mivel vízszintes utat feltételezünk, ezért fxR=0 és fyR=0.
A laterális modellben használt változók, és mértékegységük: v: :
a jármű longitudinális sebessége a jármű oldalcsúszása (side-slip angle) [rad]
r:
legyezési szögsebesség
:
kormányzási szög [rad]
lf:
az első tengely és a tömegközéppont távolsága [m]
lr:
a hátsó tengely és a tömegközéppont távolsága [m]
lw:
futómű nyomtáv [m]
m:
a jármű tömege [kg]
fx:
a jármű testére ható longitudinális irányú erő [N] 7
fy:
a jármű testére ható laterális irányú erő [N]
Fxij:
a jármű egyes kerekeire ható longitudinális irányú erő [N]
Fyij:
a jármű egyes kerekeire ható laterális irányú erő [N]
mz:
a járműre ható z-tengely körüli nyomaték [Nm]
Jz:
a jármű z-tengel körüli tehetetlenségi nyomatéka [kgm]
2.1.1.2 Kerékmodell
3.
Kerékmodell paraméterei
A kerekek tapadását leíró modell három fő részből áll. 1.Kerék haladó mozgása Bemenetként a laterális modell állapotváltozóit (v, ,r) használjuk fel, ezekből számítjuk ki a kerék középpontjának haladási sebességét, valamint a kerék csúszási szögét (α). A haladási sebesség (vw) egy kétdimenziós vektor, x- és y-irányú komponensekből tevődik össze. A számítások menetét az alábbi egyenletek írják le:
8
2. Kerék forgó mozgása
3.Tapadási erő
4.
Tapadási modell paraméterei
A gumi és az út közötti tapadási erő a Burckhardt-féle empirikus és statikus, nemlineáris tapadási modell alapján számítható ki. C(λ,α) a kanyarodási merevséget jelöli. 9
Az alábbi egyenletek írhatók fel:
A kerékmodellben használt változók, és mértékegységük: reff:
kerekek effektív sugara [m]
Jw:
kerekek tehetetlensége [Nm/(rad/s2)]
p0:
féknyomás küszöbérték [bar]
cbrc:
break transmission factor (áteresztőképesség) [Nm/bar]
c1,c2,c3:
súrlódási
együtthatók
(a
modellezésnél
megfelelő együtthatókat választottam)
10
száraz
aszfaltnak
A fent részletezett matematikai modellek alapján elkészített Simulink-modell blokkdiagramja:
5.
6.
Nemlineáris modell blokkdiagramja
Laterális modell blokkdiagramja
11
7.
2.1.2 A
nemlineáris
Kerék modell blokkdiagramja
modell
linearizálása,
a
lineáris
modell
implementálása Matlab scriptben Az alábbi irodalomban leírt matematikai modellt valósítottam meg: [5] A modell nemlinearitását a trigonometrikus függvények, valamint az Fyi(α) nemlineáris függése okozza. A trigonometrikus függvényeket a
=0 körüli és
=0
körüli első fokú Taylor-polinomokkal közelítjük. A nemlineáris modell linearizálásához az alábbi közelítéseket alkalmazhatjuk: sin( ) = cos( )=1
12
Az egyszerűsítések után az alábbi állapotváltozós leírás adódik:
A lineáris modellt megvalósító MATLAB scriptben a fenti egyenletekben látható konstansokat, és mátrixokat valósítottam meg, ezekből a mátrixokból pedig state-space modellt készítettem.
13
2.2 Irodalomkutatás
a
modell-prediktív
irányítások
témakörében 2.2.1 MPC története röviden Az alábbi irodalmakat és forrásokat tanulmányoztam: [6], [7], [8] Az MPC irányítás elődjének és kiindulópontjának az 1960-as években, Rudolf Kalman által kifejlesztett LQR (Linear Quadratic Regulator) szabályzás tekinthető. Ez a szabályozási módszer az állapotok és a bemenetek kvadratikus célfüggvényének korlátozások nélküli minimalizálásán alapul. A bemenetek, állapotok és kimenetek pontos korlátozására nem ad lehetőséget. Legfőbb előnye a végtelen horizont alkalmazásának köszönhető stabilitása. Azonban a korlátozások hiánya, és a valós rendszerek nemlinearitása miatt alkalmazása nem terjedt el az ipari gyakorlatban. Először az 1970-es évek végén alkalmaztak az iparban MPC-ket. Ezek a megoldások nem feltétlenül eredményeztek stabil rendszert. A szakasz modellezésére impulzusválaszt, később ugrásválaszt alkalmaztak. Csak stabil rendszereket tudtak ilyen módon irányítani, szabályozni. A második generációs MPC-k az 1980-as évek végén jelentek meg. Ezek kvadratikus programozással határozták meg az optimális szabályzó jelet, lineáris modellt, kvadratikus költségfüggvényt, és lineáris korlátozó feltételeket használtak. Eleinte elsősorban folyamatirányításra használták az MPC-ket, napjainkban azonban már számos egyéb területen is alkalmazzák ezt a módszert.
2.2.2 MPC főbb alkalmazási területei A felhasznált források: [6], [7], [8] A
modell
prediktív
szabályozást
irányítástechnikában. 14
széles
körben
alkalmazzák
az
Néhány példa a sok közül:
Ipari folyamatszabályozás o vegyi üzemek o olajfinomítók Elektromechanikus rendszerek irányítása o szélturbina irányítása o távirányítású kisautók autonóm versenye Teljesítményelektronika o áramátalakító (DC-DC konverter) o háromfázisú inverter áramszabályozása o szünetmentes tápegység feszültségszabályozása Autóipar o elektronikus szelepszabályozás o kipörgésgátló o ACC(Adaptive Cruise Control) - tempomat További potenciális autóipari alkalmazások o jármű stabilitás szabályozás o aktív felfüggesztés o alapjárati fordulatszám szabályozás o autonóm jármű pályakövetése
2.2.3 MPC működési elve röviden A téma kutatása során tanulmányozott források: [9], [10], [11] A modell prediktív szabályzó a szabályozott szakasz dinamikus modelljét használja fel. Ez általában állapotteres leírás formájában van megadva, diszkrét időben. A modell jövőbeli kimeneteit a múltbeli be- és kimenetek, valamint a jövőbeli bemenetek alapján becsli meg. A modell állapotaira, bemeneteire és kimeneteire korlátozó feltételeket adhatunk meg. Ezek a korlátozások lehetnek fizikai korlátozások (pl. aktuátor jele), performancia korlátozások (pl. túllövés), vagy biztonsági korlátozások (pl. sebesség,hőmérséklet, nyomás). A szabályzás célja általában az, hogy az állapotok vagy a kimenetek egy referencia trajektóriát kövessenek. Az irányítás során minden mintavételi időpontban meghatározzuk a beavatkozó jel olyan optimális sorozatát, amely a célfüggvény minimumát biztosítja. Az aktuális irányításhoz csak a sorozat első értékét használjuk fel, ez lesz az adott időpillanatban a szabályzó által kiadott vezérlőjel. Ezt követően egy lépéssel előre léptetjük a horizontot és a következő lépésben erre határozzuk meg az optimális vezérlőjel sorozatot. 15
A véges horizont alkalmazása miatt nincs lehetőség a zárt kör paramétereinek pontos beállítására, ezért a szabályzó megfelelő működését a
célfüggvény
paramétereinek (súlyok, horizont hossza) hangolásával érhetjük el.
2.2.4 Hagyományos szabályzás és MPC összehasonlítása A felhasznált források: [10]
8.
9.
Hagyományos szabályzó blokkdiagramja
Hagyományos szabályzó ugrásválasza
A hagyományos szabályzási módszerek elsősorban a külső zavarok, zajok és modell bizonytalanságok hatását kompenzálják, a korlátozásokat nem veszik figyelembe a tervezéskor. Az alapjel általában kellően távol van a korlátozásoktól, a szakasz működése szuboptimális. A szabályzó tervezése frekvenciatartományban történik.
16
10. MPC szabályzó blokkdiagramja
11. MPC szabályzó ugrásválasza
Ezzel szemben az MPC szabályzó tervezésénél a korlátozásokat is figyelembe vesszük, optimális alapjelet használunk (közel a korláthoz), a szakasz működése optimális. A tervezés időtartományban történik
2.2.5 MPC használatának előnyei és hátrányai Felhasznált források: [6], [7], [8], [10] Előnyök:
prediktív módszer, a rendszer jövőbeli viselkedését is figyelembe veszi sokféle szakaszmodellel leírható folyamat irányítására is alkalmazható lehetőség van korlátozó feltételek alkalmazására viszonylag rövid fejlesztési idő jó fenntarthatóság, a modell vagy a specifikáció kismértékű megváltozása nem igényel teljes újratervezést megközelítőleg optimális szabályozást eredményez Hátrányok:
az online optimalizálás rendkívül számításigényes stabilitás nem garantált
optimalizálási probléma megoldhatósága nem garantált
17
2.2.6 Explicit MPC Felhasznált források: [10], [11] Az online-MPC működése során minden mintavételi időpontban meg kell oldani egy optimalizálási problémát, és ez rendkívül számításigényes. Ezzel szemben az explicit MPC offline számítja ki az optimális kontrol inputot az állapottér minden lehetséges értékére, és az online működés során ezt az affin függvényt használja fel az optimális beavatkozójel meghatározásához. Különféle keresőalgoritmusok segítségével minden mintavételi időpillanatban megkeresi az aktuális állapotokhoz tartozó – már korábban offline kiszámított – szabályzó jelet. Az explicit MPC multiparametrikus kvadratikus programozási feladatot (mpQP) old meg.
18
2.3 Explicit MPC szabályzó tervezése MATLAB-ban 2.3.1 Referenciakövető pozíciószabályozás (gyorsulás referenciajellel) 2.3.1.1 Feladat A longitudinális mozgást szeretnénk szabályozni, a szakasz egy egyszerű egytárolós tag. A szakasz három állapotváltozója a gyorsulás, a sebesség és a pozíció. A szakasz bemenete a gyorsulás hibajel. A szakasz kimenete a pozíció. A szabályzás célja, hogy mind a három állapotváltozó a megfelelő referenciajelet kövesse. A referenciajel egy gyorsulásjel, melynek integrálásával előáll a sebességhez és a pozícióhoz tartozó referenciajel is. Ezen kívül korlátozó feltételeket adunk meg az állapotváltozókra, valamint a beavatkozó jelre. 2.3.1.2 Zárt kör blokkdiagramja:
19
2.3.1.3 MATLAB forráskód: Paraméterek megadása: Tau=0.7;g=1;Ts=0.01;
Állapottér mátrixainak megadása folytonos időben: A=[-1/Tau 0 0;1 0 0;0 1 0]; B=[g/Tau;0;0]; C=[0 0 1]; D=0;
Áttérés diszkrét időbe: [a, b, c, d]= ssdata(c2d(ss(A,B,C,D),Ts,'zoh'));
A predikciós modell objektum létrehozása: model = LTISystem('A',a,'B',b,'C',c,'D',d,'Ts',Ts);
Az állapotokra megadott korlátozások: model.x.min=[-2;-5;-4]; model.x.max=[2;5;4];
A bemenetre megadott korlátozások: model.u.min=-5; model.u.max=5;
Időben változó referenciajel használatának megadása: model.x.with('reference'); model.x.reference= 'free';
Kvadratikus büntetések megadása: model.x.penalty = QuadFunction(diag([1;1;1])); model.u.penalty = QuadFunction(0.01);
Terminális büntetés megadása: PN = model.LQRPenalty; model.x.with('terminalPenalty'); model.x.terminalPenalty = PN;
On-Line MPC szabályzó objektum létrehozása, N=4 predikciós horizonttal: ctrl = MPCController(model,4);
Explicit MPC szabályzó objektum létrehozása: ectrl=ctrl.toExplicit();
20
Zárt kör létrehozása: loop = ClosedLoop(ectrl,model);
Állapotváltozók kezdeti értékének megadása: x0=[0;0;0];
Referenciajelek létrehozása a szimulációhoz: aref1=1;aref2=-1;aref3=0; aref = [repmat(aref1, 1, 150), repmat(aref2, 1, 150), repmat(aref3, 1, 100)]; vref=lsim(tf(1,[1 0]),aref,t); pref=lsim(tf(1,[1 0 0]),aref,t);xref=[aref;vref';pref'];
Szimuláció: Nsim=400; data = loop.simulate(x0, Nsim, 'x.reference', xref);
2.3.1.4 Szimuláció A referenciajeleket piros szaggatott vonallal rajzoltam ki, az állapotváltozókat folytonos kék vonallal. A korlátozásokat pedig a szaggatott fekete vonalak jelölik az ábrákon.
12. Gyorsulás és gyorsulás referencia
21
13. Sebesség és sebességreferencia
14. Pozíció és pozícióreferencia
22
15. Kontrol input
Eredmények értékelése A fenti ábrákon jól látható, hogy a szabályozott állapotok követik a megadott referencia trajektóriát, és mindig a korlátozásokon belül vannak. A dinamikán a predikciós horizont növelésével lehetne javítani, azonban ez jelentős mértékben megnöveli a számítás idejét.
2.3.2 Referenciakövető pozíciószabályozás (pozíció referenciajellel) 2.3.2.1 Feladat A longitudinális mozgást szeretnénk szabályozni, a szakasz egy egyszerű egytárolós tag. A szakasz három állapotváltozója a gyorsulás, a sebesség és a pozíció. A szakasz bemenete a gyorsulás hibajel. A szakasz kimenete a pozíció. A szabályzás célja, hogy a pozíció állapotváltozó a referenciajelet kövesse. Ezen kívül korlátozó feltételeket adunk meg az állapotváltozókra, valamint a beavatkozó jelre.
23
2.3.2.2 Zárt kör blokkdiagramja:
2.3.2.3 A Matlab forráskód: Paraméterek megadása: Tau=0.7;g=1;Ts=0.01;
Állapottér mátrixainak megadása folytonos időben: A=[-1/Tau 0 0;1 0 0;0 1 0]; B=[g/Tau;0;0]; C=[0 0 1]; D=0;
Áttérés diszkrét időbe: [a, b, c, d]= ssdata(c2d(ss(A,B,C,D),Ts,'zoh'));
A predikciós modell objektum létrehozása: model = LTISystem('A',a,'B',b,'C',c,'D',d,'Ts',Ts);
Az állapotokra megadott korlátozások: model.x.min=[-2;-5;-10]; model.x.max=[2;5;10];
A bemenetre megadott korlátozások: model.u.min=-5; model.u.max=5;
Időben változó referenciajel használatának megadása: model.x.with('reference'); model.x.reference= 'free';
Kvadratikus büntetések megadása: model.x.penalty = QuadFunction(diag([1;1;10])); model.u.penalty = QuadFunction(0.01);
24
Terminális büntetés megadása: PN = model.LQRPenalty; model.x.with('terminalPenalty'); model.x.terminalPenalty = PN;
On-Line MPC szabályzó objektum létrehozása, N=4 predikciós horizonttal: ctrl = MPCController(model,4);
Explicit MPC szabályzó objektum létrehozása: ectrl=ctrl.toExplicit();
Zárt kör létrehozása: loop = ClosedLoop(ectrl,model);
Állapotváltozók kezdeti értékének megadása: x0=[0;0;0];
Referenciajel létrehozása a szimulációhoz: xref1 = xref2 = xref3 = xref = 400)];
[0;0;1]; [0;0;-1]; [0;0;0]; [repmat(xref1, 1, 300), repmat(xref2, 1, 300), repmat(xref3, 1,
Szimuláció: Nsim=1000; data = loop.simulate(x0, Nsim, 'x.reference', xref);
2.3.2.4 Szimuláció A referenciajeleket piros szaggatott vonallal rajzoltam ki, az állapotváltozókat folytonos kék vonallal.
25
A ábrákon.
korlátozásokat
pedig
a
szaggatott
fekete
16. Pozíció és pozícióreferencia
17. Gyorsulás
26
vonalak
jelölik
az
18. Sebesség
19. Kontrol input
Eredmények értékelése A fenti ábrákon látható, hogy a pozíció követi a referenciajelet. Az állapotok és a kontrol input is a korlátozásokon belül marad.
27
3 Összegzés A
félév
során
megismerkedtem
a
MATLAB
Simulinkben
történő
járműmodellezéssel, a modell prediktív irányítások elméletével, valamint az MPT3 toolbox használatával. A félév elején kitűzött feladatok közül a longitudinális szabályozást sikeresen megvalósítottam, a laterális szabályzó elkészítésével nem készültem el a félév végére. A Simulink-ben elkészített modellek ezért nem kerültek végül felhasználásra, a laterális szabályzás megvalósításához lett volna szükség rájuk. A feladatok megvalósítása során nagy segítséget jelentett az MPT3 toolbox weboldala [12] és dokumentációja, valamint az irodalomjegyzékben felsorolt irodalmak és források. A
megvalósított
pozíciószabályzási
algoritmust
a
jövőben
úgy
lehet
továbbfejleszteni, hogy a pozíció-referenciajelnek az értéke minden mintavételi időpontban egy n-hosszúságú, folyamatosan előre csúszó horizonton ismert, és ezt a referenciát kell követni.
28
4 Irodalomjegyzék, források [1]
Wittmann Ádám – Modelling and simulation of a nonlinear model of a four-wheel drive electric model car. Önálló laboratórium beszámoló, 2015
[2]
Wittmann Ádám – Control and simulation of a four-wheel drive electric model car. Önálló laboratórium beszámoló,2015
[3]
Uwe Kiencke and Larse Nielsen – Automotive Control Systems, For Engine, Driveline, and Vehicle. Spring Verlag, 2nd edition, 2005
[4]
G.Rödönyi – A dynamic model of a heavy truck. Technical report, MTA SZTAKI Research report, SCL-1/2007, 2007
[5]
G.Rödönyi – Vehicle models for steering control. Technical report, MTA SZTAKI Research report, SCL-4/2003, 2003
[6]
Dimitry Gorivensky – EE392m: Control Engineering in Industry/Lecture 14 – Model Predictive Control, Part1 (Stanford University, Spring Quarter 2004 – 2005) www.stanford.edu/class/ee392
[7]
Mark Cannon – C21 course on Model Predictive Control/Lecture1 - Introduction, Hilay Term 2016, www.eng.ox.ac.uk/~canmrc/mpc
[8]
Magyar Attila – Irányításelmélet és technika II., Modell-prediktív szabályozás, 2010.november.8 www.virt.uni-pannon.hu
[9]
Dávid László,György Katalin,Kelemen András – Modell alapú prediktív irányítási algoritmus, állapotfüggő Riccati-egyenlet, illetve véges horizontú DLQRalgoritmus összehasonlítása, 2014 www. eda.eme.ro
[10] Francesco Borelli – 2014 MPC Courses hands-out slides www.mpc.berkeley.edu/mpc-course-material [11] Francesco Borelli, Alberto Bemporad, Manfred Morari – Predictive Control for linear and hybrid systems, 2015 [12] MPT3 Wiki – www.people.ee.ethz,ch/~mpt/3
29