Autonome Längs- und Querregelung: Unterschied zwischen den Versionen
Zeile 127: | Zeile 127: | ||
Zur Überprüfung des beschriebenen Konzepts wurde eine Testumgebung für den Block ''BSFVx - Bestimmung Sollgeschwindigkeit'' erstellt. Diese ist in der nebenstehenden Abbildung dargestellt.[[Datei:Test_Bestimmung_Sollgeschw.JPG|thumb|Testumgebung Bestimmung der Sollgeschwindigkeit]] Der Krümmungsradius wird mit einem Signal Builder simuliert. Die Parameter der LUT und die Filterfrequenz ''PAR_BsfVx_Filter_VxSoll_f64'' von 0,5Hz wurde aus der Datei ''param_BSF.m'' übernommen. Die Sollgeschwindigkeit und der simulierte Krümmungsradius werden zur Diagnose im Workspace gespeichert und mit einem Scope angezeigt. Der Krümmungsradius wird in der Datei ''Spurparam_A.mat'' und die Sollgeschwindigkeit unter ''BsfVx_VxSoll_f64.mat'' gespeichert. Das Diagramm in der Abbildung Ergebnis der Überprüfung des Sollgeschwindigkeitskonzepts zeigt das Ergebnis der Überprüfung.[[Datei:Sollgeschw.jpg|thumb|Ergebnis der Überprüfung des Sollgeschwindigkeitskonzepts]] | Zur Überprüfung des beschriebenen Konzepts wurde eine Testumgebung für den Block ''BSFVx - Bestimmung Sollgeschwindigkeit'' erstellt. Diese ist in der nebenstehenden Abbildung dargestellt.[[Datei:Test_Bestimmung_Sollgeschw.JPG|thumb|Testumgebung Bestimmung der Sollgeschwindigkeit]] Der Krümmungsradius wird mit einem Signal Builder simuliert. Die Parameter der LUT und die Filterfrequenz ''PAR_BsfVx_Filter_VxSoll_f64'' von 0,5Hz wurde aus der Datei ''param_BSF.m'' übernommen. Die Sollgeschwindigkeit und der simulierte Krümmungsradius werden zur Diagnose im Workspace gespeichert und mit einem Scope angezeigt. Der Krümmungsradius wird in der Datei ''Spurparam_A.mat'' und die Sollgeschwindigkeit unter ''BsfVx_VxSoll_f64.mat'' gespeichert. Das Diagramm in der Abbildung Ergebnis der Überprüfung des Sollgeschwindigkeitskonzepts zeigt das Ergebnis der Überprüfung.[[Datei:Sollgeschw.jpg|thumb|Ergebnis der Überprüfung des Sollgeschwindigkeitskonzepts]] | ||
Das obere Diagramm zeigt den simulierten Krümmungsradius und im unteren Diagramm ist die Sollgeschwindigkeit dargestellt. | Das obere Diagramm zeigt den simulierten Krümmungsradius und im unteren Diagramm ist die Sollgeschwindigkeit dargestellt. | ||
Zu Beginn des Tests wird eine 1s lange Rechtskurve mit einer maximalen Krümmung von -0,5 simuliert. 3s später wird eine ebenfalls 1s dauernde Linkskurve mit einem Krümmungsradius von 0,5 simuliert. Im | Zu Beginn des Tests wird eine 1s lange Rechtskurve mit einer maximalen Krümmung von -0,5 simuliert. 3s später wird eine ebenfalls 1s dauernde Linkskurve mit einem Krümmungsradius von 0,5 simuliert. Im unteren Diagramm ist bei beiden Krümmungen zu sehen, wie die Sollgeschwindigkkeit bei den maximalen Krümmungen auf die minimale Geschwindigkeit 0,5m/s verringert wird. Hier ist der Grund für den PT1-Filter zu sehen. Wenn der Filter nicht verwendet würde, wäre der Verlauf der Sollgeschwindigkeit nicht geglättet, sonder sprunghaft wie der Verlauf des Krümmungsradius. | ||
Nach 9s wird eine schwächere Rechtskurve mit einer Krümmung von -0,25 für die Dauer von 1s simuliert. Eine Linkskurve mit dem Krümmungsradius 0,25 wird nach 13s für 1s simuliert. Die Sollgeschwindigkeit wird bei beiden Kurven auf einen Wert von 1,54m/s verringert. | Nach 9s wird eine schwächere Rechtskurve mit einer Krümmung von -0,25 für die Dauer von 1s simuliert. Eine Linkskurve mit dem Krümmungsradius 0,25 wird nach 13s für 1s simuliert. Die Sollgeschwindigkeit wird bei beiden Kurven auf einen Wert von 1,54m/s verringert. | ||
Wenn keine Kurve durchfahren wird, also wenn der Krümmungsradius 0 ist wird der maximale Wert der Sollgeschwindigkeit von 2,5m/s eingestellt. | Wenn keine Kurve durchfahren wird, also wenn der Krümmungsradius 0 ist wird der maximale Wert der Sollgeschwindigkeit von 2,5m/s eingestellt. |
Version vom 6. Februar 2014, 12:59 Uhr
Einleitung und Ziel
Das Thema Autonome Längs- und Querregelung beinhaltet die Aufgaben
- Analyse Istgeschwindigkeitssignal,
- Analyse Gierrate,
- Regelung längs und
- Regelung quer.
Das Ziel der Aufgabe ist die Auslegung der Längs- und Querregelung des Fahrzeugs.
Analyse Istgeschwindigkeit
Die Aufzeichnung der Istgeschwindigkeit war zunächst nicht möglich, weil die in ControlDesk eingestellte Sollgeschwindigkeit nicht umgesetzt wurde. Unabhängig davon welcher Wert mit dem Slider vorgegeben wurde, fuhr das Fahrzeug immer rückwärts.<br\> Zur Lösung des Problems wurde die manuelle Gas-Vorgabe analysiert. Der Wert des Sliders wird mit der Look-Up-Table (LUT) Look Up Gaspedal im Block AktRtiPwm-PWM4fach-Modul in die entsprechende PWM-Breite zur Ansteuerung der Motoren umgewandelt.<br\> Das PWM-Eingangssignal AktFernb_PwmBreiteGasfernb_f64 im Block SenFernb - Fernbedienung wurde ermittelt, um die Breite der PWM bei neutraler Stellung, bei der maximalen Geschwindigkeit in Vorwärts- und Rückwärts-Fahrt zu identifizieren. <br\>
Diese Werte wurden in die LUT Look Up Gaspedal im Block AktRtiPwm-PWM4fach-Modul eingetragen (siehe Abbildung Function Block Parameters: Look Up Gaspedal).
Hierzu wurde der Parameter PAR_LookUpPWMSignalGas_f64 gleich [0.0741 0.09144 0.1292] gesetzt. Der Parameter wird in der Datei param_SEN_offline.m definiert.<br\>
Nach dieser Einstellung kann über ControlDesk die Fahrtrichtung und die Geschwindigkeit vorgegeben werden.<br\>
Darstellung der Messung Istgeschwindigkeit (Rohwert)
Zur Aufzeichnung der Rohwerte der Istgeschwindigkeit wurden in einer Testfahrt verschiedene Fahrmanöver aufgezeichnet. Die Geschwindigkeit wurde mit dem Layout Geschwindigkeit in ControlDesk vorgegeben und das Fahrzeug wurde mit der Fernbedienung gelenkt. Abbildung Gasgeben zeigt die Kontrollinstrumente zur Vorgabe der Geschwindigkeit.
Das manuelle Gasgeben per Slider muss über die gleichnamige Checkbox aktiviert werden. Ist das manuelle Gasgeben aktiviert leuchtet die LED rechts neben der Checkbox grün. Die Geschwindigkeit kann jetzt über den Slider PAR_BsfLaengs_GasSollManuell_f64 eingestellt werden. Das Geschwindigkeitssignal SenVx_vx_unfilt_K_f64 wurde mit der Rekorder-Funktion von ControlDesk aufgezeichnet und unter Testfahrt_Istgeschw.mat gespeichert. Im Artikel Messungen aufnehmen ist die Vorgehensweise zum Aufnehmen von Messwerten erläutert.<br\>
Die nebenstehende Abbildung zeigt die aufgezeichneten Rohdaten der Istgeschwindigkeit.
Nach Stillstand zu Beginn der Messfahrt wurde in 2s auf 4m/s beschleunigt und 4s mit konstanter Geschwindigkeit gefahren. Anschließend wurde noch einmal beschleunigt und nach einer 8s dauernden Fahrt mit einer konstanten Geschwindigkeit von 8m/s wurde das Fahrzeug angehalten. Im Anschluss wurde das Fahrzeug wieder beschleunigt und 9s mit der konstanten Geschwindigkeit 8m/s gefahren bis das Fahrzeug wieder gestoppt wurde. Der letzte Zyklus besteht aus einer Beschleunigung, einer 1s langen Fahrt mit 4m/s und anschließender Verringerung der Geschwindigkeit auf 2,5m/s. Nach 5s folgte eine weitere Beschleunigung auf 8m/s und nach einer 12s dauernden Fahrt mit dieser Geschwindigkeit wurde das Fahrzeug gestoppt und die Testfahrt nach 65s beendet.
Erstellung eines PT1-Filters
Die Erstellung eines PT1-Filters war nicht erforderlich, weil der vorhandene PT1-Filter PT_1_Eing_f des Moduls SenVx - Laengsgeschwindigkeit genutzt werden kann. Die Eingänge des Filters sind die ungefilterten Rohdaten der Istgeschwindigkeit (SenVx_vx_unfilt_K_f64) und die Filterfrequenz (PAR_SenGeschw_AnteilFrequenz). Der Ausgang ist die gefilterte Istgeschwindigkeit SenVx_vx_K_f64.
Auswahl einer Filterfrequenz
Zur Bestimmung der Filterfrequenz PAR_SenGeschw_AnteilFrequenz wurde die in Abbildung Testumgebung PT1-Filter Istgeschwindigkeit dargestellte Testumgebung Test_PT1_Laengsgeschw.mdl im Verzeichnis \trunk\Teams\BSF\Analyse Laengsgeschw\Test_PT1_Laengsgeschw erstellt.
Die Eingänge der Testumgebung sind die während der Testfahrt aufgezeichneten Geschwindigkeitsdaten und die Filterfrequenz. Der Ausgang, die gefilterten Geschwindigkeitsdaten, werden in einem Scope angezeigt und im Workspace gespeichert. Das Einlesen der Geschwindigkeitsdaten wurde mit dem Signal Builder-Block realisiert. Hierzu wurden die aufgezeichneten Daten in einer xls-Datei gespeichert und als Signal dem Signal Builder-Block hinzugefügt. Die Spalte der Zeitdaten muss in der ersten Zeile Time enthalten und in der ersten Zeile der Spalte mit den Geschwindigkeitswerten muss der Name für die Werte in diesem Fall Vx stehen.<br\>
Die nebenstehende Abbildung zeigt das Dialogfenster Import File zum Hinzufügen des aufgezeichneten Signals zum Signal Builder.
Im folgenden werden die Arbeitsschritte zum Hinzufügen eines aufgezeichneten Signals aufgeführt.
- Über die Funktion Import File werden die Daten der xls-Datei dem Signal Builder hinzugefügt.
- Über die Schaltfläche Browse wird die zu importierende xls-Datei ausgewählt.
- Im Feld Data to Import wird das Signal der xls-Datei ausgewählt.
- Im Drop-Down-Menü Placement for Selected Data Replace existing dataset auswählen.
- Alle Einstellungen mit einem Klick auf die Schaltfläche Confirm Selection bestätigen.
- Ein Klick auf OK lädt die Daten in den Signal Builder.
- Speichern und schließen des Signal Builders.
Die Istgeschwindigkeit wurde mit den Frequenzen
- 0,1Hz,
- 0,15Hz,
- 0,2Hz,
- 0,3Hz,
- 0,4Hz und
- 0,5Hz
gefiltert.<br\> Die gefilterten Signale wurden im Workspace gespeichert um sie vergleichen zu können. Die Messdaten und das Matlab-Skript zum Plot der Messungen sind im Verzeichnis \trunk\Teams\BSF\Analyse Laengsgeschw abgelegt.
In der Abbildung Geschwindigkeitssignal werden im oberen Diagramm die ungefilterten Rohdaten dargestellt. Das untere Diagramm zeigt die gefilterten Geschwindigkeiten für die oben aufgelisteten Frequenzen.<br\> Der Vergleich der gefilterten Signale hat ergeben, dass bei einer Filterfrequenz von 0,3Hz eine gute Rauschunterdrückung bei gleichzeitig geringem Delay erzielt wird. Wird eine höhere Frequenz gewählt, verringert sich die Zeitverzögerung, jedoch ist das Rasuchen auf dem gefilterten Signal zu hoch. Geringere Frequenzen weisen eine bessere Rauschunterdrückung auf, haben aber ein zu großes Delay.
Analyse Gierrate
Messung der Istgierrate (Rohwert)
Die Rohdaten der Istgierrate wurden während einer Testfahrt mit dem Fahrzeug aufgenommen. Es wurde zweimal eine Rechtskurve gefolgt von einer Linkskurve gefahren. Mit ControlDesk wurde eine konstante Geschwindigkeit vorgegeben und das Fahrzeug wurde mit der Fernbedienung gelenkt. Die Vorgabe der Geschwindigkeit wird in diesem Artikel unter Darstellung der Messung Istgeschwindigkeit (Rohwert) erklärt. Die Rohdaten der ungefilterten Istgierrate SenGier_psip_unfilt_K_f64 wurden mit dem ControlDesk-Rekorder aufgezeichnet und unter der Datei Analyse_Gierrate.mat gespeichert. Die Aufzeichnung von Messwerten mit ControlDesk ist im Artikel Messungen aufnehmen beschrieben.
Die aufgezeichneten Daten werden in der Abbildung Rohdaten Gierrate dargestellt.
Nach einer 7s dauernden Geradeaus-Fahrt wurde 9s lang die erste Rechtskurve gefahren. Die folgende Linkskurve wurde 5s lang durchfahren. Die Dauer der zweiten Rechtskurve betrug 6s. Die zweite Linkskurve wurden ebenfalls 5s lang befahren.
Auswahl einer Filterfrequenz
Die Filterfrequenz des PT1-Filters für die Gierrate wird in dem Parameter PAR_SabGier_FilterF_K_f64 in der Datei param_SAB.m definiert. Zur Bestimmung der Filterfrequenz wurde der PT1-Filter der Gierrate in die Testumgebung Test_PT1_Gierrat.mdl eingebettet. Die Testumgebung ist im Verzeichnis \trunk\Teams\BSF\Analyse Gierrate abgelegt.<br\> Die aufgezeichneten Rohdaten der Istgierrate werden über den Signal Builder-Block in die Testumgebung geladen. Die zu testenden Filterfrequenzen werden über die Konstante Filterfrequenz eingestellt. Die gefiltere Gierrate wird im Workspace gespeichert und mit einem Scope ausgegeben.<br\> Die Rohdaten wurden mit den folgenden Frequenzen gefiltert:
- 0,3Hz,
- 0,4Hz,
- 0,5Hz,
- 0,7Hz,
- 0,8Hz,
- 0,9Hz,
- 1,0Hz,
- 1,1Hz und
- 1,2Hz.
Die gefilterten Gierraten sind unter \trunk\Teams\BSF\Analyse Gierrate abgelegt und werden mit dem Matlab-Skript Plot_Messfahrten_Gierrate.m zum Vergleichen dargestellt.
In der Abbildung Gierrate werden im oberen Plot die Rohdaten der Istgierrate dargestellt. Das untere Diagramm zeigt die gefilterte Gierrate für die Frequenzen 0,3Hz, 0,4Hz, 0,5Hz, 0,7Hz und 0,8Hz. Dem Diagramm ist zu entnehmen, dass bei einer Filterfrequenz von 0,5Hz eine gute Rauschunterdrückung bei gleichzeitig geringer Zeitverzögerung realisiert wird. Diese Frequenz wurde deshalb als Filterfrequenz ausgewählt. Niedrigere Frequenzen haben ein höheres Delay und bei höheren Frequenzen ist die Rauschunterdrückung geringer.
Regelung längs
Die Längsregelung des Fahrzeugs erfordert eine exakte Bestimmung der Sollgeschwindigkeit. Aus diesem Grund wird in den folgenden zwei Abschnitten das Konzept zur Bestimmung der Sollgeschwindigkeit betrachtet.
Konzept zur Bestimmung der Sollgeschwindigkeit überprüfen
Die Sollgeschwindigkeit des Fahrzeugs wird aus dem Krümmungsradius der Fahrbahn bestimmt. Die Fahrbahn wird im Online-Modus mit der Kamera erfasst. Aus diesen Daten wird der Krümmungsradius der Fahrspur bestimmt und im Block SenKam - Kamera in den Kameraparameter A geschrieben und als Signal SenKam_SpurA_f64 ausgegeben.<br\> Im Online-Modell ist der Ausgang für Parameter A mit Ground verbunden, weil die Kameraauswertung auf Grund der fehlenden Kommunikation keine Daten an SenKam - Kamera überträgt.<br\>
Im Offline-Modus wird der Kameraparameter A aus der Position und der Richtung des im Einspurmodell simulierten Fahrzeugs berechnet. Die Parameter ESM_x_I_f64 und ESM_y_I_f64 beschreiben die Position des Fahrzeugs. Die Richtung des Fahrzeugs steht im Parameter ESM_psi_f64. Der SenKam - Kamera-Block des Offline-Modells wird in Abbildung SenKam - Kamera (offline) dargestellt.
Die Sollgeschwindigkeit wird im Online-Modell und im Offline-Modell im rechts dargestellten Block BSFVx - Bestimmung Sollgeschwindigkeit unter BSF - Bahnplanung und Spurfuehrung bestimmt.
Eingänge sind die Kameraparameter SenKam_SpurA_f64 und SenKam_SpurB_f64. Beide können zu Diagnosezwecken in einem Scope angezeigt werden. SenKam_SpurA_f64 ist der Eingang der Look-Up-Table Bestimmung Soll Geschwindigkeit aus Lenkwinkel in der die Sollgeschwindigkeit bestimmt wird. Die Parameter PAR_Famo_VxSollBSF_f64 und PAR_BSF_KameraAParameterVorgabe_f64 der LUT werden in der Datei param_BSF.m definiert. PAR_Famo_VxSollBSF_f64 enthält den Wert 5*[0.1 0.5 0.1] und PAR_BSF_KameraAParameterVorgabe_f64 den Wert [-0.5 0 0.5]. Daraus folgt, dass die maximale Geschwindigkeit bei keiner Krümmung 2,5m/s beträgt und die minimale Geschwindigkeit von 0,5m/s bei einem Krümmungsradius von 0,5 oder -0,5 vorgegeben wird. Das Ausgangssignal BsfVx_VxSoll_unfilt_f64 der LUT wird mit dem nachgeschalteten PT1-Filter PT_1_Eing_f geglättet. Die geglättete Sollgeschwindigkeit wird über den Ausgang BsfVx_VxSoll_f64 ausgegeben.<br\>
Zur Überprüfung des beschriebenen Konzepts wurde eine Testumgebung für den Block BSFVx - Bestimmung Sollgeschwindigkeit erstellt. Diese ist in der nebenstehenden Abbildung dargestellt.
Der Krümmungsradius wird mit einem Signal Builder simuliert. Die Parameter der LUT und die Filterfrequenz PAR_BsfVx_Filter_VxSoll_f64 von 0,5Hz wurde aus der Datei param_BSF.m übernommen. Die Sollgeschwindigkeit und der simulierte Krümmungsradius werden zur Diagnose im Workspace gespeichert und mit einem Scope angezeigt. Der Krümmungsradius wird in der Datei Spurparam_A.mat und die Sollgeschwindigkeit unter BsfVx_VxSoll_f64.mat gespeichert. Das Diagramm in der Abbildung Ergebnis der Überprüfung des Sollgeschwindigkeitskonzepts zeigt das Ergebnis der Überprüfung.
Das obere Diagramm zeigt den simulierten Krümmungsradius und im unteren Diagramm ist die Sollgeschwindigkeit dargestellt. Zu Beginn des Tests wird eine 1s lange Rechtskurve mit einer maximalen Krümmung von -0,5 simuliert. 3s später wird eine ebenfalls 1s dauernde Linkskurve mit einem Krümmungsradius von 0,5 simuliert. Im unteren Diagramm ist bei beiden Krümmungen zu sehen, wie die Sollgeschwindigkkeit bei den maximalen Krümmungen auf die minimale Geschwindigkeit 0,5m/s verringert wird. Hier ist der Grund für den PT1-Filter zu sehen. Wenn der Filter nicht verwendet würde, wäre der Verlauf der Sollgeschwindigkeit nicht geglättet, sonder sprunghaft wie der Verlauf des Krümmungsradius. Nach 9s wird eine schwächere Rechtskurve mit einer Krümmung von -0,25 für die Dauer von 1s simuliert. Eine Linkskurve mit dem Krümmungsradius 0,25 wird nach 13s für 1s simuliert. Die Sollgeschwindigkeit wird bei beiden Kurven auf einen Wert von 1,54m/s verringert. Wenn keine Kurve durchfahren wird, also wenn der Krümmungsradius 0 ist wird der maximale Wert der Sollgeschwindigkeit von 2,5m/s eingestellt.
Dieses Simulationsergebnis konnte mit einer Offline-Simulation im BSF-Modus bestätigt werden. Im Anschluss an die Offline-Simulation wurden die in Abbildung Ergebnis der Offline-Simulation dargestellten Diagramme zur Analyse der Simulation ausgegeben.
Das obere Diagramm zeigt die gefahrene Strecke auf dem Oval in rot.<br\> In der Mitte wird der Krümmungsradius der Farhbahn dargestellt. In der Zeit von 0s bis 15s wird die erste Linkskurve mit einer Krümmung von 0,05 durchfahren. Anschließend beträgt der Krümmungsradius auf der Geraden 0. Während der zweiten Linkskurve in der Zeit von 22s bis 36s beträgt die Krümmung ebenfalls 0,05. Nach der Durchfahrt der Kurve ist der Krümmungsradius wieder 0.<br\> Im unteren Diagramm ist die Sollgeschwindigkeit über der Zeit aufgetragen. Dieses zeigt, dass während der Kurven die Sollgeschwindigkeit auf 2,3m/s verringert wird und auf den Geraden die maximale Sollgeschwindigkeit von 2,5m/s vorgegeben wird.<br\> Die Überprüfung im offline-Modus hat ergeben, dass das vorhandene Konzept zur Bestimmung der Sollgeschwindigkeit verwendet werden kann. Eine Überprüfung im Online-Modus ist derzeit nicht möglich, da es keine Kommunikation zwischen der Kameraauswertung und dem Block SenKam - Kamera gibt.
Konzept zur Bestimmung der Sollgeschwindigkeit in Simulink umsetzen
Das aktuell in Simulink umgesetzte Konzept kann laut den Ergebnissen der Überprüfung verwendet werden.<br\> Allerdings ist das Konzept im Online-Modus nach dem gleichen Verfahren wie im Offline-Modus zu überprüfen und die Filterfrequenz PAR_BsfVx_Filter_VxSoll_f64 im Block BSFVx - Bestimmung Sollgeschwindigkeit ist während der Testfahrten zu überprüfen und gegebenenfalls anzupassen.
Autor: Nils Brunnert (Diskussion) 17:05, 5. Feb. 2014 (CET)
Verbesserungsvorschläge zum Artikel
--Ulrich Schneider (Diskussion) 13:38, 4. Feb. 2014 (CET)
- Autorenseite und Link zum Autor fehlt