AF: Gierrate (SenGier, SabGier): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(59 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 250: Zeile 250:
|}
|}
|}
|}
=== 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 ==
== Umsetzung LOP / Überarbeitung der Messkette ==
Zeile 284: Zeile 292:
! style="font-weight: bold;" | Durchschnitt Spannung Offset
! style="font-weight: bold;" | Durchschnitt Spannung Offset
! style="font-weight: bold;" | Durchschnitt Spannung Maximal
! style="font-weight: bold;" | Durchschnitt Spannung Maximal
! style="font-weight: bold;" | Umrechnungsfaktor von V in °/s  
! style="font-weight: bold;" | Umrechnungsfaktor Minimal von V in °/s  
! style="font-weight: bold;" | Umrechnungsfaktor von V in °/s  
! style="font-weight: bold;" | 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
| 1 || 90°/1s || 0.85 V || 1.2 V || 1.59 V || 0.00388V = 1°/s || 0.00433V = 1°/s
Zeile 295: Zeile 303:
|}
|}


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


=== Maßname 2: Überarbeitung der Messkette ===
=== Maßname 2: Überarbeitung der Messkette ===
<gallery widths="600" heights="340">
Datei: offener_regelkreis_gyro_SEN_SAB.png |600px|Abbildung 21: Darstellung des offenen Regelkreises zur Optimierung des Gyrosensors
</gallery>
==== Überarbeitung SEN-Block ====
<gallery widths="600" heights="340">
Datei: SEN Sensoren SenGier - Gierrate Innenansicht.jpg |600px|Abbildung 22:<br />'''PFAD: CCF_online > SEN - Sensoren - online > SenGier - Gierrate'''<br />Umwandlung des Gierraten Eingangs in Rohwert
Datei: offener_regelkreis_gyro_SEN_ueberarbeitet.png |600px|Abbildung 23:<br />'''PFAD: CCF_online > SEN - Sensoren - online > SenGier - Gierrate'''<br />Umwandlung des Gierraten Eingangs in Rohwert ÜBERARBEITET
</gallery>


==== Interpretation ADC Eingang ====
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 SEN-Block ====
==== Überarbeitung SAB-Block ====
<gallery widths="600" heights="340">
Datei: Sab Signalaufbereitung SabGier - Gierrate.jpg |500px|Abbildung 24:<br />'''PFAD: CCF_online > SAB - Signalaufbereitung - SabGier - Gierrate'''<br />Darstellung der Signalaufbereitung der Gierrate
Datei: offener_regelkreis_gyro_SAB_ueberarbeitet.png |750px|Abbildung 25:<br />'''PFAD: CCF_online > SAB - Signalaufbereitung - SabGier - Gierrate'''<br />Darstellung der Signalaufbereitung der Gierrate
</gallery>
 
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 ====
<gallery widths="450" heights="250">
Datei: 01_erlaeuterung_gyro_ueberarbeitet_tiefpassfilter.png|500px|Abbildung 26: Vergrößerung der Tiefpassfilter-Blocks
Datei: 01_plot_gyro_ueberarbeitet_tiefpassfilter.png|500px|Abbildung 26.1: Tiefpassfilter-Block Eingangs-/Ausgangsdaten Plot
</gallery>
 
==== 2 Berechnung Offset des Offsets ====
<gallery widths="450" heights="250">
Datei: 02_erlaeuterung_gyro_ueberarbeitet_offsetberechnung.png|500px|Abbildung 27: Vergrößerung des Offset-Blocks
Datei: 02_plot_gyro_ueberarbeitet_offsetberechnung.png|500px|Abbildung 27.1: Offset-Block Eingangs-/Ausgangsdaten Plot
</gallery>
 
==== 3 Umwandlung Spannung in Drehgeschwindigkeit ====
<gallery widths="450" heights="250">
Datei: 03_erlaeuterung_gyro_ueberarbeitet_umwandlung_spannung_drehgeschwindigkeit.png|500px|Abbildung 28: Vergrößerung des Umwandlung-Blocks
Datei: 03_plot_gyro_ueberarbeitet_umwandlung_spannung_drehgeschwindigkeit.png|500px|Abbildung 28.1: Umwandlung-Block Eingangs-/Ausgangsdaten Plot
Datei: Lineare Umrechnung Spannung in Drehgeschwindigkeit.pdf|10px|Beschreibung der Spannungsumrechnung in Drehgeschwindigkeit
</gallery>


==== Überarbeitung SAB-Block ====
==== 4 Filterung von PEAKs ====
<gallery widths="450" heights="250">
Datei: 04_erlaeuterung_gyro_ueberarbeitet_peakfilter.png|500px|Abbildung 29: Vergrößerung des Peakfilter-Blocks
Datei: 04_plot_gyro_ueberarbeitet_peakfilter.png|500px|Abbildung 29.1: Peakfilter-Block Eingangs-/Ausgangsdaten Plot
</gallery>


=== Legende ===
==== 5 Integration zu aktuellen Winkel ====
<gallery widths="450" heights="250">
Datei: 05_erlaeuterung_gyro_ueberarbeitet_integration_zu_winkel.png|500px|Abbildung 30: Vergrößerung des Integrator-Blocks
Datei: 05_plot_gyro_ueberarbeitet_integration_zu_winkel.png|500px|Abbildung 30.1: Integrator-Block Eingangs-/Ausgangsdaten Plot
</gallery>


=== Ergebnis ===
<gallery widths="650" heights="350">
Datei: SEN_SAB_verarbeitung_Gyro_roh.png|650px|Abbildung 31: Rohdaten des Gyrosensors vor der Verarbeitung
Datei: SEN_SAB_verarbeitung_Gyro_verarbeitet.png|650px|Abbildung 32: Verarbeitete Rohdaten zu Winkel
</gallery>


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


=== Legende ===
<gallery widths="1400" heights="300">
* 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?
Datei: 2023_05_10_Messkette_Gyro_Ueberarbeitet.png|1400px|Abbildung 33: Überarbeitete Messkette des Gyrosensors
* Analyse: Was ist die Ursache des Problems?
</gallery>
* 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


== Zusammenfassung ==
== Zusammenfassung ==
Alle Sensoren sind funktionsfähig.
Nach der überarbeiteten Messkette ist der Sensor funktionsfähig.


== Dokumentation in SVN ==
== Dokumentation in SVN ==

Aktuelle Version vom 23. November 2023, 12:40 Uhr

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