Geschwindigkeitsermittlung
→ zurück zum Hauptartikel: Praktikum SDE
Ziel dieses Spezialthemas ist die Ermittlung der wahren Gechwindigkeit des Fahrzeuges im Online-Model. Als Input werden die Hallsensoren des Motors asynchron ausgelesen und durch eine Logik verarbeitet.
Projektteam
Hardware
Die Hardware wird im Artikel vom Sommersemester 2014 beschrieben: Hardwarebeschreibung.
- Fahrzeugübersetzung
Die Fahrzeugübersetzung wurde durch einen Verdacht auf einen Defekt verändert. Dies ist das Resultat daraus, dass das neue Zahnrad eine andere Zahnanzahl besitzt. Die neue Übersetzung bildet sich aus dem bisherigen Motorritzel mit 24 Zähnen und dem neuen Zwischenzahnrad mit 72 Zähnen. Die resultierende Übersetzung ist dabei 7,5.
Autor: Philipp Tewes (Diskussion) 11:44, 1. Feb. 2017 (CET)
Software
Auslesen der Interrupts
Nachdem im vorherigen Abschnitt die Hardware-Ansteuerung für die Geschwindigkeitsermittlung dargestellt wurde, soll der folgende Abschnitt die Software-Implementierung darstellen. Um nach Möglichkeiten alle Hall-Signale auslesen zu können, wird die Abfrage der Sensoren in einen asynchronen Task ausgelagert. Die geschieht durch die Anbindung eines Triggers, welcher auf die Interrupts der DS1104 achtet. Sobald dort ein Interrupt gesetzt wird, werden die Sensoren abgefragt und einmalig ausgewertet. Der asynchrone Task befindet sich im Hauptmodell "CCF_online" im Submodul "SEN - Geschwindigkeit". Dort sieht man, dass es ein weiteres Submodul gibt, welches als Trigger den Eingang "DS1104MASTER_HWINT_I2" hat. Über diesen Block werden die Interrupts der DS1104 eingelesen. Das ist in der Abbildung 1 dargestellt.
Wie man in Abbildung 1 erkennen kann, werden die einzelnen Outputs des Submodules durch "Rate Transmission" auf "GoTo" gesendet. Die "GoTo" verweisen auf die Bibliothek "Sensoren online", wo die ermittelten Werte weiter verwendet werden. Die Trennung zwischen den beiden Modulen ist notwendig, um das Modell ständig mit aktuellen Werten versorgen zu können. Diese Versorgung wird dadurch sichergestellt, dass die Rate Transmission für jeden Durchlauf den alten Wert bereit hält.
Kombinatorik der Hall-Signale
Wie eben beschrieben werden die Hall-Signale asynchron ausgelesen. Sobald diese über den ADC-Eingang der DS1104 eingelesen wurden, werden diese mit dem Wert 0.5 verglichen. Dieser Schritt erzeugt aus dem analogen Eingangssignal ein digitales Signal im Wertebereich [0 1], welches die weitere Verarbeitung deutlich erleichtert. Die digitalen Signale werden anschließend in einer S-Function bearbeitet und zur Geschwindigkeitsermittlung aufbereitet.
Sollte es beim Kompilieren des Projektes Probleme geben, kann es hilfreich sein, wenn man die S-Function einmal neu "Builded". Dies passiert, indem man die S-Function öffnet und oben rechts auf den Button "Build" klickt.
Innerhalb der S-Function werden die Hall-Signale einer Kombinatorik unterzogen, welche die folgenden Gesetzen folgt:
Motorstatus | Hall A | Hall B | Hall C |
---|---|---|---|
1 | 1 | 0 | 1 |
2 | 1 | 0 | 0 |
3 | 1 | 1 | 0 |
4 | 0 | 1 | 0 |
5 | 0 | 1 | 1 |
6 | 0 | 0 | 1 |
Die Auswertung der Motoränderungen werden in der zweiten S-Function beschrieben. Hierbei entspricht jeder positive Wechsel (1->2 ... 5->6) einer Vorwärtsbewegung und jeder negative Wechsel (6->5 ... 2->1) einer Rückwärtsbewegung. Dabei entspricht ein Statuswechsel einer 1/6-Motordrehung. Durch empirische Studien konnte nachgewiesen werden, dass sich eine Motordrehung nach folgender Formel in die reale Bewegung in des Fahrzeuges auf der Straße umwandeln lässt: SPEED = 0.0867 * MOTORSPEED + 0.027.
Filterung
Die ermittelte Geschwindigkeit weißt ein starkes Rauschen auf, welches durch "Zucken" des Motors und ungenaues Auslesen der Hall-Sensoren erklärt werden kann. Um die Geschwindigkeit sauber auf den Bus legen zu können, soll diese gefiltert werden. Diese Filterung erfolgt wie nachfolgend erklärt mit einer Limitierung und einem PT1-Filter.
In Abbildung 3a kann man erkennen, dass im ersten Graph das reine Messsignal abgebildet ist. Hierbei erkennt man deutlich die Peaks und das hohe Flattern des Signals. Um aus diesem Signal eine saubere Messung zu kreieren wird das Signal durch ein "Limiter" begrenzt. Dieser Limiter hat die Funktion, dass er alle Werte, welche größer als "20" sind, durch den vorherigen Wert ersetzt. Als zweiten Limiter wird ein Änderungslimiter genutzt, welcher eine Steigung, die größer als "10" ist, nicht zulässt, sondern den Wert limitiert. Das Ergebnis dieser Limiter sieht man in Graph 2 und 3 der Abbildung 3. Das dazugehörige Simulink-Modell ist in Abbildung 3b dargestellt.
Das limitierte Signal kann nun durch einen PT1-Filter gefiltert werden. Das Ergebnis der Filterung mit einer Frequenz von 0.5 Hz lässt sich in Graph 4 der Abbildung 3 erkennen. Nach der Übertragung des Messsignals in das wahre Signal per Funktion kann man in Graph 5 der Abbildung 3 die Geschwindigkeit in m/s erkennen.
Wegmessung
Die Messung des Weges erfolgt per Integration der Geschwindigkeit. Diese Messmethode erscheint sicherer zu sein, als die Messung direkt von den Hall-Signalen. Eine genaue detailierte Überprüfung dieses Sachverhaltes steht noch aus.
Quellcode
Nachfolgend abgebildet ist der Quellcode der Funktion get_direction.c :
// Author: Assad Al-Suleihi
// CASES:
//
// A B C CaseNum
// 1 0 1 1
// 1 0 0 2
// 1 1 0 3
// 0 1 0 4
// 0 1 1 5
// 0 0 1 6
#define FORWARD 1
#define BACKWARD 0
// init
static int last_case = 0;
static int last_dir = FORWARD;
int state;
int case_num = 0;
state = 0;
// setzen des Status
if(HALL_A[0]>0){
state +=100;
}
if(HALL_B[0]>0){
state+=10;
}
if(HALL_C[0]>0){
state+=1;
}
// Übersetzung des Status
switch(state){
case 101:
case_num = 1;
break;
case 100:
case_num = 2;
break;
case 110:
case_num = 3;
break;
case 10:
case_num = 4;
break;
case 11:
case_num = 5;
break;
case 1:
case_num = 6;
break;
default:
break;
}
// Ermittlung der Drehrichtung
//Case: Forward Wrap-Around 6->1
if(case_num == 1 && last_case == 6){
direction[0] = FORWARD;
last_dir = FORWARD;
//Case: Backward Wrap-Around 1->6
}else if(case_num == 6 && last_case == 1){
direction[0] = BACKWARD;
last_dir = BACKWARD;
//Case: Forward 1->2 .. 5->6
}else if(case_num > last_case){
direction[0] = FORWARD;
last_dir = FORWARD;
//Case: Backward 6->5 .. 2->1
}else if(case_num < last_case){
direction[0] = BACKWARD;
last_dir = BACKWARD;
//Case: No change
}else if(case_num == last_case){
direction[0] = last_dir;
}
current_state[0] = case_num;
//save current case number
last_case = case_num;
Nachfolgend abgebildet ist der Quellcode der Funktion meas_accel_rtlib.c:
// Author: Asaad Al-Suleihi
// Update: Philipp Tewes und Janis Ostermann
// init
static bool first_run = true;
const double disp_single_int = 1;
const double max_time = 171.827509221549;
static double last_time = 0;
static double last_interrupt_count = 0;
static double last_speed = 0;
static double acceleration = 0;
static double delta_interrupts = 1;
static double disp = 1;
double curr_time;
double delta_loops;
double dt;
double speed;
//displacement
#define FORWARD 1
#define BACKWARD 0
const double diameter = 0.0663; // Raddurchmesser in m
#define M_PI 3.14
double circumference = M_PI*diameter; // Umfang (0.2083) in m
//disable for setting ratio in ControlDesk
const double ratio = 7.5; // 7.5 Motorumdrehungen = 1 Radumdrehung
const double hall_per_evo = 2; // 2 Flanken Hall-Sensor
double step = circumference / (ratio * hall_per_evo); // Gefahrene Strecke zwischen zwei Hall-Sensor Signalen
//filter array
#define BUFF_SIZE 100
static double circ_buff[BUFF_SIZE]={0};
static int buff_wr=0;
static int num_vals_in_buff = 0;
double rolling_mean;
int i;
double mean_speed;
static double last_mean_speed;
double mean_accel;
//
//time using timestamping
static double curr_sec;
static double last_sec;
double dsec;
double timestamp_vel;
//
//Ermittlung der Geschwindigkeit
if (first_run == true){
first_run = false;
#ifndef MATLAB_MEX_FILE
ts_init(TS_MODE_SINGLE,0.0);
last_sec = ts_time_read();
#endif
disp = 0;
}
#ifndef MATLAB_MEX_FILE
curr_sec = ts_time_read();
#endif
//Prüfen auf "false" Flanken
if ( (curr_sec - last_sec) > min_delta_t[0]){
//dt = curr_time - last_time;
dsec = curr_sec - last_sec;
timestamp_vel = step / dsec;
//last_time = curr_time;
last_sec = curr_sec;
if(direction[0] == FORWARD){
disp += step;
}else{
disp -= step;
}
displacement[0] = disp;
velocity[0] = timestamp_vel;
}
HIL Test
Datum: 02.09.2014 Teilnehmer: Al-Suleihi, Prof. Schneider
Aufbau
- Signalgenerator erzeugt Rechteckflanken mit einer Frequenz von 735,2 Hz
- Frequenz mit Oszilloskop geprüft
- Signal geht auf dSpace Breakoutbox
- Signalverarbeitung im Simulink Modell
- Gesamte AMR Modell läuft mit.
- Die Flanken starten einen 10uS Timer.
- Zwischen den Flanken liegen 1,36ms
- In Control Desk werden n=137 bzw. 138 Flanken gezählt.
- Zu Testzwecken wurde die Frequenz ermittelt.
- Die Frequenz liegt zwischen 724,6Hz und 729,92Hz.
- Der Raddurchmesser beträgt 0,0663m.
- Der Radumfang berechnet sich zu 0,2083m.
- 4 Motorumdrehungen entsprechen 1 Radumdrehung.
- Mit der neuen Schaltung werden die steigenden und fallenden Flanken des Hallgebers zu je einer steigenden Flanke gewandelt.
- Pro Kanal A, b, c ergeben sich somit 2 Flanken.
- Pro Motorumdrehung entstehen 6 Flanken.
- Mit jeder Flanke hat sich das Rad um 0,008678m bzw. 8,7mm gedreht.
- Die gefahrene Strecke sollte aus der Summe der Teilstrrecken ermittelt werden.
- Der Geschwindigkeitsfehler berechnet sich zu:
- Der maximale Geschwindigkeitsfehler liegt somit bei 4,6cm jede Sekunde.
- Mit statistischen Mitteln (z.B. Tiefpassfilterung) sollte dieser Fehler um den Faktor 0,1 auf 5mm/s verbessert werden können.
- Um die Auflösung zu erhohen, könnte mit jedem Timerimpuls die Stecke inkrementiert werden. Dies würde die Auflösung um den Faktor 137 erhöhen. Wenn je 8,7mm 137 Timerflanken gezählt werden sind dies 63um.
Nächste Schritte
Deadline: Freitag, 05.09.14 Bearbeiter: Asaad Al-Suleihi
- Umsetzung der Testumgebung auf der Hardware (AMR)
- Strecken und Geschwindigkeitsberechnung.
- Tiefpassfilterung über 10 Werte
- Autonome Fahrt in den Geschwindigkeiten 0,5m/s, 1m/s, 2m/s, 3m/s
- Verifizierung des HIL-ergebnisse am Fahrzeug.
- Absolute Referenzmessung der Strecke und Geschwindigkeit
Test im/am Fahrzeug
Autor: Alexander Schirrmeister
Betreuer: Prof. Schneider, Prof. Göbel, Marc Ebmeyer
Einleitung
In diesem Kapitel wird die Umsetzung der Tests für das Softwaremodul "Geschwindigkeitsermittlung inkl. Hall-Sensorik" beschrieben und dokumentiert.
Zum Beginn werden die Testfälle vorgestellt, inklusive der Präkonditionen, Testschritte, und der Postkonditionen. Im Anschluss daran werden die erzielten ergebnisse erläutert.
Zum Schluss werden mögliche Ursachen und Fehlerquellen genannt.
Testfälle
Die Testfälle wurden auf Basis der aktuellen SVN Softwareversion durchgeführt. Hierzu wurde ein Simulinkmodell erstellt, welches aus einzelnen Bibliotheksblöcken der zu testenden Funktionen aufgebaut ist (bib_Sensoren_Aktoren_online [Rev.: 6815]).
Diese Dateien befinden sich unter dem Pfad "https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/testumgebungen/Vx_HallSensorik/Vx_Testumgebung.slx". Das zum Test erstellte Modell ist "Vx_Testumgebung.slx", welches über das Start-Script "start_Vx_Hallsensorik.m" initialisiert und geöffnet wird.
Zur Durchführung einiger Tests wurde ein externer Antrieb für eines der Räder genutzt. Mithilfe eines Akkuschraubers mit der einer Nenndrezahl von 450 U/min, lässt sich eine feste erwartete Geschwindigkeit ermitteln.
Zur Berechnung wird die Umdrehung des Differenzialtellers benötigt. Diese lässt sich wie folgt bestimmen:
Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle U_Teller = \frac{U_links + U_rechts}{2}} }
Mithilfe des Raddurchmessers von lässt sich die erwartete Geschwindigkeit ermitteln:
Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle v = (/pi * d) * U_Teller = (/pi * d) /frac {U_links + U_rechts}{2}} = 0.0663 * /pi /frac {0 + 450}{2}} = 0.7811 /frac {{m}{s}} }
Die ausführlichen Tabellen zu den Testfällen lassen sich mit Klick auf den Button "Ausklappen" anzeigen
Testfall 1
Bezeichnung: Funktionsfähigkeit Hallensor A
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung |
---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [1] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- |
Testschritt 1 | Linkes Hinterrad festhalten, rechtes hinterrad händisch drehen | Räder sind in Ruhe | Händisch das Rechte Hinterrad mit dem Uhrzeigersinn (vorwärts) drehen | Das Rad dreht sich | Das Rad dreht sich | i.O. | ---- |
Testschritt 2 | Control Desk Plotter überprüfen | In Control Desk wird eine 0 angezeigt für Hallsensor A angezeigt | Plotter beobachten | Es werden positive und negative Flanken ausgelöst | Bilder werden noch eingefügt | i.O. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 2
Bezeichnung: Funktionsfähigkeit Hallensor B
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung |
---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [2] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- |
Testschritt 1 | Linkes Hinterrad festhalten, rechtes hinterrad händisch drehen | Räder sind in Ruhe | Händisch das Rechte Hinterrad mit dem Uhrzeigersinn (vorwärts) drehen | Das Rad dreht sich | Das Rad dreht sich | i.O. | ---- |
Testschritt 2 | Control Desk Plotter überprüfen | In Control Desk wird eine 0 angezeigt für Hallsensor B angezeigt | Plotter beobachten | Es werden positive und negative Flanken ausgelöst | Bilder werden noch eingefügt | i.O. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 3
Bezeichnung: Funktionsfähigkeit Hallensor C
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung |
---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [3] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- |
Testschritt 1 | Linkes Hinterrad festhalten, rechtes hinterrad händisch drehen | Räder sind in Ruhe | Händisch das Rechte Hinterrad mit dem Uhrzeigersinn (vorwärts) drehen | Das Rad dreht sich | Das Rad dreht sich | i.O. | ---- |
Testschritt 2 | Control Desk Plotter überprüfen | In Control Desk wird eine 0 angezeigt für Hallsensor C angezeigt | Plotter beobachten | Es werden positive und negative Flanken ausgelöst | Bilder werden noch eingefügt | i.O. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 4
Bezeichnung: Funktionsfähigkeit Richtungsbit
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung |
---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [4] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- |
Testschritt 1 | Drehung mit Hand im Uhrzeigersinn | Räder sind in Ruhe | Händisch das Rechte Hinterrad mit dem Uhrzeigersinn (vorwärts) drehen | Das Rad dreht sich, anschließend ändert es die Richtung | Das Rad dreht sich, anschließend ändert es die Richtung | i.O. | ---- |
Testschritt 2 | Control Desk Plotter überprüfen | In Control Desk wird eine 1 für das Richtungsbit angezeigt | Plotter beobachten | Es wird eine positive Flanke ausgelöst | Bilder werden noch eingefügt | n.i.O. | ---- |
Testschritt 3 | Drehung mit Hand gegen den Uhrzeigersinn | Räder sind in Ruhe | Händisch das Rechte Hinterrad gegen den Uhrzeigersinn rückwärts drehen | Das Rad dreht sich | Das Rad dreht sich | i.O. | ---- |
Testschritt 4 | Control Desk Plotter überprüfen | In Control Desk wird eine 0 angezeigt für Hallsensor C angezeigt | Plotter beobachten | Es werden positive und negative Flanken ausgelöst | Bilder werden noch eingefügt | i.O. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 5
Bezeichnung: Positive wahre Geschwindigkeit
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung | |
---|---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- | |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- | |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- | |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [5] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- | |
Testschritt 1 | Rechtes Hinterrad extern antreiben | Das Rad ist in Ruhe | Den Akkuschrauber mit 7mm Nuss auf die Sechskantmutter setzen und mit voller Leistung im Uhrzeigersinn drehen | Das Hinterrad dreht sich | Das Hinterrad dreht sich | i.O. | ---- | |
Testschritt 2 | ControlDesk Plotter prüfen | Im Plotter wird die wahre Geschwindigkeit mit 0m/s angezeigt | Ankommende Werte in Control Desk überwachen | Die wahre Geschwindigkeit steigt auf etwa 0.8m/s an. | Bilder werden noch eingefügt | i.O. | Aufgrund der vorherigen Berechnung zur erwarteten Geschwindigkeit von 0.78 m/s weicht der Wert in geringem Maße ab | ---- |
Testschritt 3 | ControlDesk Plotter prüfen nachdem das Rad in Ruhe ist | Die wahre Geschwindigkeit zeigt 0.8m/s | ControlDesk Plotter prüfen | Die Geschwindigkeit ist 0m/s | Bilder werden noch eingefügt | n.i.O. | Die wahre Geschwindigkeit liegt nicht auf 0m/s. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- | |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- | |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 6
Bezeichnung: Negative wahre Geschwindigkeit
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung | |
---|---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- | |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- | |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- | |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [6] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- | |
Testschritt 1 | Linkes Hinterrad extern antreiben | Das Rad ist in Ruhe | Den Akkuschrauber mit 7mm Nuss auf die Sechskantmutter setzen und mit voller Leistung im Uhrzeigersinn drehen | Das Hinterrad dreht sich | Das Hinterrad dreht sich | i.O. | ---- | |
Testschritt 2 | ControlDesk Plotter prüfen | Im Plotter wird die wahre Geschwindigkeit mit 0m/s angezeigt | Ankommende Werte in Control Desk überwachen | Die wahre Geschwindigkeit steigt auf etwa 0.8m/s an. | Bilder werden noch eingefügt | i.O. | Aufgrund der vorherigen Berechnung zur erwarteten Geschwindigkeit von 0.78 m/s weicht der Wert in geringem Maße ab | ---- |
Testschritt 3 | ControlDesk Plotter prüfen nachdem das Rad in Ruhe ist | Die wahre Geschwindigkeit zeigt 0.8m/s | ControlDesk Plotter prüfen | Die Geschwindigkeit ist 0m/s | Bilder werden noch eingefügt | n.i.O. | Die wahre Geschwindigkeit liegt nicht auf 0m/s. | |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- | |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- | |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 7
Bezeichnung: Positive gefilterte Geschwindigkeit
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung | |
---|---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- | |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- | |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- | |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [7] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- | |
Testschritt 1 | Rechtes Hinterrad extern antreiben | Das Rad ist in Ruhe | Den Akkuschrauber mit 7mm Nuss auf die Sechskantmutter setzen und mit voller Leistung im Uhrzeigersinn drehen | Das Hinterrad dreht sich | Das Hinterrad dreht sich | i.O. | ---- | |
Testschritt 2 | ControlDesk Plotter prüfen | Im Plotter wird die gefilterte Geschwindigkeit mit 0m/s angezeigt | Ankommende Werte in Control Desk überwachen | Die gefilterte Geschwindigkeit steigt auf etwa zügig aber leicht verzögert auf 0.8 m/s an. | Bilder werden noch eingefügt | n.i.O. | Die gefilterte Geschwindigkeit ist sehr träge und folgt nicht der wahren Geschwindigkeit. | ---- |
Testschritt 3 | ControlDesk Plotter prüfen nachdem das Rad in Ruhe ist | Die wahre Geschwindigkeit zeigt 0.8m/s | ControlDesk Plotter prüfen | Die Geschwindigkeit ist 0m/s | Bilder werden noch eingefügt | n.i.O. | Die gefilterte Geschwindigkeit kehrt nicht auf 0 m/s zurück, da die wahre Geschwindigkeit ebenfalls nicht auf 0 m/s fällt. | |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- | |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- | |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 8
Bezeichnung: Varialble gefilterte Geschwindigkeit
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung | |
---|---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- | |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- | |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- | |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [8] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- | |
Testschritt 1 | Rechtes Hinterrad in Impulsen extern antreiben | Das Rad ist in Ruhe | Den Akkuschrauber mit 7mm Nuss auf die Sechskantmutter setzen und mit voller Leistung im Uhrzeigersinn drehen | Das Hinterrad dreht sich mit ungleichmäßiger Geschwindigkeit | Das Hinterrad dreht sich mit ungleichmäßiger Geschwindigkeit | i.O. | ---- | |
Testschritt 2 | ControlDesk Plotter prüfen | Im Plotter wird die wahre Geschwindigkeit mit 0m/s angezeigt | Ankommende Werte in Control Desk überwachen | Die gefilterte Geschwindigkeit steigt an und folgt der wahren Geschwindigkeit zügig aber leicht verzögert. | Bilder werden noch eingefügt | n.i.O. | Die gefilterte Geschwindigkeit ist sehr träge und schafft es nicht in einer geeigneten Zeit auf einen angemessenen Wert zu folgen. Eine Reaktion auf die Geschwindigkeitsveränderungen ist nicht direkt zu erkennen. | |
Testschritt 3 | ControlDesk Plotter prüfen nachdem das Rad in Ruhe ist | Die gefilterte Geschwindigkeit ist ungleich 0 m/s | ControlDesk Plotter prüfen | Die Geschwindigkeit ist 0m/s | Bilder werden noch eingefügt | n.i.O. | Die gefilterte Geschwindigkeit sinkt nicht und hält das Niveau von etwa 0.1 m/s | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- | |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- | |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 9
Bezeichnung: Geschwindigkeit mit Vorzeichen
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung | |
---|---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- | |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- | |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- | |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [9] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- | |
Testschritt 1 | Hinterräder mit voller Leistung mithilfe des Akkuschraubers antreiben | Die Räder sind in RUhe | Den Akkuschrauber mit 7mm Nuss auf nacheinander auf die Sechskantmuttern setzen und mit voller Leistung im Uhrzeigersinn drehen | Die Hinterräder drehen sich nacheinander mit gleichmäßiger Geschwindigkeit | Die Hinterräder drehen sich nacheinander mit gleichmäßiger Geschwindigkeit | i.O. | ---- | |
Testschritt 2 | ControlDesk Plotter prüfen | Im Plotter wird die Geschwindigkeit mit Vorzeichen mit 0m/s angezeigt | Ankommende Werte in Control Desk überwachen | Die Geschwindigkeit mit Vorzeichen steigt an und folgt der Geschwindigkeit, bei Richtungswechsel folgt sie der wahren Geschwindigkeit in an der X-Achse gespiegelter Form. | Bilder werden noch eingefügt | n.i.O. | Die vorzeichenbehaftete Geschwindigkeit wechselt aufgrund des fehlerhaften Richtungsbits ebenfalls das Vorzeichen. Dies lässt sich anhand der blauen Linie erkennen. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- | |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- | |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Testfall 10
Bezeichnung: Geschwindigkeitsermittlung in Ruhe
Tester: Alexander Schirrmeister
Datum: 09.02.2022
Testinstanz: Fahrzeug
Verwendete Software: Vx_Testumgebung.slx , Matlab/Simulink, Controldesk
Schritt Nr. | Beschreibung | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Bemerkung |
---|---|---|---|---|---|---|---|
Precondition 1 | Fahrzeug aufbocken, sodass die Räder freilaufend sind, Akku für die Adapterplatine anschließen, Akku für den Fahrantrieb anschließen, Stromkabel für externe Spannungsversorgung an das Fahrzeug anschließen | Fahrzeug ist ausgeschaltet | Motorschalter in die rechte Position legen um den Motor und die Hall-Sensorik mit Spannung zu versorgen, Taster des Fahrzeug-PCs betätigen | Fahrzeug fährt hoch | Das Fahrzeug ist hochgefahren | i.O. | ---- |
Precondition 2 | Simulation öffnen | Desktop des Fahrzeugs ist zu sehen und bedienbar | Matlab 2019a starten | Skript "start_Vx_HallSensorik.m" in Matlab öffnen und ausführen | Parameter werden geladen, Simulinkmodell wird initialisiert und geöffnet | i.O. | ---- |
Precondition 3 | Modell kompilieren | Simulinkmodell ist geöffnet und "Ready" | Starten des Buildprozesses (Shortcut: Strg + B) | Simulink builded das geöffnete Modell | Das Simulink generiert das File "vx_testumgebung.sdf | i.O. | ---- |
Precondition 4 | ControlDesk starten | ControlDesk ist nicht geöffnet | Controldesk 7.1 starten und aus dem neuen ControlDesk Fenster das ControlDesk Experiment öffnen [10] und Messung starten. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | Das Experiment öffnet sich und die Plotter fangen an, Daten aufzuzeichnen. | i.O. | ---- |
Testschritt 1 | Plotter überprüfen | Die Geschwindigkeiten sind alle 0 m/s, nur ein Hallsensor hat den Wert 1 | Plotter überprüfen | Die Geschwindigkeit und die Hall-Sensor Signale ändern sich nicht. | Die Geschwindigkeit und die Hall-Sensor Signale ändern sich nicht. | i.O. | ---- |
Postcondition 1 | ControlDesk Experiment anhalten | Das ControlDesk Experiment läuft | Auf "Go Offline" klicken | Die Messungen werden gestoppt und Plotter halten die Werte fest | Die Messungen werden gestoppt und Plotter halten die Werte fest | i.O. | ---- |
Postcondition 2 | Matlab und Controldesk schließen | Modell und Experiment sind geöffnet | Fenster der Programme schließen | Die Programme sind geschlossen | Die Programme sind geschlossen | i.O. | ---- |
Postcondition 3 | Fahrzeug herunterfahren | PC ist noch an | Fahrzeug herunterfahren, Motorschalter in Linke Stellung bringen, Akkus abziehen | Der PC ist aus | Der PC ist aus | i.O. | ---- |
Zusammenfassung
Es lässt sich festhalten, dass die Hall-Sensoren ohne Probleme funktionieren und sicher ihre Flanken auslösen. Hingegen dazu funktioniert die Bestimmung der Richtung nicht so reibungslos. Das Richtungsbit oszilliert zwischen 0 und 1, hierbei ist anzumerken, dass der Richtungswechsel immer stattfindet, sobald Hallsensor A eine positive Flanke auslöst. Für die Dauer Flanken von Hall B und C ist die Richtungsbestimmung korrekt.
Die Geschwindigkeiten weisen ebenfalls Problematiken auf. Die wahre Geschwindigkeit kann anfangs korrekt bestimmt werden, fällt jedoch trotz der ruhenden Räder nicht wieder auf 0m/s ab. Ein ähnliches Bild ist bei den gefilterten und vorzeichenbehafteten Geschwindigkeiten zu erkennen. Hierbei ist anzumerken, dass die Filterung der Geschwindigkeit exträm träge ist. Dies kann durch die ständigen Richtungswechsel erklärt werden. Steht das Auto länger still, ist der Filter durch einen Windup nicht mehr ansprechbar.
Aufgrund dieser Gegebenheiten lässt sich der Schluss ziehen, dass die Geschwindigkeitsermittlung nicht robust genug ist, um eine stabile Längsregelung zu gewährleisten.
→ zurück zum Hauptartikel: Übersichtsseite Tests
Umsetzung der Lösung auf der Hardware (AMR)
Die Lösung wurde auf Basis der in der HIL-Simulation gewonnenen Erkenntnisse auf der Hardware umgestzt. Dabei ist abweichend zu der HIL-Simulation zwecks der Ermittlung der Zeit nicht auf einem zyklischen Timer zurückgegriffen. Die Zeitmessung wurde auf Basis der dSPACE RTLib (Real-Time Library) implementiert. Die RTLib stellt C-Funktionen zur Verfügung, mit denen den Wert der Zeitgeber der Hardware gelesen werden kann. Diese stellt die höchste genauigkeit dar, die mit der Hardware erreicht werden kann.
Bei der Implementierung und Test hat sich herausgestellt, dass:
- Die Geschwindigkeit des Fahrzeugs im aufgebockten Zustand wellenformig schwingt. Die Frequenz der Signale der Hall-Sensoren variiert Sinusformig.
- Bei der Ausgang des XOR-Gatters zu Zusammenführung der Hall-Signale treten Ausreißer auf die einige 10µ-Sekunden breit sind. Diese sind aber ausreichend, um bei der Hardware ein Interrupt auszulösen. Die Ursache der Ausreißer und eine Möglichkeit zur hardwaremäßigen Lösung soll noch betrachtet werden.
Die Detektion der Ausreißer könnte per Software gelöst werden. Es wurde ein mindest Abstand zwischen 2 Flanken definiert. Alle Flanken, die in einem kurzeren Abstand zu einander auftreten werden als Fehlflanken erkannt und nicht für die Geschwindigkeitsberechnung herangezogen.
Jedoch ist noch ein Rauschen auf Geschwindigkeitssignal festzustellen. Diese lässt sich durch minimal abweichenden Zeiten zwischen den Flanken erklären. Dieses Rauschen kann gefiltert werden. Zu Demonstration wurde das Signal in PT-1-Glieder unterschiedliche Frequenzen weiterbearbeitet.
Versionsablage
→ zurück zum Hauptartikel: Praktikum SDE