Das Modell wird insgesamt als Komponente aufgefasst, d. h. die einzelnen Blöcke aus dem Systementwurf werden als Bestandteil der Komponente "Fahrzeugmodell" definiert. An dieser Stelle wäre es selbstverständlich möglich, die Komponente weiter aufzuteilen (damit würde die Komponente in Teilsystem umbenannt) und auch beim Testen diese einzelnen Komponenten dann zu berücksichtigen.
Die Spezifikation besteht aus den theoretischen Grundlagen zur Beschreibung von der ebenen Fahrzeugbewegung.
=== Ansatz ===
Bei der Bestimmung der Geschwindigkeit in M wird mit dem Satz "räumliche Bewegung" die bekannte Geschwindigkeit in R, der Relativdrehvektor der Koordinatensysteme K gegenüber I sowie der Ortsvektor zwischen R und M verwendet (siehe <ref> M. Göbel: Formelsammlung Mehrkörpersysteme und Robotik, HSHL, Version 29.06.2017</ref>, Abb. 1):
Im körperfesten Koordinatensystem K beschrieben folgt eine Beschreibung, in der jeder Term selbst 3 Komponenten (x, y, z) enthält und mit denen jetzt im jeweiligen Koordinatensystem gerechnet werden kann (das ging bei der vektoriellen Schreibweise oben noch nicht!).
=== x-y-z-Komponenten einsetzen und Geschwindigkeit in M bestimmen ===
Mit den eingetragenen Komponenten sieht die Gleichung wie folgt aus:
<math>_K \underline{v}_M =
\begin{bmatrix}
v_{Rx}\\
0\\
0
\end{bmatrix} +
\begin{bmatrix}
0\\
0\\
\dot{\psi}
\end{bmatrix} \times
\begin{bmatrix}
-l/2\\
b/2\\
0
\end{bmatrix} =
\begin{bmatrix}
v_R - b/2 \cdot \dot{\psi}\\
-l/2 \cdot \dot{\psi}\\
0
\end{bmatrix}
</math>
=== Bestimmung der Gierrate===
Zur Bestimmung der Gierrate wird obiger Ansatz erneut verwendet, um von der bekannten Geschwindigkeit in R auf die ebenfalls bekannte Geschwindikeit in L "zu schließen", sodass der Relativdrehvektor der Koordinatensysteme K gegenüber I in K-Koordinaten bestimmt werden kann (jetzt mit Komponenten besser Spaltenmatrix genannt: <math>^{IK} _K \underline{\omega}</math>). Es folgt:
=== Position der Punkte M und D in Inertialkoordinaten ===
Um die Position des Punktes M in Inertialkoordinaten zu berechnen, wird seine Geschwindigkeit in Intertialkoordinaten I benötigt, da diese dann durch eine einfache Integration in die Position überführt werden kann. Im körperfesten System ist dies nicht erlaubt bzw. möglich, da dieses sich dreht! Mit Hilfe einer Transformationsmatrix kann diese Umrechnung in einem Schritt erfolgen.
Der über den Ortsvektor <math>\vec{r}_{RD}</math> von R nach D beliebig wählbare Punkt D kann genauso wie oben der Mittelpunkt M behandelt werden. Die Gleichungen in Kurzform dazu sind wie folgt.
Im körperfesten Koordinatensystem K beschrieben folgt eine Beschreibung, in der jeder Term selbst 3 Komponenten (x, y, z) enthält und mit denen jetzt im jeweiligen Koordinatensystem gerechnet werden kann (das ging bei der vektoriellen Schreibweise oben noch nicht!).
Die Programmierung ist nun auf Basis der oben ermittelten Gleichungen möglich und erfolgt in Matlab/Simulink.
Matlab
Über ein Start-Skript werden alle relevanten Parameter gesetzt und das Modell geöffnet.
%%%%%% Simulation des Ardumower-Fahrzeugs%%%%%% Prof. Mirek Göbel, 08.06.2017%% Initialisierungclc;clear;closeall;%% EinstellungenPAR_Darstellung_Schalter_EIN_bit=1;Simulinkmodus=1;addpath../Hauptprogramm/funktionen/;addpath../Hauptprogramm/libraries/;addpath../Hauptprogramm/parameter/;%% ParameterPAR_FZG_spurweite_f64=0.4;% in mPAR_FZG_radstand_f64=0.4;% in mPAR_FZG_abstand_sensor_VA_f64=0.23;% Abstand des Perimeter-Sensors von der Vorderachse in mT=0.01;% Schrittweite für die Simulation (gilt für das ganze Modell)PAR_VIS_Anzahl_Schritte_n=10;% Angabe, alle wieviel Schritte etwas dargestellt werden soll% StartwinkelPAR_FZG_psi0_I_f64=0;% Start-Gierwinkel in radcospsi=cos(PAR_FZG_psi0_I_f64);% zur Abkürzung / Vermeidung von Schreibarbeit (s. u.)sinpsi=sin(PAR_FZG_psi0_I_f64);% zur Abkürzung / Vermeidung von Schreibarbeit (s. u.)% Startweg des Mittelpunktes MPAR_FZG_x0_I_f64=0;% Start-x-Weg in mPAR_FZG_y0_I_f64=0.5;% Start-y-Weg in m% Startweg des Punktes Dr_MDx_K=PAR_FZG_radstand_f64/2+PAR_FZG_abstand_sensor_VA_f64;r_MDy_K=PAR_FZG_spurweite_f64/2+0;PAR_FZG_xD0_I_f64=PAR_FZG_x0_I_f64+cospsi*r_MDx_K+sinpsi*r_MDy_K;% Start-x-Weg des Punktes D in mPAR_FZG_yD0_I_f64=PAR_FZG_y0_I_f64-sinpsi*r_MDx_K+cospsi*r_MDy_K;% Start-y-Weg des Punktes D in m%% Modell auf!open('fahrzeugmodell2017a.slx');
Simulink
Komponententest
Da es sich bei dieser Entwicklung um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab (vgl. Tabelle 2).
Als Abschluss dieses Artikels zeigt Abb. 6 eine Ergebnisdarstellung der Fahrzeugbewegung in I-Koordinaten (Draufsicht).
Zusammenfassung
Das Modell ist fertig und funktioniert wie gewünscht! Somit ist die Entwicklung von Algorithmen möglich, ohne ein Fahrzeug in Hardware zur Verfügung zu haben. Dadurch eröffnen sich ernorme Möglichkeiten wie z. B. simultanes Entwickeln, automatisiertes Testen, simulative Auslegung von Reglern u. s. w.!