Forum: Mikrocontroller und Digitale Elektronik Sensor-Kalibrierung


von Andi C. (spex)


Lesenswert?

Hallo,

ich habe  zu einem Kraftsensor einen Messverstärker gebaut den ich nun 
kalibrieren will. Als erstes wollte ich einem Signal einen Wert zuweisen 
z.B. 3,6V = 5kg.

Als nächstes wollte ich diese Werte in das Eeprom schreiben. Nun will 
ich das aufgenommene Signal mit einer Switch-Case Abfage einem 
definierten Bereich zuordnen um dann den Messfehler abzuziehen.

Meine Frage ist: Hab ich das mit dem Kalibieren überhaupt richtig 
verstanden, gibt es eine bessere Methode als die Switch-Case Abfrage 
z.B. eine Formel und wird das Programm zu langsam wenn ich andauernt 
Werte aus dem Eeprom abfrage?


Gruß

von avr (Gast)


Lesenswert?

Andi C. schrieb:
> z.B. 3,6V = 5kg

Als Anmerkung  5kg ist keine Kraft sondern ein Gewicht.
=> wohl eine Wägezelle ;)

Der Ansatz mit den Werten ist schonmal ein erster Schritt.

Mach mal eine Tabelle und Grafik mit Gewichten und den Messwerten.
Die Messwerte am besten so, wie sie im µC ankommen also
z.B. 10 Bit (0-1023) (Volt ist es nicht).

Dann kann man aus dem Verlauf und der benötigten
Genauigkeit eine Variante wählen.

avr

von Andi C. (spex)


Lesenswert?

Welche Varianten gibt es denn bzw. kennt ihr irgendwelche Seiten in 
diesem Bereich?

von avr (Gast)


Lesenswert?

Das Thema wurde hier schon oft (meist bei Temperaturmessung)
durchgekaut.

Es gibt deine Tabelle, Näherungsfunktionen, Interpolationen
etc..

Oft gibt es für die Sensoren vom Hersteller auch Formeln.

Dann ist noch die Umsetzung. Der PC hat es leich ein e^(2*t/f)
zu rechnen, der µC braucht da viel Zeit und Platz oder
eine gute Optimierung.

Wichtig ist auch die Genauigkeit, lohnt der Aufwand?

Also Kurve + Angaben, dann kann man besser helfen.

avr

von Andi C. (spex)


Lesenswert?

Hi, ich kamm leider nicht früher zu den Messungen:

Prüflast in kg --- Sensorspg. --- Messwert/µC
       0            0,04mV            19,05
       1            2,07mV            62,05
       2            4.18mV            105,06
       3            6,12mV            146,02
       5            10,75mV           240.23
       6            12,89mV           283,24
       7            14,96mV           326,25
       8            17,13mV           371,3
      10            21,11mV           453,2


Der Verstärkungsfaktor beträgt 100

von Andi C. (spex)


Lesenswert?

Hab noch eine Verständnisfrage zur Kalibrierung:

Senorspg.----->Messverstärker----->µC

Bezieht sich das Kalibrieren auf die Sensorspg. zum Ausgang des µC oder 
des Eingang des µC?

von Purzel H. (hacky)


Lesenswert?

Du stellt uns Fragen zu deiner Messung... also eine Kalibrierung 
bedeutet man passt die Werte der Messung den Werten des Sensors an. Der 
Sensor schein hinreichend linear zu sein. Der ADC nicht mehr. Ein Graph, 
der die Sensorspannung mit den ADC werten vergleicht waer noch was. Ich 
nehm mal an der Verstaerker ist nicht geeignet, und kann nicht auf null 
runter ausgeben.
Das mit Software ausbuegeln zu wollen macht wenig sinn. Da muss ein 
anderer Verstaerker her. Oder ist es nur ein Offset ?

von Martin S. (mast4)


Lesenswert?

Moin, hab zu dem Thema auch mal eine Frage und zwar wie die oben 
beschriebenen Methoden(Tabelle, Näherungsfunktionen, Interpolationen) 
aus sehen könnten beziehungsweise wo man Informationen dazu 
findet(Sensorhersteller sagt nichts und google hilft auch nicht weiter).
Die andere Frage ist wie eine Tabelle dann in das Eeprom abgelegt wird 
beziehungsweise aufgerufen wird.

von High Performer (Gast)


Lesenswert?

Die Anforderungen an die Umrechnung der Werte sind abhängig vom 
Einsatzbereich völlig unterschiedlich. Bei einfacheren Anforderungen, 
und wenn das System halbwegs linear ist, prüfe ich grundsätzlich zuerst, 
ob ich mit einer einfachen linearen Regression ausreichend genau bin. 
Das trifft in meinem Bereich meistens zu. Je nach Anforderung kann man 
die Regression noch verfeinern.

von High Performer (Gast)


Lesenswert?

>Die andere Frage ist wie eine Tabelle dann in das Eeprom abgelegt wird
>beziehungsweise aufgerufen wird.

das hängt von der benötigten Genauigkeit ab. Hast Du ein Intervall z.B. 
von 0 bis 1000 (A/D-Eingangswert), dann kannst Du je nach geforderter 
Genauigkeit z.B. für alle 1, 10, 100 oder 1000 Steps ein Arrayelement 
definieren. Somit kannst Du direkt über den Eingangswert die beiden 
Indizes berechnen, zwischen denen der Eingangswert liegt. Mit den zwei 
Indizes und den entsprechenden Tabelleeinträgen interpoliert man dann 
noch zwischen den beiden Werten und dem Eingangswert.

von Markus (Gast)


Lesenswert?

Als Anmerkung 5kg ist kein Gewicht sondern eine Masse.

von Martin S. (mast4)


Lesenswert?

Danke High Performer aber ich bin mit dem ganzen Bereich nicht so 
vertraut,  kannst du ein kleines Bsp einer einfachen linearen Regression 
reinbringen?

von High Performer (Gast)


Lesenswert?

Hallo,

Ziel der linearen Regression ist es vereinfacht gesagt, durch eine 
gegebene Anzahl von Punkten eine Gerade so zu legen, dass der Fehler 
zwischen Punkten und Gerade möglichst klein wird. Das können eigentlich 
alle Matheprogramme und Office-Pakete.

Ich habe Deine Messwerte mal schnell in die Tabellenkalkulation von 
OpenOffice mal eingegeben und erhalte für die Regressionsgerade eine 
Steigung von 43,85 und einen Achsenabschnitt von 18,32.

Damit lautet die Formel zur Ermittlung der Masse in kg aus dem 
Eingangswert
des A/D-Wandlers:

Masse = (Eingangswert - 18,32) / 43,85

Ob das Deinen Genauigkeitsansprüchen genügt, musst Du selbst 
entscheiden.

von High Performer (Gast)


Lesenswert?

Ach ja, zur Theorie der Regression siehe Wikipedia oder ein Mathebuch 
Deiner Wahl.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.