BSF - Anforderungen an die Längsregelung: Unterschied zwischen den Versionen
(101 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
== Einleitung == | == Einleitung == | ||
In diesem Artikel geht es um die Anforderungen, die Umsetzung / Optimierung und Testen der Module der Längsregelung. | |||
<br><br> | |||
== Anforderungen == | == Anforderungen == | ||
In diesem Abschnitt werden die verschiedenen Anforderungen erläutert. Zunächst werden die Anforderungen an das Team Längsregelung erläutert. Anschließend werden die zu erwartenden Funktionalitäten der Längsregelung aufgelistet. | |||
<br> | |||
Folgende Anforderungen werden an die Längsregelung gestellt: | [[Datei:REQ10.2300.PNG|650px |thumb| none | Abbildung 1: Anforderung an die Längsregelung]] | ||
[[Datei:REQ10_3275.PNG|650px |thumb| none | Abbildung 2: Anforderung an die Längsregelung]] | |||
[[Datei:REQ10_3270.PNG|650px |thumb| none | Abbildung 3: Anforderung an die Längsregelung]] | |||
=== Pflichten des Teams Längsregelung === | |||
In Abbildung 1 sind die Pflichten zu sehen, die zum Meilenstein 2 am 25.06.2020 im Bereich Längsregelung zu erledigen sind. Dies beinhaltet das Erstellen eines Testfall-Katalogs, um die Vollständigkeit der Funktionen der Längsregelung zu überprüfen. Des Weiteren folgen vereinzelte Implementierungen und Optimierungen in Abhängigkeit mit anderen Bereichen (Stopplinien-Verhalten, Ausweichen von Hindernissen). Im Anschluss, folgen ein Komponenten-Test (engl. Unit-) und ein Systemtest (engl. Integration-), um die Funktionalität der Module zu überprüfen. | |||
<br><br> | |||
[[Datei:Pflichtenheft_MS2_Cebeci.PNG|1300px |thumb| none | Abbildung 4: Pflichten des Teams Längsregelung]] | |||
<br> | |||
=== Anforderungen an die Längsregelung (Software) === | |||
Folgende funktionale Anforderungen werden an die Längsregelung gestellt: | |||
<br><br> | |||
{| class="mw-datatable" | {| class="mw-datatable" | ||
! style="font-weight: bold;" | ID | ! style="font-weight: bold;" | ID | ||
Zeile 21: | Zeile 42: | ||
| Cebeci | | Cebeci | ||
| 02.06.2020 | | 02.06.2020 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 2 | | 2 | ||
Zeile 28: | Zeile 49: | ||
| Cebeci | | Cebeci | ||
| 02.06.2020 | | 02.06.2020 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 3 | | 3 | ||
Zeile 35: | Zeile 56: | ||
| Cebeci | | Cebeci | ||
| 02.06.2020 | | 02.06.2020 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 4 | | 4 | ||
Zeile 42: | Zeile 63: | ||
| Cebeci | | Cebeci | ||
| 02.06.2020 | | 02.06.2020 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 5 | | 5 | ||
Zeile 49: | Zeile 70: | ||
| Cebeci | | Cebeci | ||
| 02.06.2020 | | 02.06.2020 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 6 | | 6 | ||
Zeile 56: | Zeile 77: | ||
| Cebeci | | Cebeci | ||
| 02.06.2020 | | 02.06.2020 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|} | |} | ||
== Implementierung == | <br><br> | ||
== Funktionaler Systementwurf / Technischer Systementwurf == | |||
In dem folgendem Abschnitt, sind die Module mit deren Schnittstellen für die Bestimmung der Soll-Geschwindigkeit und der Längsführung dargestellt. <br><br> | |||
=== Bestimmung der Soll - Geschwindigkeit === | |||
In Abbildung 5 sind die Schnittstellen der Bestimmung der Soll-Geschwindigkeit zu sehen. | |||
<br> | |||
[[Datei:Modul_BSFVx_Bestimmung_Sollgeschwindigkeit.PNG|750px |thumb| none | Abbildung 5: Modul der Bestimmung Soll-Geschwindigkeit]] | |||
<br> | |||
=== Längsführung === | |||
In Abbildung 6 sind die Schnittstellen der Längsführung zu sehen. | |||
<br> | |||
[[Datei:Modul_BSFLaengs_Laengsfuehrung.PNG|750px |thumb| none | Abbildung 6: Modul der Längsführung]] | |||
<br> | |||
<br><br> | |||
== Komponentenspezifikation == | |||
In diesem Abschnitt wird das Konzept der einzelnen Module in Form eines PAP dargestellt. | |||
<br> | |||
=== Bestimmung der Soll - Geschwindigkeit === | |||
Die Abbildung 7 zeigt den Ablauf der Bestimmung der Soll-Geschwindigkeit. Hierbei wird zum einen die Geschwindigkeit aus dem Spurpolynom, also aus der Krümmung der Kurve, abgeleitet. Des Weiteren wird die Soll-Geschwindigkeit von einem Faktor beeinflusst, der von dem Modul "BSF_StopplinienVerhalten" bestimmt wird. | |||
<br> | |||
<br> | |||
[[Datei:Konzept_Best_Vsoll.PNG|1000px |thumb| none | Abbildung 7: Konzept Bestimmung Soll-Geschwindigkeit]] | |||
<br> | |||
=== Längsführung === | |||
In der Abbildung 8 ist das Konzept der Längsführung (Regler) dargestellt. In diesem Modul wird zunächst eine Differenz der Soll-Geschwindigkeit und der Ist-Geschwindigkeit ermittelt. Das Resultat der Berechnung dient als Input des PID-Reglers. Das Signal des Outputs beinhaltet den Wert für die Gaspedalstellung. | |||
<br><br> | |||
[[Datei:Konzept_LaengsFueh.PNG|1000px |thumb| none | Abbildung 8: Konzept Längsführung]] | |||
<br><br><br> | |||
== Programmierung/Umsetzung == | |||
In den nachfolgenden Abbildungen sind die aktuellen Implementierungen der Module "BSFVx - Bestimmung Sollgeschwindigkeit" und "BSFLaengs - Laengsfuehrung" dargestellt. | |||
<br><br> | |||
[[Datei:Bestimmung_Sollgeschwindigkeit2.PNG|1000px |thumb| none | Abbildung 9: Implementierung des Moduls Bestimmung Soll-Geschwindigkeit]] | |||
<br> | |||
[[Datei:Laengsfuehrungsregler.PNG|1000px |thumb| none | Abbildung 10: Implementierung des Moduls Längsführung]] | |||
<br> | |||
<br><br> | |||
== Unit-Test == | |||
In dem Abschnitt Unit Test, geht es um das Überprüfen der überarbeiteten Module auf dessen Funktion. Um funktionelle Anforderungen abzuprüfen, wurden im Vorfeld ein Testkatalog erstellt. | |||
<br> | |||
=== Stopplinienverhalten === | |||
Da das Modul des Stopplinienverhaltens und dem dazu gehörige Testfall-Katalog von einem anderen Team erstellt wurde, ist der Unit-Test des Moduls dem nachfolgendem Artikel zu entnehmen. | |||
[[Stopplinien-Verhalten | Stopplinien-Verhalten]] | |||
<br><br> | |||
== | === Bestimmung Soll - Geschwindigkeit === | ||
Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate. | Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate. | ||
<br><br> | |||
{| 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(<code>SenKam_StoplinieAbst_f64</code>, <code>SenKam_StoplinieFlag_bit</code>) | ! style="font-weight: bold;" | Eingänge(<code>SenKam_StoplinieAbst_f64</code>, <code>SenKam_StoplinieFlag_bit</code>, <code> SenKam_SpurA_f64</code>) | ||
! style="font-weight: bold;" | Ausgang(<code> | ! style="font-weight: bold;" | Ausgang(<code>BsfVx_VxSoll_f64</code>) | ||
! style="font-weight: bold;" | Erwartetes Ergebnis | ! style="font-weight: bold;" | Erwartetes Ergebnis | ||
! style="font-weight: bold;" | Testergebnis | ! style="font-weight: bold;" | Testergebnis | ||
Zeile 76: | Zeile 154: | ||
|- | |- | ||
| 1 | | 1 | ||
| Das Fahrzeug fährt | | Das Fahrzeug fährt mit maximaler Geschwindigkeit, wenn keine Kurve erkannt wurde. | ||
| | | SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 = 0 | ||
| | | BsfVx_VxSoll_f64 = 0.75 | ||
| Vollgas | | Vollgas | ||
| | | BsfVx_VxSoll_f64 = 0.75 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 2 | | 2 | ||
| | | Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit. | ||
| | | SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 > 0 | ||
| 0 | | 0 < BsfVx_VxSoll_f64 < 0.75 | ||
| | | Bremsen auf angepasste Geschwindigkeit | ||
| 0 | | 0 < BsfVx_VxSoll_f64 < 0.75 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| 3 | | 3 | ||
| Das Fahrzeug fährt | | Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit. | ||
| | | SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 < 0 | ||
| 0 < BsfVx_VxSoll_f64 < 0.75 | |||
| Bremsen auf angepasste Geschwindigkeit | |||
| 0 < BsfVx_VxSoll_f64 < 0.75 | |||
| Cebeci | |||
| 23.06.2020 | |||
|} | |||
<br><br> | |||
=== Längsführung === | |||
Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate. | |||
<br><br> | |||
{| class="mw-datatable" | |||
! style="font-weight: bold;" | ID | |||
! style="font-weight: bold;" | Testfallbeschreibung | |||
! style="font-weight: bold;" | Eingänge(<code>Famo_VxSoll_f64</code>, <code>SenVx_vx_K_f64</code>) | |||
! style="font-weight: bold;" | Ausgang(<code>BsfLaengs_RegelDiff_f64</code>, <code>BsfLaengs_Gaspedal_Soll_f64</code>) | |||
! style="font-weight: bold;" | Erwartetes Ergebnis | |||
! style="font-weight: bold;" | Testergebnis | |||
! style="font-weight: bold;" | Testperson | |||
! style="font-weight: bold;" | Datum | |||
|- | |||
| 1 | | 1 | ||
| | | Das Fahrzeug fährt mit maximaler Geschwindigkeit wenn keine Kurve erkannt wurde. | ||
| | | Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75 | ||
| | | BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55 | ||
| | | Vollgas | ||
| BsfLaengs_Gaspedal_Soll_f64 = 0.55 | |||
| Cebeci | |||
| 23.06.2020 | |||
|- | |- | ||
| | | 2 | ||
| Das Fahrzeug | | Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit. | ||
| 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75 | |||
| 0<< | | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | ||
| Bremsen | | Bremsen auf angepasste Geschwindigkeit | ||
| 0<< | | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|- | |- | ||
| | | 3 | ||
| Das Fahrzeug | | Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit. | ||
| | | 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75 | ||
| < | | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | ||
| | | Bremsen auf angepasste Geschwindigkeit | ||
| < | | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | ||
| | | Cebeci | ||
| | | 23.06.2020 | ||
|} | |} | ||
== | <br><br> | ||
== Integrations - Test == | |||
Der Integrations - Test ist nach der Integration der Module, ohne Beanstandung abgeschlossen worden. | |||
<br><br> | |||
== Diskussion == | |||
''' Design-Review des Konzept ''' | |||
In Abbildung 9 und 10 die Programmschleife heraus nehmen. | |||
Gelöst am 16.06.2020 | |||
Review : Hagen Heuer, 14.06.2020 |
Aktuelle Version vom 17. Juli 2020, 19:44 Uhr
Autor: Alessio Cebeci
Betreuer: Prof. Schneider
Einleitung
In diesem Artikel geht es um die Anforderungen, die Umsetzung / Optimierung und Testen der Module der Längsregelung.
Anforderungen
In diesem Abschnitt werden die verschiedenen Anforderungen erläutert. Zunächst werden die Anforderungen an das Team Längsregelung erläutert. Anschließend werden die zu erwartenden Funktionalitäten der Längsregelung aufgelistet.
Pflichten des Teams Längsregelung
In Abbildung 1 sind die Pflichten zu sehen, die zum Meilenstein 2 am 25.06.2020 im Bereich Längsregelung zu erledigen sind. Dies beinhaltet das Erstellen eines Testfall-Katalogs, um die Vollständigkeit der Funktionen der Längsregelung zu überprüfen. Des Weiteren folgen vereinzelte Implementierungen und Optimierungen in Abhängigkeit mit anderen Bereichen (Stopplinien-Verhalten, Ausweichen von Hindernissen). Im Anschluss, folgen ein Komponenten-Test (engl. Unit-) und ein Systemtest (engl. Integration-), um die Funktionalität der Module zu überprüfen.
Anforderungen an die Längsregelung (Software)
Folgende funktionale Anforderungen werden an die Längsregelung gestellt:
ID | Inhalt | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|
1 | Das Fahrzeug soll bei gerader Strecke eine maximale Geschwindigkeit von 0,75 m / s erreichen | Cebeci | 02.06.2020 | Cebeci | 23.06.2020 |
2 | Das Fahrzeug soll in Kurven abhängig von der Krümmung der Kurve die Geschwindigkeit drosseln | Cebeci | 02.06.2020 | Cebeci | 23.06.2020 |
3 | Das Fahrzeug soll schnell beschleunigen und endschleunigen können | Cebeci | 02.06.2020 | Cebeci | 23.06.2020 |
4 | Das Fahrzeug soll nach einem Anhaltevorgang wieder Anfahren/ Weiterfahren können | Cebeci | 02.06.2020 | Cebeci | 23.06.2020 |
5 | Das Fahrzeug sollte bei einem Überholvorgang beschleunigen können | Cebeci | 02.06.2020 | Cebeci | 23.06.2020 |
6 | Das Fahrzeug sollte wenn es nicht Überholen kann vor dem Hindernis stehen bleiben | Cebeci | 02.06.2020 | Cebeci | 23.06.2020 |
Funktionaler Systementwurf / Technischer Systementwurf
In dem folgendem Abschnitt, sind die Module mit deren Schnittstellen für die Bestimmung der Soll-Geschwindigkeit und der Längsführung dargestellt.
Bestimmung der Soll - Geschwindigkeit
In Abbildung 5 sind die Schnittstellen der Bestimmung der Soll-Geschwindigkeit zu sehen.
Längsführung
In Abbildung 6 sind die Schnittstellen der Längsführung zu sehen.
Komponentenspezifikation
In diesem Abschnitt wird das Konzept der einzelnen Module in Form eines PAP dargestellt.
Bestimmung der Soll - Geschwindigkeit
Die Abbildung 7 zeigt den Ablauf der Bestimmung der Soll-Geschwindigkeit. Hierbei wird zum einen die Geschwindigkeit aus dem Spurpolynom, also aus der Krümmung der Kurve, abgeleitet. Des Weiteren wird die Soll-Geschwindigkeit von einem Faktor beeinflusst, der von dem Modul "BSF_StopplinienVerhalten" bestimmt wird.
Längsführung
In der Abbildung 8 ist das Konzept der Längsführung (Regler) dargestellt. In diesem Modul wird zunächst eine Differenz der Soll-Geschwindigkeit und der Ist-Geschwindigkeit ermittelt. Das Resultat der Berechnung dient als Input des PID-Reglers. Das Signal des Outputs beinhaltet den Wert für die Gaspedalstellung.
Programmierung/Umsetzung
In den nachfolgenden Abbildungen sind die aktuellen Implementierungen der Module "BSFVx - Bestimmung Sollgeschwindigkeit" und "BSFLaengs - Laengsfuehrung" dargestellt.
Unit-Test
In dem Abschnitt Unit Test, geht es um das Überprüfen der überarbeiteten Module auf dessen Funktion. Um funktionelle Anforderungen abzuprüfen, wurden im Vorfeld ein Testkatalog erstellt.
Stopplinienverhalten
Da das Modul des Stopplinienverhaltens und dem dazu gehörige Testfall-Katalog von einem anderen Team erstellt wurde, ist der Unit-Test des Moduls dem nachfolgendem Artikel zu entnehmen.
Stopplinien-Verhalten
Bestimmung Soll - Geschwindigkeit
Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate.
ID | Testfallbeschreibung | Eingänge(SenKam_StoplinieAbst_f64 , SenKam_StoplinieFlag_bit , SenKam_SpurA_f64 )
|
Ausgang(BsfVx_VxSoll_f64 )
|
Erwartetes Ergebnis | Testergebnis | Testperson | Datum |
---|---|---|---|---|---|---|---|
1 | Das Fahrzeug fährt mit maximaler Geschwindigkeit, wenn keine Kurve erkannt wurde. | SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 = 0 | BsfVx_VxSoll_f64 = 0.75 | Vollgas | BsfVx_VxSoll_f64 = 0.75 | Cebeci | 23.06.2020 |
2 | Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit. | SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 > 0 | 0 < BsfVx_VxSoll_f64 < 0.75 | Bremsen auf angepasste Geschwindigkeit | 0 < BsfVx_VxSoll_f64 < 0.75 | Cebeci | 23.06.2020 |
3 | Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit. | SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 < 0 | 0 < BsfVx_VxSoll_f64 < 0.75 | Bremsen auf angepasste Geschwindigkeit | 0 < BsfVx_VxSoll_f64 < 0.75 | Cebeci | 23.06.2020 |
Längsführung
Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate.
ID | Testfallbeschreibung | Eingänge(Famo_VxSoll_f64 , SenVx_vx_K_f64 )
|
Ausgang(BsfLaengs_RegelDiff_f64 , BsfLaengs_Gaspedal_Soll_f64 )
|
Erwartetes Ergebnis | Testergebnis | Testperson | Datum |
---|---|---|---|---|---|---|---|
1 | Das Fahrzeug fährt mit maximaler Geschwindigkeit wenn keine Kurve erkannt wurde. | Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75 | BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55 | Vollgas | BsfLaengs_Gaspedal_Soll_f64 = 0.55 | Cebeci | 23.06.2020 |
2 | Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit. | 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75 | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | Bremsen auf angepasste Geschwindigkeit | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | Cebeci | 23.06.2020 |
3 | Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit. | 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75 | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | Bremsen auf angepasste Geschwindigkeit | BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 | Cebeci | 23.06.2020 |
Integrations - Test
Der Integrations - Test ist nach der Integration der Module, ohne Beanstandung abgeschlossen worden.
Diskussion
Design-Review des Konzept
In Abbildung 9 und 10 die Programmschleife heraus nehmen.
Gelöst am 16.06.2020
Review : Hagen Heuer, 14.06.2020