Was ist der einfachste Weg, einen Thermistor zu kalibrieren?

11

Als Bastler, der keinen Zugang zu Laborgeräten hat, scheint es mir wirklich unmöglich, den Thermistor, den ich habe, zu kalibrieren.

Natürlich gibt es kalibrierte Temperatursensoren wie DS18B20, aber Thermistoren speziell für langsame MCUs wie Aruino UNO (im Vergleich zu neuen MCUs) sind schneller.

Welche Möglichkeiten haben wir, einen Thermistor ohne Laborgeräte zu kalibrieren?

ElectronSurf
quelle
1
Verwenden Sie einen kalibrierten Sensor als DS18B20, um eine Charakteristik des Thermistors zu erfassen.
Janka
Was meinst du mit "schneller"? Das klingt nicht nach einer guten Rechtfertigung, wenn Sie eine Softwarekorrektur am Thermistor durchführen müssen, aber nicht mit einem DS18B20.
Elliot Alderson
Wenn die Verzögerung des DS18B20 um eine Sekunde bei voller Auflösung Ihr Problem ist, verwenden Sie einen der Drahtmonitore des Batteriemonitors, z. B. den DS2438. Es hat einen schnellen Temperatursensor auf dem Chip.
Janka
2
@newbie Die Kalibrierung der Temperatur ist aus Genauigkeitsgründen im Allgemeinen schwierig. Einige Bereiche sind schwieriger als andere. Gefrierpunkte allgemein verfügbarer Materialien können sehr hilfreich sein, insbesondere wenn Ihr Sortiment mehr davon enthält. Genaue Referenzen lassen sich jedoch auf NIST- oder DIN-Standards (oder ähnliche Gruppen) zurückführen, die irgendwo in einem Labor aufbewahrt und von einem oder zwei Physikern verwaltet werden. Es würde Ihrer Frage helfen, wenn Sie den Temperaturbereich sowie die Genauigkeit und Präzision angeben, die Sie in diesem Bereich suchen.
Jonk
1
@newbie Aber zu Hause? Achten Sie auf Reinheit und erstellen Sie dann Eis / Flüssigkeits-Kombinationen oder reine Brennwertkessel. Zum Beispiel wird Eis, das mit Wasser gemischt ist, sehr häufig verwendet. Ob es jedoch ausreichend hilft oder nicht, hängt möglicherweise von Ihren Genauigkeitsangaben und der Arbeit ab, zu der Sie bereit sind. Sie können auch kochendes Wasser oder Schwefelsäure verwenden, die auf dem Boden eines Florenzkolbens kondensieren kann. (Ich habe beide verwendet.) Die Ergebnisse hängen jedoch auch von Verunreinigungen, atmosphärischen Druckschwankungen und anderen Faktoren ab. Ihre Anforderungen haben viel mit dem zu tun, was für Homebrew-Versuche vorgeschlagen werden kann.
Jonk

Antworten:

5

Das Kalibrieren eines Thermistors (oder meistens eines beliebigen Sensors) erfolgt in zwei Schritten:

  1. Messen Sie die Kalibrierungsdaten
  2. Entwickeln Sie ein Kalibrierungsgesetz, das zu diesen Daten passt

Der erste Schritt ist der schwierigste und leider der, mit dem ich am wenigsten Erfahrung habe. Ich werde es dann nur sehr allgemein beschreiben. Der zweite Schritt ist meistens Mathe.

Kalibrierdaten messen

Sie müssen eine Tabelle mit (T, R) -Paaren füllen, dh mit Widerstandswerten, die bei bekannten Temperaturen gemessen werden. Ihre Kalibrierungsdaten sollten den gesamten Temperaturbereich abdecken, den Sie für den tatsächlichen Gebrauch benötigen. Datenpunkte, die außerhalb dieses Bereichs liegen, sind nicht sehr nützlich. Ansonsten ist es umso besser, je mehr Datenpunkte Sie haben.

Um den Widerstand des Thermistors zu messen, rate ich Ihnen gegen einen Ohmmeter. Verwenden Sie stattdessen dasselbe Setup, das Sie für die eigentlichen Messungen nach der Kalibrierung verwenden. Auf diese Weise werden systematische Fehler bei der Widerstandsmessung (wie ADC-Offset- und Verstärkungsfehler) kalibriert.

Um die Temperatur zu kennen, haben Sie zwei Möglichkeiten: Verwenden Sie entweder feste Temperaturpunkte (z. B. kochendes Wasser oder schmelzendes Eis) oder ein bereits kalibriertes Thermometer. Fixpunkte sind der Goldstandard für die Temperaturkalibrierung, aber es ist schwierig, sie richtig zu machen, und Sie werden wahrscheinlich nicht viele davon innerhalb des Temperaturbereichs finden, den Sie interessieren.

Die Verwendung eines bekanntermaßen guten Thermometers wird wahrscheinlich einfacher sein, es gibt jedoch noch einige Einschränkungen:

  • Sie sollten sicherstellen, dass der Thermistor und das Referenzthermometer die gleiche Temperatur haben
  • Sie sollten diese Temperatur lange genug stabil halten, damit beide das thermische Gleichgewicht erreichen.

Hier kann es hilfreich sein, beide in einem Gehäuse mit hoher thermischer Trägheit (Kühlschrank oder Backofen) dicht beieinander zu platzieren.

Offensichtlich ist die Genauigkeit des Referenzthermometers hier ein sehr wichtiger Faktor. Es sollte wesentlich genauer sein als die Anforderungen, die Sie an Ihre endgültige Messgenauigkeit stellen.

Anpassen eines Kalibrierungsgesetzes

Jetzt müssen Sie eine mathematische Funktion finden, die zu Ihren Daten passt. Dies wird als "empirische Anpassung" bezeichnet. Grundsätzlich kann jedes Gesetz dies tun, solange es nahe genug an den Datenpunkten liegt. Polynome sind hier ein Favorit, da die Anpassung immer konvergiert (weil die Funktion relativ zu ihren Koeffizienten linear ist) und sie selbst auf einem niedrigen Mikrocontroller billig zu bewerten sind. Als Sonderfall kann eine lineare Regression das einfachste Gesetz sein, das Sie versuchen können.

Wenn Sie jedoch nicht an einem sehr engen Temperaturbereich interessiert sind, ist die Reaktion eines NTC-Thermistors stark nichtlinear und für Polynomanpassungen mit niedrigem Grad nicht sehr geeignet. Eine strategische Änderung von Variablen kann Ihr Gesetz jedoch nahezu linear und sehr einfach anpassen. Zu diesem Zweck werden wir eine Ablenkung durch einige grundlegende Physik nehmen ...

Die elektrische Leitung in einem NTC-Thermistor ist ein thermisch aktivierter Prozess. Die Leitfähigkeit kann dann durch eine Arrhenius-Gleichung modelliert werden :

G = G exp (- E a / (k B T))

wobei G als "Präexponentialfaktor" bezeichnet wird, E a die Aktivierungsenergie ist , k B die Boltzmann-Konstante ist und T die absolute Temperatur ist.

Dies kann als lineares Gesetz neu angeordnet werden:

1 / T = A + B log (R)

wobei B = k B / E a ; A = B log (G ); und log () ist der natürliche Logarithmus.

Wenn Sie Ihre Kalibrierungsdaten nehmen und 1 / T als Funktion von log (R) zeichnen (was im Grunde ein Arrhenius-Diagramm mit vertauschten Achsen ist), werden Sie feststellen, dass es sich fast, aber nicht ganz um eine gerade Linie handelt. Die Abweichung von der Linearität beruht hauptsächlich auf der Tatsache, dass der präexponentielle Faktor leicht temperaturabhängig ist. Die Kurve ist dennoch glatt genug, um sehr leicht durch ein Polynom niedrigen Grades angepasst zu werden:

1 / T = c 0 + c 1 log (R) + c 2 log (R) 2 + c 3 log (R) 3 + ...

Wenn der Temperaturbereich, an dem Sie interessiert sind, kurz genug ist, kann eine lineare Näherung für Sie gut genug sein. Sie würden dann das sogenannte "β-Modell" verwenden, bei dem der β-Koeffizient 1 / B beträgt. Wenn Sie ein Polynom dritten Grades verwenden, stellen Sie möglicherweise fest, dass der c 2 -Koeffizient vernachlässigt werden kann. Wenn Sie es vernachlässigen, haben Sie die berühmte Steinhart-Hart-Gleichung .

Je höher der Grad des Polynoms ist, desto besser sollte es im Allgemeinen zu den Daten passen. Aber wenn der Abschluss zu hoch ist, werden Sie am Ende überanpassen . In jedem Fall sollte die Anzahl der freien Parameter in der Anpassung niemals die Anzahl der Datenpunkte überschreiten. Wenn diese Zahlen gleich sind, passt das Gesetz genau zu den Daten , aber Sie haben keine Möglichkeit, die Anpassungsgüte zu beurteilen. Beachten Sie, dass dieser Thermistorrechner (in einem Kommentar verlinkt) nur drei Datenpunkte verwendet, um drei Koeffizienten bereitzustellen. Dies ist Gott für eine vorläufige ungefähre Kalibrierung, aber ich würde mich nicht darauf verlassen, wenn ich Genauigkeit benötige.

Ich werde hier nicht diskutieren, wie die Anpassung tatsächlich durchgeführt werden soll. Softwarepakete für die Erstellung beliebiger Daten passen im Überfluss.

Edgar Bonet
quelle
Vielen Dank für die ausführliche und erläuterte Antwort. Nebenfrage; Ich habe einen DS18B20-Sensor als Temperaturmessquelle verwendet und festgestellt, dass der Thermistorwert etwa 2,2 Grad abweicht. Ich fügte dann hinzu, dass 2,2 Grad in der Thermistortemperaturberechnung. Jetzt sind beide Messwerte von ds18b20 und Thermistor fast gleich. Ich habe die Temperaturänderung im Bereich von 25 bis 35 Grad getestet und obwohl der Thermistor besser auf Temperaturänderungen reagierte, war das Ergebnis am Ende fast das gleiche. Was ist der Nachteil dieser Methode, die ich verwendet habe?
ElectronSurf
2
@newbie: Ich verstehe nicht, dass der Thermistorwert etwa 2,2 Grad abweicht. Ein Thermistor gibt keinen Grad an. Meinen Sie damit, dass Sie ein Kalibrierungsgesetz (von wo?) Ausprobiert haben, das Messwerte von 2,2 ° C ergab? Wenn dies der Fall ist und dieser Versatz streng konstant ist, hat Ihr Ansatz den kleinen Nachteil, ein komplexeres Umrechnungsgesetz mit einem zusätzlichen Rechenschritt zu haben. Wenn der Versatz nicht streng konstant ist, sollten Sie durch Wiederholen der Anpassung bessere Ergebnisse erzielen.
Edgar Bonet
11

Das Lesen des Thermistors ist etwas schwierig. Die obige Kalibrierungsmethode liefert keine Ausbeute für eine Fehlererkennung. Sie würde zwei Punkte einer logarithmischen Kurve (die Thermistor-Antwortkurve) erzeugen.

Dies bedeutet, dass für jede Temperaturänderung von 0,1 ° C die entsprechende Widerstandsänderung in Abhängigkeit vom Temperaturbereich variiert. Geben Sie hier die Bildbeschreibung ein

Zuerst könnte ein Fehler auftreten, der etwa 2 bis 5 ° C von der tatsächlichen Temperatur abweicht, aber kein Fehler, nur eine schlechte Anzeige.

Sie veröffentlichen keine Details darüber, wie Sie diesen Thermistor lesen, Arduino May sein? Ich muss sagen, einige Bibliotheken funktionieren überhaupt nicht, daher müssen Sie eine spezielle Funktion erstellen, um dies zu tun.

Veröffentlichen Sie eine ausführliche Erklärung zur Charakterisierung und zum Lesen eines Thermistors. Der Beitrag ist in Spanisch, aber in den Code-Tags, alle Erklärungen in einfachem Englisch.

Sobald Sie Ihre ABC-Koeffizienten erhalten haben, beträgt Ihr Fehler bei einer anderen Messung etwa 0,1 ° C, selbst bei einer 6 m langen LAN-Kabelstrecke.

Ein Test an 4 Thermistoren Dieser Test las gleichzeitig die 4 Thermistoren. Sie können einen kleinen Temperaturunterschied von 2 von ihnen sehen, die ich kurz in meinen Fingern hielt.

Alejandro Santiago
quelle
@newbie Dies ist der richtige Ansatz. Wenn Sie den Anweisungen nicht folgen können, antworten Sie mir in ungefähr einem Tag und ich werde meinen Arduino-Code nachschlagen und die darin enthaltenen Referenzen nachschlagen und hier eine Antwort schreiben.
Piojo
1
Links sterben ab, und die Fähigkeit dieser Antwort, in Zukunft eine Lösung zu erstellen, hängt stark davon ab, ob der Link aktiv bleibt. Können Sie die Schritte zu Ihrer Antwort hinzufügen?
Keeta - wieder Monica
Ich kopiere und füge den Codeabschnitt der Antwort ein. // Dies ist ein Beispielcode zum Lesen eines Thermistors, der "Thermimistor.h" -Lib da draußen akzeptiert nur Beta-Koeffizienten und in meinem Fall ergeben sich falsche Ergebnisse. Dies ist eine genauere Methode zum Lesen des Thermistors Wenn Sie ungerade oder falsche Messungen haben, gehen Sie bitte folgendermaßen vor: // // Um ​​die genauen Ergebnisse für diesen Code zu erhalten, benötigen Sie; // ein Multymeter, ein NTC-Thermistor, ein anderes genaues // Sondenmessgerät. // Schritt 1.- Multimiter auf Widerstandsmessmodus einstellen
Alejandro Santiago
// Schritt 2.- Den tatsächlichen Widerstand des Thermistors // und die tatsächliche Temperatur ablesen und notieren (1 Minute einwirken lassen, um eine stabile Messung zu erhalten). // Etwas heißes Wasser und eine Tasse. // Schritt 3.- Platzieren Sie beide Sensoren (Thermistor und Temperaturfühler in einem // Empfänger, der Wasser mit Umgebungstemperatur enthält). // In einer anderen Tasse etwas Wasser erhitzen. // Füge heißes Wasser hinzu, bis du die Temperatursonde auf mehr als 10 ° C erhitzt hast, // warte auf eine stabile Messung und notiere die Temperatur und den Widerstand. // Fügen Sie mehr Wasser hinzu, um das Element ab der ersten Messung um 20 ° zu erwärmen. // Beachten Sie die Temperatur und widerstehen
Alejandro Santiago
1
@newbie Wenn Sie einen NTC-Thermistor haben, müssen Sie die Konstanten A, B und C berechnen und in die Steinhart-Hart-Gleichung einstecken, um eine Temperatur aus einem Widerstand aufzulösen. Sie benötigen drei Temperatur- / Widerstandsmessungen, um diese Konstanten zu ermitteln. (Die Konstanten unterscheiden sich je nach Thermistor, und das Finden der Konstanten ist Ihre Kalibrierung.) Dieser Artikel zeigt, wie es geht. Da jedoch Matrixmathematik verwendet wird, empfehle ich, einen Online-Rechner zu finden. thinkrs.com/downloads/pdfs/applicationnotes/…
piojo
9

Füllen Sie eine Tasse mit Eiswürfeln und gießen Sie Wasser ein, um sie bis zum Rand zu füllen. Gelegentlich umrühren. Wenn das Eis zu schmelzen beginnt, haben Sie 0 ° C. Stecken Sie den Sensor ins Wasser und messen Sie ihn.

Wenn Ihr Sensor dies verträgt, lassen Sie ihn in einen Kessel mit kochendem Wasser fallen. Auf Meereshöhe erhalten Sie einen Referenzwert von 100 ° C.

Wenn Sie Ihren Sensor zum Abdichten wärmeschrumpfen müssen, müssen Sie einige Zeit einplanen, damit sich der Messwert stabilisiert.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Abbildung 1. Einfache lineare Kalibrierungskurve.

  • y1 ist der Widerstands-, Spannungs- oder ADC-Wert bei 0 ° C.
  • y2 ist der Widerstands-, Spannungs- oder ADC-Wert bei 100 ° C.

T=100yy1y2y1

Wie in den Kommentaren erwähnt, müssen Sie bei Verwendung eines Thermistors das Datenblatt auf Linearität überprüfen. Wenn dieser einfache Ansatz nicht gut genug ist, müssen Sie eine Polynomberechnung oder eine Nachschlagetabelle in einem Mikrocontroller verwenden.

Transistor
quelle
3
Dies gibt Ihnen zwei Punkte, mit denen Sie das Beta für diese beiden Temps berechnen können. Die Reaktion in diesem Bereich wird bei weitem nicht linear sein (vorausgesetzt, das OP bedeutet es, wenn er es einen "Thermistor" nennt)
Scott Seidman
1
@newbie: Siehe das Update.
Transistor
5
@newbie Wie Transistor am Ende schreibt, ist dieser Ansatz möglicherweise nicht gut genug. Ich kann mir nicht vorstellen, dass es jemals gut genug sein würde, ehrlich gesagt. Das einzige, was Sie mit diesem Ansatz erreichen, ist die Wiederholbarkeit (angenommene 40 ° C sind immer die gleichen angenommenen 40 ° C, aber es können tatsächlich 20 ° C oder 60 ° C sein).
Piojo
2
Reines Wasser kocht bei 100 ° C, wenn der Druck 1,01325 bar oder 1013,25 Millibar oder Hektopascal beträgt. Der Druck auf Meereshöhe hängt vom Wetter ab.
Uwe
1
@ Newbie. Das sieht nützlich aus. Wenn Sie es zum Laufen bringen, geben Sie einen Beispielcode in Ihre Frage oder als Antwort ein. Ich bin sicher, andere würden es nützlicher finden als meine Antwort.
Transistor
2

Linearisierte Thermometer weisen einen Verstärkungs- und Versatzfehler auf.

  • Bipolare Versorgungen haben wahrscheinlich einen Offset von 0 V.
  • Einzelversorgungsbrücken haben ein Vref- oder R-Verhältnis von Vref oder Vcc, wobei der Versatz bei dieser Temperatur auf Null gesetzt ist. Normalerweise ist dies symmetrisch, sodass dies dem Mittelpunkt Ihres Entwurfsbereichs entspricht.
  • Thermistoren werden bei 25 ° C mit einer spezifischen Empfindlichkeitskurve mit 2 Variablen kalibriert.

  • Zum Kalibrieren benötigen Sie nur 2 Messungen

    • Null einstellen, wobei Fehlerspannung = null = 0, Vt = Vref
    • Verstärkung bei T max einstellen
      • Für eine typische 4 R-Brücke ist dies normalerweise die Mitteltemperatur.
  • Verwenden Sie zur Kalibrierung ein besseres Thermometer oder
    • Verwenden Sie Eiswasser und kochendes Wasser für 0, 100 ° C.
Tony Stewart Sunnyskyguy EE75
quelle