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?
thermistor
calibration
ElectronSurf
quelle
quelle
Antworten:
Das Kalibrieren eines Thermistors (oder meistens eines beliebigen Sensors) erfolgt in zwei Schritten:
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:
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.
quelle
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.
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.
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.
quelle
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.
simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab
Abbildung 1. Einfache lineare Kalibrierungskurve.
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.
quelle
Linearisierte Thermometer weisen einen Verstärkungs- und Versatzfehler auf.
Thermistoren werden bei 25 ° C mit einer spezifischen Empfindlichkeitskurve mit 2 Variablen kalibriert.
Zum Kalibrieren benötigen Sie nur 2 Messungen
quelle