AF: Gierrate (SenGier, SabGier)

Aus HSHL Mechatronik
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Autoren: Benjamin Dilly & Kevin Mudczinski

Abbildung 1: Gierratensensor LPR510AL [1]

Hauptseite
SDE Praktikum
SDE-Team 2023/24
Lernzielkontrolle 1


Primärsensor

Der LPY510AL ist ein 2-Achsen Sensor (X-Z), welcher die Gierrate (Z) und das Nicken (X) misst. Dieser ist auf der Hauptplatine verlötet. Je nach Ausführung kann der Sensor ±100°/s und ±400°/s messen. Das Modul verfügt über einen 3.3V Spannungsregler, sodass dieser auch mit 5V betrieben werden kann. Die Drehgeschwindigkeit kann pro Drehachse an 2 Sensorpins abgelesen werden, wobei jeweils einer der Pins immer eine 4-Fach so hohe Geschwindigkeit messen kann, jedoch mit einer geringeren Genauigkeit (8-Bit AD-Wandler). Genauere informationen sind zu finden unter: https://a.pololu-files.com/product/1267

Messkette

In Abbildung 2 ist die Messkette des Gyrosensors im Online Simulink-Modell dargestellt.

Aufbau Sensor

In Abbildung 3 wird die Platine des Gyrosensors dargestellt. Hierbei ist zu beachten, dass der im Fahrzeug verbaute Sensor die X/Z-Achsen Variante ist.

In Abbildung 4 zeigt den elektronischen Schaltplan des Gyrosensors inklusive Außenbeschaltung.

Systementwurf

Zentrale Parameter

Messgröße: Zentrifugalkraft [N]
Messbereich: +/-100°/s und +/-400°/s
Messgenauigkeit: Abhängig von AD-Wandler Auflösung. Ausgabespannung (0V - 3.3V): -100/-400°/s (0V), 0°/s (1,23V), 100/400°/s (3.3V) (mit Uref 3.3V)
Stromversorgung: 3.3V bis 5V

Sensoranschlussplan

Nr Name Funktion dSPACE Anschluss
1 VIN Spannungseingang des Boards
2 GND Masse
3 Vref Referenzspannung
4 4Z Drehung um die Z-Achse (Gieren)
5 Z Drehung um die Z-Achse (Gieren) DS1104MUX ADC1 CH3

Einbauposition

Der Gierratensensor ist im gelben Rechteck auf der Hauptplatine verbaut.

Sensorblock - SEN - Sensoren - online

SenGier - Gierrate

Abbildung 6 zeigt das SEN - Sensoren - online Subsystem. Das grüne Quadrat markiert die relevanten Blöcke für den Gyro-Sensor. Hier wird der gewandelte AD-Wert aufgenommen und in Radiant umgewandelt.

Eingang / Ausgang

Block: SenGier - Gierrate (Abbildung 6, Abbildung 7)
Eingang: ADC_eing
Ausgang: SenGier_psip_roh_K_f64

Funktion
  1. Einlesen des Drehwinkels, als normalisierte Gleitkommazahl in Gradmaß von BLOCK DS1104MUX_ADC
  2. Umwandlung in Rohwert BLOCK SenGier - Gierrate
    1. Umwandlung ADC-Eingang in Degree BLOCK ADC_2_deg (Abbildung 7)
    2. Umwandlung Grad- in Bogenmaß BLOCK D2R (Abbildung 7)

Sensorblock - SAB - Signalaufbereitung

SabGier - Gierrate

Eingang / Ausgang

Block: SabGier - Gierrate
Eingang: SenGier_psip_roh_K_64, SenTast_AEP_bit, SenGier_psi_reset_bit, SenTast_BSF_Grundk_bit, SenTast_BSF_GrundkHindernis_bit
Ausgang: SenGier_psi_filt_K_f64, SenGier_psip_filt_K_f64, SenGier_psi_unfilt_K_f64, SenGier_psip_unfilt_K_f64, SabGier_Reset_bit

Funktion Offsetberechnung & Offsetkompensation

Berechnet einmalig den Offset des Sensors. Hierfür werden beim Start des Systems oder nach einer Rücksetzung einmalig 1000 Werte gemessen und gemittelt, um den Offset zu berechnen.
Dies dient der Elimination von Rauschen oder fehlerhaftem Einbau des Sensors (bspw. schiefes Einbauen), um einen Nullwert zu ermitteln.
Die Offsetkompensation zieht dann den Offset von dem ungefilterten Rohwert ab (Abbildung 9).

  1. Eingang SenGier_psip_roh_K_64
  2. Ausgang SabGier_Offset
Funktion PT_1_Eing_f

Der verwendete PT1 Filter glättet den verrauschten offsetkompensierte Messwert. Hierfür verwendet der Filter eine Filterkonstante von 0.9 die durch PAR_SabGier_f_K_f64 gegeben wird.
Die Glättung wird vorgenommen um ein möglichst gleichmäßiges Signal für den Integrator zu bekommen und eine möglichst gute Winkelbestimmung zu ermöglichen. Sie soll das hochfrequente Rauschen der Elektronikkomponenten vom Sensorelement, AD-Wandler & co. ausgleichen. Das Resultat der Filterung wird in Abbildung 13 gezeigt.

Funktion Integrator

Addiert die aktuelle Winkelgeschwindigkeit auf (Merkt den letzten Wert), bzw. den aktuell zurückgelegten Winkel. Das Ergebnis ist die Ausrichtung des Roboters, also dessen Drehung zum Weltkoordinatensystem bzw. Blickrichtung. Wie der integrierte Winkel aussehen kann, ist in den Abbildungen 12 und 14 gezeigt.

Signalanalyse

Beschreibung

In den folgenden Plots, wurde der Gierraten Sensor ausgemessen. Hierbei wurde das Fahrzeug auf dem Tisch hochgebockt, auf einem Karton, jeweils um 90°.

Messwertanalyse

Block 1: Rohwertberechnung (Abbildung 10)

Subplot 1
- X-Achse: Zeit in s
- Y-Achse: ADC (Analogwert des Analogdigitalwandlers in Gradmaß)
Subplot 2
- X-Achse: Zeit in s
- Y-Achse: SenGier_psip_roh_K_64 (In bogenamßgewandelter Rohwert)

Block 2: Offsetkompensation (Abbildung 11)

Subplot 1
- X-Achse: Zeit in s
- Y-Achse: SenGier_psip_roh_K_64 (In bogenamßgewandelter Rohwert), Offset
Subplot 2
- X-Achse: Zeit in s
- Y-Achse: SenGier_psip_unfilt_K_f64 (Kompensierter ungefilterter Messwert), Offset

Block 3: Rohwert nach Offsetkompensation & Integrierter Rohwert nach Offsetkompensation (Abbildung 12)

In dieser Abbildung ist in Subplot 2 sehr schön die Funktionsweise des Resetbuttons dargestellt. Hier sieht man wie der Integrierte Winkel nach Betätigung des Buttons auf Null zurückgeht und sich danach wieder leicht aufsummiert. Zusehen ist dies in der Zeitspanne von 0-10 Sekunden. Nach dem Reset, wird der Offset ebenfalls neu Berechnet. Subplot 1
- X-Achse: Zeit in s
- Y-Achse: SenGier_psip_unfilt_K_f64 (Kompensierter ungefilterter Messwert)
Subplot 2
- X-Achse: Zeit in s
- Y-Achse: SenGier_psi_unfilt_K_f64 (Integrierter Winkel)

Block 4: Tiefpassfilterung nach Offsetkompensation (Abbildung 13)

- X-Achse: Zeit in s
- Y-Achse: SenGier_psip_unfilt_K_f64 (Nicht gefilterte kompensierte Messung)
- Y-Achse: SenGier_psip_filt_K_f64 (PT1 gefilterte Messung)

Block 5: Integrierte Tiefpassfilterung (Abbildung 14)

Im Subplot 2 kann man erkennen, dass der gefilterte Integratorwert nich auf den Reset in den ersten 10 Sekunden reagiert. Subplot 1
- X-Achse: Zeit in s
- Y-Achse: SenGier_psip_filt_K_f64 (PT1 gefilterte Messung)
Subplot 2
- X-Achse: Zeit in s
- Y-Achse: SenGier_psi_filt_K_f64 (PT1 gefilterte, integrierter Winkel)

Liste offener Punkte (LOP)

Nr Name Funktion dSPACE Anschluss
1 VIN Spannungseingang des Boards
2 GND Masse
3 Vref Referenzspannung
4 4Z Drehung um die Z-Achse (Gieren)
5 Z Drehung um die Z-Achse (Gieren) DS1104MUX ADC1 CH3
Tabelle 3: Liste offener Punkte (LOP)
# Problem Analyse Maßnahme Freigabe Wirksamkeit Dokumentation
1 SenGier_psi_filt_K_f64 gibt falschen Wert aus Reagiert nicht auf Zurücksetzung und ist somit permanent zu groß Überarbeiten des Integrators
2 Der Drehwinkel der Integratoren beim Drehen stimmt nicht mit den 90° überein Unsauberes Drehen oder Fehler in der Integration Weitere Messungen zur Fehlerdetektion
3 ADC_eing stimmt nicht
4 SenGier_psip_roh_K_64 Wieso reduziert sich das Rauschen?
5 Einfluss der Schräglage des Sensors in Theorie und Praxis muss untersucht werden.
6 Rücksetzen des Winkels/Integrators via ControlDesk
7 Blöcke und Signale sind nicht benannt Bezug unklar Blöcke und Signale benennen x

Legende

  • Problem: Was genau ist das Problem? Wo tritt das Problem auf? Wie zeigt sich das Problem? Wann tritt das Problem auf? Warum ist es ein Problem?
  • Analyse: Was ist die Ursache des Problems?
  • Maßnahme: Maßnahme zur Beseitigung der identifizierten Ursache
  • Freigabe: Abstimmung der Maßnahme mit Prof. Schneider
  • Wirksamkeit: Beschreibung Nachweis Wirksamkeit (Dummy-Prüfung, Versuche, Kurzzeitfähigkeit, Kennzahlen, Audit, etc.)
  • Dokumentation: Doku der Lösung im HSHL-Wiki

Umsetzung LOP / Überarbeitung der Messkette

Im Rahmen der Umsetzung der LOP musste der gesamte SEN-Block und SAB-Block umgebaut werden. Der SEN-Block besitzt einerseits eine falsche Umrechnung von Spannung V in Drehgeschwindigkeit °/s und zusätzlich wird der Sensoreigene Offset mit eingebaut. Zudem wird der SAB-Block komplett überarbeitet und auf seine korrekte Funktionalität überprüft und erweitert.

Maßname 1: Aufnahme neuer Messwerte

Messwerte

Messung des ADC Eingangs. Dieser gibt zwei verschiedene Messwerte zurück: Drehgeschwindigkeit der Gierrate in Spannung U (Z-Achse) und Offsetspannung der Drehgeschwindigkeit (Z-Achse).

Interpretation der Messwerte

Die Offsetspannung des Sensors liegt bei 1.2V. Diese ist in jedem Plot der "ADC Eingang Drehgeschwindigkeit" zwischen den Ausschlägen zu erkennen und wird sehr genau über den "ADC Eingang Offset" ausgegeben. Dies deckt sich mit der Dokumentation des Sensors auf der Herstellerseite, welche angibt, dass jeder Sensor eine Spannung zwischen 0V (Maximale Drehgeschwindigkeit im Uhrzeigersinn) und 3.3V (Maximale Drehgeschwindigkeit gegen den Uhrzeigersinn) ausgibt. Bei einer Drehgeschwindigkeit von 0°/s soll eine Spannung von 1.2V ausgegeben werden, welches sich mit der Messung deckt.

In der folgenden Tabelle sind die minimalen und maximalen durchschnittlichen Spannungsausschläge pro Drehgeschwindigkeit dargestellt und deren Umrechnungsfaktor von V in °/s berechnet.

Tabelle 3: Liste offener Punkte (LOP)
Messung Drehgeschwindigkeit Durchschnitt Spannung Minimal Durchschnitt Spannung Offset Durchschnitt Spannung Maximal Umrechnungsfaktor Minimal von V in °/s Umrechnungsfaktor Maximal von V in °/s
1 90°/1s 0.85 V 1.2 V 1.59 V 0.00388V = 1°/s 0.00433V = 1°/s
2 90°/2s 1.03 V 1.2 V 1.38 V 0.00377V = 1°/s 0.00400V = 1°/s
3 90°/4s 1.12 V 1.2 V 1.29 V 0.00355V = 1°/s 0.00400V = 1°/s

Daraus ergibt sich ein durchschnittlicher Umrechnungsfaktor von 0.00392166V = 1°/s bzw. 0.3523434V = 90°/s.

Maßname 2: Überarbeitung der Messkette

Überarbeitung SEN-Block

Abbildung 22 zeigt den alten SEN-Block und Abbildung 23 zeigt den überarbeiteten SEN-Block. Hierbei ist zu entnehmen, dass die vorherige Datenverarbeitung komplett entfernt wurde, da diese falsche Werte zurückgegeben hat. Bei der Überarbeitung wurde die Umwandlung mit in den SAB-Block integriert.

Überarbeitung SAB-Block

Abbildung 24 zeigt den alten SAB-Block und Abbildung 25 zeigt den überarbeiteten SAB-Block. Den Abbildungen ist zu entnehmen, dass auch der SAB-Block komplett überarbeitet wurde. Im folgenden werden alle Änderungen beschrieben.

1 Tiefpassfilterung der Eingänge

2 Berechnung Offset des Offsets

3 Umwandlung Spannung in Drehgeschwindigkeit

4 Filterung von PEAKs

5 Integration zu aktuellen Winkel

Ergebnis

Abbildung 32 stellt dar, dass der gemessene Gierratenwinkel auch nach 160 Sekunden (2,5 Min) nur eine Abweichung von 5° besitzt, sodass dieser einen nutzbaren Wert bis zu 3-4 Minuten nach Reset des Integrators bietet.

Überarbeitete Messkette

Zusammenfassung

Nach der überarbeiteten Messkette ist der Sensor funktionsfähig.

Dokumentation in SVN

  • Link zu Messdaten
  • Link zur MATLAB®-Auswertung

→ zurück zum Hauptartikel: Praktikum SDE | SDE-Team 2023/24 | Lernzielkontrolle 1