BSF - Anforderungen an die Längsregelung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(44 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>
<br><br>


Zeile 42: Zeile 42:
| Cebeci
| Cebeci
| 02.06.2020
| 02.06.2020
|  
| Cebeci
|  
| 23.06.2020
|-
|-
| 2
| 2
Zeile 49: Zeile 49:
| Cebeci
| Cebeci
| 02.06.2020
| 02.06.2020
|  
| Cebeci
|  
| 23.06.2020
|-
|-
| 3
| 3
Zeile 56: Zeile 56:
| Cebeci
| Cebeci
| 02.06.2020
| 02.06.2020
|  
| Cebeci
|  
| 23.06.2020
|-
|-
| 4
| 4
Zeile 63: Zeile 63:
| Cebeci
| Cebeci
| 02.06.2020
| 02.06.2020
|  
| Cebeci
|  
| 23.06.2020
|-
|-
| 5
| 5
Zeile 70: Zeile 70:
| Cebeci
| Cebeci
| 02.06.2020
| 02.06.2020
|  
| Cebeci
|  
| 23.06.2020
|-
|-
| 6
| 6
Zeile 77: Zeile 77:
| Cebeci
| Cebeci
| 02.06.2020
| 02.06.2020
|  
| Cebeci
|  
| 23.06.2020
|}
|}


Zeile 84: Zeile 84:


== Funktionaler Systementwurf / Technischer Systementwurf ==
== Funktionaler Systementwurf / Technischer Systementwurf ==
Modul_BSFVx_Bestimmung_Sollgeschwindigkeit.PNG
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>
<br><br>


== Komponentenspezifikation ==
== 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>


[[Datei:Konzept_Best_Vsoll.PNG|1000px |thumb| none | Abbildung 1: Konzept Bestimmung Soll-Geschwindigkeit]]
=== 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>
<br>


[[Datei:Konzept_LaengsFueh.PNG|1000px |thumb| none | Abbildung 1: Konzept Längsführung]]
[[Datei:Laengsfuehrungsregler.PNG|1000px |thumb| none | Abbildung 10: Implementierung des Moduls Längsführung]]
<br>
<br>
== Programmierung/Umsetzung ==
Bei der Implementierung der Module wird auf den vorherigen Artikel verwiesen. [[BSF - Längsregelung | BSF - Längsregelung]]


<br><br>
<br><br>


== Komponententest ==
== 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>
<br>


Zeile 106: Zeile 134:
=== Stopplinienverhalten ===  
=== Stopplinienverhalten ===  


Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate.
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.
<br><br>
[[Stopplinien-Verhalten | Stopplinien-Verhalten]]
 
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! 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;" | Ausgang(<code>BSFVx_Faktor_i8</code>)
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
| Das Fahrzeug fährt normal, wenn keine Stopplinie erkannt wurde.
| SenKam_StoplinienFlag_bit = 0, SenKam_StoplinienAbst_f64 = 0
| 1
| Vollgas
|
|
|
|-
| 2
| Trifft das Fahrzeug bei seiner Rundfahrt an eine Stopp-Kreuzung so muss es 10cm vor der Stopplinie anhalten
| SenKam_StoplinienFlag_bit = 1, SenKam_StoplinienAbst_f64 <= 10% Max_Abstand
| 0
| Fahrzeug Stoppt
|
|
|
|-
| 3
| Das Fahrzeug fährt weiter, wenn keine Stopplinie erkannt wurde.
| SenKam_StoplinienFlag_bit = 0, SenKam_StoplinienAbst_f64 existiert
| 1
| Nicht plausibeler Fall. (Da keine Stopplinie erkannt wurde) 
|
|
|
|-
| 4
| Das Fahrzeug muss im Bereich zwischen 0.1m und 1m vor der Stopplinie immer langsamer fahren.
| SenKam_StoplinienFlag_bit = 1, 0<SenKam_StoplinienAbst_f64<=10
| 0<<code>BSFVx_Faktor_i8</code><1 (Linieare Änderung)
| Bremsen 
|
|
|
|-
| 5
| Das Fahrzeug muss bei Stopplinienerkennung im Bereich weiter als 1m weiter normal fahren.
| SenKam_StoplinienFlag_bit = 0, SenKam_StoplinienAbst_f64>10
| <code>BSFVx_Faktor_i8</code> = 1
| Nicht unterbrochene Fahrt
|
|
|
|}
 
<br><br>
<br><br>


Zeile 187: Zeile 158:
| BsfVx_VxSoll_f64 = 0.75
| 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.
| Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit.
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 > 0
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 > 0
| BsfVx_VxSoll_f64 < 0.75
| 0 < BsfVx_VxSoll_f64 < 0.75
| Bremsen auf reduzierte Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
|  
| 0 < BsfVx_VxSoll_f64 < 0.75
|  
| Cebeci
|  
| 23.06.2020
|-
|-
| 3
| 3
| Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit.
| Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit.
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 < 0
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 < 0
| BsfVx_VxSoll_f64 < 0.75
| 0 < BsfVx_VxSoll_f64 < 0.75
| Bremsen auf reduzierte Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
|  
| 0 < BsfVx_VxSoll_f64 < 0.75
|  
| Cebeci
|  
| 23.06.2020
|-
| 4
|
|
|
|
|
|
|
|-
| 5
|
|
|
|
|
|
|
|}
|}


Zeile 240: Zeile 193:
! 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></code>)
! style="font-weight: bold;" | Eingänge(<code>Famo_VxSoll_f64</code>, <code>SenVx_vx_K_f64</code>)
! style="font-weight: bold;" | Ausgang()  
! 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;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testergebnis
Zeile 248: Zeile 201:
|-
|-
| 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
| 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
| 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
|-
| 4
|
|
|
|
|
|
|
|-
| 5
|
|
|
|
|
|
|
|}
|}


<br><br>
<br><br>


== Systemtest ==
== Integrations - Test ==
Der Integrations - Test ist nach der Integration der Module, ohne Beanstandung abgeschlossen worden.


Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate.
<br><br>
<br><br>


{| class="mw-datatable"
== Diskussion ==
! style="font-weight: bold;" | ID
''' Design-Review des Konzept '''
! style="font-weight: bold;" | Testfallbeschreibung
 
! style="font-weight: bold;" | Eingänge(<code></code>)
In Abbildung 9 und 10 die Programmschleife heraus nehmen.
! style="font-weight: bold;" | Ausgang()
 
! style="font-weight: bold;" | Erwartetes Ergebnis
Gelöst am 16.06.2020
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
|
|
|
|
|
|
|
|-
| 2
|
|
|
|
|
|
|
|-
| 3
|
|
|
|
|
|
|
|-
| 4
|
|
|
|
|
|
|
|-
| 5
|
|
|
|
|
|
|
|}


<br><br>
Review : Hagen Heuer, 14.06.2020

Aktuelle Version vom 17. Juli 2020, 18: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.


Abbildung 1: Anforderung an die Längsregelung
Abbildung 2: Anforderung an die Längsregelung
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.

Abbildung 4: Pflichten des Teams Längsregelung


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.

Abbildung 5: Modul der Bestimmung Soll-Geschwindigkeit


Längsführung

In Abbildung 6 sind die Schnittstellen der Längsführung zu sehen.

Abbildung 6: Modul der Längsführung




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.

Abbildung 7: Konzept Bestimmung Soll-Geschwindigkeit


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.

Abbildung 8: Konzept Längsführung




Programmierung/Umsetzung

In den nachfolgenden Abbildungen sind die aktuellen Implementierungen der Module "BSFVx - Bestimmung Sollgeschwindigkeit" und "BSFLaengs - Laengsfuehrung" dargestellt.

Abbildung 9: Implementierung des Moduls Bestimmung Soll-Geschwindigkeit


Abbildung 10: Implementierung des Moduls Längsführung




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