Verhalten in der Rechtskurve: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
|||
(20 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. | [[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 | 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 | | Kurvenfahrt Debug | ||
| Thomas Miska | | Thomas Miska | ||
|- | |- | ||
Zeile 38: | Zeile 40: | ||
|- | |- | ||
| 6 | | 6 | ||
| | | Querregelung Integrationstest definieren | ||
| Thomas Miska | | Thomas Miska | ||
|- | |- | ||
| 7 | | 7 | ||
| Integrationstest | | 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 und muss der Ideallinie folgen. | |||
[[Datei:rechtskurveFehlerhaftScope.png |links|700px|Abb. 2: Diagramme für die Rechtskurve mit Fehlern]] | == 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> | |||
== 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. | |||
[[Datei:rechtskurveFehlerhaftScope.png |links|mini|700px|Abb. 2: Diagramme für die Rechtskurve mit Fehlern]] | |||
<br> | |||
<br> | |||
<br> | |||
<br> | <br> | ||
<br> | <br> | ||
Zeile 79: | Zeile 129: | ||
== Fehlerermittlung == | == Fehlerermittlung == | ||
Für eine Fehlerermittlung muss der vorhandene Code in | 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, | 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> | ||
Zeile 142: | Zeile 189: | ||
<br> | <br> | ||
== Komponententest | |||
== 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;" | 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 166: | 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
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
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.
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.
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
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
→ zurück zum Hauptartikel: BSF - Bahn- und Spurführung