PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Temperaturkompensation



Che Guevara
20.12.2014, 07:08
Hi,

ich würde gerne einige Sensoren temperaturkalibrierien. Allerdings ist mir die Vorgehensweise nicht ganz klar. Als erstes würde ich die primären Sensor-Werte (z.b. Winkelgeschwindigkeit beim Gyro) in Abhänigkeit von der aktuellen Sensor-Temperatur messen und aufzeichnen.
Aber dann weiß ich nicht mehr weiter (weil z.b. der Offset immer anders sein kann).
Kann man annehmen, dass der Offset-Delta-Wert immer gleich ist (also: Temperaturveränderung um x°C --> Offset-Verschiebung um x°/s)?
Oder ist der Zusammenhang Temperatur/Offset oder auch Temperatur/Gain für verschiedene Werte unterschiedlich? Also ändert sich z.b. der Gain des Sensors

von 10°C auf 12°C um 0.02Gain und

von 20°C auf 22°C um 0.04Gain
von 20°C auf 22°C um 0.02Gain

Ich hoffe, man versteht was ich meine!

Vielen Dank & Gruß
Chris

Peter(TOO)
20.12.2014, 09:11
Hallo Chris,

Kann man annehmen, dass der Offset-Delta-Wert immer gleich ist (also: Temperaturveränderung um x°C --> Offset-Verschiebung um x°/s)?
Oder ist der Zusammenhang Temperatur/Offset oder auch Temperatur/Gain für verschiedene Werte unterschiedlich? Also ändert sich z.b. der Gain des Sensors

von 10°C auf 12°C um 0.02Gain und
von 20°C auf 22°C um 0.04Gain
von 22°C auf 24°C um 0.02Gain

Es kann noch komplizierter sein!

Nehmen wir mal einen einfachen NTC:
Dessen Kennlinie sieht so aus:
https://de.wikipedia.org/wiki/Hei%C3%9Fleiter#Grundlagen

Bei der praktischen Umsetzung unterliegen nun aber Rn und Ea Fertigungstoleranzen.
Die Kurve kann also parallel verschoben sein, durch Rn, oder auch flacher oder steiler ausfallen, abhängig von Ea.

Normale Widerstände verhalten sich linear, allerdings unterliegt der Wert für Tk wiederum Fertigungstoleranzen.

Bei einem Gyro wird's jetzt kompliziert, da ist normalerweise noch ein Verstärker mit auf dem Chip.
Eigentlich versucht der Hersteller mit dem Verstärker schon einige Temperatureinflüsse zu kompensieren.
Die Kalibrierkurve kann linear, S-förmig oder wellig sein oder sonst eine lustige Form haben.

Sensoren mit digitalen Ausgängen arbeiten intern oft mit Tabellen, dann bekommst du etwas sägezahnartiges.

Der Hersteller garantiert im Datenblatt meistens minimale, typische und maximale Werte. Das muss man als Bänder sehen, innerhalb welcher das Nutzsignal zu liegen kommt. Wo genau ein Signal eines konkreten Sensors zu liegen kommt, weiss man ohne Kalibrierung nicht.

Hinzu kommen noch Effekte der Alterung, welche auch noch als Fehler mit eingehen.
Das ist auch der Grund wieso geeichte Messgeräte, typischerweise, jährlich kalibriert werden müssen.

Du kannst also durch kalibrieren die Genauigkeit nicht ins unendliche steigern!

Weitere Probleme sind noch, dass die Temperatur auf dem Chip schon nicht überall gleich ist. z.B. erzeugen die Transistoren der Ausgangsstufe am meisten Verlustwärme, wodurch der Chip an diesen Stellen etwas wärmer ist.

Genaue Messgeräte erreichen ihre Messgenauigkeit erst wenn sie warm gelaufen sind, also alle Bauteile eine stabile Temperatur erreicht haben. Das kann schon eine Stunde dauern (steht aber in der Bedienungsanleitung).

Das wirst du auch bei deinen Gyros merken. Direkt nach dem Einschalten, laufen die eine Weile davon, bis sich z.B. der Offset stabilisiert.


Hier mal das Datenblatt des ADXL335
http://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf

Auf Seite 7 Figure 12 hast du einen direkten Vergleich des Offsetspannung von 8 Chips, welche alle auf eine Leiterplatte montiert wurden.
Wie du sehen kannst ist das wellig, nicht eine Gerade und die Steigung ist auch bei jedem Chip etwas anders.
Figur 13 und 14 zeigen die selben Werte für die anderen beiden Kanäle.
Auffällig sind auch die Unterschiede zwischen den einzelnen Kanälen.

Der Unterschied zwischen X- und Y-Achse kommt vermutlich daher, dass die Strukturen um 90° gedreht zu den Kristallachsen angeordnet sind.
Die Z-Achse ist anders aufgebaut, die muss ja senkrecht zum Kristall messen.

MFG Peter(TOO)

Che Guevara
20.12.2014, 09:50
Hi,

danke für die schnelle Antwort!
Also mir gehts jetzt nicht darum, Sensoren zu 100% zu kompensieren, aber bei einem MPU6000 ist es z.b. so, dass sowohl ACC als auch Gyro driften und im Endeffekt dann der daraus errechnete Winkel nach 2-3 Minuten Betriebszeit um 3° vom Einschaltwinkel abweicht.
Beim Acc (X & Y Achse) ist der Drift mit max. 35mg zw. 0°C und 70°C angegeben (aus dem Kopf, nagelt mich nicht fest).
Das Ganze läuft in meinen Koptern, da ist es natürlich schon blöd, wenn der nach ein paar Minuten Betrieb plötzlich schief steht...
Eine "Genauigkeit" von 0.5° würde mir schon reichen (lt. Kleinwinkelnäherung ca. 5mg), ist das realistisch (mit moderatem Aufwand)?
Vor allem will ich nicht jeden Sensor einzeln vermessen, sondern das bei 2-3 Stück mal machen, den Mittelwert berechnen und das dann für alle verwenden.
Der Chip hat direkt intern einen T-Sensor verbaut, der ist wohl auch genau für diesen Zweck verbaut (nehme ich mal stark an).

Gruß
Chris

Peter(TOO)
20.12.2014, 11:01
Hallo Chris,

Dann würde ich mal Temperatur und Winkel alle paar Sekunden raus schreiben und abspeichern und zwar so lange bis die Werte stabil sind.
Wenn möglich auch noch die Betriebsspannung.

Dann kannst du das Spielchen noch mit unterschiedlichen Umgebungs- und Start-Temperaturen machen.
Wenn man im Winter raus geht, ist der Kopter noch warm.

Dann kann man alles, z.B. in Excel laden und Graphiken erstellen. Mit einer Graphik hat man einfach schneller den Überblick.
In Excel kann man dann gleich auch noch die Korrekturformeln usw. testen.

MfG Peter(TOO)

Besserwessi
20.12.2014, 13:26
Die Temperaturefffekte können von Exemplar zu Exemplar verschieden sein. In der Regel geben sich die Hersteller schon mühe den TK klein zu halten indem sich Effekte kompensieren. Oft kann man nicht mal vorher sagen in welche Richtung die Drift geht. Eine Kurve für verschiedene Sensoren wird also in der Regel nicht gehen. Da wird man schon für jeden Sensor einzeln eine Kurve / Steigung aufnehmen müssen. Ob man jetzt mehr Dirft beim Nullpunkt oder der Gain hat, sollte im Datenblatt stehen. Oft wird es wohl mehr der Nullpunkt sein der sich verschiebt.

Manche Chips brauchen auch ein paar Sekunden / Minuten zum warmlaufen. Mit so etwas wie dem Nullpunktabgleich beim Starten des Systems sollte man also ggf, etwas warten oder ggf. die individuelle Verschiebung berücksichtigen.

Peter(TOO)
22.12.2014, 01:57
Hallo,

Die Temperaturefffekte können von Exemplar zu Exemplar verschieden sein. In der Regel geben sich die Hersteller schon mühe den TK klein zu halten indem sich Effekte kompensieren.

Im von mir verlinkten Datenblatt sind da die Kurven für 8 verschiedene Chips angegeben.
Habe ich auch extra darauf hingewiesen.

MfG Peter(TOO)