Geschwindigkeitsüberwachung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(198 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
[[Kategorie:ProjekteET MTR BSE WS2020]]
[[Kategorie:ProjekteET MTR BSE WS2020]]
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
'''Autoren:''' [[Benutzer:Alexander Lips| Alexander Lips]], [[Benutzer:Melanie Luncke| Melanie Luncke]]<br/>
'''Autoren:''' Alexander Lips, [[Benutzer:Melanie Luncke| Melanie Luncke]]<br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider | Prof. Schneider]]<br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider | Prof. Schneider]]<br/>


Zeile 13: Zeile 13:
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 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.  
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 kann.  


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.
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.
Zeile 20: Zeile 20:


== Vorgehensweise bei der Entwicklung des Systems ==
== Vorgehensweise bei der Entwicklung des Systems ==
[[Datei:V Modell_Gruppe_F.PNG|600px|thumb|rechts|'''Abb. 2:''' V-Modell aus dem Vorlesungsskript von Prof. Dr.-Ing. Mirek Göbel <ref name="'''Abb. 3:''' V-Modell aus dem Vorlesungsskript von Prof. Dr.-Ing. Mirek Göbel"> Prof. Dr. Göbel, "Systems Design Engineering" - Vorlesungsunterlagen, 2020.  </ref>]]
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.  
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.  


[[Datei:V Modell_Gruppe_F.PNG|600px|thumb|rechts|'''Abb. 2:''' V-Modell aus dem Vorlesungsskript von Prof. Dr.-Ing. Mirek Göbel <ref name="'''Abb. 3:''' V-Modell aus dem Vorlesungsskript von Prof. Dr.-Ing. Mirek Göbel"> Prof. Dr. Göbel, "Systems Design Engineering" - Vorlesungsunterlagen, 2020. </ref>]]
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.


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 ==
== Anforderungen ==
Entwurf eines mechatronischen Systems für die Geschwindigkeitsmessung eines Objektes:
Entwurf eines mechatronischen Systems für die Geschwindigkeitsmessung eines Objektes:


1) Geschwindigkeitsermittlung:
In der nachfolgenden Tabelle werden die an das System ermittelten Anforderungen aufgeführt.
# 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.
{| class="mw-datatable"
# Eine Überschreitung der vorgegebenen Maximalgeschwindigkeit v > v_max muss visuell über eine LED dargestellt werden.
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Kategorie
! style="font-weight: bold;" | Anforderung
! style="font-weight: bold;" | Ersteller
! style="font-weight: bold;" | Datum
|-
| 001
| Geschwindigkeitsermittlung
| Die Geschwindigkeit v des Modellautos muss auf einem definierten Streckenabschnitt mittels eines Ultraschallsensors ermittelt werden.
| Lips, Luncke
| 30.10.2020
|-
| 002
| Geschwindigkeitsverstoß
| Eine Überschreitung der zugelassenen Geschwindigkeit v > v_zugelassen muss visuell über eine LED dargestellt werden.
| Lips, Luncke
| 30.10.2020
|-
| 003
| Geschwindigkeitsverstoß
| Die zugelassene Geschwindigkeit muss vom Benutzer vorgegeben werden können.
| 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
|-
| 006
| Visualisierung
| Auf der grafischen Benutzeroberfläche muss ein Regelverstoß visuell dargestellt werden.  
| Lips, Luncke
| 30.10.2020
|-
| 007
| Visualisierung
| Auf der grafischen Benutzeroberfläche muss die gemessene Geschwindigkeit dargestellt werden.
| Lips, Luncke
| 30.10.2020
|-
| 008
| Aufbau
| Der Aufbau muss eine geeignete Positionierung des Ultraschallsensors ermöglichen um eine zufriedenstellende Messung durchzuführen.
| Lips, Luncke
| 30.10.2020
|-
| 009
| Modellauto
| Das Modellauto muss so angepasst werden, das eine möglichst optimale Ultraschallmessung durchgeführt werden kann.
| Lips, Luncke
| 30.10.2020
|-
| 010
| Inbetriebnahme und Steuerung
| Die Inbetriebnahme und Steuerung des Systems muss über eine grafische Benutzeroberfläche und Mikrocontroller stattfinden.
| Lips, Luncke
| 30.10.2020
|-
|}


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
<br clear=all>


== Funktionaler Systementwurf/Technischer Systementwurf ==
== Funktionaler Systementwurf/Technischer Systementwurf ==


Anpassen und in PAP Designer erstellen
Folgend wird der Systementwurf und der Programmablaufplan der Geschwindigkeitsüberwachung aufgeführt.


[[Datei:Funktionaler Systementwurf Geschwindigkeitsüberwachung.PNG|1000px|thumb|left|Funktionaler Systementwurf Gechwindigkeitsüberwachung|'''Abb.3''': Funktionaler Systementwurf - Geschwindigkeitsüberwachung]]
[[Datei:Funktionaler Systementwurf Geschwindigkeitsüberwachung.PNG|1000px|thumb|left|Funktionaler Systementwurf Gechwindigkeitsüberwachung|'''Abb.3''': Funktionaler Systementwurf - Geschwindigkeitsüberwachung]]
Zeile 49: Zeile 117:




[[Datei:Softwareentwurf.PNG|700px|thumb|left|Softwareentwurf|'''Abb.4''': Programmablaufplan - Geschwindigkeitsüberwachung]]
[[Datei:Programmablaufplan_Geschwindigkeitsüberwachung.PNG|200px|thumb|left|'''Abb.4''': Programmablaufplan]]
<br clear=all>
<br clear=all>


Zeile 56: Zeile 124:
== Komponentenspezifikation ==
== Komponentenspezifikation ==
Für die Projektdurchführung werden folgende Komponenten benötigt:
Für die Projektdurchführung werden folgende Komponenten benötigt:
Hardware:


{| class="mw-datatable"
{| class="mw-datatable"
Zeile 64: Zeile 134:
! style="font-weight: bold;" | Datum
! style="font-weight: bold;" | Datum
|-
|-
| 001
| 1.001
| Mikrocontroller
| Mikrocontroller
| Regler (Arduino Uno)
| Regler (Arduino Uno)
Zeile 70: Zeile 140:
| 30.10.2020
| 30.10.2020
|-
|-
| 002
| 1.002
| Ultraschallsensor
| Ultraschallsensor
| Geschwindigkeits- bzw. Abstandsmessung
| Geschwindigkeits- bzw. Abstandsmessung
Zeile 76: Zeile 146:
| 30.10.2020
| 30.10.2020
|-
|-
| 003
| 1.003
|Ampel
|Ampel
| Signaldarstellung (rot, gelb, grün)
| Signaldarstellung (rot, gelb, grün)
Zeile 82: Zeile 152:
| 30.10.2020
| 30.10.2020
|-
|-
| 004
| 1.004
| Lichtschranke
| Lichtschranke
| Objekterkennung bei Ampelkreuzung
| Objekterkennung bei Ampelkreuzung
Zeile 88: Zeile 158:
| 30.10.2020
| 30.10.2020
|-
|-
| 005
| 1.005
| LED
| LED
| Aufleuchten bei rotem Ampelsignal und Unterbrechung der Lichtschranke, Aufleuchten bei Geschwindigkeitsüberschreitung
| Aufleuchten bei rotem Ampelsignal und Unterbrechung der Lichtschranke, Aufleuchten bei Geschwindigkeitsüberschreitung
Zeile 94: Zeile 164:
| 30.10.2020
| 30.10.2020
|-
|-
| 006
| 1.006
| Modellauto
| Modellauto
| Messobjekt
| Messobjekt
Zeile 100: Zeile 170:
| 30.10.2020
| 30.10.2020
|-
|-
| 007
| 1.007
| LCD Display
| LCD-Display
| Geschwindigkeitsanzeige
| Geschwindigkeitsanzeige
| Lips, Luncke
| Lips, Luncke
| 30.10.2020
| 30.10.2020
|-
|-
| 008
| 1.008
| Modellaufbau (Brücke)
| Modellaufbau (Brücke)
| Halterung für die verwendeten Komponenten
| Halterung für die verwendeten Komponenten
Zeile 115: Zeile 185:




[[Datei:ArduinoUno.PNG|x200px|mini|left||'''Abb.5''': Arduino Uno]]
[[Datei:ArduinoUno.PNG|x140px|mini|left||'''Abb.5''': Arduino Uno]]
 
<div class="tright" style="clear:none">[[Datei:LEDrot.png|x130px|left|mini||'''Abb.10''': LED]]</div>
<div class="tright" style="clear:none">[[Datei:Ultraschall.PNG|x200px|mini|left||'''Abb.8''': Ultraschallsensor]]</div>
<div class="tright" style="clear:none">[[Datei:Ampel.PNG|x130px|left|mini||'''Abb.9''': Modellauto]]</div>
<div class="tright" style="clear:none">[[Datei:Lichtschranke.PNG|x150px|mini|left||'''Abb.7''': Lichtschranke]]</div>
<div class="tright" style="clear:none">[[Datei:Ultraschall.PNG|x130px|mini|left||'''Abb.8''': Ultraschallsensor]]</div>
<div class="tright" style="clear:none">[[Datei:Ampel.PNG|x200px|thumb|mini||'''Abb.6''': Ampel]]</div>
<div class="tright" style="clear:none">[[Datei:Lichtschranke.PNG|x130px|mini|left||'''Abb.7''': Lichtschranke]]</div>
 
<div class="tright" style="clear:none">[[Datei:Modellauto.png|x130px|left|mini||'''Abb.6''': Modellauto]]</div>
<br clear=all>
<br clear=all>


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:
Die Funktionsweise der Komponenten wird folgend kurz beschrieben:
 
* 1.001 - Mikrocontroller:  
003:
Der Mikrocontroller ist die Schnittstelle zwischen der Hard- und Software. Er dient zur Ansteuerung der Aktoren und zur Sensordatenverarbeitung. Der Mikrocontroller besteht aus Analog-Pins (A0-A5) und Digital-Pins (D0-D13) die mit max. 40 mA belastet werden dürfen. Sechs der digitalen I-/O-Pins können analoge Pulsweitenmodulationssignale generieren.
   
usw.  
 
Die Funktionsweise des Ultraschallsensors wird folgend beschrieben:


* 1.002 - Ultraschallsensor:
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.
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.


Zeile 144: Zeile 207:


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.
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.
* 1.003 - Ampel:
Die Ampel besteht aus 3 untereinander angeordneten LED's (rot, gelb, grün) die abhängig von der Ampelphase mit einem HIGH Input = 1 (LED leuchtet) oder einem LOW Input = 0 (LED leuchtet nicht) angesteuert werden.
* 1.004 - Lichtschranke:
Die Lichtschranke besteht aus einem Sender und einem Empfänger, welche sich im selben Gehäuse befinden. Der Sender strahlt ein Infrarotlicht aus, welches von einem Reflektionsobjekt zum Empfänger zurückgeworfen wird. Wird der Lichtstrahl von einem Objekt unterbrochen, bzw. die Reflektionsstrecke verkürzt, findet am Ausgang eine Zustandsänderung statt. Die Reichweite des Infrarotsignals beträgt 50 cm.
* 1.005 - LED:
Eine LED besteht aus Kathode und Anode, die über einen Draht miteinander verbunden sind. Sobald ein Strom fließt wird Energie in Form von Photonen freigesetzt und bringt die LED zum Leuchten.
* 1.006 - Modellauto:
Bei dem Modellauto handelt es sich um das Messobjekt.
Software:
[[Datei:Programmablaufplan_Geschwindigkeitsüberwachung.PNG|200px|thumb|right||'''Abb.11''': Programmablaufplan]]
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Komponente
! style="font-weight: bold;" | Aufgabe
! style="font-weight: bold;" | Ersteller
! style="font-weight: bold;" | Datum
|-
| 2.001
| Grafische Benutzeroberfläche
| Visualisierung der Ergebnisse und Steuerung des Systems
| Lips, Luncke
| 30.10.2020
|-
| 2.002
| MessungPosition
| Abstandsmessung mit Ultraschallsensor
| Lips, Luncke
| 30.10.2020
|-
| 2.003
| Ampelschaltung
| Ampelphaseneinstellung (rot, gelb, grün)
| Lips, Luncke
| 30.10.2020
|-
| 2.004
| RegelverstoßAmpel
| Ampel = rot, LED = an; Ampel = grün, LED = aus
| Lips, Luncke
| 30.10.2020
|-
| 2.005
| BestimmungGeschwindigkeit
| v = (2s)/t
| Lips, Luncke
| 30.10.2020
|-
| 2.006
| RegelverstoßGeschwindigkeit
| v > v_zugelassen, LED = an
| Lips, Luncke
| 30.10.2020
|-
| 2.007
| Kalman Filter
| Schätzung von Position, Geschwindigkeit, Beschleunigung
| Lips, Luncke
| 30.10.2020
|-
|}
* 2.001 - Geschwindigkeitsüberwachung: Hier wird zunächst Matlab initialisiert, mit der Hardware verbunden und mit den benötigten Funktionen ausgestattet.
* 2.002 - MessungPosition: Über den Ultraschallsensor wird die Position des Fahrzeugs gemessen und dargestellt.
* 2.003 - Ampelschaltung: Mit dieser Funktion wird die Dauer der einzelnen Ampelphasen realisiert.
* 2.004 - RegelverstoßAmpel: Wird die Lichtschranke bei rotem Ampelsignal unterbrochen, wird dies durch eine aufleuchtende LED visualisiert.
* 2.005 - BestimmungGeschwindigkeit: Aus der gemessenen Position wird die Geschwindigkeit bestimmt.
* 2.006 - RegelverstoßGeschwindigkeit: Bei einer Überschreitung der vorgegebenen Maximalgeschwindigkeit, wird dies ebenfalls visuell über eine LED dargestellt.
* 2.007 - KalmanFilterG: Als Referenz dient die mit dem Kalmanfilter geschätzte Position, Geschwindigkeit und Beschleunigung.
Eine ausführliche Beschreibung der einzelnen Funktionen ist in den Headern der Matlab-Dateien zu finden.
Die vollständigen Matlab-Dateien sind in [https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/093-125/118_Geschwindigkeitsüberwachung SVN] abgelegt.


<br clear=all>
<br clear=all>
Zeile 150: Zeile 291:
1. Hardware
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).
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 LED, 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.  
Folgend ist der Aufbau dargestellt, ebenso wie der Anschlussplan (Abb.14) des Arduino Uno und der einzelnen Komponenten.
Abbildung 12 zeigt die Maße der Strecke und die Positionierungsstelle der Brücke und Abbildung 13 stellt die Maße der Brückenkonstruktion dar. Werden Teile mehrfach verwendet, ist die benötigte Anzahl angegeben. Die Brücke wird einzeln montiert und anschließend auf der Strecke befestigt. Der Ultraschallsensor wird mittig auf der Brücke positioniert und mit zwei Seiten und einem Deckel abgedeckt.  


[[Datei:Geschwindigkeitsüberwachung_Anschlussplan.PNG|700px|thumb|left||'''Abb.9''': Anschlussplan]]
[[Datei:Skizze_Strecke.png|700px|thumb|left||'''Abb.12''': Maße-Strecke]]
[[Datei:Aufbau.PNG|700px|thumb|left||'''Abb.x''': Aufbau]]
[[Datei:Skizze_Brücke.png|700px|thumb|left||'''Abb.13''': Maße-Brücke]]
[[Datei:Geschwindigkeitsüberwachung_Anschlussplan.PNG|700px|thumb|left||'''Abb.14''': Anschlussplan]]
<br clear=all>
<br clear=all>


2. Software
2. Hardware und Software
 
[[Datei:Programmablaufplan_Geschwindigkeitsüberwachung.PNG|200px|thumb|right||'''Abb.15''': Programmablaufplan]]
Als Software wurde in Matlab eine Hauptdatei erstellt, welche mit verschiedenen Funktionen bestückt wurde.  
Ohne die Software kann die Hardware nicht angesteuert werden.
Diese Datei und deren Funktionen werden folgend beschrieben:
Dazu werden Subsysteme aus Hard- und Software gebildet.
 
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.  
Mit der Funktion „Ampelschaltung“ wird die Hardwarekomponente Ampel verbunden, sodass die verschiedenen Ampelphasen (grün, gelb, rot) geschaltet werden.
Die Ampel gehört außerdem zusammen mit der Lichtschranke und der LED zur Funktion „RegelverstoßAmpel“. Wird die Lichtschranke bei der Ampelphase „rot“ überfahren wird dieser Regelverstoß visuell über die LED dargestellt.


2.1 Hauptdatei
Der Ultraschallsensor steht mit der Funktion „MessungPosition und „Geschwindigkeitsbestimmung“ in Verbindung, da über die Positionsbestimmung in den Funktionen die Geschwindigkeit berechnet wird.
* Framework Geschwindigkeitsüberwachung: Hier wird zunächst Matlab initialisiert, mit der Hardware verbunden und mit den benötigten Funktionen ausgestattet.
Außerdem findet der Ultraschallsensor zusammen mit der LED und den Ergebnissen der vorherigen Funktionen in der Funktion „RegelverstoßGeschwindigkeit“ Anwendung. Wir die zugelassene Geschwindigkeit, die die durch den Benutzer vorher festgelegt wird überschritten, wird dieser Verstoß ebenfalls über die LED visualisiert.
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 ==
== Komponententest ==
Zeile 186: Zeile 320:
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Komponente
! style="font-weight: bold;" | Komponente
! style="font-weight: bold;" | Funktion einzeln
! style="font-weight: bold;" | Test
! style="font-weight: bold;" | Funktion zusammen
! style="font-weight: bold;" | Funktion/Ergebnis
! style="font-weight: bold;" | Ersteller
! style="font-weight: bold;" | Ersteller
! style="font-weight: bold;" | Datum
! style="font-weight: bold;" | Datum
|-
|-
| 001
| 1.001
| Mikrocontroller
| Mikrocontroller
| ja
| Anschluss der Spannungsversorgung
| ja
| ja, Kontrollleuchte blinkt
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
|-
|-
| 002
| 1.002
| Ultraschallsensor
| Ultraschallsensor
| ja
| statische Objektmessung
| ja
| ja, Messobjekt wird erkannt (Referenzmessung mit Lineal)
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
|-
|-
| 003
| 1.003
|Ampel
| Ampel
| ja
| Ansteuerung der LEDs (rot, gelb, grün)
| ja
| ja, 1(Hight)= LEDs leuchten, 0(Low)= LEDs leuchten nicht
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
|-
|-
| 004
| 1.004
| Lichtschranke
| Lichtschranke
| ja
| Objekterkennung
| ja
| ja, 1(High)= kein Objekt, 0(Low)= Objekt erkannt
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
|-
|-
| 005
| 1.005
| LED
| LED
| ja
| Ansteuerung mit Spannungssignal
| ja
| ja, 1(High)= LED leuchtet, 0(Low)= LED leuchtet nicht
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
|-
|-
| 006
| 1.006
| Modellauto
| Modellauto
| ja
| Fahrfunktion
| ja
| ja, Fahrzeug fährt
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
|-
|-
| 007
| 1.007
| LCD Display
| LCD Display
| ja
| Textanzeige
| nein, Pinbelegung nicht möglich (nicht genug Pins am Arduino Uno vorhanden)  
| nein, Pinbelegung nicht möglich (nicht genug Pins am Arduino Uno vorhanden, Alternative: Grafische Benutzeroberfläche
| Lips, Luncke
| 20.12.2020
|-
| 1.008
| Modellaufbau (Brücke)
| Stabilität, Anordnung, Maßgenauigkeit
| Stabilität gewährleistet, planmäßige Anordnung möglich
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 20.12.2020
Zeile 243: Zeile 384:




Software:
Software und Hardware:


{| class="mw-datatable"
{| class="mw-datatable"
Zeile 254: Zeile 395:
! style="font-weight: bold;" | Datum
! style="font-weight: bold;" | Datum
|-
|-
| 001
| 2.004
| Bestimmung Geschwindigkeit (stehendes Modellauto)
| Regelverstoß Ampel (Ampelsignal = rot)
| Geschwindigkeit beträgt 0 m/s
| Ampelsignal = rot, Lichtschranke = 0, LED = an
| Geschwindigkeit beträgt 0 m/s
| Ampelsignal = rot, Lichtschranke = 0, LED = an
| i.O.
| i.O.
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 01.01.2021
|-
|-
| 002
| 2.004
| Bestimmung Geschwindigkeit (niedrige Geschwindigkeit)
| 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
|-
| 003
| Bestimmung Geschwindigkeit (hohe Geschwindigkeit)
|
|
|
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 01.01.2021
|-
|-
| 004
| 2.004
| Regelverstoß Geschwindigkeit (v > v_max)
| Regelverstoß Ampel (Ampelsignal = rot, gelb)
| LED visualisiert einen Verstoß bei Geschwindigkeitsüberschreitung
| Ampelsignal = gelb, Lichtschranke = 0, LED = an
| LED visualisiert einen Verstoß bei Geschwindigkeitsüberschreitung
| Ampelsignal = gelb, Lichtschranke = 0, LED = an
| i.O.
| i.O.
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 01.01.2021
|-
|-
| 005
| 2.005
| Regelverstoß Ampel (Ampelsignal = rot)
| Bestimmung Geschwindigkeit (stehendes Modellauto)
| LED visualisiert einen Verstoß bei Kreuzen der Lichtschranke und rotem Ampelsignal
| Geschwindigkeit beträgt 0 m/s
| LED visualisiert einen Verstoß bei Kreuzen der Lichtschranke und rotem Ampelsignal
| Geschwindigkeit beträgt 0 m/s
| i.O.
| i.O.
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 01.01.2021
|-
|-
| 006
| 2.006
| Regelverstoß Ampel (Ampelsignal = grün)
| Regelverstoß Geschwindigkeit (v > v_zugelassen)
| Bei grünem Ampelsignal bleibt die LED aus und signalisiert somit keinen Verstoß
| v > v_zugelassen, LED = an
| Bei grünem Ampelsignal bleibt die LED aus und signalisiert somit keinen Verstoß
| v > v_zugelassen, LED = an
| i.O.
| i.O.
| Lips, Luncke
| Lips, Luncke
| 20.12.2020
| 01.01.2021
|-
|-
|}
|}


== Kalman - Filter ==
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.  
[[Datei:KalmanAlgo.png|430px|thumb|right|Kalman Algorithmus|'''Abb.16''': Kalman - Filter Algorithmus]]
Subsysteme:  
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.
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
Die Bewegung des fahrenden Modellautos kann durch ein konstante Beschleunigung - Modell dargestellt werden. Es ergeben sich die folgenden Größen:
  Berechnung (anhand der Positionsmessung):
  v = s / t
  a = v * t
  v = ((2 * s) / t ) - v_0
  a = ((2 * s) / t^2 ) - (2 * v_0 / t)
 
  Schätzung (Kalman - Filter)
  pos = s = 1/2 * a * t^2 + v_0 * t + s_0
  v = a * t + v_0
  a = konstant


Kalman Filter 
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. Es soll ein hohes Vertrauen gegenüber den Messwerten eingestellt sein, solange sich das Fahrzeug auf der Messstrecke befindet und der Ultraschallsensors aufgrund dessen Ausrichtung hinreichende Messergebnisse liefern kann. Sobald das Fahrzeug die Messstrecke 0,3 m bis 0,7 m (Abstand zum Ultraschallsensor) verlässt soll ein geringes Vertrauen gegenüber den Messwerten vorliegen. Das Vertrauen wird durch den Vektor/ Matrix R und Q bestimmt.
Ampelphase schalten


== Kalman - Filter ==
0. Zu Beginn findet eine Initialisierung des Vektors x_0 und der Matrix P_0. Der Vektor x_0 beinhaltet die Anfangswerte der Position, der Geschwindigkeit und der Beschleunigung des Fahrzeugs. Die initiale Fehlerkovarianzmatrix P_0 stellt das Vertrauen gegenüber der ersten Schätzung dar. Der erste Wert des Vektors x_0 entspricht dem ersten Messpunkt auf der Messstrecke. Hierbei ergeben sie zwei Möglichkeiten, entweder alle Werte auf 0 zu setzen und ein geringes Vertrauen oder die pos v und a schätzen und hohes Vertrauen anzunehmen.  
[[Datei:KalmanAlgo.png|400px|thumb|right|Kalman Algorithmus|'''Abb.8''': Kalman - Filter Algorithmus]]
  x0 = [ 0.7 0 0 ]' ;            P0 = 100 * eye(3) ;
Neben der Messung der Position des Fahrzeugs mittels des Ultraschallsensors und der anschließenden Berechnung der Geschwindigkeit, soll ebenfalls eine Zustandsschätzung durch die Verwendung eines Kalman - Filter erfolgen. In diesem Abschnitt soll der Algorithmus des Kalman - Filters 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
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.
  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); wenn Fahrzeug außerhalb der Messstrecke       
   A = [ 1 dt 1/2*dt^2 ;      Q = 0.1 * eye(3);      
         0 1 dt ;             Q = 20 * eye(3); wenn Fahrzeug innerhalb der Messstrecke
         0 1 dt ;
         0 0 1 ] ;
         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.  
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;  
 
   H = [1 0 0] ;              R = 50; wenn Fahrzeug außerhalb der Messstrecke
                              R = 10; wenn Fahrzeug innerhalb der Messstrecke


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.  
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.
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 (Position des Fahrzeugs) 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ätzten Zustände als Rückgabewerte festgelegt und zur grafischen Veranschaulichung genutzt werden. 
 
  dt = 0.1;


== Grafische Benutzeroberfläche ==
== Grafische Benutzeroberfläche ==
Bild und kurze Beschreibung
[[Datei:GUI_G.png|500px|thumb|right|GUI_Gewschwindigkeitsueberwachung|'''Abb.17''': grafische Benutzeroberfläche]]
Nutzen
 
kurze Anweisung zur Anwendung (Schritte)
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 ==
== Ergebnis ==
gestellte Anforderungen erfüllt?
Als Ergebnis lässt sich zunächst festhalten, dass die geforderten Anforderungen, wie in unterer Tabelle zu sehen, erfüllt werden.
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Kategorie
! style="font-weight: bold;" | Anforderung
! style="font-weight: bold;" | Erfüllt
! style="font-weight: bold;" | Ersteller
|-
| 001
| Geschwindigkeitsermittlung
| Die Geschwindigkeit v des Modellautos muss auf einem definierten Streckenabschnitt mittels eines Ultraschallsensors ermittelt werden.
| ja
| Lips, Luncke
|-
| 002
| Geschwindigkeitsverstoß
| Eine Überschreitung der zugelassenen Geschwindigkeit v > v_zugelassen muss visuell über eine LED dargestellt werden.
| ja
| Lips, Luncke
|-
| 003
| Geschwindigkeitsverstoß
| Die zugelassene Geschwindigkeit muss vom Benutzer vorgegeben werden können.
| ja
| Lips, Luncke
|-
| 004
| Ampelverstoß
| Ein Ampelverstoß liegt vor, wenn das Auto bei "rot" die Lichtschranke unterbricht und muss über eine LED visuell dargestellt werden.
| ja
| Lips, Luncke
|-
| 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.
| ja
| Lips, Luncke
|-
| 006
| Visualisierung
| Auf der grafischen Benutzeroberfläche muss ein Regelverstoß visuell dargestellt werden.
| ja
| Lips, Luncke
|-
| 007
| Visualisierung
| Auf der grafischen Benutzeroberfläche muss die gemessene Geschwindigkeit dargestellt werden.
| ja
| Lips, Luncke
|-
| 008
| Aufbau
| Der Aufbau muss eine geeignete Positionierung des Ultraschallsensors ermöglichen um eine zufriedenstellende Messung durchzuführen.
| ja
| Lips, Luncke
|-
| 009
| Modellauto
| Das Modellauto muss so angepasst werden, das eine möglichst optimale Ultraschallmessung durchgeführt werden kann.
| ja
| Lips, Luncke
|-
| 010
| Inbetriebnahme und Steuerung
| Die Inbetriebnahme und Steuerung des Systems muss über eine grafische Benutzeroberfläche und Mikrocontroller stattfinden.
| ja
| Lips, Luncke
|-
|}
 
<br clear=all>
 
[[Datei:GUI_Geschwindigkeit_0.JPG|550px|thumb|left|GUI_Gewschwindigkeitsueberwachung|'''Abb.18''': Fahrzeug im Stand]]
<div class="tright" style="clear:none">[[Datei:GUI_beides.JPG|550px|thumb|left|GUI_Gewschwindigkeitsueberwachung|'''Abb.19''': Fahrzeug in Bewegung]]</div>
 
<br clear=all>
 
Das Fahrzeug wird an der Position bei 0,7 m erkannt, welches durch eine Referenzmessung mit Lineal bestätigt werden konnte. Es ist zu erkennen, dass die Positionsmesswerte leicht um den Wert 0,7 m schwanken.
Nach einer Einschwingzeit von 1 Sekunde, ist zu erkennen, dass die geschätzte Position des Fahrzeugs mit den Messwerten übereinstimmt.
Befindet sich das Fahrzeug im Stand, sind die geschätzten Zustände des Kalmanfilters für die Geschwindigkeit und die Beschleunigung gleich Null. Da die Positionsmessung des Ultraschallsensors leichte Messabweichungen aufweist schwanken die Messwert der Geschwindigkeit und Beschleunigung leicht (+-0,2 m/s / +-0,05 m/s^2) um den Wert Null. Außerdem ist zu erkennen, dass kein Ampelverstoß vorliegt, da sich das Fahrzeug nicht auf Ampelhöhe befindet. Die gemessene Geschwindigkeit beträgt 0 m/s (stehendes Fahrzeug) und liegt somit unterhalb der zugelassenen Geschwindigkeit von 0,05 m/s, weshalb kein Regelverstoß bezüglich der Geschwindigkeit angezeigt wird.
 
Die Bewegung des Fahrzeugs wird auf der Messstrecke zwischen 0,4 und 0,7 m erkannt. Die Positionsschätzung des Kalmanfilters stimmt näherungsweise mit den Positionsmesswerten überein. Es ist ein Geschwindigkeitsanstieg bei konstanter Beschleunigung erkennbar. Da die Ampel nicht bei "rot" überfahren wird, wird diesbezüglich auch kein Regelverstoß angezeigt. Die gemessene Geschwindigkeit von 0,1 m/s ist höher als die zugelassene Geschwindigkeit von 0,05 m/s und wird somit als Regelverstos angezeigt.
 
Sobald sich das Fahrzeug außerhalb der festgelegten Messstrecke (0,4 bis 0,7 m und 1 bis 3 sek.) befindet, wird das Kalmanfilterergebnis zu sehr von den Ausreißern beeinflusst. Durch Anpassung der Rauschvektoren/-matrizen R und Q können die Ausreißer angepasst werden.
Ursache der Ausreißer können das Messobjekt (transparente Scheibe verdunkelt) und dessen dynamische Bewegung sein. Bei der statischen Messung waren die Messergebnisse im Gegensatz zur dynamischen Messung zufriedenstellend. Außerdem kann die Ausrichtung des Ultraschallsensors ebenfalls Ausreißer verursachen, da möglicherweise nicht immer das Messobjekt (Fahrzeug) getroffen wird, sondern beispielsweise die Fahrban.
Um die Ausreißer zu vermeiden, wäre eine automatisierte Messung über die festgelegte Messstrecke (0,4 m bis 0,7 m) mittels einer While-Schleife (Zyklen abhängig von der gemessenen Distanz) möglich, die ebenfalls das Vertrauen in die Messwerte erhöht.


== Zusammenfassung ==
== Zusammenfassung ==
=== Lessons Learned ===
=== Lessons Learned ===
Herausforderung:  
Herausforderung:  
# Entscheidung für Softwareumsetzung (Matlab, Simulink, Arduino IDE...)
* Entscheidung für Softwareumsetzung (Matlab, Simulink, Arduino IDE...)
# Hardwareumsetzung (Mikrocontroller hat nicht genügend In-/Outputs)  
# Softwareumsetzung in Matlab (Vorteil: App-Designer, Einbindung von Toolbox, Hardware Support Package, Kalman-Filte etc.)
 
* Hardwareumsetzung (Mikrocontroller hat nicht genügend In-/Outputs)
Lösung:
# Reduzierung nicht unbedingt erforderlicher Komponenten (weitere Lichtschranken, zweite LED, LCD-Display)
# Matlab
* Modellauto so ausstatten, dass eine Messung möglich ist
# Reduzierung nicht unbedingt erforderlicher Komponenten (Lichtschranken, LED, LCD-Display)
# Transparente Scheibe verdunkeln/vergrößern
 
* Feste Fahrbahn vorgeben
Bei späteren Projekten eher darauf achten, wie viele Komponenten maximal an einen Mikrocontroller angeschlossen werden können.
# Seitenbegrenzung (Schienen), sodass das Modellauto geradeaus fährt
* Modellaufbau (Brücke) zu instabil
# Holz- statt Pappkonstruktion
* Sensorausrichtung
# Sensor so befestigen, dass er seine Ausrichtung beibehält
* Messausreißer
#  feste Messstrecke definieren (0,4 m bis 0,7 m)
# Rauschparameter richtig einstellen


== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
Der Ablauf des Projektes wird in folgendem Projektplan ausschnittsweise dargestellt. Die dazugehörige Excel-Datei des kompletten Projektplans befindet sich in SVN.
Der Ablauf des Projektes wird in folgendem Projektplan ausschnittsweise dargestellt. Die dazugehörige Excel-Datei des kompletten Projektplans befindet sich in [https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/093-125/118_Geschwindigkeitsüberwachung SVN].


[[Datei:Geschwindigkeitsüberwachung_Projektplan.PNG|1000px|thumb|left||'''Abb.10''': Prokjektplan]]
[[Datei:Geschwindigkeitsüberwachung_Projektplan.PNG|1000px|thumb|left||'''Abb.20''': Prokjektplan]]
<br clear=all>
<br clear=all>


Zeile 373: Zeile 616:


== YouTube Video ==
== YouTube Video ==
Das Video zum Projekt befindet sich in Sciebo: [https://hshl.sciebo.de/s/nAbQK7epAQQaBQi Geschwindigkeitsüberwachung_Video].


== Weblinks ==
== Weblinks ==
Zeile 379: Zeile 623:
#[https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectPath=/Shops/78096195/Products/A-2-2: Arduino Uno-Bild]
#[https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectPath=/Shops/78096195/Products/A-2-2: Arduino Uno-Bild]
#[https://de.aliexpress.com/item/32862306728.html?src=google&albch=shopping&acnt=494-037-6276&isdl=y&slnk=&plac=&mtctp=&albbt=Google_7_shopping&aff_platform=google&aff_short_key=UneMJZVf&&albagn=888888&isSmbAutoCall=false&needSmbHouyi=false&albcp=1705854617&albag=67310370915&trgt=743612850714&crea=de32862306728&netw=u&device=c&albpg=743612850714&albpd=de32862306728&gclid=EAIaIQobChMIoY7r49rf7gIVjh4YCh3zUA__EAQYCSABEgJ80vD_BwE&gclsrc=aw.ds: Lichtschranke-Bild]
#[https://de.aliexpress.com/item/32862306728.html?src=google&albch=shopping&acnt=494-037-6276&isdl=y&slnk=&plac=&mtctp=&albbt=Google_7_shopping&aff_platform=google&aff_short_key=UneMJZVf&&albagn=888888&isSmbAutoCall=false&needSmbHouyi=false&albcp=1705854617&albag=67310370915&trgt=743612850714&crea=de32862306728&netw=u&device=c&albpg=743612850714&albpd=de32862306728&gclid=EAIaIQobChMIoY7r49rf7gIVjh4YCh3zUA__EAQYCSABEgJ80vD_BwE&gclsrc=aw.ds: Lichtschranke-Bild]
#[https://www.reichelt.de/led-5-mm-bedrahtet-rot-125-mcd-60--evl-334sdrd-s530-p230915.html?PROVID=2788&gclid=EAIaIQobChMI_cT884Li7gIVmu7tCh2kWQ2LEAQYASABEgIxW_D_BwE: LED-Bild]


== Literatur ==
== Literatur ==
 
Phil Kim, Kalman - Filter mit Matlab Beispielen, 1. Auflage 2016, Übersetzt von Ulrich Schneider





Aktuelle Version vom 27. März 2021, 15:24 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 kann.

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 Kategorie Anforderung Ersteller Datum
001 Geschwindigkeitsermittlung Die Geschwindigkeit v des Modellautos muss auf einem definierten Streckenabschnitt mittels eines Ultraschallsensors ermittelt werden. Lips, Luncke 30.10.2020
002 Geschwindigkeitsverstoß Eine Überschreitung der zugelassenen Geschwindigkeit v > v_zugelassen muss visuell über eine LED dargestellt werden. Lips, Luncke 30.10.2020
003 Geschwindigkeitsverstoß Die zugelassene Geschwindigkeit muss vom Benutzer vorgegeben werden können. 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
006 Visualisierung Auf der grafischen Benutzeroberfläche muss ein Regelverstoß visuell dargestellt werden. Lips, Luncke 30.10.2020
007 Visualisierung Auf der grafischen Benutzeroberfläche muss die gemessene Geschwindigkeit dargestellt werden. Lips, Luncke 30.10.2020
008 Aufbau Der Aufbau muss eine geeignete Positionierung des Ultraschallsensors ermöglichen um eine zufriedenstellende Messung durchzuführen. Lips, Luncke 30.10.2020
009 Modellauto Das Modellauto muss so angepasst werden, das eine möglichst optimale Ultraschallmessung durchgeführt werden kann. Lips, Luncke 30.10.2020
010 Inbetriebnahme und Steuerung Die Inbetriebnahme und Steuerung des Systems muss über eine grafische Benutzeroberfläche und Mikrocontroller stattfinden. Lips, Luncke 30.10.2020



Funktionaler Systementwurf/Technischer Systementwurf

Folgend wird der Systementwurf und der Programmablaufplan der Geschwindigkeitsüberwachung aufgeführt.

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
1.001 Mikrocontroller Regler (Arduino Uno) Lips, Luncke 30.10.2020
1.002 Ultraschallsensor Geschwindigkeits- bzw. Abstandsmessung Lips, Luncke 30.10.2020
1.003 Ampel Signaldarstellung (rot, gelb, grün) Lips, Luncke 30.10.2020
1.004 Lichtschranke Objekterkennung bei Ampelkreuzung Lips, Luncke 30.10.2020
1.005 LED Aufleuchten bei rotem Ampelsignal und Unterbrechung der Lichtschranke, Aufleuchten bei Geschwindigkeitsüberschreitung Lips, Luncke 30.10.2020
1.006 Modellauto Messobjekt Lips, Luncke 30.10.2020
1.007 LCD-Display Geschwindigkeitsanzeige Lips, Luncke 30.10.2020
1.008 Modellaufbau (Brücke) Halterung für die verwendeten Komponenten Lips, Luncke 30.10.2020


Abb.5: Arduino Uno
Abb.10: LED
Abb.9: Modellauto
Abb.8: Ultraschallsensor
Abb.7: Lichtschranke
Abb.6: Modellauto



Die Funktionsweise der Komponenten wird folgend kurz beschrieben:

  • 1.001 - Mikrocontroller:

Der Mikrocontroller ist die Schnittstelle zwischen der Hard- und Software. Er dient zur Ansteuerung der Aktoren und zur Sensordatenverarbeitung. Der Mikrocontroller besteht aus Analog-Pins (A0-A5) und Digital-Pins (D0-D13) die mit max. 40 mA belastet werden dürfen. Sechs der digitalen I-/O-Pins können analoge Pulsweitenmodulationssignale generieren.

  • 1.002 - Ultraschallsensor:

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.

  • 1.003 - Ampel:

Die Ampel besteht aus 3 untereinander angeordneten LED's (rot, gelb, grün) die abhängig von der Ampelphase mit einem HIGH Input = 1 (LED leuchtet) oder einem LOW Input = 0 (LED leuchtet nicht) angesteuert werden.

  • 1.004 - Lichtschranke:

Die Lichtschranke besteht aus einem Sender und einem Empfänger, welche sich im selben Gehäuse befinden. Der Sender strahlt ein Infrarotlicht aus, welches von einem Reflektionsobjekt zum Empfänger zurückgeworfen wird. Wird der Lichtstrahl von einem Objekt unterbrochen, bzw. die Reflektionsstrecke verkürzt, findet am Ausgang eine Zustandsänderung statt. Die Reichweite des Infrarotsignals beträgt 50 cm.

  • 1.005 - LED:

Eine LED besteht aus Kathode und Anode, die über einen Draht miteinander verbunden sind. Sobald ein Strom fließt wird Energie in Form von Photonen freigesetzt und bringt die LED zum Leuchten.

  • 1.006 - Modellauto:

Bei dem Modellauto handelt es sich um das Messobjekt.


Software:

Abb.11: Programmablaufplan
ID Komponente Aufgabe Ersteller Datum
2.001 Grafische Benutzeroberfläche Visualisierung der Ergebnisse und Steuerung des Systems Lips, Luncke 30.10.2020
2.002 MessungPosition Abstandsmessung mit Ultraschallsensor Lips, Luncke 30.10.2020
2.003 Ampelschaltung Ampelphaseneinstellung (rot, gelb, grün) Lips, Luncke 30.10.2020
2.004 RegelverstoßAmpel Ampel = rot, LED = an; Ampel = grün, LED = aus Lips, Luncke 30.10.2020
2.005 BestimmungGeschwindigkeit v = (2s)/t Lips, Luncke 30.10.2020
2.006 RegelverstoßGeschwindigkeit v > v_zugelassen, LED = an Lips, Luncke 30.10.2020
2.007 Kalman Filter Schätzung von Position, Geschwindigkeit, Beschleunigung Lips, Luncke 30.10.2020


  • 2.001 - Geschwindigkeitsüberwachung: Hier wird zunächst Matlab initialisiert, mit der Hardware verbunden und mit den benötigten Funktionen ausgestattet.
  • 2.002 - MessungPosition: Über den Ultraschallsensor wird die Position des Fahrzeugs gemessen und dargestellt.
  • 2.003 - Ampelschaltung: Mit dieser Funktion wird die Dauer der einzelnen Ampelphasen realisiert.
  • 2.004 - RegelverstoßAmpel: Wird die Lichtschranke bei rotem Ampelsignal unterbrochen, wird dies durch eine aufleuchtende LED visualisiert.
  • 2.005 - BestimmungGeschwindigkeit: Aus der gemessenen Position wird die Geschwindigkeit bestimmt.
  • 2.006 - RegelverstoßGeschwindigkeit: Bei einer Überschreitung der vorgegebenen Maximalgeschwindigkeit, wird dies ebenfalls visuell über eine LED dargestellt.
  • 2.007 - KalmanFilterG: Als Referenz dient die mit dem Kalmanfilter geschätzte Position, Geschwindigkeit und Beschleunigung.

Eine ausführliche Beschreibung der einzelnen Funktionen ist in den Headern der Matlab-Dateien zu finden. Die vollständigen Matlab-Dateien sind in SVN abgelegt.


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 LED, die Ampel und die Lichtschranke gebaut (siehe Abb.1). Folgend ist der Aufbau dargestellt, ebenso wie der Anschlussplan (Abb.14) des Arduino Uno und der einzelnen Komponenten. Abbildung 12 zeigt die Maße der Strecke und die Positionierungsstelle der Brücke und Abbildung 13 stellt die Maße der Brückenkonstruktion dar. Werden Teile mehrfach verwendet, ist die benötigte Anzahl angegeben. Die Brücke wird einzeln montiert und anschließend auf der Strecke befestigt. Der Ultraschallsensor wird mittig auf der Brücke positioniert und mit zwei Seiten und einem Deckel abgedeckt.

Abb.12: Maße-Strecke
Abb.13: Maße-Brücke
Abb.14: Anschlussplan


2. Hardware und Software

Abb.15: Programmablaufplan

Ohne die Software kann die Hardware nicht angesteuert werden. Dazu werden Subsysteme aus Hard- und Software gebildet.

Mit der Funktion „Ampelschaltung“ wird die Hardwarekomponente Ampel verbunden, sodass die verschiedenen Ampelphasen (grün, gelb, rot) geschaltet werden. Die Ampel gehört außerdem zusammen mit der Lichtschranke und der LED zur Funktion „RegelverstoßAmpel“. Wird die Lichtschranke bei der Ampelphase „rot“ überfahren wird dieser Regelverstoß visuell über die LED dargestellt.

Der Ultraschallsensor steht mit der Funktion „MessungPosition und „Geschwindigkeitsbestimmung“ in Verbindung, da über die Positionsbestimmung in den Funktionen die Geschwindigkeit berechnet wird. Außerdem findet der Ultraschallsensor zusammen mit der LED und den Ergebnissen der vorherigen Funktionen in der Funktion „RegelverstoßGeschwindigkeit“ Anwendung. Wir die zugelassene Geschwindigkeit, die die durch den Benutzer vorher festgelegt wird überschritten, wird dieser Verstoß ebenfalls über die LED visualisiert.

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 Test Funktion/Ergebnis Ersteller Datum
1.001 Mikrocontroller Anschluss der Spannungsversorgung ja, Kontrollleuchte blinkt Lips, Luncke 20.12.2020
1.002 Ultraschallsensor statische Objektmessung ja, Messobjekt wird erkannt (Referenzmessung mit Lineal) Lips, Luncke 20.12.2020
1.003 Ampel Ansteuerung der LEDs (rot, gelb, grün) ja, 1(Hight)= LEDs leuchten, 0(Low)= LEDs leuchten nicht Lips, Luncke 20.12.2020
1.004 Lichtschranke Objekterkennung ja, 1(High)= kein Objekt, 0(Low)= Objekt erkannt Lips, Luncke 20.12.2020
1.005 LED Ansteuerung mit Spannungssignal ja, 1(High)= LED leuchtet, 0(Low)= LED leuchtet nicht Lips, Luncke 20.12.2020
1.006 Modellauto Fahrfunktion ja, Fahrzeug fährt Lips, Luncke 20.12.2020
1.007 LCD Display Textanzeige nein, Pinbelegung nicht möglich (nicht genug Pins am Arduino Uno vorhanden, Alternative: Grafische Benutzeroberfläche Lips, Luncke 20.12.2020
1.008 Modellaufbau (Brücke) Stabilität, Anordnung, Maßgenauigkeit Stabilität gewährleistet, planmäßige Anordnung möglich Lips, Luncke 20.12.2020


Software und Hardware:

ID Komponente/Funktion Erwartetes Ergebnis Ergebnis Bewertung Ersteller Datum
2.004 Regelverstoß Ampel (Ampelsignal = rot) Ampelsignal = rot, Lichtschranke = 0, LED = an Ampelsignal = rot, Lichtschranke = 0, LED = an i.O. Lips, Luncke 01.01.2021
2.004 Regelverstoß Ampel (Ampelsignal = grün) Ampelsignal = grün, Lichtschranke = 1 , LED = aus Ampelsignal = grün, Lichtschranke = 1 , LED = aus i.O. Lips, Luncke 01.01.2021
2.004 Regelverstoß Ampel (Ampelsignal = rot, gelb) Ampelsignal = gelb, Lichtschranke = 0, LED = an Ampelsignal = gelb, Lichtschranke = 0, LED = an i.O. Lips, Luncke 01.01.2021
2.005 Bestimmung Geschwindigkeit (stehendes Modellauto) Geschwindigkeit beträgt 0 m/s Geschwindigkeit beträgt 0 m/s i.O. Lips, Luncke 01.01.2021
2.006 Regelverstoß Geschwindigkeit (v > v_zugelassen) v > v_zugelassen, LED = an v > v_zugelassen, LED = an i.O. Lips, Luncke 01.01.2021

Kalman - Filter

Abb.16: 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:

  Berechnung (anhand der Positionsmessung):
  v = s / t
  a = v * t
  v = ((2 * s) / t ) - v_0 
  a = ((2 * s) / t^2 ) - (2 * v_0 / t) 
  
  Schätzung (Kalman - Filter)
  pos = s = 1/2 * a * t^2 + v_0 * t + s_0
  v = a * t + v_0
  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. Es soll ein hohes Vertrauen gegenüber den Messwerten eingestellt sein, solange sich das Fahrzeug auf der Messstrecke befindet und der Ultraschallsensors aufgrund dessen Ausrichtung hinreichende Messergebnisse liefern kann. Sobald das Fahrzeug die Messstrecke 0,3 m bis 0,7 m (Abstand zum Ultraschallsensor) verlässt soll ein geringes Vertrauen gegenüber den Messwerten vorliegen. Das Vertrauen wird durch den Vektor/ Matrix R und Q bestimmt.

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

  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); wenn Fahrzeug außerhalb der Messstrecke        
        0 1 dt ;              Q = 20 * eye(3); wenn Fahrzeug innerhalb der Messstrecke 
        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 = 50; wenn Fahrzeug außerhalb der Messstrecke 
                              R = 10; wenn Fahrzeug innerhalb der Messstrecke

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 (Position des Fahrzeugs) 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ätzten Zustände als Rückgabewerte festgelegt und zur grafischen Veranschaulichung genutzt werden.

  dt = 0.1;

Grafische Benutzeroberfläche

Abb.17: 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

Als Ergebnis lässt sich zunächst festhalten, dass die geforderten Anforderungen, wie in unterer Tabelle zu sehen, erfüllt werden.

ID Kategorie Anforderung Erfüllt Ersteller
001 Geschwindigkeitsermittlung Die Geschwindigkeit v des Modellautos muss auf einem definierten Streckenabschnitt mittels eines Ultraschallsensors ermittelt werden. ja Lips, Luncke
002 Geschwindigkeitsverstoß Eine Überschreitung der zugelassenen Geschwindigkeit v > v_zugelassen muss visuell über eine LED dargestellt werden. ja Lips, Luncke
003 Geschwindigkeitsverstoß Die zugelassene Geschwindigkeit muss vom Benutzer vorgegeben werden können. ja Lips, Luncke
004 Ampelverstoß Ein Ampelverstoß liegt vor, wenn das Auto bei "rot" die Lichtschranke unterbricht und muss über eine LED visuell dargestellt werden. ja Lips, Luncke
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. ja Lips, Luncke
006 Visualisierung Auf der grafischen Benutzeroberfläche muss ein Regelverstoß visuell dargestellt werden. ja Lips, Luncke
007 Visualisierung Auf der grafischen Benutzeroberfläche muss die gemessene Geschwindigkeit dargestellt werden. ja Lips, Luncke
008 Aufbau Der Aufbau muss eine geeignete Positionierung des Ultraschallsensors ermöglichen um eine zufriedenstellende Messung durchzuführen. ja Lips, Luncke
009 Modellauto Das Modellauto muss so angepasst werden, das eine möglichst optimale Ultraschallmessung durchgeführt werden kann. ja Lips, Luncke
010 Inbetriebnahme und Steuerung Die Inbetriebnahme und Steuerung des Systems muss über eine grafische Benutzeroberfläche und Mikrocontroller stattfinden. ja Lips, Luncke


Abb.18: Fahrzeug im Stand
Abb.19: Fahrzeug in Bewegung


Das Fahrzeug wird an der Position bei 0,7 m erkannt, welches durch eine Referenzmessung mit Lineal bestätigt werden konnte. Es ist zu erkennen, dass die Positionsmesswerte leicht um den Wert 0,7 m schwanken. Nach einer Einschwingzeit von 1 Sekunde, ist zu erkennen, dass die geschätzte Position des Fahrzeugs mit den Messwerten übereinstimmt. Befindet sich das Fahrzeug im Stand, sind die geschätzten Zustände des Kalmanfilters für die Geschwindigkeit und die Beschleunigung gleich Null. Da die Positionsmessung des Ultraschallsensors leichte Messabweichungen aufweist schwanken die Messwert der Geschwindigkeit und Beschleunigung leicht (+-0,2 m/s / +-0,05 m/s^2) um den Wert Null. Außerdem ist zu erkennen, dass kein Ampelverstoß vorliegt, da sich das Fahrzeug nicht auf Ampelhöhe befindet. Die gemessene Geschwindigkeit beträgt 0 m/s (stehendes Fahrzeug) und liegt somit unterhalb der zugelassenen Geschwindigkeit von 0,05 m/s, weshalb kein Regelverstoß bezüglich der Geschwindigkeit angezeigt wird.

Die Bewegung des Fahrzeugs wird auf der Messstrecke zwischen 0,4 und 0,7 m erkannt. Die Positionsschätzung des Kalmanfilters stimmt näherungsweise mit den Positionsmesswerten überein. Es ist ein Geschwindigkeitsanstieg bei konstanter Beschleunigung erkennbar. Da die Ampel nicht bei "rot" überfahren wird, wird diesbezüglich auch kein Regelverstoß angezeigt. Die gemessene Geschwindigkeit von 0,1 m/s ist höher als die zugelassene Geschwindigkeit von 0,05 m/s und wird somit als Regelverstos angezeigt.

Sobald sich das Fahrzeug außerhalb der festgelegten Messstrecke (0,4 bis 0,7 m und 1 bis 3 sek.) befindet, wird das Kalmanfilterergebnis zu sehr von den Ausreißern beeinflusst. Durch Anpassung der Rauschvektoren/-matrizen R und Q können die Ausreißer angepasst werden. Ursache der Ausreißer können das Messobjekt (transparente Scheibe verdunkelt) und dessen dynamische Bewegung sein. Bei der statischen Messung waren die Messergebnisse im Gegensatz zur dynamischen Messung zufriedenstellend. Außerdem kann die Ausrichtung des Ultraschallsensors ebenfalls Ausreißer verursachen, da möglicherweise nicht immer das Messobjekt (Fahrzeug) getroffen wird, sondern beispielsweise die Fahrban. Um die Ausreißer zu vermeiden, wäre eine automatisierte Messung über die festgelegte Messstrecke (0,4 m bis 0,7 m) mittels einer While-Schleife (Zyklen abhängig von der gemessenen Distanz) möglich, die ebenfalls das Vertrauen in die Messwerte erhöht.

Zusammenfassung

Lessons Learned

Herausforderung:

  • Entscheidung für Softwareumsetzung (Matlab, Simulink, Arduino IDE...)
  1. Softwareumsetzung in Matlab (Vorteil: App-Designer, Einbindung von Toolbox, Hardware Support Package, Kalman-Filte etc.)
  • Hardwareumsetzung (Mikrocontroller hat nicht genügend In-/Outputs)
  1. Reduzierung nicht unbedingt erforderlicher Komponenten (weitere Lichtschranken, zweite LED, LCD-Display)
  • Modellauto so ausstatten, dass eine Messung möglich ist
  1. Transparente Scheibe verdunkeln/vergrößern
  • Feste Fahrbahn vorgeben
  1. Seitenbegrenzung (Schienen), sodass das Modellauto geradeaus fährt
  • Modellaufbau (Brücke) zu instabil
  1. Holz- statt Pappkonstruktion
  • Sensorausrichtung
  1. Sensor so befestigen, dass er seine Ausrichtung beibehält
  • Messausreißer
  1. feste Messstrecke definieren (0,4 m bis 0,7 m)
  2. Rauschparameter richtig einstellen

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.20: 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

Das Video zum Projekt befindet sich in Sciebo: Geschwindigkeitsüberwachung_Video.

Weblinks

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

Literatur

Phil Kim, Kalman - Filter mit Matlab Beispielen, 1. Auflage 2016, Übersetzt von Ulrich Schneider



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

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