Verhalten in der Rechtskurve: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(18 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:BSF - Bahn- und Spurführung]]
[[Kategorie:BSF - Bahn- und Spurführung]]
[[Datei:Rechtskurve.png |rechts|mini|350px|Abb. 1: Fehlerhafter Verhalten in der Rechtskurve]]
[[Datei:Rechtskurve.png |rechts|mini|350px|Abb.: Fehlerhafter Verhalten in der Rechtskurve]]
'''Autor:''' [[Benutzer:Thomas Miska| Thomas Miska]]
'''Autor:''' [[Benutzer:Thomas Miska| Thomas Miska]]




== Einleitung ==
== Einleitung ==
In diesem Artikel wird die Vorgehensweise der Fehlerermittlung der Rechtskurve geschildert und dem anschließenden Test des Moduls.
In diesem Artikel wird die Vorgehensweise der Fehlerermittlung der Rechtskurve geschildert. Das Verhalten der Rechtskurve ist im Wintersemester2019/20 fehlerbehaftet und das Fahrzeug verhielt sich nicht korrekt. Dieser Fehler wurde korrigiert. Anschließend wird ein Test des Moduls durchgeführt, sowie ein Integrationstest auf dem Fahrzeug.


Das systematische Vorgehen bei der Entwicklung des Modells orientiert sich am V-Prozessmodell.
Das systematische Vorgehen bei der Entwicklung des Modells orientiert sich am V-Prozessmodell.


== Anforderungen==
== Anforderungen==
[[Datei:RechtskurveAnforderung.png]]
Folgende Anforderungen wurden an die Rechtskurve gestellt:
Folgende Anforderungen wurden an die Rechtskurve gestellt:
{| class="mw-datatable"
{| class="mw-datatable"
Zeile 18: Zeile 20:
|-
|-
| 1
| 1
| Kurvenfahrt Reverse Engineering
| Kurvenfahrt Debug
| Thomas Miska
| Thomas Miska
|-
|-
Zeile 38: Zeile 40:
|-
|-
| 6
| 6
| Integrationstest
| Querregelung Integrationstest definieren
| Thomas Miska
| Thomas Miska
|-
|-
| 7
| 7
| Durchführung auf der Online Simulation
| Querregelung Integrationstest durchführen
| Thomas Miska
|-
| 8
| Querregelung Verbesserungsvorschläge definieren
| Thomas Miska
|-
| 9
| Querregelung Verbesserungsvorschläge umsetzen
| Thomas Miska
|-
| 10
| Ggf. Querregelung Debug
| Thomas Miska
|-
| 11
| Ggf. Querregelung Umsetzung der Verbesserungen
| Thomas Miska
|-
| 12
| Ggf. Querregelung erneut Integrationstest durchführen
| Thomas Miska
| Thomas Miska
|-
|-
|}
|}


Darüber hinaus darf das Fahrzeug die Strecke nicht verlassen uns sollte der Ideallinie folgen.
Darüber hinaus darf das Fahrzeug die Strecke nicht verlassen und muss der Ideallinie folgen.
 
== Komponentenspezifikation ==
Das Modell wird insgesamt als Komponente aufgefasst. Die Kompenente befindet sich in der Bahnplanung und Spurführung - Querregelung - Sollbahnbestimmung
 
[[Datei:Berechnung_Kurvenradius.PNG|links|mini|1000px|Abb. 1: Komponentente in Simulink zur Berechnung des Kurvenradius]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>


== Reverse Engineering und Problem eingrenzen==
== Debug und Problem eingrenzen==
Für das Problem muss der Code komplett überprüft werden. Um die Zeit sinnvoll einzusetzen wird daher beim Reverse Engineering logisch an das Problem herangetreten. Das heißt es wurde überlegt wo die Ursache liegen könnte. Die Ursache muss in der Querregelung liegen oder in der simulation der Gierrate. Die Annahme konnte mit der Abb.2 aufgestellt werden, die eine fehlerhafte Berechnung und Regelung aufweist.
Für das Problem muss der Code komplett überprüft werden. Um die Zeit sinnvoll einzusetzen wird daher beim debuggen logisch an das Problem herangetreten. Das heißt es wurde überlegt wo die Ursache liegen könnte. Die Ursache muss in der Querregelung liegen oder in der Simulation der Gierrate. Die Annahme konnte mit der Abb.2 aufgestellt werden, die eine fehlerhafte Berechnung und Regelung aufweist.


[[Datei:rechtskurveFehlerhaftScope.png |links|700px|Abb. 2: Diagramme für die Rechtskurve mit Fehlern]]
[[Datei:rechtskurveFehlerhaftScope.png |links|mini|700px|Abb. 2: Diagramme für die Rechtskurve mit Fehlern]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Zeile 81: Zeile 129:


== Fehlerermittlung ==
== Fehlerermittlung ==
Für eine Fehlerermittlung muss der vorhandene Code in seine Einzelteile überprüft werden. Für die Überprüfung werden in Simulink die Scopes und der Wiki Artikel zur Hilfe genommen. Da die Linkskurve bisher ohne Fehler erfolgte, konnte der Fehler eingegrenzt werden. Die Eingrenzung wird im Bereich der Girrate und der Sollbahnbestimmung definiert. So könnte die Gierate ein fehlerhafte Berechnung aufweisen oder die Berechnung der Sollbahnbestimmung nicht korrekt durchlaufen.
Für eine Fehlerermittlung muss der vorhandene Code in seinen Einzelteilen überprüft werden. Für die Überprüfung werden die Scopes in Simulink und der Wiki Artikel zur Hilfe genommen. Da die Linkskurve bisher ohne Fehler erfolgte, konnte der Fehler eingegrenzt werden. Die Eingrenzung wird im Bereich der Girrate und der Sollbahnbestimmung definiert. So könnte die Gierate ein fehlerhafte Berechnung aufweisen oder die Berechnung der Sollbahnbestimmung nicht korrekt durchlaufen.


== Fehlerbehebung ==
== Fehlerbehebung ==
Im Simulinkmodell wird in der Berechnung der Sollbahnbestimmung die Berechnung nicht richtig ausgeführt. Schuld ist ein Vorzeichen, welcher durch eine Multiplikation verschwindet. Auf diese Weise werden negative Werte nicht mehr berücksichtigt und der Algorithmus funktioniert nur noch für die Linkskurve. Für dieses Problem wird das Vorzeichen gespeichert und anschließend nach der Multiplikation dem Wert wieder hinzugefügt.
Im Simulinkmodell wird in der Berechnung der Sollbahnbestimmung die Berechnung nicht richtig ausgeführt. Schuld ist ein Vorzeichen, welches durch eine Multiplikation verschwindet. Auf diese Weise werden negative Werte nicht mehr berücksichtigt und der Algorithmus funktioniert nur noch für die Linkskurve. Für dieses Problem wird das Vorzeichen gespeichert und anschließend nach der Multiplikation dem Wert wieder hinzugefügt.


Als Abschluss zeigt die Abbildung 4 dieses Artikels das Ergebnis der Fehlerkorrektur, in der das Fahrzeug die Rechtskurve durchfährt, sowie die Linkskurve weiterhin korrekt durchlaufen wird. Darüber hinaus werden in der Abbildung 3 die Diagramme ausgegeben, die nun eine korrekte Berechnung der Kurvenfahrt nach links und nach rechts durchführen.
Als Abschluss zeigt die Abbildung 4 dieses Artikels das Ergebnis der Fehlerkorrektur, in der das Fahrzeug die Rechtskurve durchfährt, sowie die Linkskurve weiterhin korrekt durchlaufen wird. Darüber hinaus werden in der Abbildung 3 die Diagramme ausgegeben, die nun eine korrekte Berechnung der Kurvenfahrt nach links und nach rechts durchführen.




[[Datei:rechtskurveScope.png |links|700px|Abb. 3: Diagramme für die Rechtskurve ohne Fehler]]
[[Datei:rechtskurveScope.png |links|mini|700px|Abb. 3: Diagramme für die Rechtskurve ohne Fehler]]
[[Datei:rechtskurveSimulation.png |links|700px|Abb. 4: Simulation für die Rechtskurve ohne Fehler]]
[[Datei:rechtskurveSimulation.png |links|mini|700px|Abb. 4: Simulation für die Rechtskurve ohne Fehler]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Zeile 144: Zeile 189:
<br>
<br>


== Komponententest/Unittest ==
 
== Komponententest ==
Da es sich bei dieser Fehlerkorrektur um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab.
Da es sich bei dieser Fehlerkorrektur um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab.
{| class="mw-datatable"
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingänge x,y,PosAlt,Ausrichtung,Karte,Bumper,Ultraschall,Perimeterschleife
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
! style="font-weight: bold;" | Datum
|-
|-
| 1
| 1  
| Linkskurve: Fahrzeug befindet sich auf der Strecke und verlässt diese nicht
| i.O
| Marcel Bröckelmann
| 29.11.2019
|-
|-
| 2
| 2
| Rechtskurve: Fahrzeug befindet sich auf der Strecke und verlässt diese nicht
| i.O
| Marcel Bröckelmann
| 29.11.2019
|-
|-
| 3
| 3
| Die Outputs befinden sich in einem zu erwartenden Wertebereich
| i.O
| Marcel Bröckelmann
| 29.11.2019
|-
| 4
| Inputs werden variiert
| i.O
| Marcel Bröckelmann
| 29.11.2019
|-
| 5
| Der  negativ und postiv Wert aus der Girrate, muss denselben absoluten Sollwert berechnen.
Geschwindigkeit und Vorrausschauweite bleiben konstant
| i.O
| Marcel Bröckelmann
| 29.11.2019
|-
|-
|}
|}
Der Unittest ist erfolgreich durchlaufen.
== Ergebnis==
[[Datei:rechtskurveErgebnis.gif |links|mini|700px|Abb. 5: Ergebnis der Korrektur]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>


== Zusammenfassung ==
== Zusammenfassung ==
Zeile 168: Zeile 269:
== Link zum Quelltext in SVN ==
== Link zum Quelltext in SVN ==
[https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Teams/BSF/Kurvenfahrt/ Abbildungen] <br>
[https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Teams/BSF/Kurvenfahrt/ Abbildungen] <br>
[https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/ Software]
[https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/ Software] <br>
[https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Testdokumente/Unittests/ Unittest]


----
----
→ zurück zum Hauptartikel: [[BSF - Bahn- und Spurführung|BSF - Bahn- und Spurführung]]
→ zurück zum Hauptartikel: [[BSF - Bahn- und Spurführung|BSF - Bahn- und Spurführung]]

Aktuelle Version vom 6. Februar 2020, 10:59 Uhr

Abb.: Fehlerhafter Verhalten in der Rechtskurve

Autor: Thomas Miska


Einleitung

In diesem Artikel wird die Vorgehensweise der Fehlerermittlung der Rechtskurve geschildert. Das Verhalten der Rechtskurve ist im Wintersemester2019/20 fehlerbehaftet und das Fahrzeug verhielt sich nicht korrekt. Dieser Fehler wurde korrigiert. Anschließend wird ein Test des Moduls durchgeführt, sowie ein Integrationstest auf dem Fahrzeug.

Das systematische Vorgehen bei der Entwicklung des Modells orientiert sich am V-Prozessmodell.

Anforderungen

Folgende Anforderungen wurden an die Rechtskurve gestellt:

ID Inhalt Ersteller
1 Kurvenfahrt Debug Thomas Miska
2 Eingrenzen der Fehlerursache Thomas Miska
3 Bestimmung des Fehlers Thomas Miska
4 Korrektur des Fehlers Thomas Miska
5 Unittest des Fehlers (Black Box) Thomas Miska
6 Querregelung Integrationstest definieren Thomas Miska
7 Querregelung Integrationstest durchführen Thomas Miska
8 Querregelung Verbesserungsvorschläge definieren Thomas Miska
9 Querregelung Verbesserungsvorschläge umsetzen Thomas Miska
10 Ggf. Querregelung Debug Thomas Miska
11 Ggf. Querregelung Umsetzung der Verbesserungen Thomas Miska
12 Ggf. Querregelung erneut Integrationstest durchführen Thomas Miska

Darüber hinaus darf das Fahrzeug die Strecke nicht verlassen und muss der Ideallinie folgen.

Komponentenspezifikation

Das Modell wird insgesamt als Komponente aufgefasst. Die Kompenente befindet sich in der Bahnplanung und Spurführung - Querregelung - Sollbahnbestimmung

Abb. 1: Komponentente in Simulink zur Berechnung des Kurvenradius



















Debug und Problem eingrenzen

Für das Problem muss der Code komplett überprüft werden. Um die Zeit sinnvoll einzusetzen wird daher beim debuggen logisch an das Problem herangetreten. Das heißt es wurde überlegt wo die Ursache liegen könnte. Die Ursache muss in der Querregelung liegen oder in der Simulation der Gierrate. Die Annahme konnte mit der Abb.2 aufgestellt werden, die eine fehlerhafte Berechnung und Regelung aufweist.

Abb. 2: Diagramme für die Rechtskurve mit Fehlern






























Fehlerermittlung

Für eine Fehlerermittlung muss der vorhandene Code in seinen Einzelteilen überprüft werden. Für die Überprüfung werden die Scopes in Simulink und der Wiki Artikel zur Hilfe genommen. Da die Linkskurve bisher ohne Fehler erfolgte, konnte der Fehler eingegrenzt werden. Die Eingrenzung wird im Bereich der Girrate und der Sollbahnbestimmung definiert. So könnte die Gierate ein fehlerhafte Berechnung aufweisen oder die Berechnung der Sollbahnbestimmung nicht korrekt durchlaufen.

Fehlerbehebung

Im Simulinkmodell wird in der Berechnung der Sollbahnbestimmung die Berechnung nicht richtig ausgeführt. Schuld ist ein Vorzeichen, welches durch eine Multiplikation verschwindet. Auf diese Weise werden negative Werte nicht mehr berücksichtigt und der Algorithmus funktioniert nur noch für die Linkskurve. Für dieses Problem wird das Vorzeichen gespeichert und anschließend nach der Multiplikation dem Wert wieder hinzugefügt.

Als Abschluss zeigt die Abbildung 4 dieses Artikels das Ergebnis der Fehlerkorrektur, in der das Fahrzeug die Rechtskurve durchfährt, sowie die Linkskurve weiterhin korrekt durchlaufen wird. Darüber hinaus werden in der Abbildung 3 die Diagramme ausgegeben, die nun eine korrekte Berechnung der Kurvenfahrt nach links und nach rechts durchführen.


Abb. 3: Diagramme für die Rechtskurve ohne Fehler
Abb. 4: Simulation für die Rechtskurve ohne Fehler



















































Komponententest

Da es sich bei dieser Fehlerkorrektur um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab.

ID Testfallbeschreibung Testergebnis Testperson Datum
1 Linkskurve: Fahrzeug befindet sich auf der Strecke und verlässt diese nicht i.O Marcel Bröckelmann 29.11.2019
2 Rechtskurve: Fahrzeug befindet sich auf der Strecke und verlässt diese nicht i.O Marcel Bröckelmann 29.11.2019
3 Die Outputs befinden sich in einem zu erwartenden Wertebereich i.O Marcel Bröckelmann 29.11.2019
4 Inputs werden variiert i.O Marcel Bröckelmann 29.11.2019
5 Der negativ und postiv Wert aus der Girrate, muss denselben absoluten Sollwert berechnen.

Geschwindigkeit und Vorrausschauweite bleiben konstant

i.O Marcel Bröckelmann 29.11.2019

Der Unittest ist erfolgreich durchlaufen.

Ergebnis

Abb. 5: Ergebnis der Korrektur




























Zusammenfassung

Die Rechtskurve konnte in der Offline-Simulation behoben werden. Der nächste Schritt besteht im Test der Kurvenfahrt auf der Teststrecke.

Link zum Quelltext in SVN

Abbildungen
Software
Unittest


→ zurück zum Hauptartikel: BSF - Bahn- und Spurführung