Forum: Mikrocontroller und Digitale Elektronik Temperatursensor linearisieren


von Magic S. (magic_smoke)


Lesenswert?

Hi!

Ich steh gerade etwas auf dem Schlauch. Ich habe hier einen 
NTC-Temperatursensor, der eine stark nichtlineare Kurve aufweist. 
Prinzipiell ist es ja immer möglich, mit sowas akkurate Messungen zu 
machen (Wertetabelle geht immer, ist aber komplex zu messen). Kriegt man 
das Ding irgendwie linearisiert, so daß man die Temperatur aus einem 
ADC-Messwert berechnen kann?

Ich habe mit dem Teil folgende Messungen durchgeführt:

0 Grad (20 Minuten in Eiswasser) ........: 5.660 Ohm
22 Grad (Zimmertemperatur) ..............: 2.322 Ohm
100 Grad (5 Minuten kochendes Wasser ....:   190 Ohm

Das sieht extrem doof aus, im unteren Temperaturbereich ändert sich der 
Widerstandswert viel stärker als bei hohen Temperaturen.

Wie kriegt man es nun hin, mit dem Ding einigermaßen genaue Messungen 
zwischen -40..+150 Grad zu schaffen?

von interpol (Gast)


Lesenswert?

Wertetabelle oder interpolation.

von Mike (Gast)


Lesenswert?

Wie bei vielen nichtlinearen Dingen läßt sich die Temperaturabhängigkeit 
auch hier durch eine Gleichung beschreiben. Je nach dem, wie genau und 
über welchen Bereich man die Kurve braucht, kann man die tatsächliche 
Kurve durch eine unterschiedlich aufwändige Gleichung approximieren. Ein 
paar mehr als deine drei Messwerte wird man allerdings schon brauchen.
http://de.wikipedia.org/wiki/Hei%C3%9Fleiter

von Magic S. (magic_smoke)


Lesenswert?

Ich hätte kein allzu großes Problem damit, eine Wertetabelle von 100..0 
Grad zu erzeugen. Da nehme ich einen µC mit einem bekannten 
Temperaturfühler oder einem direktabbildenden Sensor und mache alle 0.1 
oder 0.5 Grad eine Widerstandsmessung.

Das Problem dabei ist, daß ich über diesen Bereich hinaus will. -40 Grad 
und 150 Grad als Endpunkte lassen sich aber nur schwer erzeugen, um dort 
Messungen vorzunehmen. Die 150 Grad schaff ich vielleicht noch mit Öl 
anstatt Wasser, aber die -40 ist ziemlich arschkalt. :)

von Hans J. (step_up_mosfet)


Lesenswert?

magic smoke schrieb:
> aber die -40 ist ziemlich arschkalt. :)

Ich mache hier öfters Niedertemperaturtests bis auf -40°C, wenn ich 
unbedingt muss kann ich auch -65°C  oder -80°C in einem jeweils anderen 
Kühlaggregat erreichen, aber für die Geräte und Akkus reichen die -40°C 
aus.

Ich wollte das eh mal mit meinen 220kOhm NTCs ausprobieren wie da die 
Kurve aussieht.

von Mike (Gast)


Lesenswert?

magic smoke schrieb:
> Das Problem dabei ist, daß ich über diesen Bereich hinaus will.
Wenn du eine vernünftige Gleichung zur Beschreibung deines Sensors hast, 
kannst du die natürlich auch außerhalb des Kalibrierbereichs verwenden. 
Du mußt nur sicher sein, dass sich die Gleichung auch außerhalb deiner 
Stützstellen anständig benimmt. Z.B. wäre ein einfaches Polynom dritten 
oder höheren Grades eine schlechte Wahl, weil es nicht die Physik des 
Sensors beschreibt und zwischen/außerhalb der Kalibrierpunkte argen Mist 
machen kann.

Wenn du keine ausreichende Kalibriermöglichkeit besitzt, solltest du 
einen bereits kalibrierten Sensor verwenden. Das Datenblatt des 
Herstellers sollte dir die Kurve verraten. Bei dem Temperaturbereich 
würde man allerdings meist zu einem PT100 greifen, den es in 
verschiedenen Genauigkeitsklassen mit passenden (weil normierten) 
Signalaufbereitungsmodulen fertig zu kaufen gibt.

-40°C und 150°C dürften bei den meisten NTC allerdings schon außerhalb 
des spezifizierten Betriebstemperaturbereichs liegen.

von Markus (Gast)


Lesenswert?

Widerstand parallel zum NTC.

von Magic S. (magic_smoke)


Lesenswert?

Jo, wahrscheinlich wird es wohl auf einen PT100 oder besser gleich einen 
direktmessenden Sensor hinauslaufen, den ich dann in das benötigte 
Gehäuse einkleben muß. Nicht toll, aber mal sehen wie brauchbar die 
Ergebnisse damit werden.

Ansonsten hab ich mir gerade mal ein kurzes Programm für einen 
Bruteforce-Angriff auf die Kurve ausgehend von Rx bei -50 Grad bis R~190 
bei 100 Grad geschrieben... Bis jetzt aber noch nichts gefunden, was 
auch nur an zwei der Punkte auf 5% drankommt. Steht also in den Sternen 
ob das was bringt.

von R. F. (rfr)


Lesenswert?


von Magic S. (magic_smoke)


Lesenswert?

Nee das nutzt mir nicht so viel.

Kann doch eigentlich nicht so schwer sein, eine Kurve in der Form 1/x zu 
zeichnen, die alle drei Punkte schneidet. Leider hab ich kein Programm 
was sowas kann und auch keine besonders große Lust mich da 
reinzuarbeiten. Eher schmeiß ich die NTCs weg und besorg mir nächste 
Woche fertige Temperaturfühler, die bekannte und lineare Werte 
ausspucken können.

von Helmut S. (helmuts)


Lesenswert?

Es gibt eine recht brauchbare Standardformel für NTCs. Für eine noch 
bessere Näherung gibt es die Steinhart-Hart Gleichung.

R = R25*e^(1/(T+Tk) -1/(25+Tk)

R25=2k
B=2800
Tk=273.15

Wenn du ein Datenblatt hast, dann steht der typische Wert für B da drin. 
Außerdem ist da eine Tabelle drin. Die ist natürlich noch genauer.

Hast du die 100°C mit kochendem Wasser gemessen?
Hoffe nicht, denn 100°C gibt es da nur auf Meereshöhe.

von Anja (Gast)


Lesenswert?

magic smoke schrieb:
> Kann doch eigentlich nicht so schwer sein, eine Kurve in der Form 1/x zu
> zeichnen, die alle drei Punkte schneidet.

Der normale Weg ist:
Die Wertetabelle aus dem Datenblatt verwenden.
Eine Interpolationskurve mit 5 Grad Stützstellen aufsetzen die aus der 
Eingangsspannung (mit entsprechendem Pull-up) die Temperatur ausgibt.

NTCs lassen sich nicht über einen soo großen Bereich einfach 
linearisieren.

Gruß Anja

von Ernst O. (ernstj)


Lesenswert?

Mike schrieb:
> Wenn du eine vernünftige Gleichung zur Beschreibung deines Sensors hast,
> kannst du die natürlich auch außerhalb des Kalibrierbereichs verwenden.
> Du mußt nur sicher sein, dass sich die Gleichung auch außerhalb deiner
> Stützstellen anständig benimmt.

Woran erkennst du ob eine Gleichung "vernünftig" ist und sich 
"anständig" verhält? Extrapolation ist ein riskantes Geschäft.

von Conny G. (conny_g)


Lesenswert?

magic smoke schrieb:
> Ich hätte kein allzu großes Problem damit, eine Wertetabelle von 100..0
> Grad zu erzeugen. Da nehme ich einen µC mit einem bekannten
> Temperaturfühler oder einem direktabbildenden Sensor und mache alle 0.1
> oder 0.5 Grad eine Widerstandsmessung.
>
> Das Problem dabei ist, daß ich über diesen Bereich hinaus will. -40 Grad
> und 150 Grad als Endpunkte lassen sich aber nur schwer erzeugen, um dort
> Messungen vorzunehmen. Die 150 Grad schaff ich vielleicht noch mit Öl
> anstatt Wasser, aber die -40 ist ziemlich arschkalt. :)

Ich habe mal eine Messreihe bis 200 Grad gemacht:
1-2kg Kies in einen Kochtopf und auf 200 Grad erhitzen, dann während des 
Abkühlens ständig mitschreiben.
Die Kiesel haben eine große Masse, damit haben das Vergleichsthermometer 
und das Messobjekt recht gut dieselbe Temperatur und die Abkühlkurve ist 
dadurch recht langsam und man kann gemütlich protokollieren.

Evtl kann man so auch einfach auf -20 Grad kommen - mit dem 
Gefrierschrank.

: Bearbeitet durch User
von ich (Gast)


Lesenswert?

Trag mal deine gemessenen Wertepaare in eine Excel-Tabelle ein.

Dann ein Diagramm daraus machen, die Trendlinie anzeigen lassen, dann 
die Trendlinie anklicken, Trendlinie formatieren, dann bei Optionen die 
"Gleichung im Diagramm darstellen" lassen.

So müßtest du zu einer passenden Gleichung kommen.

von Hans J. (step_up_mosfet)


Lesenswert?

Conny G. schrieb:
> Evtl kann man so auch einfach auf -20 Grad kommen - mit dem
> Gefrierschrank.

Auf diese Temperatur kommst du leicht mit jedem Gefrierwürfel.

Meinen Gefrierwürfel habe ich modifiziert, er besitzt jetzt keine 
analoge Regelung mehr da diese sehr ungenau war.

Nun besitzt der Würfel einen Temperatursensor, einen Triac + MOC, einen 
Lüfter und eine kleine Platine mit Tastern um die Soll- und 
Ist-Temperatur einzustellen und ein LCD um sie abzulesen.

Bei -40°C läuft er aber ständig da das Kältemittel in dem Bereich nicht 
mehr effizient arbeiten kann, auch bei verschiedenen 
Umgebungstemperaturen (0°C bis 20°C) erreiche ich keine andere 
Temperatur als ca. -41,5°C.

Die Wärme würde ich also schon wegbekommen nur das Kältemittel geht 
scheinbar ab diesem Punkt nicht mehr in den gasförmigen Zustand.

von Mike (Gast)


Lesenswert?

ernst oellers schrieb:
> Woran erkennst du ob eine Gleichung "vernünftig" ist und sich
> "anständig" verhält? Extrapolation ist ein riskantes Geschäft.

Eben - deshalb explizit die Warnung for einfachen Polynomen. Wenn die 
Gleichung die Physik des Sensors richtig beschreibt und sich z.B. hinter 
den Koeffizienten nur Materialkonstanten oder Geometrieparameter des 
Sensors verbergen, ist die Gefahr, dass die Gleichung beim Extrapolieren 
in den Wald läuft, kräftig reduziert.

Und erkennen, ob die Gleichung Mist baut, tut man praktisch recht gut, 
wenn man für die Parameterbestimmung von den vorhandenen 
Kalibrierpunkten probehalber nur so viele, wie zur Lösung unbedingt 
notwendig verwendet und prüft, ob die nicht genutzen Kalibrierpunkte 
trotzdem durch die Gleichung gut getroffen werden (Subsampling). 
Insbesondere, wenn man für die Approximation die gemessenen Endpunkte 
weg läßt und die Kurve trotzdem ihren Verlauf (bis auf Meßfehler) nicht 
ändert, sieht es schon mal - abgesehen von mathematischen Betrachtungen 
zur Fehlerempfindlichkeit beim Fit - recht praxistauglich aus.

von Ernst O. (ernstj)


Lesenswert?

@Mike

Gut formuliert, gratuliere.

Polynome sind hinterhältig, das ist auch meine Erfahrung. Ich hatte mal 
eine Thermoelementkennlinie mit Polynomen verschiedenen Grades 
modelliert. Die Ergebnisse der Interpolation waren sehr schön, aber bei 
schon geringer Extrapolation wurde es richtig häßlich.

von Magic S. (magic_smoke)


Lesenswert?

Naja. Ich glaub ich feuer die Dinger in den Müll bzw. mach mir Gedanken 
wie ich das originale Gehäuse ausräume (evtl. ausbohren) und dann einen 
LM75 oder so (den habe ich noch hier) da reinklebe. Problematisch wird 
dann wieder ein guter Wärmeübergang. ;-(

Ich hab auch kein gutes Vergleichsthermometer, das müßte ich auch erst 
bauen, um die Wertetabelle während eines Abkühlvorganges loggen zu 
können.

Es muß aber nicht so ultra-genau sein, wenn ich auf 2 Grad an die 
"echte" Temperatur herankomme, dann würde das reichen.

Ich hab auch keine weiteren (bekannten) Temperaturfühler hier, bis auf 
einen einzigen besagten LM75. Klar, noch diverse schwarze Kleckse auf 
meinen Teilespender-Platinen an diversen Kühlkörpern, aber die sind 
genauso unbekannt wie die Dinger, mit denen ich es zuerst probiert hab.

von Tester (Gast)


Lesenswert?

Um eine math. Funktion aus Stützstellen zu erhalten, ist das 
nachstehende Programm gut geeignet:

Beitrag "PolynomMaker - Funktion für nichtlineare Bauelemente finden"

von Helmut S. (helmuts)


Lesenswert?

> LM75

Der kann doch gar keine 150°C oder gibt es die Anforderung von 150° gar 
nicht?

von Conny G. (conny_g)


Lesenswert?

magic smoke schrieb:
> Ich hab auch kein gutes Vergleichsthermometer, das müßte ich auch erst
> bauen, um die Wertetabelle während eines Abkühlvorganges loggen zu
> können.

Als Vergleichsthermometer reicht sowas, das habe ich verwendet:
http://www.conrad.de/ce/de/product/123320/VOLTCRAFT-DET3R-Einstich-Thermometer-Temperaturbereich-40-250-C?ref=searchDetail

> Es muß aber nicht so ultra-genau sein, wenn ich auf 2 Grad an die
> "echte" Temperatur herankomme, dann würde das reichen.

Man kann für eine grobe Messung in einen Bereich von 0-200 Grad auch 
eine einfache Diode verwenden:
Beitrag "Re: Dioden Temperaturmessung"
Ist sogar ziemlich linear.

Verwende ich als Temperaturfühler für meinen Selbstbau-Reflow-Ofen.

von Ernst O. (ernstj)


Lesenswert?

magic smoke schrieb:
> Wie kriegt man es nun hin, mit dem Ding einigermaßen genaue Messungen
> zwischen -40..+150 Grad zu schaffen?

Also zwischen 0°C und 100°C schlage ich vor, dass du mal nachrechnest 
und misst was passiert, wenn du dem NTC einen 1,5 kOhm Widerstand 
parallel schaltest. Ob das dann von -40 bis 150 C genau genug ist, musst 
du selbst nachmessen.

von Conny G. (conny_g)


Lesenswert?

> Verwende ich als Temperaturfühler für meinen Selbstbau-Reflow-Ofen.

http://thomaspfeifer.net/laminator_temperatur_regelung.htm

von Magic S. (magic_smoke)


Lesenswert?

An eine Diode habe ich auch schon gedacht. Bzw. 6-7 Stück in Reihe, um 
eine geeignete Messpannung zu kriegen.

So, jetzt mal eine andere Frage: Wie würdet ihr das machen bzw. welchen 
Temperatursensor verwendet ihr so?

von Mike (Gast)


Lesenswert?

Tester schrieb:
> Um eine math. Funktion aus Stützstellen zu erhalten, ist das
> nachstehende Programm gut geeignet:

Wenn dann bitte kubische Splines. Polynom neigen dazu, zwischen den 
Stützstellen üble Dinge zu veranstalten.

von Ernst O. (ernstj)


Lesenswert?

Grundsätzlich neige ich zu Pt100 Fühler oder Thermoelement.
Wenn dir das zu elitär ist: Diode oder NTC mit Parallelwiderstand.
Vor Signalverstärkern (sprich OPAmps) darf man in keinem Fall Angst 
haben.

Was für deine Anwendung das beste wäre weiss ich nicht, das hängt davon 
ab, was du konkret messen bzw. regeln willst - und in der Hinsicht hast 
du ja bisher dicht gehalten.

von Tester (Gast)


Lesenswert?

Mike schrieb:
> Wenn dann bitte kubische Splines. Polynom neigen dazu, zwischen den
> Stützstellen üble Dinge zu veranstalten.

Unfug - Deine "üblen Dinge" werden, falls sie dann auftreten, in der 
berechneten Kurve sofort sichtbar.

von Timm R. (Firma: privatfrickler.de) (treinisch)


Angehängte Dateien:

Lesenswert?

Hi,

also mit der Steinhart-Hart Gleichung (die die ich kenne, oben die 
Version kenne ich nicht, bin aber kein Ing.) lassen sich die drei Punkte 
gut fitten. (Kunststück :-) ):

T [K]   Rgem [Ω]  Rfit [Ω]
273.15  5660       5663
295.15  2322       2309
373.15   190        225



vlg

 Timm

von Mike (Gast)


Lesenswert?

Tester schrieb:
> Unfug - Deine "üblen Dinge" werden, falls sie dann auftreten, in der
> berechneten Kurve sofort sichtbar.

Das setzt voraus, dass man nicht blind auf irgendwelche Tool und 
ausgeworfene Koeffizienten vertraut, sondern genau hinguckt, was da 
passiert. Polynome werden genau dann übel, wenn sie mit viele 
Freiheitsgraden angesetzt werden, obwohl sie das Problem nicht 
vernünftig beschreiben.

Versuch mal z.B. eine 1/x-Abhängigkeit durch ein Polynom zu fitten und 
dann nur minimal zu extrapolieren.

von Magic S. (magic_smoke)


Lesenswert?

Ach Du Scheiße... oO Dafür muß man ja Mathematik studiert haben.
Klasse Leistung!

Kriegt man die Kurve noch dichter an den dritten Punkt dran, dann würde 
ich glatt probieren, eine Wertetabelle damit zu errechnen. Kannst Du 
kurz erklären, wie Du zu der Gleichung gekommen bist, so daß es ein 
Nicht-Mathematiker versteht? So, daß man sie vielleicht auch für andere 
Sensoren mit leicht abweichenden Werten nutzen kann?

Es geht übrigens nicht um eine Regelung oder so, sondern eine einfache 
Messung und Anzeige der Temperatur. Und dabei möchte man natürlich 
möglichst genau an den "echten" Wert herankommen.

Die Temperatursensoren sind aus dem Automobilbereich (blaue VW/Audi 
Temperatursensoren). Da find ich nichts anderes in dem Gehäuse, deswegen 
friss-oder-stirb bei den Gebern oder selbst bauen. Sprich Gehäuse 
ausräumen (geht nicht zerstörungsfrei) und einen brauchbaren Fühler 
einkleben.

von Ernst O. (ernstj)


Lesenswert?

magic smoke schrieb:
> Die Temperatursensoren sind aus dem Automobilbereich (blaue VW/Audi
> Temperatursensoren). Da find ich nichts anderes in dem Gehäuse, deswegen
> friss-oder-stirb bei den Gebern oder selbst bauen. Sprich Gehäuse
> ausräumen (geht nicht zerstörungsfrei) und einen brauchbaren Fühler
> einkleben.

OK dann schalte mal 1,5 kOhm parallel und staune.

von Magic S. (magic_smoke)


Lesenswert?

Ok probier ich mal zu berechnen. Welchen Wert für den anderen (in Serie 
geschalteten) Widerstand?

von Ernst O. (ernstj)


Lesenswert?

Nimm deinen NTC Fühler, den du eingangs beschrieben hast und schalte 
dazu 1,5 kOhm parallel. Das dürfte linear genug sein (Widerstand in 
Abhängigkeit von der Temperatur). Die Parallelschaltung hat bei 0°C 1185 
Ohm, bei 25 °C 911 Ohm und bei 100°C 169 Ohm. Probiere es aus und sag 
was rauskommt. (Da du kein Thermometer hast lass eine Diode mit laufen, 
mit einem Serienwiderstand von 10 kOhm an GND undd VCC angeschlossen. 
Berichte einfach deren Spannungswerte) Interessiert mich auch.

von MaWin (Gast)


Lesenswert?

magic smoke schrieb:
> Wie kriegt man es nun hin, mit dem Ding einigermaßen genaue Messungen
> zwischen -40..+150 Grad zu schaffen?

Per Software oder Hardware ?

Per Hardware
Linearisierung eines NTC R(parallel) = Rntc(T) * (B-2T)/(B+2T) mit T 
mittlerer Temperatur
http://www.umnicom.de/Elektronik/Sonstiges/Messtechnik/tmKap2/tmKap211/tmKap211.html#2.1.1.1

per Software eben beispielsweise mit Polynomapproximation wie von den 
anderen beschrieben.

von Magic S. (magic_smoke)


Lesenswert?

Ok, ich werd mal eben die Spannung über dem NTC bei den drei Punkten 
berechnen.

Den Controller werd ich mit einer vorberechneten Wertetabelle entlasten. 
Diese durchzusuchen ist bei maximal 400 Werten (bei 0.5 Grad Auflösung) 
schnell erledigt und ich brauch mich nicht mit großem Formelwerk 
herumzuschlagen. Diese komplexen Formeln dürften sonst deutlich mehr 
Rechenleistung fordern.

von Ernst O. (ernstj)


Lesenswert?

Oh, ich vergass: Da hier die Widerstandskennlinie linearisiert ist, 
empfiehlt sich eine Konstantstromquelle als Versorgung.

Wie hoch ist denn die vorgesehene Versorgungsspannung?

von Magic S. (magic_smoke)


Lesenswert?

5V.

Wieviel Strom brauchen die komischen Geber, wenn Du davon Ahnung hast?

Mit einem Serienwiederstand von 5000 Ohm und 1500 Ohm parallel ergeben 
sich folgende Spannungswerte am NTC: 0.959V, 0.771V und 0.163V. Für 22 
Grad linear errechnet ergibt sich 0.783V, was wirklich ziemlich nahe 
dran ist. Kann man das noch weiter verbessern?

von Timm R. (Firma: privatfrickler.de) (treinisch)


Angehängte Dateien:

Lesenswert?

magic smoke schrieb:

> Kriegt man die Kurve noch dichter an den dritten Punkt dran,

klar, einfach nicht fitten :-). Durch drei Punkte geht Steinhart-Hart 
immer :-)

sollte exakt durch alle drei Punkte gehen.

Vorher war irgendwo ein Fehler in der Gleichung, den habe ich einfach 
kaschiert, in dem ich gefittet habe, statt zu lösen. Böser Bursche!


vlg

 Timm

: Bearbeitet durch User
von Magic S. (magic_smoke)


Lesenswert?

Wow. Wenn Du mir jetzt noch erklären kannst, wie Du darauf gekommen 
bist?

Edit:
Kannst Du mir eine Wertetabelle für -50 Grad C bis +200 Grad C im 0,5 
Grad Raster schicken? Du hast die Funktion schon aus sowas gezeichnet, 
vielleicht ists ganz einfach für Dich und dann muß ich die Formel nicht 
erst irgendwo reinprogrammieren um sie "berechnbar" zu machen.

: Bearbeitet durch User
von Ernst O. (ernstj)


Lesenswert?

Um bessere Werte zu finden als 1500 Ohm parallel und 5000 seriell wären 
ein paar mehr Stützstellen nötig. Gibt es eine Tabelle mit mehr 
Widerstand / Temperaturwerten?

von Timm R. (Firma: privatfrickler.de) (treinisch)


Angehängte Dateien:

Lesenswert?

Hi,

so?

vlg

 Timm

von Ulrich (Gast)


Lesenswert?

Bei der Hardware Linearisierung ist der Widerstand relevant der sich aus 
der Prallelschaltung der beiden ergibt. Statt 1500 Ohm parallel und eine 
Stromquelle kann man also auch 3 K parallel und 3 K in Reihe nehmen.

von Magic S. (magic_smoke)


Lesenswert?

Jo Timm Danke, damit komm ich klar. Runden und formatieren krieg ich 
hin.

Kannst Du mir noch verraten wie Du die Formel erstellt hast? Gibts dafür 
Programme, die sowas erledigen wenn man die drei Punkte einträgt?

von lubbi (Gast)


Lesenswert?

ernst oellers schrieb:
> Grundsätzlich neige ich zu Pt100 Fühler oder Thermoelement.
> Wenn dir das zu elitär ist: Diode oder NTC mit Parallelwiderstand.
> Vor Signalverstärkern (sprich OPAmps) darf man in keinem Fall Angst
> haben.

wurde dir das nicht schon lange von "ich" erklährt? das kann doch ganz 
einfach per Excel gemacht werden...

von lubbi (Gast)


Lesenswert?

falsches Zitat - ich meinte natürlich:

> Kannst Du mir noch verraten wie Du die Formel erstellt hast? Gibts dafür
> Programme, die sowas erledigen wenn man die drei Punkte einträgt?

von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

Hi,

wohlgemerkt, behaupte ich nicht, dass es sinnvoller ist diese Formel zu 
verwenden, als per Hardware zu linearisieren!

Also, ich habe einfach in die Steinhart-Hart Funktion

Deine Wertepaare eingesetzt.
Gibt ein lineares Gleichungssystem und die Werte für A, B und C.

Dann muss man die Gleichung nur noch nach R auflösen:

und entsprechend die Werte aus dem linearen Glg.System einsetzen.

vlg

 Timm

P.S. Eher mittelmäßig sinnvoll, aber mit Trendlinien in Excel (Artikel 
von "ich") hat das soviel zu tun, wie Erbsen mit Atomkrieg.

: Bearbeitet durch User
von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

Hi,

ach so, wenn Du mehr als drei Messwerte hast, fittest Du natürlich nicht 
die R(T) von oben, sondern linear in 1/T gegen ln(R), das kann dann auch 
Excel :-)

vlg
 Timm

von Magic S. (magic_smoke)


Lesenswert?

Die Formel versteh ich nicht wirklich, dafür bin ich zu lange aus dem 
Mathe-Kram raus bzw. kann es mir nicht bildlich vorstellen. Die 
Wertepaare bestehen ja immer aus zwei Werten, oder rechnet man mit den 
Produkten aus beiden Werten?

Wie gut ist denn die Formel im Vergleich zur Hardware-Linearisierung?

Und wie gut ist die 3k/3k-Methode?

Ich steh leider nicht weit genug in der Materie der Temperaturmessung, 
um diese beiden Fragen einschätzen zu können. Beim nächsten mal nehm ich 
wieder digitale oder zumindest direktabbildende Sensoren.

von Conny G. (conny_g)


Lesenswert?

magic smoke schrieb:
> Die Formel versteh ich nicht wirklich, dafür bin ich zu lange aus dem
> Mathe-Kram raus bzw. kann es mir nicht bildlich vorstellen. Die
> Wertepaare bestehen ja immer aus zwei Werten, oder rechnet man mit den
> Produkten aus beiden Werten?
>
> Wie gut ist denn die Formel im Vergleich zur Hardware-Linearisierung?
>
> Und wie gut ist die 3k/3k-Methode?
>
> Ich steh leider nicht weit genug in der Materie der Temperaturmessung,
> um diese beiden Fragen einschätzen zu können. Beim nächsten mal nehm ich
> wieder digitale oder zumindest direktabbildende Sensoren.

Einfach mal das lesen, dann wird es klar, woher die Formel kommt, was 
sie macht und wie man sie verwendet:
http://en.wikipedia.org/wiki/Steinhart%E2%80%93Hart_equation

Zitat:
"The equation is often used to derive a precise temperature of a 
thermistor since it provides a closer approximation to actual 
temperature than simpler equations, and is useful over the entire 
working temperature range of the sensor. Steinhart–Hart coefficients are 
usually published by thermistor manufacturers.
Where Steinhart–Hart coefficients are not available, they can be 
derived. Three accurate measures of resistance are made at precise 
temperatures, then the coefficients are derived by solving three 
simultaneous equations."

: Bearbeitet durch User
von Magic S. (magic_smoke)


Lesenswert?

Jo wie gesagt...*g* Ich bräuchte ein Programm dafür. Vielleicht arbeite 
ich mich irgendwann mal rein und schreib eines, aber ich glaub vorher 
bring ich noch schnell einer Kuh das Tauchen bei.

von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

magic smoke schrieb:
> Die Formel versteh ich nicht wirklich, dafür bin ich zu lange aus dem
> Mathe-Kram raus bzw. kann es mir nicht bildlich vorstellen.

naja, ist halt ein Polynom dritten Grades in 1/T gegen ln(R) wofür auch 
immer du dir das vorstellen möchtest.

> Die
> Wertepaare bestehen ja immer aus zwei Werten

Ja genau, also
0 Grad (20 Minuten in Eiswasser) ........: 5.660 Ohm

ergibt

A + B log(5660) + C (log(5660))^3 = 1/(0 + 273.15)

22 Grad (Zimmertemperatur) ..............: 2.322 Ohm

ergibt

A + B log(2322) + C (log(2322))^3 = 1/(22 + 273.15)

usw.

Macht drei Unbekannte: A, B, C und drei Gleichungen.

Auflösen und du hast die Werte für A, B und C, womit Du dann wiederum 
für jede andere Temperatur das R ausrechnen kannst.

> Wie gut ist denn die Formel im Vergleich zur Hardware-Linearisierung?

Ich tippe auf: sehr sehr viel besser.

Wobei die Achillesferse die selbe ist: Nur drei Messwerte eher 
zweifelhafter Qualität. Wenn die Qualität dieser drei Werte schlecht 
genug ist, kann alles andere natürlich egal werden ...


vlg
 Timm

von Conny G. (conny_g)


Lesenswert?

Timm Reinisch schrieb:
>> Wie gut ist denn die Formel im Vergleich zur Hardware-Linearisierung?
>
> Ich tippe auf: sehr sehr viel besser.
>
> Wobei die Achillesferse die selbe ist: Nur drei Messwerte eher
> zweifelhafter Qualität. Wenn die Qualität dieser drei Werte schlecht
> genug ist, kann alles andere natürlich egal werden ...

Am besten durch eine Messreihe ein Gefühl dafür holen, was dann 
eigentlich passiert.
Hast ja eh ein bisschen Zeit, bis die Kuh wieder auftaucht.

: Bearbeitet durch User
von Helmut S. (helmuts)


Lesenswert?

> > Wie gut ist denn die Formel im Vergleich zur Hardware-Linearisierung?

> Ich tippe auf: sehr sehr viel besser.

Hardware Linearisierung kannst du beim NTC Widerstand vergessen, wenn du 
einen so großen Temperaturbereich hast, weil R(T) eine exponentielle 
Abhängigkeit hat.
Du wirst aber trotzdem einen Serien- und einen Parallelwiderstand 
einbauen um die Empfindlichkeit (mV/Grad Celsius) in einem vernünftigen 
Bereich zu halten.
Ein 10bit A/D Wandler wird dir aber nicht reichen. Da musst du schon 
noch ein paar bit extra einwerfen müssen.
Vielleicht  wäre ja ein Spannungs->Frequenzwandler eine "einfachere" 
Möglichkeit. Allerdings brauchst du da sehr Temperaturstabile 
Bauteile(C, Opamp, R), weil deine Umgebungstemperatur ja auch stark 
schwankt.

von Erwin (Gast)


Lesenswert?

Püüüh, NTCs sind für Temperaturmessung ja denkbar ungeeignet.
Gibt keine mit halbwegs nachvollziehbaren Gleichungs-Parametern,
oder T-U-Tabelle. Schmeiß weg, wenn sie nicht gerade für
irgendwelche TK-Kompensationen gebraucht werden.

Die KTY81-110 gibts schon seit ewig für < 1 EU.
Mit Tabelle.

Ohne Abgleich bist du von 0..50° C auf 2° C genau,
von -50° C ... + 80° C auf 3° C

von Magic S. (magic_smoke)


Lesenswert?

Ich glaub mit der Formel ist es gut genug. Der Rest geht in der 
Ungenauigkeit des Sensors unter.

Danke Timm auf jeden Fall nochmal für die Erklärung!

von Magic S. (magic_smoke)


Lesenswert?

Sooo... Es funktioniert mit einer Wertetabelle aus der Formel 
erstaunlich gut. Ich hab mir direkt die ADC-Messwerte für einen 1k 
Serienwiderstand an 5V berechnet und in der Tabelle zusammen mit der 
zugehörigen Temperatur abgelegt. Dadurch muß der µC keine einzige 
Rechnung ausführen, sondern nur den ADC-Wert in der Tabelle suchen. 
Braucht eine ganze Menge Speicher und im oberen Bereich doppeln sich 
einige Werte wegen der starken Abflachung der Kennlinie, aber für das 
wofür ich es brauche ist es genau genug.

Danke nochmal allen, die geholfen haben - vor allem Timm für seine 
Arbeit!

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.