Geschwindigkeitsüberwachung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 443: Zeile 443:


== Grafische Benutzeroberfläche ==
== Grafische Benutzeroberfläche ==
[[Datei:GUI_G.png|500px|thumb|right|GUI_Gewschwindigkeitsueberwachung|'''Abb.9''': grafische Benutzeroberfläche]]
[[Datei:GUI_G.png|500px|thumb|right|GUI_Gewschwindigkeitsueberwachung|'''Abb.12''': grafische Benutzeroberfläche]]


Um eine nutzerfreundliche Bedienung des Systems zur Geschwindigkeitsüberwachung zu ermöglichen wurde eine grafische Benutzeroberfläche in dem MATLAB APP Designer erstellt.  
Um eine nutzerfreundliche Bedienung des Systems zur Geschwindigkeitsüberwachung zu ermöglichen wurde eine grafische Benutzeroberfläche in dem MATLAB APP Designer erstellt.  

Version vom 11. Februar 2021, 13:31 Uhr

Autoren: Alexander Lips, Melanie Luncke
Betreuer: Prof. Schneider

Abb.1: Geschwindigkeitsüberwachung

→ 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

Abb. 2: V-Modell aus dem Vorlesungsskript von Prof. Dr.-Ing. Mirek Göbel [1]

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.

Die folgenden Kapitel stellen die einzelnen Schritte des V - Modells dar und beschreiben die Vorgehensweise bei der Entwicklung des Systems zur Geschwindigkeitsüberwachung.

Anforderungen

Entwurf eines mechatronischen Systems für die Geschwindigkeitsmessung eines Objektes:

In der nachfolgenden Tabelle werden die an das System ermittelten Anforderungen aufgeführt.

ID Komponente Aufgabe Ersteller Datum
001 Geschwindigkeitsermittlung Die Geschwindigkeit v des Modellautos muss auf einem definierten Streckenabschnitt mittels eines Ultraschallsensors und zwei Lichtschranken ermittelt werden. Lips, Luncke 30.10.2020
002 Geschwindigkeitsermittlung Die Geschwindigkeit v des Autos muss visuell auf einem LCD-Display dargestellt werden. Lips, Luncke 30.10.2020
003 Geschwindigkeitsermittlung Eine Überschreitung der vorgegebenen Maximalgeschwindigkeit v > v_max muss visuell über eine LED dargestellt werden. Lips, Luncke 30.10.2020
004 Ampelverstoß Ein Ampelverstoß liegt vor, wenn das Auto bei "rot" die Lichtschranke unterbricht und muss über eine LED visuell dargestellt werden. Lips, Luncke 30.10.2020
005 Zustandsschätzung Die Fahrzeugbewegung wird mit einem Konstante-Beschleunigung-Modell modelliert und die Zustände Position, Geschwindigkeit Beschleunigung werden mittels Zustandsschätzer (Kalman- Filter) geschätzt. Lips, Luncke 30.10.2020

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

Abb.3: Funktionaler Systementwurf - Geschwindigkeitsüberwachung



Abb.4: Programmablaufplan



Komponentenspezifikation

Für die Projektdurchführung werden folgende Komponenten benötigt:

Hardware:

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


Abb.5: Arduino Uno
Abb.8: Ultraschallsensor
Abb.7: Lichtschranke
Abb.6: Ampel



Software:

ID Komponente Aufgabe Ersteller Datum
001 Geschwindigkeitsüberwachung Lips, Luncke 30.10.2020
002 MessungPosition Geschwindigkeits- bzw. Abstandsmessung Lips, Luncke 30.10.2020
003 Ampelschaltung Signalphaseneinstellung (rot, gelb, grün) Lips, Luncke 30.10.2020
004 RegelverstoßAmpel Ampel = rot, LED = an; Ampel = grün, LED = aus Lips, Luncke 30.10.2020
005 Bestimmung Geschwindigkeit v = (2s)/t Lips, Luncke 30.10.2020
006 RegelverstoßGeschwindigkeit v > v_max, LED = an Lips, Luncke 30.10.2020
007 Kalman Filter Schätzung von Position, Geschwindigkeit, Beschleunigung 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.

Abb.9: Anschlussplan
Datei:Aufbau.PNG
Abb.x: Aufbau


2. Software

Abb.10: Programmablaufplan

Als Software wurde in Matlab eine Hauptdatei erstellt, welche mit verschiedenen Funktionen bestückt wurde. Diese Datei und deren Funktionen werden folgend orientiert an dem Programmablaufplan (Abb.10) 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
004 Regelverstoß Ampel (Ampelsignal = rot) Ampelsignal = rot, Lichtschranke = 0, LED = an Ampelsignal = rot, Lichtschranke = 0, LED = an i.O. Lips, Luncke 20.12.2020
004 Regelverstoß Ampel (Ampelsignal = grün) Ampelsignal = grün, Lichtschranke = 1 , LED = aus Ampelsignal = grün, Lichtschranke = 1 , LED = aus i.O. Lips, Luncke 20.12.2020
005 Bestimmung Geschwindigkeit (stehendes Modellauto) Geschwindigkeit beträgt 0 m/s Geschwindigkeit beträgt 0 m/s i.O. Lips, Luncke 20.12.2020
005 Bestimmung Geschwindigkeit (niedrige Geschwindigkeit) Lips, Luncke 20.12.2020
005 Bestimmung Geschwindigkeit (hohe Geschwindigkeit) Lips, Luncke 20.12.2020
006 Regelverstoß Geschwindigkeit (v > v_max) v > v_max, LED = an v > v_max, LED = an 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

Abb.11: Kalman - Filter Algorithmus

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 wird der Algorithmus zur Zustandsschätzung und die Anwendung auf das Projekt kurz beschrieben.

Die Bewegung des fahrenden Modellautos kann durch ein konstante Beschleunigung - Modell dargestellt werden. Es 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. Die folgenden Matrizen und Vektoren wurden bezüglich der Anwendung innerhalb des Systems entsprechend ausgewählt.

0. Zu Beginn findet eine Initialisierung des Vektors x0 und der Matrix P0. Der Vektor x0 beinhaltet die Anfangswerte der Position, der Geschwindigkeit und der Beschleunigung des Fahrzeugs. Die initiale Fehlerkovarianzmatrix P0 stellt das Vertrauen gegenüber der ersten Schätzung dar. Der erste Wert des Vektors x0 entspricht dem ersten Messpunkt auf der Messstrecke. Hierbei ergeben sie zwei Möglichkeiten, entweder alle Werte auf 0 und wenig Vertrauen oder die pos v und a schätzen und hohes Vertrauen.

  x0 = [ 0.7 0 0 ]' ;            P0 = 100 * 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 das konstante Beschleunigung Modell welches in die Systemmatrix A überführt wurde. Die Matrix Q wird genutzt um das Systemrauschen zu berücksichtigen. Hohe Werte innerhalb der Matrix Q führen zu einer hohen Kalman - Verstärkung und somit zu einer hohen Gewichtung der Messwerte.

  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. Durch die Messmatrix H erfolgt eine Festlegung welcher Wert aus dem Zustandsvektor x(k) gemessen wird. Das Messrauschen R ist gegensätzlich zum Systemrauschen Q und bewirkt somit bei einem hohen Wert einen hohen Einfluss der Messung auf die Schätzung.

  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. Als Messvektor z werden die Daten des Ultraschallsensors verwendet.

Der Kalman - Algorithmus wird zyklisch über die Anzahl der Messwerte ausgeführt, sodass die Position, die Geschwindigkeit und die Beschleunigung für jeden Zeitschritt ermittelt werden kann. Die Abtastzeit dt entspricht der Abtastrate des Ultraschallsensors. Anschließend können die Geschützen Zustände als Rückgabewerte festgelegt und zur grafischen Veranschaulichung genutzt werden. Beobachter muss schneller sein?

  dt = 0.1;

Grafische Benutzeroberfläche

Abb.12: grafische Benutzeroberfläche

Um eine nutzerfreundliche Bedienung des Systems zur Geschwindigkeitsüberwachung zu ermöglichen wurde eine grafische Benutzeroberfläche in dem MATLAB APP Designer erstellt.

Die grafische Benutzeroberfläche bietet neben der Steuerung der Messung ebenfalls die Möglichkeit die ermittelten Daten zu visualisieren. Hierdurch kann die mittels Messung und Berechnung ermittelte Position, Geschwindigkeit und Beschleunigung des Fahrzeugs mit den Ergebnissen des Kalman - Filters vergleichen werden,

kurze Anleitung zur Nutzung der grafischen Benutzeroberfläche:

1. Zu Beginn wird das System gestartet indem der Schalter in der unteren linken Ecke auf ON gestellt wird. Es leuchtet die grüne Lampe auf und das System ist nach einigen Sekunden startbereit. Sobald auf der rechten Seite die kleine Ampel beginnt die Phasen (rot, gelb, grün) zu wechseln kann zu nächsten Schritt übergegangen werden.

2. Bevor die Messung starten kann muss zunächst eine zugelassene Geschwindigkeit festgelegt und in das zugehörige Feld auf der rechten Seite eingetragen werden.

3. Anschließend kann durch das Betätigen des Buttons "Messung" in der unteren rechten Ecke die Messung gestartet werden. Das Fahrzeug fährt nun auf der Messstrecke und daraufhin unter der Brücke hindurch.

4. Nachdem die Messung abgeschlossen ist findet die Visualisierung der Daten in den zugehörigen Diagrammen und Feldern statt. Ebenfalls erfolgen Hinweise bezüglich der Regelverstöße und eine Darstellung der gemessenen Geschwindigkeit unterhalb der zugelassenen Geschwindigkeit.

Im nächsten Abschnitt folgt eine Abbildung der grafischen Benutzeroberfläche, die diese in Aktion zeigt.

Ergebnis

gestellte Anforderungen erfüllt?

GUI mit Ergebnissen

Zusammenfassung

Lessons Learned

Herausforderung:

  1. Entscheidung für Softwareumsetzung (Matlab, Simulink, Arduino IDE...)
  2. Hardwareumsetzung (Mikrocontroller hat nicht genügend In-/Outputs)

Lösung:

  1. Matlab
  2. 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.

Abb.11: Prokjektplan


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

  1. Ampel-Bild
  2. Ultraschallsensor-Bild
  3. Arduino Uno-Bild
  4. Lichtschranke-Bild

Literatur


→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)

  1. Prof. Dr. Göbel, "Systems Design Engineering" - Vorlesungsunterlagen, 2020.