Forum: Mikrocontroller und Digitale Elektronik kalibrierung - Linearisierung


von Michel (Gast)


Lesenswert?

Hi@all,

ich möchte einen 16Bit Wert seriell von einem ADC -AD7790- einlesen (
hängt ein DMS mit OPAMP dran), den eingelesen Wert möchte ich erst mal
zweipunk kalibrieren und ggf noch 3 oder 5 punkt linearisieren.

Das ganze mit ATMega.

Hat jemand C Beispielcode oder Infos für mich?

THX

von Karl H. (kbuchegg)


Lesenswert?

Was verstehst du unter 2-Punkt kalibrierung?

Ich denke mal du meinst damit, dass du für 2 gemessene ADC Werte
die korrekten Werte kennst.

Du kannst ja mal annehmen, dass es da einen linearen Zusammenhang
gibt:

   Wert = ADC_Wert * k + d

gibt.

Weiters kennst du für einen best, ADC_Wert1 den zugehörigen
Wert1 bzw. für einen ADC_Wert2 den zugehörigen Wert2

Also mal einsetzen:

  Wert1 = ADC_Wert1 * k + d
  Wert2 = ADC_Wert2 * k + d

Du hast also 2 Gleichungen mit den Unbekannten k und d.
Das sollte sich doch lösen lassen.

Sobald du k und d kennst ist der Rest trivial: Den nimmst
den Wert vom ADC, stopfst ihn in die Gleichung

   ADC_Werft * k + d

und kriegst den korrigierten Wert heraus.

(mit dem gleichen Verfahren könnte man zb. ADC Werte in Temperatur
umrechnen. Alles was man braucht sind 2 ADC Werte und die zugehörigen
Temperaturen. k und d ausrechnen und schon hast du die Umrechnungs-
gleichung).

Oder wolltest du ganz was anderes wissen?

von Michel (Gast)


Lesenswert?

Danke @ Karl Heinz Buchegger

hat mir schon geholfen,
000F soll z.B. 0Kg werden und FDE8 10KG.
Angeblich ist der DMS linear, der OP Amp sollte es auch sein.
Wüsste nur noch gerne wie ich das ganze über drei oder fünf Punkte
linearisiere, wenn es nötig sein sollte.

von axel (Gast)


Lesenswert?

Was genau meinst du mit "über drei oder fünf Punkte" linearisieren?

Wenn du z.B. fünf Wertepaare (Wert, ADC_Wert) hast, kannst du daran
verschiedene Modelle angleichen. Etwa:
-Zwischen je zwei Referenzpunkte wird eine Gerade gelegt.
-Für den gesamten Wertebereich wird ein Polynom (hier 4. Grades)
angesetzt.
-Splines: Zwischen je zwei Referenzpunkten kommt ein Polynom (etwa 3.
Grades), wobei an den Schnittstellen Stetigkeit, Differenzierbarkeit,
etc. vorausgesetzt werden
-...

Im ersten Fall rechnest du genauso wie es Karl Heinz Buchegger
beschrieben hat, nur dass du nicht einen Wert für k und d hast, sondern
jeweils 4.
Im zweiten Fall geht es ähnlich. Aus dem Ansatz
wert = a*x^4+b*x^3+c*x^2+d*x+e
bekommst du mit den fünf Punkten ein lineares Gleichungssystem mit 5
Unbekannten. (Das könnte unschön zu lösen werden).
Auch im dritten Fall ergibt sich ein lineares Gleichungssystem, welches
noch mehr Unbekannte haben dürfte.

von Michel (Gast)


Angehängte Dateien:

Lesenswert?

beispiel angehängt,

ich messe die blaue Kurve, möchte sie aber wie die rote haben.
Zu erst 0 und 100% justieren.
Dann über drei Punkte zwischen null und hundert Prozent, ev. da wo die
Abweichungen am größten sind (oder bei 25, 50 und 75%) die Kurve in
richtung Optimal bringen.
Hatte früher sowas in H&B Analysatoren, das war aber alles analog
gemacht, und an die Daten komm ich auch nicht mehr.

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.