Forum: Mikrocontroller und Digitale Elektronik Sensorsignal integrieren - Problem Temperaturdrift


von Gde A. (goaran)


Lesenswert?

Hallo,

Ich habe ein Signal eines Sensors welches ich integrieren will.
Dazu habe ich folgenden Pseudocode:
1
Signal = Messung_ADC;                // Spannung am ADC messen
2
Istwert_Sig=Signal-Signal_null;      // Signal_null ist der Initialisierungswert
3
Integral=Integral+Istwert_Sig;       // Aufaddieren
4
if(Integral>1000) Integral = 1000;   // Beschränkung gegen überlauf
5
if(Integral<-1000) Integral = -1000;

allerdings hat der Sensor einen Temperaturdrift, sodass der 
Initialisierungswert nach einer Weile nicht mehr an der richtigen Stelle 
liegt. Dadurch läuft das Signal dann immer gegen +-1000

Hat dazu jemand eine Idee wie ich dieses weglaufen des Integrals 
verhindern kann bzw den drift rausrechnen?

Danke schon mal..

von Mathe6 (Gast)


Lesenswert?

Naja,

die eigenschaft eines Integrators ist doch die Fläche unter der Kurve zu 
berechnen.

Bei gleichbleibender Messgrösse muss dieser Wert immer weiter wachsen...


Was genau willst Du machen ?

von hmm. (Gast)


Lesenswert?

Gegen solche dinge nimmt man ueblicherweise einen lock-in Amplifier. Da 
fliegen drifen raus.

von Mathe6 (Gast)


Lesenswert?

Du musst quasi die x-Achse abziehen, damit Du pos. und negative Werte 
als Abweichung bekommst ???

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Wenn der ADC wert vorzeichenbehaftet ist, (wie man aus der -1000er 
begrenzung schon erahnen kann) kann das durchaus sinn machen.

je nach dem mit welcher Frequenz deine Daten ankommen, kannst du auch 
einfach einen Hochpass einsetzten (hard oder software ist hier eigentich 
wurscht), der dir DC und Drift eleminiert.

von Maxxie (Gast)


Lesenswert?

Ja, er berechnet auch kein Integral (Quadratur)
Wäre auch nicht wirklich sinnvoll. Das gibt, wenn schon das Problem mit 
dem Drift entsteht, einen riesigen numerischen Fehler. Selbst mit den 
höhergradigen Newton-Cotes-Formeln sehr schnell aus deinem Messbereich 
heraus.

Was kann man denn mit diesem Wert anfangen? Lang- bis kurzfristige 
Durchschnittswerte, da kann ich mir mehr vorstellen. Und da kannst du 
den Fehler durch den Drift auch recht einfach reduzieren.

von Gde A. (goaran)


Lesenswert?

Hallo, erst mal danke für die Antworten.
@Mathe6 X-Achse abziehen wie ist das zu verstehen??
@Hauke.. die Frequenz kann unter umständen auch sehr niedirg sein <1Hz, 
das ist für einen PID Regler.. wenn ich da nen Softwarehochpass mache 
muss der schon sehr "tief" sein. Da brauche ich dann ja relative grosse 
werte? Oder was gibt es da für sinnvolle Algorithmen?
@ Maxxie bei Langfristigen durchschnittswerten brauche ich sehr viele 
Daten das ist dann ein starker rechenaufwand und geht auf die 
geschwindigkeit ansosnten sollte das viellecht gehen?

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.