Geschwindigkeitsüberwachung
Autoren: Alexander Lips, Melanie Luncke
Betreuer: Prof. Schneider
→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)
Einleitung
Im Rahmen der Veranstaltung "Angewandte Elektrotechnik" innerhalb des Masterstudiengangs "Business and Systems Engineering" wird durch die Studierenden ein semesterbegleitendes Projekt im Bereich der Mikrocontroller durchgeführt. Hierbei werden anhand eines praktischen Beispiels Kenntnisse in der Ansteuerung unterschiedlicher Sensoren und Aktuatoren durch einen Mikrocontroller, sowie der damit verbundenen Verarbeitung und Auswertung der Sensordaten vermittelt.
Im folgenden Projekt soll eine Geschwindigkeitsüberwachung mittels eines Ultraschallsensors realisiert werden. Analog zur Funktionsweise der Geschwindigkeitsüberwachung im Straßenverkehr, wird die Geschwindigkeit eines vorbeirollenden Modellautos gemessen, angezeigt und bewertet. Neben der Messung soll parallel eine Zustandsschätzung anhand eines Kalman - Filter erfolgen wodurch die Position, die Geschwindigkeit und die Beschleunigung des Fahrzeugs geschätzt werden können.
Ergänzend zu der Geschwindigkeitsüberwachung findet ebenfalls eine Kontrolle unterschiedlicher Ampelphasen statt. Hierfür wird eine Modellbau Ampel in Verbindung mit einer Infrarotlichtschranke genutzt um einen Regelverstoß, der durch das Überfahren einer roten Ampel entsteht, zu prüfen.
Um die unterschiedlichen Werte und Hinweise visualisieren zu können wird eine grafische Benutzeroberfläche, die mit dem MATLAB APP Designer realisiert wurde, verwendet. Hierdurch ergibt sich die Möglichkeit neben einer nutzerfreundlichen Inbetriebnahme und Steuerung der Geschwindigkeitsüberwachung ebenfalls einer einfachen Erkennung der Regelverstöße. An dem Modell selbst dient eine rote LED als visuelle Kennzeichnung der Regelverstöße.
Vorgehensweise bei der Entwicklung des Systems
Bei der Entwicklung des Systems zur Geschwindigkeitsüberwachung fand eine Orientierung am V - Modell statt. Somit konnte anhand einer systematischen Vorgehensweise eine Validierung bezüglich der Anforderungen und eine Verifikation bezüglich der Ergebnisse der einzelnen Stufen gewährleistet werden.
Das V-Modell ist ein wichtiges Vorgehensmodell und besitzt eine breite Anwendung bei der Entwicklung von Systemen. Den Grundsatz des Modells bilden Entwicklungs- und Testarbeiten die zueinander korrespondieren und gleichwertige Tätigkeiten darstellen. Durch die Aufteilung des Vorgehens in einzelne Entwicklungsphase kann eine Verifikation des Systems gewährleistet werden. Hierbei wird das Problem bzw. die Aufgabe in einzelne Teilaufgaben heruntergebrochen, hierfür Teillösungen entwickelt und anschließend wieder zu einem Gesamtsystem integriert. Das Ziel ist es durch eine saubere Anforderungsdefinition und Spezifikation späte Fehler bei der Implementierung und Integration zu vermeiden und eine Struktur in den Ablauf der Entwicklung zu bringen.
Anforderungen
Entwurf eines mechatronischen Systems für die Geschwindigkeitsmessung eines Objektes:
1) Geschwindigkeitsermittlung:
- Die Geschwindigkeit v des Modellautos muss auf einem definierten Streckenabschnitt mittels eines Ultraschallsensors und zwei Lichtschranken ermittelt werden.
- Die Geschwindigkeit v des Autos muss visuell auf einem LCD-Display dargestellt werden.
- Eine Überschreitung der vorgegebenen Maximalgeschwindigkeit v > v_max muss visuell über eine LED dargestellt werden.
2) Ampelverstoß:
- Ein Ampelverstoß liegt vor, wenn das Auto bei "rot" die Lichtschranke unterbricht und muss über eine LED visuell dargestellt werden.
3) Die Fahrzeugbewegung wird mit einem Konstante-Beschleunigung-Modell modelliert und die Zustände Position, Geschwindigkeit Beschleunigung werden mittels Zustandsschätzer (Kalman-Filter) geschätzt.
Anforderungen in Tabelle überführen und neue Anforderungen ergänzen, Kennzeichnung und Zuordnung zu den Tests
Funktionaler Systementwurf/Technischer Systementwurf
Anpassen und in PAP Designer erstellen
Komponentenspezifikation
Für die Projektdurchführung werden folgende Komponenten benötigt:
ID | Komponente | Aufgabe | Ersteller | Datum |
---|---|---|---|---|
001 | Mikrocontroller | Regler (Arduino Uno) | Lips, Luncke | 30.10.2020 |
002 | Ultraschallsensor | Geschwindigkeits- bzw. Abstandsmessung | Lips, Luncke | 30.10.2020 |
003 | Ampel | Signaldarstellung (rot, gelb, grün) | Lips, Luncke | 30.10.2020 |
004 | Lichtschranke | Objekterkennung bei Ampelkreuzung | Lips, Luncke | 30.10.2020 |
005 | LED | Aufleuchten bei rotem Ampelsignal und Unterbrechung der Lichtschranke, Aufleuchten bei Geschwindigkeitsüberschreitung | Lips, Luncke | 30.10.2020 |
006 | Modellauto | Messobjekt | Lips, Luncke | 30.10.2020 |
007 | LCD Display | Geschwindigkeitsanzeige | Lips, Luncke | 30.10.2020 |
008 | Modellaufbau (Brücke) | Halterung für die verwendeten Komponenten | Lips, Luncke | 30.10.2020 |
Die einzelnen Hardware Komponenten Bild Beschreibung Kennzeichnung für anschließende Zuordnung zu den Subsystemen Tests etc. Subsysteme (Hardware Ansicht) und das Zusammenwirken der Hardware Komponenten kurz beschreiben. --> Subysteme anschließend auf Funktion testen in der Testphase
001:
002:
003:
usw.
Die Funktionsweise des Ultraschallsensors wird folgend beschrieben:
Mit dem Ultraschallsensor HC-SR04 soll über eine Abstandsmessung die Geschwindigkeit des Modellautos bestimmt werden. Der Messbereich des Sensors liegt laut Datenblatt zwischen 3 cm und 400 cm mit einer maximalen Abweichung von 0,3 mm.
Der Ultraschallsensor wird an seinen vier Pins an den Mikrocontroller angeschlossen. Zwei der Pins (VCC und GND) werden für die Spannungsversorgung mit 5 V benötigt. Die anderen beiden Pins (Trig und Echo) werden für das Senden und Empfangen der Ultraschallwellen verwendet. Der Trig-Pin bzw. Ultraschalllautsprecher sendet einen Schallimpuls, welcher beim Auftreffen auf ein Objekt reflektiert und am Echo-Pin bzw. Ultraschallmikrofon wieder empfangen wird. Liegt an dem Trig-Pin ein High-Signal an, sendet der Sensor eine Ultraschallwelle aus, bis wieder ein Low-Signal an dem Trig-Pin anliegt. Die gesendete Ultraschallwelle entfernt sich so lange vom Sensor, bis sie auf ein Hindernis (das Modellauto) trifft. Anschließend wird sie zum Sensor zurückreflektiert. Empfängt der Sensor die reflektierte Welle, sendet der Echo-Pin ein High-Signal. Mit der gemessenen Zeit zwischen dem Senden und Empfangen der Ultraschallwelle kann die Entfernung bestimmt werden.
Um die Geschwindigkeit zu erfassen, werden zwei Abstände festgelegt, an denen die Entfernung gemessen werden soll. So kann anschließend die Geschwindigkeit bestimmt werden.
Umsetzung (HW/SW)
1. Hardware
Für die Projektdurchführung wurde zunächst die benötigte Hardware (siehe Komponentenspezifikation) beschafft. Außerdem wurde aus Holz eine brückenähnliche Halterung für den Ultraschallsensor, die Ampel und die Lichtschranke gebaut (siehe Abb.1). Folgend ist der Anschlussplan des Arduino Uno und der einzelnen Komponenten dargestellt, ebenso wie der Aufbau.
2. Software
Als Software wurde in Matlab eine Hauptdatei erstellt, welche mit verschiedenen Funktionen bestückt wurde. Diese Datei und deren Funktionen werden folgend beschrieben:
Subsysteme (Software Ansicht) beschreiben und Verbindung zu den Hardware Subsystemen herstellen. Welche Funktionen finden in welchen Systemen ihre Anwendung.
Funktionen etwas ausführlich beschreiben und ggf. Bilder vom Code einfügen.
2.1 Hauptdatei
- Framework Geschwindigkeitsüberwachung: Hier wird zunächst Matlab initialisiert, mit der Hardware verbunden und mit den benötigten Funktionen ausgestattet.
2.2 Funktionen
- MessungPosition: Über den Ultraschallsensor wird die Position des Fahrzeugs gemessen und dargestellt.
- Ampelschaltung: Mit dieser Funktion wird die Dauer der einzelnen Ampelphasen realisiert.
- RegelverstoßAmpel: Wird die Lichtschranke bei rotem Ampelsignal unterbrochen, wird dies durch eine Aufleuchtende LED visualisiert.
- BestimmungGeschwindigkeit: Aus der gemessenen Position wird die Geschwindigkeit bestimmt.
- RegelverstoßGeschwindigkeit: Bei einer Überschreitung der vorgegebenen Maximalgeschwindigkeit, wird dies ebenfalls visuell über eine LED dargestellt.
- KalmanFilterG: Als Referenz dient die mit dem Kalmanfilter geschätzte Position, Geschwindigkeit und Beschleunigung.
Die vollständigen Matlab-Dateien sind in SVN abgelegt.
Komponententest
Die Funktionsweise der Komponenten aus der Komponentenspezifikation wurde einzeln getestet. Bei Eintritt der gewünschten Funktionsweise der einzelnen Komponenten wurden mehrere Komponenten gemeinsam auf ihre Funktionalität geprüft.
Hardware:
ID | Komponente | Funktion einzeln | Funktion zusammen | Ersteller | Datum |
---|---|---|---|---|---|
001 | Mikrocontroller | ja | ja | Lips, Luncke | 20.12.2020 |
002 | Ultraschallsensor | ja | ja | Lips, Luncke | 20.12.2020 |
003 | Ampel | ja | ja | Lips, Luncke | 20.12.2020 |
004 | Lichtschranke | ja | ja | Lips, Luncke | 20.12.2020 |
005 | LED | ja | ja | Lips, Luncke | 20.12.2020 |
006 | Modellauto | ja | ja | Lips, Luncke | 20.12.2020 |
007 | LCD Display | ja | nein, Pinbelegung nicht möglich (nicht genug Pins am Arduino Uno vorhanden) | Lips, Luncke | 20.12.2020 |
Software:
ID | Komponente/Funktion | Erwartetes Ergebnis | Ergebnis | Bewertung | Ersteller | Datum |
---|---|---|---|---|---|---|
001 | Bestimmung Geschwindigkeit (stehendes Modellauto) | Geschwindigkeit beträgt 0 m/s | Geschwindigkeit beträgt 0 m/s | i.O. | Lips, Luncke | 20.12.2020 |
002 | Bestimmung Geschwindigkeit (niedrige Geschwindigkeit) | Lips, Luncke | 20.12.2020 | |||
003 | Bestimmung Geschwindigkeit (hohe Geschwindigkeit) | Lips, Luncke | 20.12.2020 | |||
004 | Regelverstoß Geschwindigkeit (v > v_max) | LED visualisiert einen Verstoß bei Geschwindigkeitsüberschreitung | LED visualisiert einen Verstoß bei Geschwindigkeitsüberschreitung | i.O. | Lips, Luncke | 20.12.2020 |
005 | Regelverstoß Ampel (Ampelsignal = rot) | LED visualisiert einen Verstoß bei Kreuzen der Lichtschranke und rotem Ampelsignal | LED visualisiert einen Verstoß bei Kreuzen der Lichtschranke und rotem Ampelsignal | i.O. | Lips, Luncke | 20.12.2020 |
006 | Regelverstoß Ampel (Ampelsignal = grün) | Bei grünem Ampelsignal bleibt die LED aus und signalisiert somit keinen Verstoß | Bei grünem Ampelsignal bleibt die LED aus und signalisiert somit keinen Verstoß | i.O. | Lips, Luncke | 20.12.2020 |
Funktion der Subsysteme bestehend aus Software und Hardware testen. Unterschiedliche Tests und Testergebnisse aufführen. z.B. Fahrt bei hoher und niedriger Geschwindigkeit Messung eines stehenden Autos erwartetes Ergebnis mit tatsächlichen Ergebnis vergleichen.
Subsysteme:
Regelverstoss Geschwindigkeit(Messung,Berechnung,Vergleich) funktioniert bei hoher und niedriger Geschwindigkeit? Testergebnisse aufführen
Regelverstoss Ampel(Infrarotsensor, Ampelstatus) Fahrzeug bei rot und nicht bei rot drüber --> Testergebnisse aufführen
Kalman Filter Ampelphase schalten
Kalman - Filter
Neben der Messung der Position des Fahrzeugs (Ultraschallsensor) und der anschließenden Berechnung der Geschwindigkeit, soll ebenfalls eine Zustandsschätzung durch die Verwendung eines Kalman - Filters erfolgen. In diesem Abschnitt soll der Algorithmus der Zustandsschätzung und die Anwendung auf das Projekt kurz beschrieben werden.
Die Bewegung des fahrenden Modellautos kann durch ein konstante Beschleunigung Modell beschrieben werden. Somit ergeben sich die folgenden Größen
pos = s = 1/2 * a * t^2 + v0 * t + s0
v = a * t + v0
a = konstant
Unter Berücksichtigung der aufgeführten Formeln können somit die für den Kalman - Algorithmus notwendigen Matrizen und Vektoren festgelegt werden. Nutzen des Kalman Filters, Anwendung bei dem System Parameter und Parameterwahl usw. kurz beschreiben Als Systemmodell wurde ein konstante Beschleunigung Modell verwendet.
0. Initialisierung der Variablen x0 und P0
x0 = [ 0 0 0 ] ; P = 50 * eye(3) ;
1. In dem ersten Schritt wird der Zustandsvektor x(k) und die Kovarianzmatrix P(k) anhand der Systemmatrix A prädiziert (vorhergesagt). Als Systemmodell dient ein konstante Beschleunigung Modell welches in die Systemmatrix A überführt wurde.
A = [ 1 dt 1/2*dt^2 ; Q = 0.1 * eye(3); 0 1 dt ; 0 0 1 ] ;
2. Folgend findet im zweiten Schritt die Ermittlung der Kalman - Verstärkung K(k+1) durch die Verwendung der prädizierten Daten aus dem ersten Schritt. Ebenfalls werden die Ausgangsmatrix H und die Kovarianzmatrix des Messrauschens R definiert.
H = [1 0 0] ; R = 10;
3. Innerhalb des dritten Schrittes werden die aktuellen Messdaten z(k+1) in den Algorithmus mit einbezogen und eine Schätzung des Systemzustandes x(k+1) berechnet. Als Eingangsgröße dient bei der Berechnung die Zustandsschätzung x_stern(k+1) aus dem ersten Schritt.
4. Um festzulegen mit welchem Gewicht die Zustandsschätzung aus dem vorherigen Zyklus in die aktuelle Schätzung mit einbezogen werden soll, wird im letzten Schritt die Fehlerkovarianzmatrix P(k+1) berechnet.
Grafische Benutzeroberfläche
Bild und kurze Beschreibung Nutzen kurze Anweisung zur Anwendung (Schritte)
Ergebnis
gestellte Anforderungen erfüllt?
Zusammenfassung
Lessons Learned
Herausforderung:
- Entscheidung für Softwareumsetzung (Matlab, Simulink, Arduino IDE...)
- Hardwareumsetzung (Mikrocontroller hat nicht genügend In-/Outputs)
Lösung:
- Matlab
- Reduzierung nicht unbedingt erforderlicher Komponenten (Lichtschranken, LED, LCD-Display)
Bei späteren Projekten eher darauf achten, wie viele Komponenten maximal an einen Mikrocontroller angeschlossen werden können.
Projektunterlagen
Projektplan
Der Ablauf des Projektes wird in folgendem Projektplan ausschnittsweise dargestellt. Die dazugehörige Excel-Datei des kompletten Projektplans befindet sich in SVN.
Projektdurchführung
Die Durchführung des Projektes orientierte sich an dem Projektplan. Begonnen wurde mit einem Projektvorschlag und dessen Genehmigung durch den betreuenden Professor. Dazu wurde sowohl die Einleitung als auch die Anforderungen und der Funktionale Systementwurf angefertigt. Nach der Projektgenehmigung wurde die Komponentenspezifikation erstellt und die benötigten Komponenten besorgt. Anschließend begann die Umsetzung der Hard- und Software, sodass auch ein Komponententest durchgeführt werden konnte. Zunächst wurden alle Komponenten einzeln getestet und bei gewünschter Funktionsweise mit weiteren Komponenten zusammengeschaltet, bis die Anforderungen in zufriedenstellender Weise erfüllt wurden. Abschließend wurden die Ergebnisse des Projektes und dessen Durchführung im Wiki-Artikel festgehalten und ein Video erstellt.
YouTube Video
Weblinks
Literatur
→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)
- ↑ Prof. Dr. Göbel, "Systems Design Engineering" - Vorlesungsunterlagen, 2020.