Maken van animaties voor voertuigmodellen
Citation for published version (APA):Kurvers, C. (2006). Maken van animaties voor voertuigmodellen. (DCT rapporten; Vol. 2006.055). TechnischeUniversiteit Eindhoven.
Document status and date:Gepubliceerd: 01/01/2006
Document Version:Uitgevers PDF, ook bekend als Version of Record
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can beimportant differences between the submitted version and the official published version of record. Peopleinterested in the research are advised to contact the author for the final version of the publication, or visit theDOI to the publisher's website.• The final author version and the galley proof are versions of the publication after peer review.• The final published version features the final layout of the paper including the volume, issue and pagenumbers.Link to publication
General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright ownersand it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.
• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, pleasefollow below link for the End User Agreement:www.tue.nl/taverne
Take down policyIf you believe that this document breaches copyright please contact us at:[email protected] details and we will investigate your claim.
Download date: 28. Nov. 2020
Maken van animaties voor
voertuigmodellen
C. Kurvers
DCT 2006.055
Bachelor Eindproject
Studentnummer: 0551135
Begeleider: dr. ir. A.J.C. Schmeitz
Technische Universiteit Eindhoven
Faculteit Werktuigbouwkunde
Dynamics and Control Technology Group
Eindhoven, Mei, 2006
2
Samenvatting
In dit verslag wordt gekeken naar het maken van animaties van voertuigmodellen. Er worden drie
verschillende voertuigmodellen behandeld: het kwart voertuigmodel, het halve voertuigmodel en het
fietsmodel. Het kwart en het halve voertuigmodel beschrijven de verticale dynamica van een voertuig
en het fietsmodel beschrijft het bochtgedrag van een voertuig.
Het maken van animaties van deze modellen gebeurt met behulp van de Virtual Reality Toolbox in
Matlab en een vrml-script, waarin door middel van het modelleren van verschillende componenten een
voertuigmodel in een virtuele wereld wordt ontworpen. Vervolgens worden, voor elk voertuigmodel
met behulp van een Simulink model, de bewegingsvergelijkingen opgelost. Daarna worden in een
ander Simulink model de berekende toestanden omgezet naar translaties en rotaties van de
verschillende componenten in het virtuele voertuigmodel. Door vervolgens deze translaties en rotaties
te koppelen aan een VR Sink blok, en dit blok te koppelen aan het model van het voertuig in de virtuele
wereld, kan een animatie van het voertuigmodel worden gemaakt.
Summary
In this report, the making of animations of vehicle models is studied. Three different vehicle models
are treated: the quarter car vehicle model, the half car vehicle model and the bicycle model. The quarter
and the half car vehicle model describe the vertical dynamics of a car and the bicycle model describes
the cornering behavior of a car.
The making of animations of these models is done by using the Virtual Reality Toolbox in Matlab and
a vrml-script, in which a vehicle model is designed in a virtual world by using different components.
Then the equations of motion of each vehicle model are solved by implementing them in a Simulink
model. After that the calculated states, which resulted from the equations of motion of the vehicle
model, are converted to positions and rotations of the different components in the virtual vehicle
model. By connecting these translations and rotations to a VR Sink block, and connecting this block to
a vehicle model in the virtual world, an animation of the vehicle model can be made.
3
Inhoudsopgave
Symbolenlijst.........................................................................................................................................4 1 Inleiding.................................................................................................................................................5
1.1 Doel van het onderzoek ..............................................................................................................5 1.2 Inhoud van het verslag................................................................................................................5
2 De Virtual Reality Toolbox ...................................................................................................................6 3 Het kwart voertuigmodel .......................................................................................................................8
3.1 Introductie ..................................................................................................................................8 3.2 Theorie........................................................................................................................................8 3.3 Virtual Reality model .................................................................................................................9 3.4 Simulink model ........................................................................................................................ 10 3.5 Koppelen Simulink model met Virtual Reality model ............................................................. 10 3.6 Animaties eigentrillingen kwart voertuigmodel ....................................................................... 11
4 Het halve voertuigmodel ..................................................................................................................... 12 4.1 Introductie ................................................................................................................................ 12 4.2 Theorie...................................................................................................................................... 12 4.3 Virtual Reality model ............................................................................................................... 14 4.4 Simulink model ........................................................................................................................ 15 4.5 Koppelen Simulink model met Virtual Reality model ............................................................. 15 4.6 Eigentrillingen halve voertuigmodel ........................................................................................ 16
5 Het fietsmodel ..................................................................................................................................... 17 5.1 Introductie ................................................................................................................................ 17 5.2 Theorie...................................................................................................................................... 17 5.3 Virtual Reality model ............................................................................................................... 18 5.4 Simulink model ........................................................................................................................ 19 5.5 Koppeling Virtual Reality model en Simulink model .............................................................. 20 4.6 Opmerkingen bij de animaties van het fietsmodel.................................................................... 23
6 Conclusies en aanbevelingen............................................................................................................... 25 Literatuurlijst .......................................................................................................................................... 26 Bijlage 1 M-file met vrml-script kwart voertuigmodel........................................................................... 27 Bijlage 2 Simulink model bewegingsvergelijkingen kwart voertuigmodel............................................ 28 Bijlage 3 Simulink model berekenen componenten kwart voertuigmodel ............................................. 29 Bijlage 4 M-file berekenen eigentrillingen kwart voertuigmodel........................................................... 30 Bijlage 5 M-file met vrml-script half voertuigmodel ............................................................................. 31 Bijlage 6 Simulink model bewegingsvergelijkingen half voertuigmodel............................................... 32 Bijlage 7 Simulink model berekenen componenten half voertuigmodel ................................................ 33 Bijlage 8 M-file berekenen eigentrillingen half voertuigmodel.............................................................. 34 Bijlage 9 M-file met vrml-script fietsmodel ........................................................................................... 35 Bijlage 10 Simulink model bewegingsvergelijkingen fietsmodel .......................................................... 36 Bijlage 11 Simulink model berekenen componenten fietsmodel............................................................ 37
4
Symbolenlijst
Symbool Grootheid Eenheid
C1, C2 Bochtstijfheid N/rad
Fy Centrifugaal kracht N
Fy1, Fy2. Wrijvingskracht N
Iy Massatraagheidsmoment kg/m2
L Lengte wielbasis m
V Snelheid massamiddelpunt m/s
A Lengte massamiddelpunt-voorwiel m
B Lengte achterwiel-massamiddelpunt m
ds, ds1, ds2 Dempingconstante ophanging Ns/m
ks, ks1, ks2 Veerstijfheid ophanging N/m
kt Bandstijfheid N/m
l Lengte wielbasis m
m Massa kg
ma, ma1, ma2 Onafgeveerde massa kg
ms Massa chassis kg
r Hoeksnelheid rad/s
u Snelheid in langsrichting model m/s
v Snelheid loodrecht op model m/s
za, za1, za2 Hoogte van onafgeveerde massa m
zs Hoogte chassis m
zr, zr1, zr2 Hoogte wegprofiel m
α1, α2 Wielsliphoek rad
β Voertuigssliphoek rad
δ Stuurhoek rad
φ Rotatie chassis rad
ψ Rotatie massamiddelpunt rad
1 Vooras
2 Achteras
5
1 Inleiding
Voor het onderzoeken van het dynamische gedrag van voertuigen wordt veelal gebruik gemaakt van
vereenvoudigde modellen, de zogenaamde voertuigmodellen. Aan de hand van deze modellen kunnen
bewegingsvergelijkingen worden opgesteld, waaruit de verschillende onbekende toestanden van het
model kunnen worden bepaald. Deze toestanden beschrijven het dynamische gedrag van het voertuig.
1.1 Doel van het onderzoek Voor extra inzicht in het dynamische gedrag van voertuigen, kunnen er animaties worden gemaakt van
de voertuigmodellen. Maar hoe kunnen deze animaties precies gemaakt worden?
Het doel van dit verslag en dit onderzoek is om daar een antwoord op te geven en verschillende
animaties te maken voor verschillende voertuigmodellen. Deze animaties zullen vervolgens worden
gebruikt in het college van het vak Oriëntatie Voertuigtechniek. Voor het maken van de animaties van
de voertuigmodellen wordt gebruik gemaakt van de VR(Virtual Reality)-toolbox in Matlab.
1.2 Inhoud van het verslag In dit verslag komen er verschillende onderwerpen aan bod, die allemaal een rol spelen bij het maken
van animaties van voertuigmodellen. Allereerst wordt in dit verslag ingegaan op de VR-Toolbox in
Matlab, waarmee de animaties worden gemaakt. Vervolgens worden er twee voertuigmodellen: het
kwart voertuigmodel en het halve voertuigmodel besproken, die het verticaal dynamische gedrag van
een voertuig ten gevolge van een oneffen weg beschrijven. Bij deze twee modellen wordt eerst de
theorie behandeld en vervolgens de stappen die nodig zijn voor het maken van een animatie van het
model. Daarna komt er een derde model aan bod, het zogenaamde ‘fietsmodel’. Dit model wordt
gebruikt om het bochtgedrag van een voertuig te beschrijven. Ook hier wordt eerst ingegaan op de
theorie van het voertuigmodel en vervolgens wordt er besproken hoe een animatie van dit model tot
stand komt. Ter afsluiting van dit verslag is een conclusie opgenomen, waarin alle belangrijke
bevindingen van dit onderzoek zijn opgenomen en zullen er ook enkele aanbevelingen voor verder
onderzoek worden geformuleerd.
6
2 De Virtual Reality Toolbox
Voor het maken van animaties van voertuigmodellen wordt gebruik gemaakt van de Virtual Reality
Toolbox in Matlab. Met behulp van deze toolbox kunnen 3-D modellen worden gebouwd, die
vervolgens kunnen worden bestuurd, waardoor er een animatie wordt verkregen.
Voordat er kan worden begonnen met het maken van een animatie van een bepaald voertuigmodel,
moet dit model eerst geconstrueerd worden in een virtuele wereld. Dit gebeurt met een zogenaamd
vrml-script. In dit script kunnen verschillende geometrieën worden gedefinieerd, zoals een kubus,
kegel, bol enz., zie figuur 2.1. Deze geometrieën kunnen met behulp van dit script op een bepaalde
positie worden gezet. Ook kunnen onder andere de afmetingen, rotaties, kleur en het middelpunt van
een geometrie worden ingesteld.
figuur 2.1, verschillende geometrieën in de virtuele wereld
Door deze geometrieën met de juiste posities, afmetingen en rotaties in te geven in het script kan er een
voertuigmodel in de virtuele wereld worden gebouwd. In het vrml-script moeten niet alleen de
geometrieën worden gedefinieerd, maar ook de cameraposities die de gewenste aanzichten van het
virtuele model vastleggen. Bij het maken van een model moet er wel worden opgelet dat er in de
virtuele wereld gebruik wordt gemaakt van een ander assenstelsel dan het assenstelsel dat gebruikt
wordt in Matlab. In het assenstelsel van de virtuele wereld is de y-richting gelijk aan de z-richting en de
z-richting gelijk aan de –y-richting in het assenstelsel dat gebruikt wordt in Matlab, zie figuur 2.2. De
x-richting is in beide assenstelsel wel gelijk (zie [1]).
figuur 2.2, links: Matlab coördinaten systeem, rechts vrml coördinaten systeem.
Voor het snel maken van een vrml-script kan Matlab van pas komen. In Matlab kunnen namelijk m-
file’s worden aangemaakt die ieder het vrml-script bevatten van een andere geometrie. Daarbij kan er
voor gekozen worden om bijvoorbeeld de positie en de rotatie van het model nog niet in deze m-file’s
te definiëren.
Het maken van het complete vrml-script kan vervolgens door in een m-file de m-file’s met het vrml-
script van de benodigde geometrieën aan te roepen. Ook de posities van deze verschillende
componenten kunnen dan in deze grote m-file worden gedefinieerd.
Op deze manier, die ook bij het maken van de voertuigmodellen wordt gebruikt, is het mogelijk om
snel een model in de virtuele wereld aan te maken.
Als een model goed is geconstrueerd in de virtuele wereld, kan er een animatie van het model worden
gemaakt. Daarbij moeten waarden van de gewenste posities, rotaties enz. worden uitgestuurd naar het
vrml-model. In het geval van de voertuigmodellen in dit onderzoek worden deze waarden bepaald door
het oplossen van de bewegingsvergelijkingen van het voertuigmodel.
7
Het koppelen van deze waarden aan het model in de virtuele wereld gebeurt in Simulink. In Simulink
moet hiervoor een model worden aangemaakt waarbij de gewenste waarden worden gekoppeld aan een
VR Sink blok, zie figuur 2.3. In dit blok kan worden ingesteld aan welk model in de virtuele wereld, de
waarden moeten worden gekoppeld, als ook welke posities en rotaties enz., gebruikt moeten worden
voor het maken van een animatie. Hierdoor kunnen de verschillende geometrieën in het virtuele model
worden bestuurd.
figuur 2.3, VR Sink blok
Natuurlijk kan het zo zijn dat er voor het maken van een animatie er alleen een translatie in één
richting, in bijvoorbeeld de x-richting, van een geometrie moet worden ingevoerd. In het VR Sink blok
moet de positie van een geometrie echter in alle drie de richtingen van het coördinatensysteem worden
beschreven. In een dergelijke situatie kan er gebruik worden gemaakt van een VR Signal Expander, zie
figuur 2.4. Dit blok zorgt ervoor dat alleen de posities van de richtingen van de geometrie die van
belang zijn ingesteld hoeven te worden, terwijl de andere posities niet worden aangepast.
figuur 2.4, het VR Signal Expander blok
Door op juiste wijze gebruik te maken van deze blokken kunnen er animaties worden gemaakt van
verschillende modellen. Deze manier is ook gebruikt voor het maken van animaties van de
voertuigmodellen in dit onderzoek.
8
3 Het kwart voertuigmodel
3.1 Introductie
Als bestuurder van een auto wil je natuurlijk zo min mogelijk merken van oneffenheden in de weg. Om
daarvoor te zorgen dienen er goede keuzes gemaakt te worden voor de verschillende componenten in
een auto.
In dit hoofdstuk wordt de verticale dynamica van een auto bestudeerd. Dit wordt gedaan aan de hand
van een model dat het kwart voertuigmodel wordt genoemd. Dit is het meest eenvoudige model van
een auto, omdat het maar uit een paar componenten bestaat en alleen het verticale gedrag van de auto
beschrijft.
Allereerst zal in dit hoofdstuk de theorie van het kwart voertuigmodel worden beschreven. Hierin
komen vooral de bewegingsvergelijkingen aan bod. Vervolgens is er een beschrijving van hoe het
model in de virtuele wereld is gemodelleerd en daarna wordt er uitgelegd hoe de
bewegingsvergelijkingen worden geïmplementeerd in Simulink. Daarna wordt besproken hoe de
resultaten van het Simulink model worden gekoppeld aan het Virtual Reality model. Als laatste komen
de eigentrillingen van het kwart voertuigmodel aan bod.
3.2 Theorie
Het verticale dynamische gedrag van een rijdende auto op een weg kan worden geïllustreerd aan de
hand van het kwart voertuigmodel, zie figuur 3.1.
Het model bestaat uit vier verschillende onderdelen. Helemaal onderaan is er het wiel. Dit wiel rijdt op
een wegprofiel met hoogte zr. De veerstijfheid van het wiel wordt weergegeven met een veer met
stijfheid kt. . Het wiel heeft ook een massa aangegeven met ma en een verticale verplaatsing
aangegeven met za . Het wiel staat in verbinding met het chassis door middel van een veer met stijfheid
ks en een demper met dempingconstante ds . Het chassis zelf heeft een massa ms en een verticale
verplaatsing zs. Ook wordt verondersteld dat het model met een snelheid V over de weg rijdt.
figuur 3.1, schets kwart voertuigmodel (zie [2])
De bewegingen van het model ten gevolge van het wegprofiel zijn te beschrijven aan de hand van de
volgende bewegingsvergelijkingen.
)()( assassss zzdzzkzm &&&& −+−−= (3.1)
)()()( ratassassaa zzkzzdzzkzm −−−+−= &&&& (3.2)
(zie [2])
Deze vergelijkingen moeten in Simulink worden geïmplementeerd, zodat de posities van alle
componenten kunnen worden bepaald en gekoppeld kunnen worden aan het model in de virtuele
wereld.
9
3.3 Virtual Reality model
Zoals al eerder in dit verslag is gemeld, is de eerste stap van het maken van een animatie van een
voertuigmodel, het maken van een 3D model met behulp van een vrml-script. Voor het maken van het
kwart voertuigmodel in de virtuele wereld, is er gebruik gemaakt van 7 verschillende geometrieën, zie
figuur 3.2, met ieder eigen afmetingen, rotaties en posities, zie tabel 3.1.
In het vorige hoofdstuk is al opgemerkt dat het assenstelsel van de virtuele wereld anders is dan het
assenstelsel dat in Matlab gebruikt wordt. Om ervoor te zorgen dat dit niet tot fouten leidt, is er in de
vrml-scripts voor de verschillende geometrieën een aanpassing nodig. Dit houdt in dat de verschillende
scripts zo zijn gemaakt dat de afmetingen, posities en rotaties ten opzichte van het Matlab assenstelsel
kunnen worden gedefinieerd. Vervolgens worden deze waarden in de scripts omgezet naar waarden ten
opzichte van het assenstelsel in de virtuele wereld.
Het wiel van het kwart voertuigmodel is gemaakt door een cilinder met bepaalde afmetingen te
modelleren en deze vervolgens op een bepaalde positie te plaatsen. De wielas is ook met behulp van
een cilinder gemodelleerd, alleen is de straal van deze cilinder kleiner en ook is de hoogte van deze
cilinder groter dan van het wiel. De demper is gemodelleerd met drie cilinders. Een kleine dunne
cilinder wordt op de wielas geplaatst. Vervolgens wordt er een grotere en dikkere cilinder boven op
deze kleine cilinder geplaatst. Als laatste wordt daar bovenop nog een derde lange en dunne cilinder
geplaatst. De veer is gemaakt met behulp van een geometrie die extrusie wordt genoemd. Met deze
geometrie kunnen allerlei vormen worden aangemaakt door het specificeren van punten in de ruimte.
Het gebruiken van deze geometrie is vooral handig voor het maken van complexe vormen. De veer is
in tegenstelling tot alle andere componenten al aangemaakt in de virtuele wereld en wordt daarom in
het vrml-script niet aangemaakt maar geladen. Dit is ook de reden dat er geen afmetingen van de veer
ingesteld kunnen worden. In plaats daarvan wordt de veer geschaald.Als laatste wordt, door middel van
een rechthoek, het chassis nog gemodelleerd. Hoe dit voor dit model in een m-file is gedaan is te zien
in bijlage 2.
figuur 3.2, het kwart voertuigmodel in virtual reality
Tabel 3.1, verschillende componenten met waarden van het kwart voertuigmodel
Component Geometrie Afmetingen [m] Positie [m] Rotatie
[rad]
Kleur
Wiel cilinder Straal = 0.3
Hoogte = 0.2
(0, 1, 0.3) 0.5*pi
(x-as)
blauw
Wielas cilinder Straal = 0.05
Hoogte = 1
(0, 0.5, 0.3) 0.5*pi
(x-as)
geel
cilinder Straal = 0.015
Hoogte = 0.08
(0, 0.6, 0.34) - felgroen
cilinder Straal = 0.03
Hoogte = 0.12
(0, 0.6, 0.43) - oranje
Demper
cilinder Straal = 0.015
Hoogte = 0.15
(0, 0.6, 0.525) - felgroen
Veer extrusie - (0, 0.75, 0.45) - rood
Chassis box (1, 0.9, 0.1) (0, 0.45, 0.6) - groen/blauw
10
3.4 Simulink model
Nadat het Virtual Reality model is gemaakt, dienen de bewegingen van het model te worden berekend.
Dit wordt gedaan door de twee bewegingsvergelijkingen, vergelijking (3.1) en (3.2), in Simulink te
implementeren en voor een bepaald wegprofiel en voor bepaalde parameters de onbekenden za en zs te
bepalen. Hoe het Simulink model eruit ziet voor het kwart voertuigmodel is te zien in bijlage 3. In dit
simulink model zijn de verschillende voertuigparameters opgenomen. De waarden van deze parameters
worden gedefinieerd in een m-file en kunnen vervolgens worden geladen uit de Matlab workspace.
Om het model op fouten te controleren, is er een tweede model gemaakt. Dit controlemodel maakt
gebruik van de state space vorm van de bewegingsvergelijkingen, welke in een m-file worden
geïmplementeerd. Door vervolgens de uitkomsten van beide modellen te vergelijken, kan worden
geconcludeerd of er fouten in een van de modellen zitten.
3.5 Koppelen Simulink model met Virtual Reality model
Nu in het Simulink model de positie van het wiel en de positie van het chassis is berekend, moeten de
uitkomsten worden gekoppeld aan het Virtual Reality model. Het uitschrijven van de berekende
waarden van het Simulink model naar het Virtual Reality model wordt, zoals eerder genoemd, gedaan
met een VR-sink blok, zie figuur 3.3
figuur 3.3, VR Sink blok voor het kwart voertuigmodel
In de figuur is al te zien dat de verschillende componenten die zijn aangemaakt in het Virtual Reality
model ieder op verschillende manieren worden aangestuurd. In dit geval is voor elke component een
ingegeven translatie nodig. Dit is niet alleen de translatie in verticale richting, maar ook de translatie in
horizontale richting, met andere woorden de positie van de auto ten gevolge van de snelheid V.
Zoals te zien is in figuur 3.2 is een van de componenten van het Virtual Reality model een veer. Omdat
deze veer tussen de twee massa’s zit geklemd wordt de veer niet alleen getransleerd, maar ook
ingedrukt of uitgerekt. Daarom is in de VR Sink blok voor dit model ook de schaling van de veer
(s1.scale) opgenomen. Ook de demper is tussen de twee massa’s geplaatst, maar omdat de demper uit
drie verschillende onderdelen bestaat, namelijk drie cylinders (d1o, d1b, d1m), vindt er geen
indrukking of uitrekking plaats.
Het is nog belangrijk om te vermelden dat de uitkomsten van het Simulink model niet direct aan het
VR Sink blok kunnen worden gekoppeld. Dit komt omdat de uitkomsten van het Simulink model
alleen de translatie van het wiel en het chassis om een evenwichtspunt zijn. Voor een juiste animatie
van het Virtual Reality model dient er dus voor elke component een beginpositie bij te worden
opgeteld. Deze beginposities zijn de posities die zijn ingegeven bij het ontwerpen van het model, zie
tabel 3.1.
Ook de schaling van de veer moet eerst bepaald worden. Dit wordt gedaan door de positie van het
chassis en van het wiel te bepalen en vervolgens het verschil te bepalen, wat dus de lengte van de veer
is. De schaling is vervolgens te bepalen door deze lengte te delen door de initiële lengte van de veer.
Hoe deze berekeningen zijn opgenomen in Simulink is te zien in bijlage 4. Nadat deze waarden aan het
vrml-model gekoppeld zijn, kan de animatie worden bekeken en zo nodig kunnen vervolgens de
verschillende modellen worden aangepast.
11
3.6 Animaties eigentrillingen kwart voertuigmodel
Zoals al is gezegd, is in het kwart voertuigmodel een veer en een demper opgenomen. Deze veer en
demper zorgen ervoor dat de bestuurder zo min mogelijk merkt van het wegprofiel. Maar deze veer
zorgt ook voor eigentrillingen in het systeem, welke ook kunnen worden geanimeerd met behulp van
het Virtual Reality model.
Om dit te doen moeten eerst weer de translaties van het wiel en het chassis tijdens de eigentrillingen
bepaald worden. Dit wordt gedaan door in een m-file de state-space matrices van het kwartmodel op te
nemen en vervolgens de eigenfrequenties en eigenwaarden van het model te bepalen, zie bijlage 5.
Hieruit volgen dan de translaties van het wiel en van het chassis en deze worden vervolgens direct
gekoppeld aan het Simulink model met het VR Sink blok. Bij deze animaties wordt er dus geen gebruik
gemaakt van het Simulink model met de bewegingsvergelijkingen.
Deze aanpak levert twee verschillende animaties van de eigentrillingen van het kwart voertuigmodel.
Deze eigentrillingen worden de ‘bounce mode’ en de ‘wheel hop mode’ genoemd. Bij de ‘bounce
mode’ staat het wiel ongeveer stil en staat het chassis te trillen, zie figuur 3.4. Bij deze eigentrilling
heeft de ongedempte eigenfrequentie een waarde van 1.095 Hz en de gedempte eigenfrequentie een
waarde van 1.04 Hz. Bij de ‘wheel hop mode’ staat het chassis juist stil en is het wiel aan het trillen, zie
figuur 3.4. Deze eigentrilling vindt plaats bij een ongedempte eigenfrequentie van 11.57 Hz en een
gedempte eigenfrequentie met een waarde van 10.84 Hz.
figuur 3.4, eigentrillingen van het kwart voertuigmodel, links ‘bounce mode’, rechts ‘wheel hop mode’
12
4 Het halve voertuigmodel
4.1 Introductie
In het vorige hoofdstuk is het kwart voertuigmodel aan bod gekomen. Het nadeel van dit model is dat
het een erg minimaal resultaat geeft, namelijk alleen de verticale verplaatsingen. Daarom wordt er in
dit hoofdstuk uitgegaan van een nieuw model, namelijk het halve voertuigmodel. Dit model is
uitgebreider dan het kwart voertuigmodel, omdat er in dit model twee wielen zijn opgenomen. Het is in
feit een doorsnede over de lengteas van een auto. In dit nieuwe model komen niet alleen de verticale
verplaatsingen voor, maar ook een rotatie als gevolg van het verschillende gedrag van de twee wielen.
In dit hoofdstuk zal grotendeels dezelfde indeling worden aangehouden als in het vorige hoofdstuk.
Eerst wordt er iets verteld over de theorie met daarin de bewegingsvergelijkingen, dan komt het Virtual
Reality model aan bod. Daarna wordt het Simulink model besproken en vervolgens wordt de koppeling
tussen deze twee modellen besproken. Als laatste komen weer de eigentrillingen van het halve
voertuigmodel aan bod.
4.2 Theorie
Zoals te verwachten is, is het halve voertuigmodel een stuk complexer dan het kwart voertuigmodel,
zoals te zien is in figuur 4.1. In deze figuur is te zien dat er in tegenstelling tot het kwart voertuigmodel
er hier sprake is van drie massa’s met ieder een bepaalde verplaatsing. Deze massa’s bestaan uit het
voorwiel met massa ma1 en verplaatsing za1, het achterwiel met massa ma2 en verplaatsing za2 en het
chassis met massa ms en verplaatsing zs. Omdat er in dit model sprake is van twee wielen die ieder een
bepaalde verplaatsing hebben, zal ook de rotatie φ en de massatraagheid Iy om het massamiddelpunt
van het chassis een rol spelen. Verder is er nog het wegprofiel voor het voorwiel zr1 en voor het
achterwiel zr2. De stijfheid van beide banden is gelijk, namelijk kt. Tussen de wielen en het chassis
zitten net als bij het kwart voertuigmodel een veer en een demper. Voor het voorwiel is het een veer
met stijfheid ks1 en een demper met dempingconstante ds1. Voor het achterwiel is de veerstijfheid ks2 en
de dempingconstante ds2. Als laatste parameter is er nog de afstand tussen het voor-en achterwiel,
gegeven door L. Ook is er de afstand van het achterwiel tot het massamiddelpunt b en tussen het
massamiddelpunt en het voorwiel a. Ook dit model beweegt zich voort met een snelheid V over het
wegprofiel.
figuur 4.1, schets halve voertuigmodel ( zie [2] )
13
De bewegingen van het halve voertuigmodel zijn te beschrijven aan de hand van de volgende
vergelijkingen.
FuKzzDzM =++ &&& (4.1)
met
=
2
1
000
000
000
000
a
a
y
s
m
m
I
m
M (4.2)
−−
−
−++−
−−+−+
=
222
111
21
2
2
2
121
212121
0
0
sss
sss
ssssss
ssssss
dbdd
dadd
bdadbdadbdad
ddbdaddd
D (4.3)
−−
−
−++−
−−+−+
=
222
111
21
2
2
2
121
212121
0
0
sss
sss
ssssss
ssssss
kbkk
kakk
bkakbkakbkak
kkbkakkk
K (4.4)
=
t
t
k
kF
0
0
00
00
(4.5)
(zie [2])
Deze matrix vergelijking is om te schrijven in een set van vier vergelijkingen:
0)()(
)()(
22112121
22112121
=−−+−++
+−−+−+++
asassssss
asassssssss
zkzkbkakzkk
zdzdbdadzddzm
ϕ
ϕ &&&&&& (4.6)
0)()(
)()(
2211
2
2
2
121
2211
2
2
2
121
=−++++−
+−++++−+
asassssss
asassssssy
bzkazkbkakzbkak
zbdzadbdadzbdadI
ϕ
ϕϕ &&&&&& (4.7)
11111111111 )( rtatssssassssaa zkzkkakzkzdadzdzm =+++−++− ϕϕ &&&&& (4.8)
22222222222 )( rtatssssassssaa zkzkkbkzkzdbdzdzm =++−−+−− ϕϕ &&&&& (4.9)
waaruit de onbekenden za1, za2, φ en zs kunnen worden bepaald.
14
4.3 Virtual Reality model
Net als bij het Virtual Reality model van het kwart voertuigmodel, is ook het Virtual Reality model van
het halve voertuigmodel gemaakt met behulp van Matlab. In een m-file, zie bijlage 6, zijn weer de
verschillende componenten, zoals veren, dempers, wielen en assen, opgenomen, met ieder een eigen
positie, grootte en rotatie. Deze componenten zijn dezelfde als de componenten die bij het kwart
voertuigmodel zijn gebruikt. Wel wordt iedere component nu, met uitzondering van het chassis, twee
keer gebruikt (voor het voorwiel en voor het achterwiel). Door bij elke component de juiste waarde in
te stellen kan het halve voertuigmodel worden gemodelleerd, zie figuur 4.2. De ingestelde waarden van
de verschillende componenten zijn te vinden in tabel 4.1.
Ook kunnen de verschillende componenten, net als bij het kwart voertuigmodel, gedefinieerd worden
ten opzichte van het assenstelsel, dat in Matlab gebruikt wordt. De ingevulde waarden worden
vervolgens in de scripts omgezet naar waarden ten opzichte van het assenstelsel in de virtuele wereld.
figuur 4.2, het halve voertuigmodel
Tabel 4.1, verschillende componenten met waarden van het halve voertuigmodel
Component Geometrie Afmetingen
[m]
Positie [m] Rotatie
[rad]
Kleur
Wiel (achter) cilinder Straal = 0.3
Hoogte = 0.2
(0, 1, 0.3) 0.5*pi
(x-as)
donker grijs
Wielas
(achter)
cilinder Straal = 0.05
Hoogte = 1
(0, 0.5, 0.3) 0.5*pi
(x-as)
blauw
cilinder Straal = 0.015
Hoogte = 0.08
(0, 0.6, 0.34) - felgroen
cilinder Straal = 0.03
Hoogte = 0.12
(0, 0.6, 0.43) - felgroen
Demper
(achter)
cilinder Straal = 0.015
Hoogte = 0.15
(0, 0.6, 0.525) - rood
Veer (achter) extrusie - (0, 0.75, 0.45) - geel
Wiel (voor) cilinder Straal = 0.3
Hoogte = 0.2
(L, 1, 0.3) 0.5*pi
(x-as)
donker grijs
Wielas (voor) cilinder Straal = 0.05
Hoogte = 1
(L, 0.5, 0.3) 0.5*pi
(x-as)
blauw
cilinder Straal = 0.015
Hoogte = 0.08
(L, 0.6, 0.34) - felgroen
cilinder Straal = 0.03
Hoogte = 0.12
(L, 0.6, 0.43) - felgroen
Demper (voor)
cilinder Straal = 0.015
Hoogte = 0.15
(L, 0.6, 0.525) - rood
Veer (voor) extrusie - (L, 0.75, 0.45) - geel
Chassis box (1, 0.9, 0.1) (L/2, 0.45, 0.6) - licht grijs
15
4.4 Simulink model
Om de bewegingsvergelijkingen 4.6 tot en met 4.9 van het halve voertuigmodel op te lossen kan
gebruik worden gemaakt van Simulink. Het Simulink model is in dit geval veel complexer dan het
Simulink model van het kwart voertuigmodel, omdat er nu sprake is van vier bewegingsvergelijkingen.
Hoe het Simulink model eruit ziet voor dit halve voertuigmodel is te zien in bijlage 7.
Net als bij het kwart voertuigmodel worden de waarden van de parameters van dit model eerst
gedefinieerd in een m-file en vervolgens geladen uit de Matlab workspace.
Ook dit model moet gecontroleerd worden op fouten. Dit is gedaan door de state-space matrices te
gebruiken, en hieruit direct de onbekende toestanden te bepalen. Als er geen fouten in een van de
modellen zitten moeten beide modellen hetzelfde resultaat geven.
4.5 Koppelen Simulink model met Virtual Reality model
Het koppelen van het Simulink model met het Virtual Reality model geschiedt, net als bij het kwart
voertuigmodel, met een VR Sink blok, zie figuur 4.3. In dit geval is het aantal ‘input’- poorten veel
groter, omdat het model ook over veel meer componenten beschikt.
De signalen die in het VR Sink blok worden gestuurd, moeten eerst berekend worden. Dit wordt
gedaan in een Simulink model, zie bijlage 8. De vier berekende waarden uit de
bewegingsvergelijkingen, za1, za2, φ en zs, worden in dit model omgezet in de translaties en de rotaties
van de verschillende componenten. Dit kan weer door gebruik te maken van de beginposities van het
halve voertuigmodel, die in tabel 4.1 zijn weergegeven. Op te merken bij dit Simulink model is dat er
gebruik is gemaakt van subsystemen om het geheel overzichtelijk te houden.
Een verschil met het kwart voertuigmodel is dat er in dit geval niet alleen de translatie van twee wielen
en het chassis, maar ook de rotatie van het chassis moet worden ingevoerd. Deze rotatie kan direct
worden ingegeven door de parameter φ. Als alle waarden goed zijn berekend en gekoppeld zijn aan het
VR-sink blok, kan de animatie worden gestart.
figuur 4.3, VR Sink blok voor het halve voertuigmodel
16
4.6 Eigentrillingen halve voertuigmodel
De eigentrillingen van het halve voertuigmodel kunnen ook berekend worden. Dit wordt gedaan door
de state-space matrices te gebruiken en daar de eigenwaarden en eigenvectoren uit te bepalen. Uit de
kolommen met eigenvectoren kunnen vervolgens de waarden van de onbekende toestanden, za1, za2, φ
en zs, horend bij de eigentrillingen worden bepaald. De eigenfrequenties kunnen worden bepaald aan de
hand van de eigenwaarden van het model. Door vervolgens de berekende waarden van de toestanden
uit te sturen naar het Simulink model met het VR Sink blok erin, kunnen de verschillende
eigentrillingen worden gevisualiseerd in het Virtual Reality model. Dit is erg handig, want je kunt
direct zien welke componenten betrokken zijn bij de verschillende eigentrillingen.
De m-file voor het berekenen van de eigentrillingen van dit model is te zien in bijlage 9.
Het gebruik van deze m-file levert vier verschillende eigentrillingen van model op. Deze
eigentrillingen worden de ‘bounce mode’, de ‘pitch mode’, de ‘front wheel hop’ en de ‘rear wheel hop
genoemd’, zie figuur 4.4. Ieder van deze eigentrillingen heeft een bepaalde eigenfrequentie.
Bij de ‘bounce mode’ staan de wielen ongeveer stil en staat het chassis te trillen op de twee wielen. De
ongedempte eigenfrequentie die hierbij hoort is 1.20 Hz en een gedempte eigenfrequentie van 1.16 Hz.
Met de ‘pitch mode’ wordt het roteren van het chassis om een bepaald punt bedoeld. Ook hier staan de
wielen ongeveer stil. De ongedempte eigenfrequentie van de ‘pitch mode’ is 1.35 Hz en de gedempte
eigenfrequentie is 1.28 Hz.
Bij de ‘front wheel hop’ en de ‘rear wheel hop’ staat het chassis stil, en trillen of het voorwiel of het
achterwiel. De berekende ongedempte eigenfrequentie die bij de ‘front wheel hop’ hoort is 11.08 Hz en
de gedempte eigenfrequentie is 10.59 Hz. Bij de ‘rear wheel hop’ hoort een ongedempte
eigenfrequentie van 11.53 Hz en een gedempte eigenfrequentie van 11.13 Hz.
figuur 4.4, eigentrillingen halve voertuigmodel, linksboven: ‘bounce mode’, rechtsboven: ‘pitch mode’
rechtsonder: ‘rear wheel hop’, linksonder: ‘front wheel hop’
17
5 Het fietsmodel
5.1 Introductie
Nadat in de vorige twee hoofdstukken uitvoerig het dynamische gedrag van een voertuig op een
oneffen wegprofiel is onderzocht, zal in dit hoofdstuk een ander dynamisch gedrag van een voertuig
aan bod komen. Namelijk het dynamische gedrag van een voertuig tijdens het nemen van bochten.
Om de het bochtgedrag van een voertuig eenvoudig te simuleren wordt verondersteld dat de hoogte van
het voertuig niet van belang is, met andere woorden, het model kan in een horizontaal vlak worden
geanimeerd. Voor het voertuig wordt er een eenvoudig model opgesteld, namelijk het ‘fietsmodel’. Dit
model bestaat uit drie onderdelen: het chassis, dat gevisualiseerd wordt door een balk, de voorwielen en
de achterwielen, welke beide worden gemodelleerd als een enkel wiel.
In dit hoofdstuk zal eerst de theorie aan bod komen met de bewegingsvergelijkingen van het
fietsmodel. Daarna zal het maken van een Virtual Reality model behandeld worden en vervolgens het
Simulink model. In het Virtual Reality model zijn ook verschillende vectoren gemodelleerd. Als laatste
is er nog de koppeling tussen het Simulink model en het Virtual Reality model.
5.2 Theorie
Zoals al vermeld is, bestaat het fietsmodel uit drie onderdelen: het achterwiel, het chassis en het
voorwiel, zie figuur 5.1.
figuur 5.1, schets fietsmodel (zie [3])
In deze figuur zijn een aantal relevante parameters aangegeven. Te zien is dat de lengte tussen voor- en
achterwiel gegeven is door l, de lengte tussen het achterwiel en het massamiddelpunt gegeven is door b
en de lengte tussen het massamiddelpunt en het voorwiel gegeven is door a. De massa van het voertuig
zit geconcentreerd in het massamiddelpunt en heeft een massa m.
Verder is in de figuur te zien dat het model een hoeksnelheid r en een snelheid V heeft, beide werkend
op het massamiddelpunt. De snelheid V kan worden ontbonden in een snelheid u in de langsrichting
van het model en een snelheid –v haaks op het model. Verder is er een hoek δ, wat de stuurhoek is van
het voorwiel.
Tijdens het rijden van een bocht werkt er een centrifugaal kracht op het voertuig. Om ervoor te zorgen
dat het voertuig op de weg blijft, moeten er dus reactiekrachten zijn in tegengestelde richting. Deze
reactiekrachten worden veroorzaakt door de wrijving tussen de wielen en de weg.
In dit model zijn de reactiekrachten weergegeven met Fy1 en Fy2. Als laatste zijn in de figuur nog twee
hoeken, α1 en α2, te zien welke de sliphoeken voorstellen van respectievelijk het voorwiel en het
achterwiel. Niet aangegeven in de figuur is de voertuigssliphoek β, wat de hoek tussen de
snelheidsvector V en de langsas van het model is. Bij dit model wordt er verondersteld dat de
voertuigssliphoek β, klein is. Hieruit volgt dat de snelheid V gelijk is aan de snelheid u.
18
De bewegingen van het fietsmodel kunnen aan de hand van de twee onderstaande vergelijkingen
worden beschreven:
21)( yy FFurvm +=+& (5.1)
21 yy bFaFrI −=& (5.2)
waarin Fy1 en Fy2 worden gegeven door:
111 αCFy = (5.3)
222 αCFy = (5.4)
In deze vergelijkingen komen C1 en C2 voor, welke de bochtstijfheden voorstellen voor het voor- en
achterwiel met eenheid N/rad. Ook komen de twee sliphoeken ( zie figuur 5.1 ) voor welke berekend
kunnen worden met onderstaande vergelijkingen.
)(1
1 arvu
+−∂=α (5.5)
)(1
2 brvu
−−=α (5.6)
Door substitutie van deze vergelijkingen zijn de twee onbekenden v& en r& , uit vergelijking (5.1) en
(5.2), te berekenen. Integratie van deze twee waarden geeft vervolgens de snelheid v en de
hoeksnelheid r. Als deze twee waarden bekend zijn, kan met de onderstaande formules de snelheden in
x en y richting worden bepaald.
)sin()cos( ψψ vux −=& (5.7)
)cos()sin( ψψ vuy +=& (5.8)
(zie [3])
In deze formules is ψ de primitieve van r, en u is een vooraf gedefinieerde voorwaartse snelheid van
het voertuigmodel. Aan de hand van deze set vergelijkingen kunnen vervolgens alle posities van het
fietsmodel worden bepaald.
5.3 Virtual Reality model
Net als bij de voorgaande modellen is het van belang om, na het invoeren van de gegeven parameters,
een Virtual Reality model te maken. Bij het maken van dit model is echter een ander assenstelsel
gebruikt dan in de voorgaande modellen, zie figuur 5.1. In deze figuur zijn alleen de x-as en y-as
aangegeven, maar uit deze twee richtingen volgt dat de z-as het papier in gericht is. In dit fietsmodel
worden de verschillende componenten aangemaakt ten opzichte van dit assenstelsel. Vervolgens
worden, net als bij het kwart en halve voertuigmodel, in de scripts de waarden omgezet naar waarden
ten opzichte van het assenstelsel in de virtuele wereld.
Zoals eerder is vermeld, is dit model opgebouwd uit een chassis en een voor-en achterwiel. Maar in
tegenstelling tot voorgaande modellen zijn in dit model (zie figuur 5.2) ook verschillende vectoren
gemodelleerd, te weten V (licht blauw), Fy1, Fy2 (beide groen) α1, α2 (beide geel) en de centrifugaal
kracht Fy (magenta) werkend op het massamiddelpunt. Om deze verschillende componenten te
modelleren, is er een m-file gebruikt, zie bijlage 10, waarin ze allemaal met positie, grootte en rotatie
zijn gedefinieerd. Hieronder zijn de belangrijkste waarden neergezet.
19
Het chassis is gemodelleerd met een lengte l en is vervolgens getransleerd met 0.5l-b (beide in
horizontale richting). Hierdoor komt het massamiddelpunt op de oorsprong van het vaste assenstelsel te
liggen. Het achterwiel is gepositioneerd op een afstand –b en het voorwiel op een afstand van a, in de
horizontale richting ten opzichte van de oorsprong.
Het model is, omdat de z-richting niet belangrijk verondersteld is, opgebouwd uit allemaal rechthoeken
met een minimale hoogte. Ook de vectoren zijn gemodelleerd met behulp van rechthoeken. Verder is
ook het massamiddelpunt gemodelleerd. Dit is gedaan met een kleine zwarte cilinder, die op de
oorsprong van het vaste assenstelsel is gepositioneerd.
figuur 5.2, Virtual Reality model van het fietsmodel
Een manier om het bochtgedrag te bestuderen is om het model een bocht met een vaste straal te laten
rijden. Om te verduidelijken hoe het model zich precies in deze bocht gedraagt, is het handig om ook
de bocht te modelleren. Dit wordt gedaan door een zwarte cilinder, met behulp van een extrusie, te
modelleren, met een straal iets groter dan de van tevoren gedefinieerde straal van de bocht die het
voertuig moet rijden, en een minimale hoogte in de z-richting (kleiner dan de hoogte van het model).
Vervolgens moet er dan een witte cilinder worden gemodelleerd, met een straal die iets kleiner is dan
de straal van de bocht die moet worden gereden. Ook dient de hoogte van deze cilinder iets groter te
zijn dan de hoogte van de zwarte cilinder, maar nog altijd kleiner dan de hoogte van het model. Omdat
het gehele xy-vlak wit gekleurd is, zal er dan alleen een zwarte cirkel met de straal van de bocht te zien
zijn.
Bij het maken van deze cirkel worden in het vrml-script geen gewone cilinders gebruikt, omdat deze bij
een grote straal niet meer precies rond zijn. Door het maken van een cilinder met behulp van een
extrusie kan het aantal punten worden ingesteld, zodat de cirkel ronder wordt.
5.4 Simulink model
Na het maken van het Virtual Reality model, dient het Simulink model gemaakt te worden. Dit model
is bedoeld om met behulp van de twee bewegingsvergelijkingen de twee onbekende toestanden (v, r) te
bepalen. Het Simulink model dat hierbij gemaakt is, is te zien in Bijlage 11.
Voor het doorrekenen van het model in Simulink, dienen eerst alle parameters gespecificeerd te zijn.
Dit wordt gedaan in een m-file. Hierin is een structure aangemaakt, met alle bekende parameters erin.
In het Simulink model kunnen, als de m-file is doorgerekend, alle bekende parameters worden
opgeladen uit de workspace van Matlab.
In dit geval moeten niet alleen de twee onbekende versnellingen uitgestuurd worden, maar ook de
parameters die de lengte en richting van de vectoren bepalen, Fy1, Fy2, α1, α2 en β. Deze parameters
worden in het Simulink model met een ‘to workspace’-blok opgeslagen in een structure, die weer door
andere Simulink modellen kan worden opgevraagd.
Het controleren van het model is gedaan aan de hand van figuren uit de literatuur (zie [3]). Hiervoor is
er een stap gebruikt als ingang voor de stuurhoek δ, met dezelfde stapwaarde als in de figuren uit de
literatuur. Vervolgens zijn er aan de hand van de resultaten van het Simulink model ook grafieken
gemaakt, die vergeleken zijn met de grafieken in de literatuur.
20
5.5 Koppeling Virtual Reality model en Simulink model
Als laatste stap komt ook voor dit model het koppelen van het Virtual Reality model met het Simulink
model. Voor deze koppeling wordt een apart Simulink model, zie bijlage 12, gemaakt met daarin een
VR Sink blok, dat de signalen uitstuurt naar het Virtual Reality model. Omdat er voor gekozen is om in
de animatie ook vectoren op te nemen, zullen er veel signalen gekoppeld moeten worden aan het VR
Sink blok.
Voordat de signalen gekoppeld kunnen worden aan het Virtual Reality model, dienen de signalen eerst
aangepast te worden. Uit het Simulink model met de bewegingsvergelijkingen volgen de snelheden v
en r. Uit r kan, door integratie, vervolgens ψ worden bepaald. Omdat in het Virtual Reality model alle
bewegingen beschreven dienen te worden ten opzichte van een vast assenstelsel, moeten de berekende
snelheden uit het Simulink model met de bewegingsvergelijkingen eerst omgerekend worden. Dit komt
omdat de twee snelheden, die daar worden berekend, zijn uitgedrukt in een lokaal assenstelsel dat
meedraait met het model.
Voor omrekenen van deze parameters kan gebruik worden gemaakt van een zogenaamde rotatiematrix.
Dit is een matrix die de rotatie beschrijft tussen twee verschillende assenstelsels. In dit geval is er voor
gekozen om, voor het bepalen van de positie van het chassis en de wielen, vier verschillende
assenstelsels te beschouwen, zie figuur 5.3.
figuur5.3, schets fietsmodel met assenstelsels
Het eerste assenstelsel is het vaste assenstelsel, dat in de figuur zwart gekleurd is. Het tweede
assenstelsel (groen) is gepositioneerd in het massamiddelpunt en draait met het model mee. Het derde
en vierde assenstelsel (blauw) zijn, net als het tweede assenstelsel, lichaamsgebonden en zijn
gepositioneerd in het middelpunt van het voor- en achterwiel. Te zien is dat alleen de x en de y richting
van belang is, omdat de z richting bij alle assenstelsels in het papier gericht is.
De snelheid v, die uit het Simulink model volgt is gericht langs de as y2. Ook de richting van snelheid
u, die van tevoren moet worden gedefinieerd is afhankelijk van het model en is gericht langs de x2-as.
De snelheid is dus nu te schrijven als:
2
][ evuvrr
= (5.9)
waarin 2
er
het tweede assenstelsel, [x2 y2]T , voorstelt. Om de snelheid uit te drukken in termen van het
eerste assenstelsel wordt gebruik gemaakt van de volgende relatie.
121
][ eAvuy
x r
&
&=
(5.10)
21
In deze formule is 21
A de rotatiematrix, tussen het tweede en het eerste assenstelsel. Deze
rotatiematrix, is te schrijven als:
−=
)cos()sin(
)sin()cos(21
ψψ
ψψA (5.11)
Door dus de twee snelheden u en v in een kolom te plaatsen en vervolgens te vermenigvuldigen met de
rotatiematrix, worden de snelheden [ ]yx && uitgedrukt ten opzichte van het eerste (vaste) assenstelsel.
Merk op dat als dit wordt gedaan, er dezelfde vergelijkingen ontstaan als vergelijking (5.7) en (5.8)
Door deze snelheden te integreren wordt vervolgens de positie van het massamiddelpunt ten opzichte
van het vaste assenstelsel beschreven. Uit deze positie kunnen alle posities van de componenten
bepaald worden. Voor de positie van het chassis komt er wel een constante beginwaarde bij, wat de
afstand is tussen de oorsprong van het vaste assenstelsel en de positie van het massamiddelpunt. Dit
moet worden gedaan omdat in de initiële toestand van het model, het massamiddelpunt niet op dezelfde
plaats is gepositioneerd als het vaste assenstelsel dat gebruikt wordt. Deze afstand is gegeven door 0.5l-
b en is ook al gebruikt in het maken van het Virtual Reality model.
Ook de posities van het voor- en het achterwiel kunnen met behulp van een rotatiematrix worden
bepaald. Om de positie van het achterwiel ten opzichte van het vaste assenstelsel te berekenen moet de
initiële afstand [-b 0]T ten opzichte van het tweede assenstelsel vermenigvuldigd worden met de
rotatiematrix (5.11). Door vervolgens dit op te tellen bij de positie van het massamiddelpunt wordt de
positie van het achterwiel bepaald. De positie van het voorwiel kan op dezelfde manier worden
bepaald, maar nu is de afstand tot het massamiddelpunt van het chassis [a 0]T ten opzichte van het
tweede assenstelsel.
Ook dienen de posities van de vectoren en de cilinder, die de plaats van het massamiddelpunt weergeeft
ingegeven te worden. De positie van deze cilinder is precies op het massamiddelpunt. Deze positie was
als eerste al uitgerekend en kan dus direct gebruikt worden om de positie van deze cilinder vast te
leggen.
De posities van de verschillende vectoren moeten op een andere manier worden bepaald, omdat ze
bijna allemaal een bepaalde hoek hebben met het model en daarom hun middelpunt buiten het model
hebben liggen.
De positie van de vector Fy2 is niet vooraf te bepalen, omdat de vector tijdens het runnen van het model
geschaald wordt. Daarom moet telkens het middelpunt van de vector worden bepaald. Als dit is
gebeurd kan de positie van de vector worden beschreven door [0 mp ]T,waarin mp het middelpunt is,
ten opzichte van het derde assenstelsel. Door dit te vermenigvuldigen met de rotatiematrix (5.11) en het
geheel op te tellen bij de positie van het achterwiel ten opzichte van het vaste assenstelsel, wordt de
positie van de vector vastgelegd.
Het schalen van deze vector wordt gedaan door de berekende waarde van Fy2 te delen door 10000. De
schaal van deze vector is dan 1:10000. Het middelpunt van deze vector kan dan eenvoudig worden
bepaald door de helft van de lengte van de geschaalde vector te nemen.
De positie van vector Fy1 is op ongeveer dezelfde wijze te bepalen. Ook bij deze vector kan de positie
worden geschreven als [0 mp ]T
ten opzichte van het vierde assenstelsel. De rotatie van het vierde
assenstelsel is echter niet hetzelfde als de rotatie van het tweede assenstelsel. In dit geval is de rotatie
gegeven door ψ+δ waardoor de rotatiematrix anders is dan die van vergelijking (5.11).
++−
++=
)cos()sin(
)sin()cos(41
δψδψ
δψδψA (5.12)
Door vervolgens de vector [0 mp ]
T te vermenigvuldigen met deze rotatiematrix, en dit op te tellen bij
de positie van het voorwiel, wordt de positie van de vector Fy1 vastgelegd. Het schalen en het bepalen
van het middelpunt van deze vector kan op precies dezelfde wijze worden gedaan als bij de vector Fy2
is gedaan.
22
De lengte van de vector Fy kan bepaald worden door de lengte van de twee vectoren Fy1 en Fy2 op te
tellen. De positie van Fy kan op ongeveer gelijke wijze worden bepaald. De afstand [0 -mp ]T
ten
opzichte van het tweede assenstelsel moet hiervoor vermenigvuldigd worden met de rotatiematrix
(5.11) en dit moet opgeteld worden bij de positie van het massamiddelpunt van het model. De schaling
en het middelpunt kunnen weer op dezelfde wijze worden bepaald als bij de vorige twee vectoren.
De vector die de snelheid in het massamiddelpunt aangeeft is de vector V (zie figuur 5.1). Deze vector
geeft een geschaalde waarde van de snelheid V aan. De schaal van deze vector is 1:25 die in de m-file
van het Virtual Reality model al is ingesteld, omdat V van tevoren al gegeven is. Het middelpunt van
deze snelheidsvector ligt buiten het model omdat V onder een hoek β staat met het chassis. Voor het
uitrekenen van de positie van V moet er een vijfde assenstelsel worden geïntroduceerd. Dit assenstelsel
maakt dan een hoek β ten opzichte van het tweede assenstelsel. Ook komt er een andere rotatiematrix
namelijk:
−−−
−−=
)cos()sin(
)sin()cos(51
βψβψ
βψβψA (5.13)
De positie het middelpunt van de vector is dan gegeven door [V/50 0]T (initiële vector heeft lengte 100)
ten opzichte van het vijfde assenstelsel. Deze vector moet vervolgens vermenigvuldigd worden met de
rotatiematrix (5.13). De uitkomst dient opgeteld te worden bij de berekende positie van het
massamiddelpunt.
De laatste twee vectoren,1αr
,2α
r geven de snelheid weer ter hoogte van de voor- en achteras. De
hoeken die deze snelheidsvectoren maken met het wielvlak zijn gegeven door α1 en α2 voor
respectievelijk de vooras en de achteras . Om de positie van 2α
r te bepalen, moet eerst de lengte van
deze vector worden bepaald. Deze lengte is afhankelijk van de snelheid u van het achterwiel en de hoek
α2, die de vector met het wielvlak maakt. De lengte van de vector 2α
rwordt dan gegeven door:
)cos( 2
2α
αu
=r
(5.14)
De positie van deze vector is gegeven door de afstand [0.5* 2αr
0]T
tot een zesde assenstelsel, dat een
hoek maakt van α2 met het derde assenstelsel. Ook kan dit worden omgeschreven naar een uitdrukking
ten opzichte van het vaste assenstelsel. Dit gebeurt door de afstand ten opzichte van het zesde
assenstelsel te vermenigvuldigen met de rotatiematrix die de rotatie van dit assenstelsel beschrijft ten
opzichte van het eerste assenstelsel. Deze rotatiematrix is gegeven door:
−−−
−−=
)cos()sin(
)sin()cos(
22
2261
αψαψ
αψαψA (5.15)
De uitkomst hiervan moet opgeteld worden bij de positie van het achterwiel.
De positie van de vector 1αr
moet op een andere wijze worden berekend. Allereerst moet, omdat de
vector op het voorwiel aangrijpt, in plaats van de rotatiematrix (5.14), een andere rotatiematrix worden
gebruikt. Deze rotatiematrix beschrijft de rotatie van een zevende assenstelsel ten opzichte van het
eerste assenstelsel. De rotatiematrix is gegeven door:
−+−+−
−+−+=
)cos()sin(
)sin()cos(
11
1171
αδψαδψ
αδψαδψA (5.16)
23
Ook is de lengte van de vector 1αr
niet gelijk aan de lengte van de vector 2α
r. De lengte van
1αr
is, net
zoals bij de vector 2α
r, afhankelijk van de snelheid u en de hoek tussen deze snelheid en het wielvlak
van het voorwiel. Deze hoek wordt nu gegeven door 1αδ − . De lengte van de vector 1αr
is dan te
bepalen door:
)cos( 1
1αδ
α−
=ur
(5.17)
Door de afstand tot het middelpunt [0.5* 1αr
0]T
te vermenigvuldigen met de rotatiematrix (5.16) en
bij deze uitkomst de eerder berekende positie van het voorwiel op te tellen, is de positie van
1αr
vastgelegd.
Het enige dat nu nog ontbreekt, zijn de rotaties van alle componenten. Deze kunnen worden beschreven
aan de hand van figuur 5.1 en figuur 5.3. In figuur 5.3 is te zien dat de rotatie van het chassis en het
voorwiel ψ is ten opzichte van de horizontale as. Ook is te zien dat de rotatie van het voorwiel ten
opzichte van de horizontale as ψ+δ is.
In figuur 5.1 is te zien dat de rotatie van vectoren Fy2 en Fy (in dezelfde richting werkend als –v) gelijk
is aan ψ. De rotatie van de vector Fy1 met de horizontale as is hetzelfde als de rotatie van het voorwiel
met de horizontale as (ψ+δ). De vector V maakt een hoek met de horizontale as van ψ+β, omdat β
linksom positief is gedefinieerd . Als laatste is er nog de vector α1 waarvan de rotatie gegeven is door
ψ+ α1 en de vector α2 waarvan de rotatie gegeven is door ψ+α1 . Deze rotaties zijn, zoals te zien is in
figuur 5.1, allemaal om de z-as.
Door de berekende waarden vervolgens aan het VR Sink blok te koppelen kan een animatie van het
‘fietsmodel’ worden gemaakt.
4.6 Opmerkingen bij de animaties van het fietsmodel
Aan de hand van het fietsmodel kunnen verschillende animaties worden gemaakt. In dit onderzoek is er
voornamelijk gekeken naar het rijden van een bocht met een vaste straal. Deze straal wordt van tevoren
ingesteld, en daaruit kan vervolgens de stuurhoek δ worden bepaald volgens vergelijking (5.18) (zie
[3]).
−−=
12
2
C
b
C
a
Rl
mV
R
lδ (5.18)
Door deze stuurhoek met de andere parameters in het Simulink model te laden, moet er in de animatie
ook te zien zijn dat het model een cirkel met straal R rijdt.
Als er een animatie van het fietsmodel dat een bocht rijdt wordt gemaakt, blijkt echter dat het model
niet precies de vooraf gedefinieerde straal rijdt. Vooral bij hogere snelheden (30 m/s) is de straal al snel
1.5 m groter. De oorzaak van het groter worden van de straal van de bocht is te wijten aan een
veronderstelling die in het begin is gemaakt. Er is namelijk verondersteld dat de snelheid V gelijk is aan
de snelheid u. Maar als de snelheid van het fietsmodel erg groot wordt zal β zo groot worden dat deze
veronderstelling niet meer klopt en u dus wel degelijk kleiner zal zijn dan V.
Bij deze hoge snelheden is er echter nog een opmerking te maken. Bij dit model is er vanuit gegaan dat
de krachten Fy1,Fy2, die beide door de wrijving van de banden met de weg worden opgewekt, oneindig
groot kunnen worden, zie vergelijking 5.3 en 5.4. Hierdoor zal het zo zijn dat het voertuig zelfs bij hele
hoge snelheden niet uit de bocht kan vliegen, wat niet realistisch is. Uit de literatuur (zie [3]) is te
concluderen dat de benadering van de krachten Fy1,Fy2, vanaf een versnelling ay = 4 m/s2 niet meer
geldig is.
24
De bijbehorende snelheid van het voertuig is dan te berekenen met vergelijking (5.19)
yRaV = (5.19)
Hieruit volgt met, R = 40 m en ay = 4 m/s2, een maximaal toelaatbare snelheid V waarbij het model nog
geldig is van 12.65 m/s. In principe maakt het dus in dit geval niet uit of de straal bij een snelheid van
30 m/s niet meer klopt, omdat het model dan toch niet meer geldig is.
Een andere opmerking is dat er in de animaties inschakelverschijnsels een rol spelen. Afhankelijk van
de vooraf ingestelde parameters, duurt het namelijk een bepaalde tijd voordat de auto daadwerkelijk
een cirkel met vaste straal rijdt. Hierdoor komt de geanimeerde bocht dus telkens op een andere plaats
in de ruimte te liggen.
25
6 Conclusies en aanbevelingen
In dit project is er onderzoek gedaan naar het maken van 3D animaties van voertuigmodellen. Door
gebruik van deze animaties kan er extra inzicht worden gekregen in het dynamische gedrag van
voertuigen. Bij het maken van deze animaties dienen er achtereenvolgens verschillende stappen te
worden genomen.
De eerste stap die moet worden genomen is het modelleren van een 3D voertuigmodel in de virtuele
wereld. Dit kan worden gedaan door gebruik te maken van een vrml-script. Hierin kunnen
verschillende geometrieën worden gedefinieerd en door deze op de goede positie te plaatsen kan een
voertuigmodel worden opgebouwd.
De volgende stap die moet worden genomen is het bepalen van de onbekende toestanden van het
voertuigmodel. In dit geval is dit gedaan door de bewegingsvergelijkingen van het voertuigmodel in
Simulink te implementeren en vervolgens bij bekende parameters de onbekende toestanden te bepalen.
Als deze toestanden berekend zijn, zijn alle gegevens over een voertuigmodel compleet. Dan kan er
begonnen worden met het bepalen van de posities, rotaties enz. van alle geometrieën die gedefinieerd
zijn in het vrml-script. Ook dit wordt gedaan in een Simulink model.
Als laatste stap moeten de berekende posities van de verschillende geometrieën worden gekoppeld aan
het model in de virtuele wereld. Dit wordt gedaan door een VR Sink blok te gebruiken. Dit blok kan
worden gekoppeld aan een model in de virtuele wereld. Ook is in te stellen welke posities, rotaties en
dergelijke van belang zijn bij het maken van een animatie. Door vervolgens verschillende berekende
waarden van de geometrieën te koppelen aan het VR Sink blok, wordt een animatie verkregen.
In dit verslag is dit gedaan voor drie verschillende modellen: het kwart voertuigmodel, het halve
voertuigmodel en het fietsmodel. Het kwart en het halve voertuigmodel worden beide gebruikt voor het
bestuderen van de verticale dynamica van een voertuig op een oneffen weg. Het maken van de
animaties van deze modellen leverde weinig problemen op. Ook de animaties van de eigentrillingen
van deze modellen zien er goed uit.
Bij de animaties van het fietsmodel zijn er wel een paar opmerkingen te plaatsen. Bij het rijden van een
bocht met constante straal, bleek namelijk dat in de animatie deze straal niet hetzelfde was als de
vooraf ingestelde straal. De oorzaak hiervan was de veronderstelling dat de snelheid u gelijk was aan V,
maar bij grote snelheden bleek dit niet meer geldig. In dit model is dat echter geen groot probleem
omdat het model maar geldig is tot een snelheid van V=12.65 m/s. Deze beperking in snelheid komt
voort uit de aanname dat de krachten die worden veroorzaakt door wrijving tussen de banden en de
weg oneindig groot kunnen worden. Maar in werkelijkheid zal het voertuig bij een te hoge snelheid wel
degelijk uit de bocht vliegen. Als laatste is er nog op te merken dat er bij de animaties van het
fietsmodel inschakelverschijnsels optreden.
Tot slot kan er geconcludeerd worden dat het maken van animaties met behulp van de VR Toolbox in
Matlab goed mogelijk is en dat deze animaties ook extra inzicht geven in het dynamische gedrag van
voertuigen.
Natuurlijk zijn er voor verder onderzoek nog verschillende aanbevelingen te doen, vooral met
betrekking tot het fietsmodel. In dit onderzoek is namelijk alleen het rijden van bochten met een vaste
straal bestudeerd, maar voor verder onderzoek kunnen ook andere animaties worden gemaakt. Denk
hierbij aan een voertuig dat rechtdoor rijdt en vervolgens ineens moet uitwijken voor een andere auto.
Ook zijn er nog heel veel andere voertuigmodellen die geanimeerd kunnen worden. Denk hierbij aan
een voertuig dat niet alleen met de voorwielen maar ook met de achterwielen stuurt, of een auto met
een aanhanger die een bocht neemt, etc.
26
Literatuurlijst
[1] Website: http://wp.netscape.com/eng/live3d/howto/vrml_primer_body.html, bezocht in maart
2006
[2] Baert, R.S.G., Besselink, I.J.M., Luijten, C.C.M., Meijlink, T.J.J., Schmeitz, A.J.C.,
Veenhuizen, P.A., Wismans, J.S.H.M., Witteman, W.J. Introduction to Automotive
Technology (4N820). Technische Universiteit Eindhoven, faculteit Werktuigbouwkunde,
Eindhoven, Nederland, 2006.
[3] Besselink, I.J.M., college sheets, Vehicle Dynamics (4L150). Technische Universiteit
Eindhoven, faculteit Werktuigbouwkunde, Eindhoven, Nederland, 2003.
27
Bijlage 1 M-file met vrml-script kwart voertuigmodel filename='qcarml.wrl'
fid = fopen(filename,'w');
wrl_header1(fid); % aanmaken camera posities
wrl_random_road(fid); % aanmaken wegprofiel
wrl_tyre(fid,'tyre1' ,[ 0 1 0.3],0.3,0.2); % aanmaken wiel wrl_cylinder(fid,'axle',[0 0.5 0.3],[0 0 1],0.05,1); % aanmaken as
wrl_damping(fid,'dampingunder',[ 0 0.6 0.34],[0 1 0],0.015,0.08); % aanmaken demping onder wrl_damping(fid,'dampingmiddle',[ 0 0.6 0.43],[0 1 0],0.03,0.12); % aanmaken demping midden
wrl_spring(fid,'spring1',[ 0 0.75 0.45],[0.001 0.001 0.0015]); % aanmaken veer
wrl_damping(fid,'dampingupper',[ 0 0.6 0.525],[1 0 0],0.015,0.15); % aanmaken demping boven
wrl_box(fid,'chassis',[0 0 0],[0 0.45 0.6],[0.9 0.9 0.9],[1 0.9 0.1]); % aanmaken chassis
wrl_trailer1(fid); % gelijkstellen translaties verschillende cameraposities
fclose(fid);
28
Bijlage 2 Simulink model bewegingsvergelijkingen kwart voertuigmodel
29
Bijlage 3 Simulink model berekenen componenten kwart voertuigmodel
30
Bijlage 4 M-file berekenen eigentrillingen kwart voertuigmodel global PARA
format long
i_vehicle=1;
PARA=[1 1 1 1 1];
L = 1; % lengte van het chassis voor een VR model
[VPARA] = Veh_par(i_vehicle); % laden van de parameters
[A,B,C,D]=quarter_vehicle_model(VPARA); % laden van de state space matrices
% make VR model
modesqcar_wrl
% ****************************************
sys=ss(A,B,C,D);
[V,D] = eig(A,'nobalance'); % bepalen eigenwaarden van het systeem [dummy,I]=sort(diag(D)); % sorteren eigenwaarden
for n=1:length(I), % eigenwaarden en eigenvectoren in nieuwe matrix zetten
VV(:,n)=V(:,I(n));
DD(n,n)=D(I(n),I(n));
end
D=DD;
V=VV;
fss = abs(diag(D))/(2*pi); % bepalen eigenfrequenties en demping ratio fds = abs(imag(diag(D)))/(2*pi);
Zs = -real(diag(D))./abs(diag(D));
mns=1:4;
for modenr=1:1:length(mns),
mn=mns(modenr);
if modenr==1,
SF=0.3; % SF = schaalfactor
elseif modenr==2,
SF=0.3;
elseif modenr==3,
SF=2;
elseif modenr==4,
SF=2;
end
omega=abs(D(mn,mn));
fs=fss(mn); % ongedempte eigenfrequentie fd=fds(mn); % gedempte eigenfrequentie
Z=Zs(mn); % Demping ratio
T=1/fs; % berekenen trillingstijd T1(:,modenr)=T; % trillingstijd in kolom zetten
t=linspace(0,5*T,50)';
% x = [zs_dot, za_dot, zs, za]
% y = SF * M .* sin ( omega * t + phi )
% bereken toestanden bij eigentrillingen
zs_dot(:,modenr) = SF * abs(V(1,mn)) .* sin( abs(D(mn,mn))*t + angle(V(1,mn)) ); % [m] body displacement
za_dot(:,modenr) = SF * abs(V(2,mn)) .* sin( abs(D(mn,mn))*t + angle(V(2,mn)) ); % [rad] body pitch angle
zs(:,modenr) = SF * abs(V(3,mn)) .* sin( abs(D(mn,mn))*t + angle(V(3,mn)) ); % [m] front axle displacement
za(:,modenr) = SF * abs(V(4,mn)) .* sin( abs(D(mn,mn))*t + angle(V(4,mn)) ); % [m] rear axle displacement
time(:,modenr) = t
end
31
Bijlage 5 M-file met vrml-script half voertuigmodel filename='hcarml.wrl'
fid = fopen(filename,'w');
wrl_header2(fid); % aanmaken camera posities
wrl_random_road(fid); % aanmaken wegprofiel
wrl_tyre(fid,'reartyre' ,[ 0 1 0.3],0.3,0.2); % aanmaken achterwiel
wrl_tyre(fid,'fronttyre' ,[ d.L 1 0.3],0.3,0.2); % aanmaken voorwiel
wrl_cylinder(fid,'rearaxle',[0 0.5 0.3],[0 0 1],0.05,1); % aanmaken achteras
wrl_cylinder(fid,'frontaxle',[d.L 0.5 0.3],[0 0 1],0.05,1); % aanmaken vooras
wrl_damping(fid,'dampingunderrear',[ 0 0.6 0.34],[0 1 0],0.015,0.08); % aanmaken demping
wrl_damping(fid,'dampingmiddlerear',[ 0 0.6 0.43],[0 1 0],0.03,0.12); % aanmaken demping
wrl_damping(fid,'dampingunderfront',[ d.L 0.6 0.34],[0 1 0],0.015,0.08); % aanmaken demping
wrl_damping(fid,'dampingmiddlefront',[ d.L 0.6 0.43],[0 1 0],0.03,0.12); % aanmaken demping
wrl_spring(fid,'springrear',[ 0 0.75 0.45],[0.001 0.001 0.0015]); % aanmaken veer
wrl_spring(fid,'springfront',[ d.L 0.75 0.45],[0.001 0.001 0.0015]); % aanmaken veer
wrl_damping(fid,'dampingupperrear',[ 0 0.6 0.525],[1 0 0],0.015,0.15); % aanmaken demping
wrl_damping(fid,'dampingupperfront',[ d.L 0.6 0.525],[1 0 0],0.015,0.15); % aanmaken demping
wrl_box(fid,'chassis',[d.b-(d.L/2),0,0],[d.L/2 0.45 0.6],[0.9 0.9 0.9],[d.L+0.2 .9 0.1]); % aanmaken chassis
wrl_trailer1(fid); % translaties camera posities gelijkstellen
fclose(fid);
32
Bijlage 6 Simulink model bewegingsvergelijkingen half voertuigmodel
33
Bijlage 7 Simulink model berekenen componenten half voertuigmodel
34
Bijlage 8 M-file berekenen eigentrillingen half voertuigmodel global PARA
format long
i_vehicle=1;
PARA=[1 1 1 1 1 1 1 1 1 1 1 1];
[VPARA] = Veh_par(i_vehicle); % laden parameters
lf = VPARA(3); % [m] parameters voor het maken van een model
lr = VPARA(4); % [m]
L = lf+lr; % [m]
LH = L/2; % [m]
[A,B,C,D]=Half_vehicle_model(VPARA); % laden state space matrices
% make VR model
modes_wrl % maken virtueel model
sys=ss(A,B,C,D);
[V,D] = eig(A,'nobalance'); % bepalen eigenwaarden + eigenvectoren
[dummy,I]=sort(diag(D)); % sorteren eigenwaarden for n=1:length(I), % eigenwaarden en eigenvectoren in nieuwe matrix zetten
VV(:,n)=V(:,I(n));
DD(n,n)=D(I(n),I(n)); end
D=DD;
V=VV;
fss = abs(diag(D))/(2*pi); % bepalen frequenties en dempingsratio
fds = abs(imag(diag(D)))/(2*pi);
Zs = -real(diag(D))./abs(diag(D));
mns=2:2:8;
for modenr=1:1:length(mns),
mn=mns(modenr);
if modenr==1,
SF=0.3; % schaalfactor elseif modenr==2,
SF=0.3;
elseif modenr==3,
SF=4;
elseif modenr==4,
SF=4;
end
omega=abs(D(mn,mn)); fs=fss(mn); % ongedempte eigenfrequentie
fd=fds(mn); % gedempte eigenfrequentie
Z=Zs(mn); % dempings ratio T=1/fs; % trillingstijd
T1(:,modenr)=T;
t=linspace(0,5*T,50)';
% x = [zb, phi, zaf, zar]
% y = SF * M .* sin ( omega * t + phi )
% bepalen toestanden tijdens eigentrillingen
zb(:,modenr) = SF * abs(V(1,mn)) .* sin( abs(D(mn,mn))*t + angle(V(1,mn)) ); % [m] body displacement
phi(:,modenr) = SF * abs(V(2,mn)) .* sin( abs(D(mn,mn))*t + angle(V(2,mn)) ); % [rad] body pitch angle
zaf(:,modenr) = SF * abs(V(3,mn)) .* sin( abs(D(mn,mn))*t + angle(V(3,mn)) ); % [m] front axle displacement
zar(:,modenr) = SF * abs(V(4,mn)) .* sin( abs(D(mn,mn))*t + angle(V(4,mn)) ); % [m] rear axle displacement
time(:,modenr) = t;
end
35
Bijlage 9 M-file met vrml-script fietsmodel filename='fiets2.wrl'
fid = fopen(filename,'w');
wrl_header1(fid); % aanmaken camera posities
wrl_box(fid,'reartyre',[0,0,0],[(-d.b) 0 0],[1 0 0],[0.6 .4 0.06]); % aanmaken achterwiel
wrl_box(fid,'fronttyre',[0,0,0],[d.a 0 0],[1 0 0],[0.6 .4 0.06]); % aanmaken voorwiel
wrl_box(fid,'chassis',[d.b-0.5*d.l,0,0],[(0.5*d.l-d.b) 0 0],[0 0 1],[d.l 0.05 0.08]); % aanmaken chassis
wrl_box(fid,'Fy1',[0,0,0],[(-d.b) -0.5 0],[0 1 0],[0.04 1 0.08]); % aanmaken vector Fy1 wrl_box(fid,'Fy2',[0,0,0],[d.a -0.5 0],[0 1 0],[0.04 1 0.08]); % aanmaken vector Fy2
wrl_box(fid,'alpha1',[0,0,0],[(-d.b+0.5) 0 0],[1 1 0],[1 0.04 0.08]); % aanmaken vector alpha1
wrl_box(fid,'alpha2',[0,0,0],[d.a+0.5 0 0],[1 1 0],[1 0.04 0.08]); % aanmaken vector alpha2
wrl_cylinder(fid,'cog',[0,0,0],[0 0 0],0.08,0.08); % aanmaken cilinder massamiddelpunt
wrl_box(fid,'V',[0,0,0],[(d.V/50) 0 0],[0 1 1],[d.V/25 0.04 0.08]); % aanmaken vector V
wrl_box(fid,'Fcog',[0,0,0],[0 0.5 0],[1 0 1],[0.04 1 0.08]); % aanmaken vector Fy
wrl_inner(fid,'inner',[-1.47,-40.027,0.02],[1 1 1]); % aanmaken bocht wrl_outer(fid,'outer',[-1.47,-40.027,0.01],[1 1 1]); % aanmaken bocht
wrl_trailer1(fid); % translaties van cameraposities gelijkstellen
fclose(fid);
36
Bijlage 10 Simulink model bewegingsvergelijkingen fietsmodel
37
Bijlage 11 Simulink model berekenen componenten fietsmodel