Sensorsignal integrieren - Problem Temperaturdrift

OP #1325172
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..
Gast
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 ?
Persönliche Seite
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.
Gast
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.
OP
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.