Signalverarbeitung
Geschwindigkeitssignal
Diesen Abschnitt beschäftigt sich mit der Geschwindigkeitsmessung auf dem autonomen mobilen Plattform.
Problembeschreibung
Die Drehung des Motors kann anhand 3 Hall-Sensoren festgestellt werden. Jeder der Sensoren gibt für eine halbe Umdrehung ein High-Pegel, und für die 2. Hälfte gibt er ein Low-Pegel aus. Die Signale der 3 Sensoren sind jeweils um 1/3 Umdrehung voneinander versetzt. Daraus folgt, dass nach jede 1/6 Umdrehung am Motor ein Hall-Sensor sein Pegel ändert. Folgendes Abbild verdeutlicht den Signalverlauf:
Um die Rotationsgeschwindigkeit möglichst genau zu messen, muss man bei jedem Sensor sowohl die steigende als auch die fallende Flanke zum Zeitpunkt der Pegeländerung erfassen (Oder mit einer vordefinierten Verzögerung). Dadurch kann zu einer vorgegebenen Streckenänderung (1/6 Umdrehung) die benötigte Zeit ermittelt werden (Zeit seit der letzten Pegeländerung) Diese Anforderung lässt sich mit der ereignisbasierten Programmierung einfach lösen. Zum Zeitpunkt einer Pegeländerung wird die aktuelle Programmausführung unterbrochen und das Modul zur Messung der Geschwindigkeit ausgeführt. Dies gewährleistet, dass die Zeit zwischen 2 Flanken von den Hall-Sensoren auch korrekt erfasst werden kann.
Übertragung der Lösung auf die Hardware
Es müssen für eine optimale Messung der Rotationsgeschwindigkeit 3 interrupt-fähige Leitungen benutzt werden, die sowohl steigenden als auch fallenden Flanken erkennen können. Die benutzte Hardware (dSPACE DS1104) hat 4 interrupt Eingänge, die aber nur fallende Flanken erkennen können. Eine direkte Anbindung an die Hall-Sensoren wurde die Messgenauigkeit auf die Hälfte reduzieren.
Zusammenfassung der Hall-Signale
Die folgende Schaltung bewirkt die Zusammenfassung der Hall-Signale. Jede steigende oder fallende Flanke auf den 3 Hall-Leitungen wird durch eine fallende Flanke am Ausgang der Schaltung dargestellt. Nach einer kurzen Zeit steigt der Pegel auf High (Lade- / Entladevorgang am Kondensator)
Mithilfe dieser Schaltung können die benötigten Interrupt-Leitungen auf 1 reduziert werden.
Realisierung der Messung
Der oben aufgeführte Ansatz bezieht sich nur auf die Messung der Hardwaresignale. Falls das Gesamtsystem mit einer Zykluszeit abtastet, die um mehrere Größenordnungen größer ist als die größte Zeit zwischen 2 Hall-Sensor-Flanken, kann eine genaue Messung der Geschwindigkeit erfolgen. Sollte aber die Veränderung der Hall-Pegel relativ langsam im Vergleich zu Systemzykluszeit sein, kann es sein, dass die Ermittlung der Geschwindigkeit nicht zu den kritischen Zeiten erfolgt. Hier könnte ein ähnliches Phänomen wie das Untertasten entstehen.
Um dies entgegen zu wirken, soll die Software aus 2 Modulen bestehen. Das erste Modul realisiert das Oben aufgeführte Verhalten. Per Interrupt wird jede Flanke vom Hall-Sensor regestriet und die Zeit festgehalten. Daraus wird nicht nur die Geschwindigkeit, sondern die auch die Beschleunigung ermittelt.
Ein zweites Modul wird vom System zyklisch abgefragt. Dieser liest die Beschleunigung vom 1. Modul und berechnet daraus die Geschwindigkeit zum Zeitpunkt der Abfrage.
Hallsensoren
Softwarearchitektur des Fahrzeugs
[Softwarearchitektur_des_Fahrzeugs]
→ zurück zum Hauptartikel: Praktikum SDE
→ zurück zum übergeordneten Artikel: Fahrzeughardware
→ zurück zum zusatz Artikel: Hall-Sensor
BSD-Lizenz
Copyright (c) 2014, Hochschule Hamm-Lippstadt, Dep. Lip. 1, Asaad Mohammed Al-Suleihi
Hochschule Hamm-Lippstadt. Alle Rechte vorbehalten.