De comfortabele auto 1e Matlab practicum Inleiding Wiskundige Systeemtheorie (156056) (inleveren tot en met vrijdag 13 Maart 2009, via Teletop). Dit is de eerste van twee verplichte Matlab/Simulink-practica voor het vak Inleiding Wiskundige Systeemtheorie (IWS). Op vrijdag 6 maart (1+2 uren) kan er onder begeleiding aan worden gewerkt (Zilverling, ZI 4054a,b,c). De week daarop dient het practicum in eigen tijd te worden afgerond. Miklós Vajta begeleidt de practica. Voor deze practica is Matlab noodzakelijk (Simulink komt pas in de tweede opdracht aan bod). Pas op: Maple kan niet gebruikt worden. Op TeleTop (Archief) staan enkele beknopte handleidingen Matlab. De practica mag in groepjes van hooguit twee personen worden uitgevoerd (en per groepje één verslag). Maak een voorpagina met titel, practicumnummer, uw naam (of namen), datum, studentnummer. Houd het verslag bondig, maar wel met inleiding, duidelijke beschrijving van de door jullie gemaakte stappen inclusief wiskundige afleiding en plots en Matlab-code. Geef een duidelijke uitleg van de verschillende stappen inclusief vergelijkingen. Het verslag moet uiterlijk op vrijdag 13 maart (2009) worden ingeleverd via TeleTop (als word of pdf). De practica worden beoordeeld (van 0 t/0) en de beoordeling beïnvloedt je eindcijfer (zie Teletop). 1
1 De comfortabele auto Figuur 1 geeft in drie niveaus van abstractie een rijdende auto weer. In dit practicum gaat het over de analyse van het gedrag van deze auto, in het bijzonder hoe de auto (carrosserie) en de stoel reageren (trillen) als gevolg van een hobbelig wegdek. We vatten de auto in dit verband op als opgebouwd uit twee componenten: de carrosserie en de stoel. De positie (hoogte) van het wegdek geven we aan met u(t) dat is de ingang van ons systeem de positie van de carrosserie geven we aan met ȳ 1 + y 1 (t) en de positie van de stoel met ȳ 2 + y 2 (t). Hierbij zijn ȳ 1 = 0.3, ȳ 2 = 0.6 de evenwichtsposities voor het geval dat u(t) 0. De y 1 (t) en y 2 (t) geven derhalve de afwijking t.o.v. deze evenwichtsposities weer. k 2 d 2 y 2 (t) k 1 d 1 y 1 (t) ȳ 2 = 0.6 u(t) ȳ 1 = 0.3 (c) Figuur 1: De comfortabele auto De carrosserie modelleren we als een zware massa die via demper d 1 en veer k 1 contact maakt met het wegdek. Netzo modelleren we de stoel (inclusief passagier) als een massa die via demper d 2 en veer k 2 verbonden is met de carrosserie. Dit geeft, analoog aan voorbeeld 2.1.1 (p.25), de systeemvergelijkingen ÿ 1 + d 1 (ẏ 1 u) + k 1 (y 1 u) d 2 (ẏ 2 ẏ 1 ) k 2 (y 2 y 1 ) = 0, ÿ 2 + d 2 (ẏ 2 ẏ 1 ) + k 2 (y 2 y 1 ) = 0. (1) 2
u y 1 y 2 Σ y carrosserie Σ stoel 2 Figuur 2: Schematische weergave van de comfortable auto De evenwichten ȳ 1 en ȳ 2 komen in deze vergelijkingen niet voor. We gaan ervan uit dat de autobanden altijd contact houden met het wegdek. Opdracht-1 Schrijf het systeem in de vorm [ P11 ( d dt ) P 12( d dt ) ] [y1 ] [ Q11 ( d dt P 21 ( d dt ) P 22( d dt ) = ) ] u (2) y 2 0 en ga na m.b.v. lemma 3.4.4 (p.76) dat het systeem asymptotisch stabiel is voor = d 1 = k 1 = 4 en = d 2 = k 2 = 1. [Hint: in Matlab kun je nulpunten van een polynoom p(s) = 2s 2 +10s+12 uitrekenen m.b.v. het commando roots([2 10 12]). Afhankelijk van de aanwezige toolboxen kun je ook s=tf( s ); zero(2*s^2+10*s+12) proberen. Je mag natuurlijk ook Routh-Hurwitz gebruiken.] Opdracht-2 Het is prettig om het systeem opgebouwd te denken uit twee deelsystemen, namelijk de carrosserie en de stoel, zie figuur 2. De stoel vatten we hier op als een systeem met ingang y 1 (t) en als uitgang y 2 (t). De carrosserie vatten we op als een systeem met ingang u(t) en y 2 (t). Voor deze twee deelsystemen kunnen we de waarnemercanonieke vormen bepalen (lemma 3.2.3, p.66): ] [ [ẋ1 = Σ carrosserie : ẋ 2 y 1 = x 2 ] [ [ẋ3 = Σ stoel : ẋ 4 y 2 = x 4 0 k 1+k 2 1 d 1+d 2 0 k 2 1 d 2 ] [x1 x 2 ] [x3 ] + x 4 ] [ k1 + k 2 d 1 d 2 [ ] k2 d 2 y 1 ] [ ] u y 2 (3) Elimineer y 1 en y 2 uit deze vergelijkingen en bepaal daarmee de totale toestandsrepresentatie (d.w.z. bepaal A,B,C): ẋ = Ax + Bu, y = Cx (4) met x = [x 1,x 2,x 3,x 4 ] T en y = [y 1,y 2 ] T. [Hint: ter controle: de eigenwaarden van de A-matrix moeten gelijk zijn aan de nulpunten van det(p(s)) van de vorige opgave. In Matlab bepaal je eigenwaarden met eig(a).] 3
Opdracht-3 Franse auto slappe stoel. Neem als constanten = 1400, d 1 = 1000, k 1 = 1000, = 100, d 2 = 50, k 2 = 50. en simuleer nu de toestand x(t) voor u(t) 0 [vlakke weg] en begintoestand x(0) = (0, 0.2, 0, 0) carrosserie begint laag en daarna voor x(0) = (0, 0, 0, 0.2) stoel begint laag In beide gevallen plot de posities ȳ 1 +y 1 (t) en ȳ 2 +y 2 (t) in één figuur voor t [0,20]. Is het verschil in reactie op de twee begintoestanden logisch? Bepaal vervolgens de eigenwaarden van de matrix A en relateer dit aan de gesimuleerde bewegingen van stoel-carrosserie. [Hint: zie appendix A.4 (p.169) van het dictaat.] [Hint: in Matlab kun je meerdere grafieken in een plot bijv. zo maken: plot(t,sin(t),t,cos(t), rg ) of zo: plot(t,sin(t), r ); hold on; plot(t,cos(t), g ); hold off.] Opdracht-4 De stugge stoel. Verhoog de demper en veerconstante van de stoel: = 1400, d 1 = 1000, k 1 = 1000, = 100, d 2 = 200, k 2 = 100 Als in de vorige opgave simuleer de toestand x(t) voor u(t) 0 en begintoestand x(0) = (0, 0.2,0,0) en plot ȳ 1 +y 1 (t) en ȳ 2 +y 2 (t) in één figuur. Relateer wederom de bewegingen aan de eigenwaarden van de A-matrix. [Opmerking: tegenwoordig kun je in de duurste klasse auto s de hardheid van de schokdempers tijdens het rijden aanpassen met een zgn. sportknop.] Opdracht-5 Oplossing met de exponentiaalmatrix. In het dictaat is afgeleid (p.31) dat de oplossing van de toestandsvergelijking t x(t) = e A(t t0) x 0 + e A(t τ) Bu(τ)dτ t 0 (5) waar x 0 = x(0). Bereken m.b.v. Matlab de toestand x(t), t [0,20] voor begintoestand x(0) = (0, 0.2,0,0) met t 0 = 0 en u(t) 0. Plot alle toestandsvariabelen voor t [0,20]. [Pas op: matrix A hoeft niet gediagonaliseerd te worden.], [Hint: in Matlab kun je de exponentiaalmatrix berekenen met expm. Zie ook dictaat, p.169.] 4
Opdracht-6 Parametervariaties reverse engineering. Om realistische waarden voor de demper d 1 van de carrosserie te vinden gaan we na hoe de carrosserie trilt voor verschillende d 1 als het wegdek ineens één eenheid toeneemt: h = 0.05; % simulatiestap t = 0:h:20; % d.w.z. dat t=[0 h 2h... 20] u = real(t>1); % u=[0... 0 1 1 1... 1 1 1] plot(t,u); % laat wegdek zien Bepaal de uitwijking y 1 (t) voor bovenstaande ingang en x(0) = (0,0,0,0) en de parameterwaarden van opgave 4 maar varieer daarbij d 1 over alle d 1 {250,500,750,...,2000}. Geef de 8 uitwijkingen y 1 (t) in één figuur weer voor t [0,20]. Is het gedrag van een zachte demper (d 1 klein) en hard demper (d 1 groot) naar verwachting? Opdracht-7 De verkeersdrempel. Tot dusver gingen we uit van een egaal vlakke weg (u(t) 0). We gaan nu onderzoeken wat er gebeurt als we over een verkeersdrempel rijden. Eerst nemen we aan dat de drempel een sinus-profiel heeft. Gebruik de hieronder aangegeven Matlab-code. h = 0.05; % simulatiestap t = 0:h:14; % d.w.z. dat t=[0 h 2h... 14] v = 3.0; % snelheid in [m/sec] (=10.8km/uur) Lhob = 4.5; % lengte drempel in [m] Hhob = 0.20; % hoogte drempel in [m] ah = 2.0; % tijd begin drempel in [sec] bh = ah + Lhob/v; % tijd einde drempel in [sec] T = bh - ah; % tijd op drempel u = Hhob*sin(pi*(t-ah)/T).*(t > ah).*(t < bh); plot(t,u); Gebruik de parameters van opdracht 4 (stugge stoel): = 1400, d 1 = 1000, k 1 = 1000, = 100, d 2 = 200, k 2 = 100 met x(0) = (0,0,0,0) en laat in één plot de drie posities u(t),ȳ 1 + y 1 (t),ȳ 2 + y 2 (t) zien als functie van tijd t [0,14]. De hoogte van de drempel is 20 cm. Bepaal de maximale uitwijking van stoel en carrosserie ten opzichte van hun evenwichtspositie. Opdracht-8 Twee hobbels de stuiterende passagier. In sommige gevallen zijn er twee hobbels (van de vorm zoals in de vorige opgave) achter mekaar, dus twee hobbels elk met amplitude 0.20, zoiets als dit: 0.20 z Herhaal de vorige opgave en neem eerst z = 1.5 [m]. Wat zien we? Wat is het effect van de tweede hobbel? Bepaal de twee (lokaal) maximale afwijkingen van stoel en carosserie, en ook het tijdstip waarop dat gebeurt. De volgende vraag is: wat er gebeurt als de afstand tussen de hobbels korter wordt? Herhaal de simulatie met bijvoorbeeld z = 0. Bepaal nu de maximale afwijkingen van carrosserie en stoel en vergelijk met de vorige simulatie (met z = 1.5). Wegens fysische redenen is de maximale uitrek (uitwijking) van een schokdemper gelimiteerd. De schokdemper kan beschadigd raken als deze boven een maximale 5
waarde wordt uitgerekt. Bepaal de minimale afstand (met simulatie) tussen twee hobbels als de maximale afwijking van de demper max(y 1 (t)) = 15 [cm] is. Wat zijn nu de (lokale) maximale afwijkingen van stoel en carrosserie? [Hint: maak een serie van simulatie met verschiellende afstand z tussen de twee hobbels an plot het simulatieresultaat op een plaatje.] [Opmerking: Twee hobbels direct achter elkaar zijn geen uitzonderingen. Een goede voorbeeld is te zien op de Zwavertsweg in Hengelo-Noord.] Opdracht-9 Langzaam of snel over de verkeersdrempel. Ga weer uit van de enkele sinushobbel (opdracht 7) maar verhoog nu de snelheid van v=3 [m/s] naar v=10 [m/s] ( 36 [km/uur]). Toon weer het effect op carrosserie en stoel. Durf je de stelling aan dat hardrijden over een hobbel beter voor de bestuurder is dan langzaam? Opdracht-10 De snelheid van de stoel. Als ẋ = Ax + Bu en y = Cx dan volgt dat ẏ = Cẋ = CAx + CBu. (6) Gebruik dit om de snelheid van stoel en carrosserie te plotten voor de u(t) van de vorige opgave. Is de snelheid van de carrosserie differentieerbaar (als functie van tijd)? Is de snelheid van de stoel differentieerbaar? 6