Geschwindigkeitsermittlung

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

→ zurück zum Hauptartikel: Praktikum SDE


Ziel dieses Spezialthemas ist die Ermittlung der wahren Gechwindigkeit des Fahrzeuges im Online-Model. Als Input werden die Hallsensoren des Motors asynchron ausgelesen und durch eine Logik verarbeitet.

Projektteam

Jan Kifmann
Hauke Ludwig

Hardware

Software

Auslesen der Interrupts

Nachdem im vorherigen Abschnitt die Hardware-Ansteuerung für die Geschwindigkeitsermittlung dargestellt wurde, soll der folgende Abschnitt die Software-Implementierung darstellen. Um nach Möglichkeiten alle Hall-Signale auslesen zu können, wird die Abfrage der Sensoren in einen asynchronen Task ausgelagert. Die geschieht durch die Anbindung eines Triggers, welcher auf die Interrupts der DS1104 achtet. Sobald dort ein Interrupt gesetzt wird, werden die Sensoren abgefragt und einmalig ausgewertet. Der asynchrone Task findet sich im Hauptmodell "CCF_online" im Submodul "SEN - Geschwindigkeit". Dort sieht man, dass es ein weiteres Submodul gibt, welches als Trigger den Eingang "DS1104MASTER_HWINT_I2" hat. Über diesen Block werden die Interrupts der DS1104 eingelesen. Das ist im folgenden Bild dargestellt.

Submodul "SEN - Geschwindigkeit"

Wie man im eben dargestellten Bild erkennne kann, werden die einzelnen Outputs des Submodules durch "Rate Transmission" auf "GoTo" gesendet. Dieser Schritt ist notwenidg, um dem Modell immer den alten Wert vorzuhalten. Gleichfalls ist dies die Schnittstelle zwischen den asynchronen und synchronen Bereich des Modells.

Kombinatorik der Hall-Signale

Wie eben beschrieben werden die Hall-Signale asynchron ausgelesen. Sobald diese über den ADC-Eingang der DS1104 eingelesen wurden, werden diese mit dem Wert 0.5 verglichen. Dieser Schritt erzeugt aus dem analogen Eingangssignal ein digitales Signal im Wertebereich [0 1], welches die weitere Verarbeitung deutlich erleichtert. Die digitalen Signale werden anschließend in einer S-Function bearbeitet und zur Geschwindigkeitsermittlung aufbereitet. Sollte es beim Kompilieren des Projektes Probleme geben, kann es hilfreich sein, wenn man die S-Function einmal neu "Builded". Dies passiert, indem man die S-Function öffnet und oben rechts auf den Button "Build" klickt.

Innerhalb der S-Function werden die Hall-Signale einer Kombinatorik unterzogen, welche die folgenden Eigenschaften besitzt:

Motorstatus Hall A Hall B Hall C
1 1 0 1
2 1 0 0
3 1 1 0
4 0 1 0
5 0 1 1
6 0 0 1

Hierbei entspricht jeder positive Wechsel (1->2 ... 5->6) einer Vorwärtsbewegung und jeder negative Wechsel (6->5 ... 2->1) einer Rückwärtsbewegung. Dabei entspricht ein Statuswechsel einer 1/6-Motordrehung. Durch empirische Studien konnte nachgewiesen werden, dass sich eine Motordrehung nach folgender Formel in die reale Bewegung in des Fahrzeuges auf der Straße umwandeln lässt: SPEED = 0.0867 * MOTORSPEED + 0.027.

HIL Test

Datum: 02.09.2014 Teilnehmer: Al-Suleihi, Prof. Schneider

Aufbau

  • Signalgenerator erzeugt Rechteckflanken mit einer Frequenz von 735,2 Hz
  • Frequenz mit Oszilloskop geprüft
  • Signal geht auf dSpace Breakoutbox
  • Signalverarbeitung im Simulink Modell
  • Gesamte AMR Modell läuft mit.
  • Die Flanken starten einen 10uS Timer.
  • Zwischen den Flanken liegen 1,36ms
  • In Control Desk werden n=137 bzw. 138 Flanken gezählt.
  • Zu Testzwecken wurde die Frequenz ermittelt.
  • Die Frequenz liegt zwischen 724,6Hz und 729,92Hz.
  • Der Raddurchmesser beträgt 0,0663m.
  • Der Radumfang berechnet sich zu 0,2083m.
  • 4 Motorumdrehungen entsprechen 1 Radumdrehung.
  • Mit der neuen Schaltung werden die steigenden und fallenden Flanken des Hallgebers zu je einer steigenden Flanke gewandelt.
  • Pro Kanal A, b, c ergeben sich somit 2 Flanken.
  • Pro Motorumdrehung entstehen 6 Flanken.
  • Mit jeder Flanke hat sich das Rad um 0,008678m bzw. 8,7mm gedreht.
  • Die gefahrene Strecke sollte aus der Summe der Teilstrrecken ermittelt werden.
  • Der Geschwindigkeitsfehler berechnet sich zu:
  • Der maximale Geschwindigkeitsfehler liegt somit bei 4,6cm jede Sekunde.
  • Mit statistischen Mitteln (z.B. Tiefpassfilterung) sollte dieser Fehler um den Faktor 0,1 auf 5mm/s verbessert werden können.
  • Um die Auflösung zu erhohen, könnte mit jedem Timerimpuls die Stecke inkrementiert werden. Dies würde die Auflösung um den Faktor 137 erhöhen. Wenn je 8,7mm 137 Timerflanken gezählt werden sind dies 63um.

Nächste Schritte

Deadline: Freitag, 05.09.14 Bearbeiter: Asaad Al-Suleihi

  • Umsetzung der Testumgebung auf der Hardware (AMR)
  • Strecken und Geschwindigkeitsberechnung.
  • Tiefpassfilterung über 10 Werte
  • Autonome Fahrt in den Geschwindigkeiten 0,5m/s, 1m/s, 2m/s, 3m/s
  • Verifizierung des HIL-ergebnisse am Fahrzeug.
  • Absolute Referenzmessung der Strecke und Geschwindigkeit


Umsetzung der Lösung auf der Hardware (AMR)

Asaad Al-Suleihi

Die Lösung wurde auf Basis der in der HIL-Simulation gewonnenen Erkenntnisse auf der Hardware umgestzt. Dabei ist abweichend zu der HIL-Simulation zwecks der Ermittlung der Zeit nicht auf einem zyklischen Timer zurückgegriffen. Die Zeitmessung wurde auf Basis der dSPACE RTLib (Real-Time Library) implementiert. Die RTLib stellt C-Funktionen zur Verfügung, mit denen den Wert der Zeitgeber der Hardware gelesen werden kann. Diese stellt die höchste genauigkeit dar, die mit der Hardware erreicht werden kann.

Bei der Implementierung und Test hat sich herausgestellt, dass:

  • Die Geschwindigkeit des Fahrzeugs im aufgebockten Zustand wellenformig schwingt. Die Frequenz der Signale der Hall-Sensoren variiert Sinusformig.
  • Bei der Ausgang des XOR-Gatters zu Zusammenführung der Hall-Signale treten Ausreißer auf die einige 10µ-Sekunden breit sind. Diese sind aber ausreichend, um bei der Hardware ein Interrupt auszulösen. Die Ursache der Ausreißer und eine Möglichkeit zur hardwaremäßigen Lösung soll noch betrachtet werden.
    Ausreißer am Ausgang des XOR-Gatters

Die Detektion der Ausreißer könnte per Software gelöst werden. Es wurde ein mindest Abstand zwischen 2 Flanken definiert. Alle Flanken, die in einem kurzeren Abstand zu einander auftreten werden als Fehlflanken erkannt und nicht für die Geschwindigkeitsberechnung herangezogen.

Jedoch ist noch ein Rauschen auf Geschwindigkeitssignal festzustellen. Diese lässt sich durch minimal abweichenden Zeiten zwischen den Flanken erklären. Dieses Rauschen kann gefiltert werden. Zu Demonstration wurde das Signal in PT-1-Glieder unterschiedliche Frequenzen weiterbearbeitet.

Geschwindigkeitssignal vom AMR ungefiltert und mit PT1-Filter der Frequenzen 0,1Hz, 0,5Hz, 1Hz, 2Hz und 5Hz


Versionsablage

Sommersemester 2014


→ zurück zum Hauptartikel: Praktikum SDE