Linearisierung einer nichtlinearen Sensorkennlinie
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Linearisierung einer nichtlinearen Sensorkennlinie
Hallo,
ich habe Temperatur-Sensoren Pt100 (Herst.: S+S Regeltechnik GmbH), 0-50°C entspr. 0-10 Volt.
Der DKD hat in seinem Kalibrierschein eine Messabweichung der Temperatur angegeben:
Messung Nr.1 --> Mittelwert der korrigierten Temperatur der Bezugsnormale:18,046 --> Mittelwert der berechneten Temperatur des Kalibriergegenstandes:18,44 --> Messabweichung der Temperatur:0,394 --> Erweiterte Messunsicherheit, die nach der Korrektion der berechneten
Temperatur des Kalibriergegestandes um die Messabweichung:0,10 --> Mittelwert der gemessenen Ausgangsspannung (Temperatur) des Kalbriergegestandes:3,688
Messung Nr.2 --> Mittelwert der korrigierten Temperatur der Bezugsnormale:20,043 --> Mittelwert der berechneten Temperatur des Kalibriergegenstandes:20,27 --> Messabweichung der Temperatur:0,222 --> Erweiterte Messunsicherheit, die nach der Korrektion der
berechneten Temperatur des Kalibriergegestandes um die Messabweichung:0,10 --> Mittelwert der gemessenen Ausgangsspannung (temperatur des Kalbriergegestandes):4,053
Messung Nr.3 --> Mittelwert der korrigierten Temperatur der Bezugsnormale:22,028 --> Mittelwert der berechneten Temperatur des Kalibriergegenstandes:22,19 --> Messabweichung der Temperatur:0,162 --> Erweiterte Messunsicherheit, die nach der Korrektion der
berechneten Temperatur des Kalibriergegestandes um die Messabweichung:0,10 --> Mittelwert der gemessenen Ausgangsspannung (temperatur des Kalbriergegestandes):4,438
Meine Frage wäre:
gibt es eine Möglichkeit diese Messabweichung zu minimieren?
Vieleicht in Form von "Methode der kleinsten Quadrate (least square)" oder die Berechnung von Polynomen.
Kann mir da vieleicht jemand helfen und wie man das vieleicht in LV realisieren könnte.
Allerdings habe ich nur diese drei Messungen zu Verfügung.
Betroffen sind davon 21 Temperatur Sensoren (gleichen Herstellers) und 3 Feuchte-Sensoren.
Gruß Gregor
Anzeige
26.01.2007, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2007 11:25 von dc6xs.)
Linearisierung einer nichtlinearen Sensorkennlinie
' schrieb:Hallo,
ich habe Temperatur-Sensoren Pt100 (Herst.: S+S Regeltechnik GmbH), 0-50°C entspr. 0-10 Volt.
Der DKD hat in seinem Kalibrierschein eine Messabweichung der Temperatur angegeben: (Kal-Daten rausgenommen..)
Meine Frage wäre:
gibt es eine Möglichkeit diese Messabweichung zu minimieren?
Vieleicht in Form von "Methode der kleinsten Quadrate (least square)" oder die Berechnung von Polynomen.
Kann mir da vieleicht jemand helfen und wie man das vieleicht in LV realisieren könnte.
Allerdings habe ich nur diese drei Messungen zu Verfügung.
Betroffen sind davon 21 Temperatur Sensoren (gleichen Herstellers) und 3 Feuchte-Sensoren.
Gruß Gregor
Sicherlich kann man da was linearisieren.
Vielleicht kannst Du ja aus den Normen zu PT100 bzw. den Tabellen R=f(T) dir was passendes aussuchen, da Du ja nur den relativ "kleinen" Temp.-Bereich 0..50°C brauchst.
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.: "Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
26.01.2007, 16:17 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2007 16:38 von Lucki.)
Linearisierung einer nichtlinearen Sensorkennlinie
' schrieb:Meine Frage wäre:
gibt es eine Möglichkeit diese Messabweichung zu minimieren?
Vieleicht in Form von "Methode der kleinsten Quadrate (least square)" oder die Berechnung von Polynomen.
Kann mir da vieleicht jemand helfen und wie man das vieleicht in LV realisieren könnte.
Allerdings habe ich nur diese drei Messungen zu Verfügung.
Betroffen sind davon 21 Temperatur Sensoren (gleichen Herstellers) und 3 Feuchte-Sensoren.
Vorbemerkung: Du willst an Deinem Temperaturmesser die Hersteller-Kalibrierung Temp[C] = 5 * Spannung[V] verfeinern, so nehme ich an. Mit PT100-Linearisierung hat das dann nichts mehr zu tun, der Sensor selbst ist uninteressant, es geht um eine Geräte-Kalibrierung und nicht um den Sensor allein.
Dafür gibt es das VI "Allgemeinen Polynomanpassung" ("General Polynomial Fit.vi"), ab was versprichst Du Dir davon da mit diesen drei Messpunkten in diesem eingeengtem Temperaturbereich? Wenn Du als Polynom den Grad 2 vorgibst, dann ist nichts mehr mit "Methode der kleinsten Quadrate", denn die drei Punkte definieren exakt die drei Polynomkoeffizienten. Gut, wenn Du eine Gerade durchziehen willst, also Polynomgrad=1, dann läuft die Methode (Aber für diesen Fall gibt es auch ein einfacheres VI. Und außerdem: Wenn Du eine Gerade hättest durchziehen wollen, dann hättest Du das vermutlich auch so gesagt und "Polynome" gar nicht erst ins Gespräch gebracht).
Warnen würde ich davor, die gefundenen Kurve außerhalb des gemessenen Temperaturbereiches von 18..22° zu benutzen.
Anbei ein VI. Die Polynomkoeffizienten habe ich nicht angeschlossen, da hast Du auch noch was zu tun.
Und Du glaubst wirklich, wenn Du einen Sensor kalibriert hast, dann gilt die Kalibrierung für alle anderen Sensoren genau so?
Linearisierung einer nichtlinearen Sensorkennlinie
Hallo Lucki,
Du willst an Deinem Temperaturmesser die Hersteller-Kalibrierung Temp[C] = 5 * Spannung[V] verfeinern, so nehme ich an. Mit PT100-Linearisierung hat das dann nichts mehr zu tun, der Sensor selbst ist uninteressant, es geht um eine Geräte-Kalibrierung und nicht um den Sensor allein
Ja, natürlich habe ich auch gemeint, war meinerseits etwas ungenau beschrieben.
Die Sensoren sind vom DKD Kalibriert worden und die Messwertabweichungen (siehe Kalibrierschein oben) wurden uns mitgeteilt.
Jetzt ist das Problem das die Abweichungen unserem Kunden zu hoch sind, und ich sie jetzt mitels Software möglichst reduzieren soll. ab was versprichst Du Dir davon da mit diesen drei Messpunkten in diesem eingeengtem Temperaturbereich.
Warnen würde ich davor, die gefundenen Kurve außerhalb des gemessenen Temperaturbereiches von 18..22° zu benutzen.
Die Temperaturen werden permanent eingelesen, jedoch befindet sich der Bereich der für die Auswertung relevant ist zwischen 18,3 und 21,8°C, alle Werte die drüber oder drunter liegen benötigen nicht eine so geringe Abweichung. Wenn Du als Polynom den Grad 2 vorgibst, dann ist nichts mehr mit "Methode der kleinsten Quadrate", denn die drei Punkte definieren exakt die drei Polynomkoeffizienten. Gut, wenn Du eine Gerade durchziehen willst, also Polynomgrad=1, dann läuft die Methode (Aber für diesen Fall gibt es auch ein einfacheres VI. Und außerdem: Wenn Du eine Gerade hättest durchziehen wollen, dann hättest Du das vermutlich auch so gesagt und "Polynome" gar nicht erst ins Gespräch gebracht).
Wie ich diese Abweichung am efektivsten reduzieren kann weiß ich nicht genau, Polynome habe ich nur erwähnt, da ich schon darüber gelesen habe das sie bei solchen Anwendungen ihren Einsatz finden. Wenn es eine andere vieleicht sogar einfachere Methode gibt würde mich freuen. Und Du glaubst wirklich, wenn Du einen Sensor kalibriert hast, dann gilt die Kalibrierung für alle anderen Sensoren genau so?
Nein, ich weiß schon das jeder Sensor eine eigene Abweichung hat und somit für jeden Sensor eine eigene Angleichung erforderlich ist. Anbei ein VI. Die Polynomkoeffizienten habe ich nicht angeschlossen, da hast Du auch noch was zu tun.
Danke schön, jedoch ist das Allgemeine Polynomanpassung.vi nicht im Basispaket enthalten, ich bekomme immer eine Fehlermeldung.
Gibt es vieleicht noch eine andere Möglichkeit dies zu lösen?
Linearisierung einer nichtlinearen Sensorkennlinie
Ich würde Tabellenapproximation vorschlagen Dazu habe ich inzwischen einen anderen Beitrag geschrieben und meine, daß das auch für Dich perfekt passt. http://www.LabVIEWforum.de/index.php...ost&p=22436
Linearisierung einer nichtlinearen Sensorkennlinie
' schrieb:Ich würde Tabellenapproximation vorschlagen Dazu habe ich inzwischen einen anderen Beitrag geschrieben und meine, daß das auch für Dich perfekt passt. http://www.LabVIEWforum.de/index.php...ost&p=22436
Genial! das Problem über den MAX zu lösen kommt mir sogar sehr gelegen
da der Kunde später nach einer Nachkalibrierung der Sensoren diese Änderungen selbst durchführen kann
Für mich bedeutet es nur noch im MAX für jeden einzelnen Sensor eine eigene Tabellenskallierung zu erstellen,
die Werte aus dem DKD-Schein zu übernehmen und den DAQ-mx-Task im MAX dem jeweiligen Kanal zuordnen,
im Blockdiagramm muss ich ja nichts mehr ändern.
Könntest Du bitte nochmals einen kleinen Blick auf mein .jpg werfen ob ich es auch richtig verstanden habe und die richtigen Werte aus dem DKD-Schein übernommen habe.
Darf ich Dich noch kurz fragen was genau eine Tabellenapproximation ist, ist es das gleiche wie eine Liniearisierung?
Herzlichsten Dank
Gregor
14.02.2007, 12:06 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2010 08:28 von Lucki.)
Linearisierung einer nichtlinearen Sensorkennlinie
' schrieb:Genial! das Problem über den MAX zu lösen kommt mir sogar sehr gelegen
da der Kunde später nach einer Nachkalibrierung der Sensoren diese Änderungen selbst durchführen kann
Für mich bedeutet es nur noch im MAX für jeden einzelnen Sensor eine eigene Tabellenskallierung zu erstellen,
die Werte aus dem DKD-Schein zu übernehmen und den DAQ-mx-Task im MAX dem jeweiligen Kanal zuordnen,
im Blockdiagramm muss ich ja nichts mehr ändern.
Könntest Du bitte nochmals einen kleinen Blick auf mein .jpg werfen ob ich es auch richtig verstanden habe und die richtigen Werte aus dem DKD-Schein übernommen habe.
Darf ich Dich noch kurz fragen was genau eine Tabellenapproximation ist, ist es das gleiche wie eine Liniearisierung?
Habe jetzt nicht viel Zeit, aber soweit ich sehe, sieht das sehr gut aus. Fall man da etwas falsch macht, da war es bei mir grob falsch, so daß es dann sofort auffiel.
"Tabellenapproximation" ist wohl nur ein von mir auf die Schnelle erfundenes Wort. Der Fachbegriff wird sein "Skalierung mittels Tabelle". Ein Messwert wir dabei einfach zwischen den beiden nächtsliegenden Kalbrierpunkten linear interpoliert. Das ist genau, wenn die Krümmung der Kurve nicht zu groß ist bzw. die Anzahl Kalibrierpunkte genügend dicht.
Dasselbe ist es, wenn man in der Kalibrierkurve die Punkte einfach durch Geradenstücke verbinden würde.
Linearisierung einer nichtlinearen Sensorkennlinie
Bitte erst antworten wenn Du wieder Zeit hast
Hallo Lucki,
ich habe jetzt für jeden Sensor eine eigene Tabellenskalierung angelegt, allerdings bin ich mir nicht sicher mit der Eingabe der skalierten Werte.
In die "gemessene Werte" Zelle trage ich den tKG (Mittelwert der gemessenen Ausgangsspannung <Temperatur> des Kalibriergegenstandes) ein, ist klarr.
Aber in die Zelle mit "skalierte Werte" müsste ich doch den: t90,M (Mittelwert der korrigierten Temperatur der Bezugsnormale) eingeben und nicht den tBer,M (Mittelwert der berechneten Temperatur des Kalibriergegenstandes) hiermit wird doch nicht die Abweichung reduziert, sondern nur der proportionale Zusammenhang definiert 0-10V entsp. 0-50°C. Ich hoffe ich verwirre dich jetzt nicht restlos, aber die Überlegung ist doch begründet oder bin ich da restlos auf dem Holzweg?
Desweiteren bekomme ich noch eine Fehlermeldung im MAX wenn ich den Task mit der neuen Skalierung speichern möchte (siehe .jpg)
Wäre es möglich das es mit der Konfiguration im DAQ-Task liegt (siehe .jpg)
Sorry, für die tausend Fragen
14.02.2007, 19:42 (Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2007 19:46 von Lucki.)
Linearisierung einer nichtlinearen Sensorkennlinie
' schrieb: Bitte erst antworten wenn Du wieder Zeit hast
Wenigstens kurze Antwort: Die Fehlermeldung kenne ich und damit habe ich mich auch herumgeärgert.
Wenn Du einen Skalierung machst, will die Karte den Messbereich nicht mehr in Spannungen sehen (z.B AI.min=-5V, AI.max=+5V), sondern in skalierten Einheiten, also Temperaturen. Das hat Du auch richtig gemacht, Du hast 0..50°C eingegeben.
Was aber LabVIEW auch nicht mag, sind Werte, die nicht mehr in der Tabelle liegen, wo also extrapoliert werden müsste.
Du hast also zwei Möglichkeiten, den Fehler los zu werden:
a) nicht 0 und 50Grad als Messbereichsgrenzen eingeben, sondern die beiden Ecktemperaturen in der Tabelle, also ca. 18.xxGrad und 22.xx Grad.
b) Deine Tabelle noch ergänzen: Einfach die beiden Punkte [0Grad; 0V] und [50Grad; 10V] noch einfügen. (Die Kalibrierung im eigentlich interessierenden Bereich bleibt erhalten)
Linearisierung einer nichtlinearen Sensorkennlinie
Hallo Lucki,
ich habe Deinen Ratschlag "b" befolgt und die Fehlermeldung war weg, Danke!
Jetzt bin ich mir noch mit dieser einen Sache unsicher die ich dir in meinem letzten post schon geschrieben habe.
Zitat:In die "gemessene Werte" Zelle trage ich den tKG (Mittelwert der gemessenen Ausgangsspannung <Temperatur> des Kalibriergegenstandes) ein, ist klarr.
Aber in die Zelle mit "skalierte Werte" müsste ich doch den: t90,M (Mittelwert der korrigierten Temperatur der Bezugsnormale) eingeben und nicht den tBer,M (Mittelwert der berechneten Temperatur des Kalibriergegenstandes) hiermit wird doch nicht die Abweichung reduziert, sondern nur der proportionale Zusammenhang definiert 0-10V entsp. 0-50°C. Ich hoffe ich verwirre dich jetzt nicht restlos, aber die Überlegung ist doch begründet oder bin ich da restlos auf dem Holzweg?
Jetzt bin ich zu dem Entschluß gekommen das ich den Wert der Bezugsnormale eintragen muss, da ich ja meine Skalierung auf den Wert der Normale ausrichten möchte und nicht einfach den Messwert in Volt mit dem Faktor 5 multiplizieren wie es beim tkG (Kalibriergegenstand) wäre.