ArduMower: Simulation der Kinematik eines Fahrzeugs mit drei Rädern: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 189: Zeile 189:
Um die Position des Punktes M in Inertialkoordinaten zu berechnet, 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.
Um die Position des Punktes M in Inertialkoordinaten zu berechnet, 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.


<math>_I \underline{v}_M = ^{IK} \textbf{A} /math>
<math>_I \underline{v}_M = ^{IK} A /math>





Version vom 17. Januar 2018, 21:19 Uhr

Skizze eines 3-rädrigen Fahrzeugs mit Geschwindigkeiten, Ortsvektoren und Koordinatensystemen zur Herleitung des kinematischen Fahrzeugmodells.

Autor: Prof. Dr. Mirek Göbel


Einleitung

Dieser Artikel beschreibt den Aufbau eines Simulationsmodells für ein dreirädriges Fahrzeug, um dieses für die Entwicklung von Steuerungs- und Regelungsalgorithmen zum autonomen Fahren zu verwenden. Damit stellt es die Basis dar, um ohne Hardware die Algorithmen in einer closed-loop-Simulationsumgebung entwickeln und vor allem testen zu können. Das Vorgehen orientiert sich am V-Modell.


Anforderungen

ID Inhalt Ersteller Datum Geprüft von Datum
1 Das Fahrzeugmodell muss die Kinematik des als starr angenommenen Fahrzeugkörpers beschreiben. Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
2 Das Fahrverhalten muss unter der Annahme korrekt abgebildet werden, dass die Räder schlupffrei abrollen. Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
3 Am Eingang werden die Längsgeschwindigkeiten entlang der x-Achse des Fahrzeugkoordinatensystems K der Räder rechts (R) und links (L) vorgegeben. Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
4 Am Ausgang müssen
  1. die Position und Geschwindigkeit des Mittelpunktes M und des frei definierbaren Punktes D in x- und y-Richtung des Inertialsystems I
  2. der Gierwinkel
  3. und die Gierrate

zur Verfügung stehen.

Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
5 Das Modell muss in Matlab/Simulink erstellt werden. Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
6 Die Rechnung des Modells erfolgt mit diskreten Zeitschritten (es sind diskrete Integratoren zu verwenden). Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
7 Die Dokumentation muss auf Basis der Mehrkörpersystemeberechnung leicht nachvollziehbar erfolgen. Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
8 Bei der Simulation muss eine graphische Ausgabe der Position und Richtung des Fahrzeugs in x- und y-Koordinaten des I-Systems erfolgen. Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017
9 xyz Prof. Göbel 07.06.2017 Prof. Schneider 08.06.2017


Funktionaler Systementwurf / Technischer Systementwurf

Bei der Größe des zu erstellenden Modells werden die Schritte Funktionaler Systementwurf / Technischer Systementwurf des V-Modells zusammen gelegt und bereits Schnittstellen zwischen den einzelnen Blöcken definiert.

Das Fahrzeugmodell wird unterteilt in

  • ein Block "Gieren und Geschwindigkeit in Achsmitte", in dem die Position und Geschwindikeit der Punkte M und D in Fahrzeugkoordinaten K bestimmt werden.
  • und zwei Blöcke "Transformation und Integration Punkt M/D", in denen Position und Geschwindikeit der Punkte M und D in Inertialkoordinaten I bestimmt werden.
Funktionaler Systementwurf für die Modellierung eines 3-rädrigen Fahrzeugs mit Geschwindigkeiten, Ortsvektoren und Koordinatensystemen.


Komponentenspezifikation

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.


Programmierung

Bei der Bestimmung der Geschwindikeit 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:

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!).


Mit den eingetragenen Komponenten sieht die Gleichung wie folgt aus:

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: ). Es folgt:

.

Mit eingesetzten Komponenten ergibt sich im körperfesten System K:

.

Aus Zeile 1 der obigen Gleichung kann die Gierrate (selbstverständlich im körperfesten System K) mit nachstehendem Zusammenhang ermittelt werden.

Umgestellt folgt daraus:

Um die Position des Punktes M in Inertialkoordinaten zu berechnet, 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.

Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle _I \underline{v}_M = ^{IK} A /math> == Komponententest == Da es sich bei dieser Entwicklung um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab. {| class="mw-datatable" ! style="font-weight: bold;" | ID ! style="font-weight: bold;" | Testfallbeschreibung ! style="font-weight: bold;" | Eingang <math>_Kv_{Lx} [\mbox{m/s}]} ! style="font-weight: bold;" | Eingang ! style="font-weight: bold;" | Erwartetes Ergebnis ! style="font-weight: bold;" | Testergebnis ! style="font-weight: bold;" | Testperson ! style="font-weight: bold;" | Datum |- | 1 | Das Fahrzeugmodell steht. | 0 | 0 | Alle Ausgänge sind Null. | OK | Prof. Göbel | 10.06.2017 |- | 2 | Das Fahrzeugmodell fährt eine Rechtskurve. | 1 | 0 | Rechtskurve: Negative Gierrate, negativer Gierwinkel. | OK | Prof. Göbel | 10.06.2017 |- | 3 | Das Fahrzeugmodell fährt eine Linkskurve. | 0 | 1 | Linkskurve: Positive Gierrate, positiver Gierwinkel. | OK | Prof. Göbel | 10.06.2017 |- | 4 | Das Fahrzeugmodell fährt geradeaus. | 1 | 1 | Keine Gierrate und Gierwinkel, . | OK | Prof. Göbel | 10.06.2017 |- |}

Ausblick

Was kann/muss noch verbessert werden?


Literaturverzeichnis