Offset-Kompensation Gyro Sensor: Unterschied zwischen den Versionen
(→Test 1) |
|||
Zeile 65: | Zeile 65: | ||
|20 | |20 | ||
|- | |- | ||
|Offset in rad/ | |Offset in <math>\frac{rad}{s}</math > | ||
|10,834 | |10,834 | ||
|10,514 | |10,514 | ||
Zeile 112: | Zeile 112: | ||
|40 | |40 | ||
|- | |- | ||
|Offset in rad/ | |Offset in <math>\frac{rad}{s}</math > | ||
|10,290 | |10,290 | ||
|10,706 | |10,706 | ||
Zeile 149: | Zeile 149: | ||
|50 | |50 | ||
|- | |- | ||
|Offset in rad/ | |Offset in <math>\frac{rad}{s}</math > | ||
|11,185 | |11,185 | ||
|10,578 | |10,578 | ||
Zeile 165: | Zeile 165: | ||
;Auswertung: | ;Auswertung: | ||
{|border="1" | {|border="1" | ||
|Minimum in rad/ | |Minimum in <math>\frac{rad}{s}</math > | ||
|10,099 | |10,099 | ||
|- | |- | ||
|Maximum in rad/ | |Maximum in <math>\frac{rad}{s}</math > | ||
|11,217 | |11,217 | ||
|- | |- | ||
|Mittelwert in rad/ | |Mittelwert in <math>\frac{rad}{s}</math > | ||
|10,59144 | |10,59144 | ||
|} | |} | ||
Der Mittelwert des berechneten Offsets von 50 Messungen liegt bei 10,591444 <math>\frac{rad}{s}</math >. Dies entspricht einem Wert von 606,85°/s. | |||
Betrachtet man nun die Differenzen zwischen Minimum, Maximum und Mittelwert ergeben sich folgende Werte: | |||
Maximum-Mittelwert = 0,6256 <math>\frac{rad}{s}</math > = <u>35,84°/s</u> | |||
Mittelwert-Minimum = 0,492 <math>\frac{rad}{s}</math > = <u>28,214°/s</u> | |||
Maximum-Minimum = 1,118 <math>\frac{rad}{s}</math > = <u>64,057°/s</u> | |||
Die Differenzen zwischen den verschiedenen berechneten Mittelwerten ist sehr groß. Wird ein Mittelwert im oberen oder unteren Bereich der Mittelwerte berechnet, so kann es sein, dass die offset-kompensierte Gierrate trotz Kompensation wegläuft. | |||
Autor: [[Benutzer:Julia Müller|Julia Müller]] ([[Benutzer Diskussion:Julia Müller|Diskussion]]) 12:37, 4. Feb. 2014 (CET) | Autor: [[Benutzer:Julia Müller|Julia Müller]] ([[Benutzer Diskussion:Julia Müller|Diskussion]]) 12:37, 4. Feb. 2014 (CET) |
Version vom 6. Februar 2014, 08:15 Uhr
Automatische Offset-Kompensation
Die Offset-Kompensation des Gyro Sensors ist in dem Block Signalaufbereitung implementiert.
Die Berechnung des Offsets erfolgt über einen Matlab-Funktions-Block. Dem Block werden das Rohsignal SenGier_psip_roh_K_f64, die Tasterbetätigung des roten Taster für den Start des AEP SenTast_AEP_bit (=Taster), die Schalterstellung für Online- oder Offline-Betrieb der Simulation Schalter_offline und das zuletzt berechnete Offset LastOffset übergeben. Ausgegeben wird das berechnete Offset SabGier_offset.
Das Signal bei Betätigung des roten Tasters wird über ein Transport Delay verzögert. Die Verzögerung soll sicherstellen, dass das Fahrzeug ruhig steht. Durch die Betätigung des Tasters wird das Fahrzeug angestoßen und schwingt etwas. Würde man direkt das Offset bestimmen, besteht die Möglichkeit, dass die Schwingung des Fahrzeugs das Offset verfälscht. Durch ein Transport Delay von 5 Sekunden kann garantiert werden, dass das Fahrzeug wieder ruhig steht.
Der erste "Data Type Conversion"-Block ist notwendig, da das Transport Delay im Online-Modus nur mit einem double-Wert arbeiten kann. Im Offlinebetrieb muss der Converter entfernt werden. Anschließend muss für die Matlab-Funktion das Signal jedoch unabhängig vom Betrieb in einen boolean-Wert umgewandelt werden.
Die Matlab-Funktion enthält folgende Befehle:
function SabGier_Offset = Offsetberechnung(Last_Offset, Schalter_offline, Taster, SenGier_psip_roh_K_f64) if Taster == 1 && Schalter_offline == 0 Offset = 0; for i=1:1000; Offset= (Offset+SenGier_psip_roh_K_f64)/2; end elseif Schalter_offline == 1 Offset = 0; else Offset = Last_Offset; end SabGier_Offset = Offset;
Sobald der rote Taster gedrückt wird und sich die Simulation im Onlinebetrieb befindet, wird mit der Offset-Berechnung begonnen. Das Offset wird berechnet, indem der Mittelwert über 1000 Werte bestimmt wird. Für 1000 Schleifendurchgänge wird der aktuelle Messwert des Gyro Sensors SenGier_psip_roh_K_f64 mit dem im vorherigen Schleifendurchlauf berechneten Offset addiert und durch 2 geteilt. Im ersten Schleifendurchlauf wird das Offset zunächst auf 0 gesetzt. Befindet sich die Simulation im Offline-Modus, d.h. Schalter_offline=1, muss kein Offset berechnet werden. Das Offset wird gleich 0 gesetzt. In allen anderen Fälle, d.h. zum Beispiel wenn der Taster nicht mehr betätigt ist, soll das zuletzt berechnete Offset übergeben werden.
Je nach Bedingung wird ein Wert für das Offset bestimmt und abschließend an die Variable SabGier_Offset übergeben. Dieser Ausgabewert wird über den Block Last State wieder in den Eingang hereingeführt und gilt dort als Last_Offset.
Test der automatischen Offset-Kompensation
Test 1
- Testdurchführung
In diesem Test wurden über 15 Minuten 50 Offsetwerte bestimmt. Dazu wurde der rote Taster zum Start der Offset-Kompensation betätigt. Anschließend wurde der berechnete Offset-Wert abgelesen.
Die abgelesenen Werte befinden sich in folgender Tabelle:
Messung | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
Offset in | 10,834 | 10,514 | 10,738 | 10,258 | 10,546 | 10,930 | 10,450 | 10,738 | 10,227 | 10,386 | 10,770 | 11,089 | 10,738 | 10,578 | 10,610 | 10,578 | 10,770 | 10,514 | 10,610 | 10,770 |
Messung | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
Offset in | 10,290 | 10,706 | 10,099 | 10,610 | 10,866 | 10,482 | 10,322 | 10,195 | 10,578 | 10,610 | 10,738 | 10,258 | 10,610 | 10,834 | 10,386 | 10,345 | 11,121 | 10,610 | 10,546 | 11,214 |
Messung | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
Offset in | 11,185 | 10,578 | 10,131 | 10,546 | 10,354 | 10,482 | 10,770 | 10,674 | 10,514 | 10,258 |
- Auswertung
Minimum in | 10,099 |
Maximum in | 11,217 |
Mittelwert in | 10,59144 |
Der Mittelwert des berechneten Offsets von 50 Messungen liegt bei 10,591444 . Dies entspricht einem Wert von 606,85°/s. Betrachtet man nun die Differenzen zwischen Minimum, Maximum und Mittelwert ergeben sich folgende Werte:
Maximum-Mittelwert = 0,6256 = 35,84°/s
Mittelwert-Minimum = 0,492 = 28,214°/s
Maximum-Minimum = 1,118 = 64,057°/s
Die Differenzen zwischen den verschiedenen berechneten Mittelwerten ist sehr groß. Wird ein Mittelwert im oberen oder unteren Bereich der Mittelwerte berechnet, so kann es sein, dass die offset-kompensierte Gierrate trotz Kompensation wegläuft.
Autor: Julia Müller (Diskussion) 12:37, 4. Feb. 2014 (CET)