Forum: Mikrocontroller und Digitale Elektronik Temperaturfühler-Kennlinie als Formel


von warm (Gast)


Lesenswert?

Ich habe hier einen Temperaturfühler, den ich aufgrund der Bauform gerne 
für eine Steuerung verwenden möchte. Das Problem ist: Ich weiß nicht, 
was es für ein Bauteil ist. Wahrscheinlich ein NTC. Ich habe bei 
verschiedenen Temperaturen den Widerstand gemessen (2 Beine als 
Anschluß, Polung ist egal). Also ich habe eine elektrische Heizplatte 
genommen und und mit dem Infrarottermometer die Temperatur gemessen und 
von Fühler den Widerstand.

Das sind die Ergebnisse:

Grad Ceslsius  kOhm
26  330
75  80,5
80  66
90  54,5
100  42,1
110  37,3
120  28,6
130  23,7
145  17,6
150  17,9
155  16,2
160  13,6
165  11,6
170  11,3
175  10,2
180  9,0
190  9,5
200  7,0
210  6,8
220  6,0
230  6,6

Mir ist klar, daß da ein paar Meßfehler drin sein müssen. Meine Frage an 
die Mathebegabten: kann man aus diesen Werten sowohl die Meßfehler 
isolieren als auch eine Näherungsfunktion ableiten?

Ich würde dann gerne 10k in Reihe schalten und per Formel (nicht per 
Wertetabelle) aus dem Widerstands-Meßwert (bzw. dem Spannungsabfall) 
näherungsweise auf dem uC die Temperatur berechnen..

geht das? Wenn ja, wie? Bin gespannt.. :-)

von heinz (Gast)


Lesenswert?

wie wärs wenn du die werte in excel eintippst und das ganze mit ner 
linearen interpolation versuchst?

wenn die mittlere abweichung dir zu groß wird eben mit funktion von 
höherem grad

von TOM (Gast)


Lesenswert?

Ohne den Typ des NTCs zu kennen wird dir keiner den Messfehler sagen 
können. Aus den Daten kann man den nicht extrahieren, wie auch?
Für die Funktion braucht man keine großen mathematischen Kenntnisse. 
Nimm Excel oder ähnlich und fitte per Regression ein Polynom in deine 
Daten.

von TOM (Gast)


Lesenswert?

Zwischen 26 und 75 °C ist estwas mager mit Stützpunkten, aber sowas 
sollte grob passen:

Linear model Poly4:
       f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5

       p1 =  8.166e-007  (6.883e-007, 9.448e-007)
       p2 =  -0.0005355  (-0.0006019, -0.0004692)
       p3 =      0.1308  (0.1192, 0.1425)
       p4 =      -14.37  (-15.17, -13.58)
       p5 =       623.7  (606.8, 640.7)

Goodness of fit:
  SSE: 85.17
  R-square: 0.9991
  Adjusted R-square: 0.9989
  RMSE: 2.307

von Olaf (Gast)


Lesenswert?

Hmm....

       p1 =  8.166e-007  (6.883e-007, 9.448e-007)
       p2 =  -0.0005355  (-0.0006019, -0.0004692)

...und du meinst nicht das man da etwas vernachlaessigen kann? .-)

Olaf

von Sebastian B. (mircobolle)


Lesenswert?

TOM wrote:
> Zwischen 26 und 75 °C ist estwas mager mit Stützpunkten, aber sowas
> sollte grob passen:
>
> Linear model Poly4:
>        f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5
>
>        p1 =  8.166e-007  (6.883e-007, 9.448e-007)
>        p2 =  -0.0005355  (-0.0006019, -0.0004692)
>        p3 =      0.1308  (0.1192, 0.1425)
>        p4 =      -14.37  (-15.17, -13.58)
>        p5 =       623.7  (606.8, 640.7)
>
> Goodness of fit:
>   SSE: 85.17
>   R-square: 0.9991
>   Adjusted R-square: 0.9989
>   RMSE: 2.307

mit was hast du das berechnet?

Excel, Matlab.... ?

Ist es nicht effizienter sowas auf dem Controller mit Kennlinienfeld und 
linearer Interpolation zu machen.

Das oben dargestellt ist natürlich um einiges genauer!

MFG

von gast (Gast)


Angehängte Dateien:

Lesenswert?

du solltest im unteren temperaturbereich noch ein paar messwerte 
aufnehmen. im anhang findest die entsprechende excel tabelle

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Wie sieht die Kurve aus?
Sehr wahrscheinlich nicht linear?

Interpolationspolynome schlagen sehr stark aus, fuer sowas nimmt man 
dann ansonsten am besten eine Spline-Interpolation.

Ist die Kurve annaehernd linear kann man auch eine Regressionsgerade 
berechnen. Regression kann man uebrigens auch in hoeheren Graden 
veranstalten, aber da wird es recht aufwaendig.

http://de.wikipedia.org/wiki/Lineare_Regression
http://de.wikipedia.org/wiki/Spline-Interpolation

von gast (Gast)


Lesenswert?

ach ja, ich habs mal mit "potenziell" probiert und nicht mit 
"polynomisch"

von warm (Gast)


Lesenswert?

wow, ich hab nicht gedacht, daß Ihr SO begabt seid bzw. ich so 
unbegabt.. :-)

Also ich vermute mal, daß ich mich bei 220, 180 und 145 Grad vermessen 
hab.. Die Werte sollte man wohl weglassen..

von gast (Gast)


Lesenswert?

>>Also ich vermute mal, daß ich mich bei 220, 180
>>und 145 Grad vermessen
welche formel hast du jetzt genommen
wenn du die aud meinem excel dokument hast, dann sind eher die werte 
unter 100°C noch einmal nachzumessen

von warm (Gast)


Lesenswert?

Ich hab gar keine Formel genommen, nur das Augenmaß, das besagt, daß 
sich die Werte stetig / gleichartig zur Temperatur ändern sollten..

Bei den Werten unter 100 Grad bin ich mir sogar sicherer, denn da hatte 
ich mehr Zeit zum Messen, weil die Herdplatte ja immer langsamer 
abkühlt..

von warm (Gast)


Lesenswert?

ach ja, und für meine Steuerung interessieren mich gerade die Werte 
zwischen 100 und 200 Grad, deswegen habe ich in 2stelligen Bereich nicht 
groß gemessen.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

OpenOfficeCalc schlägt diese Näherung vor, Potenzfunktion ausgewählt.

von Sven (Gast)


Lesenswert?

Wenn es einigermaßen genau sein soll:

1. Mehrere Zyklen fahren. Auf gute thermische Kopplung achten. Laaangsam 
hochheizen.

2. Zyklen in beide Richtungen messen (Aufheizen und Abkühlen). Wenn 
dabei nicht ähnliche Kurven rauskommen, hat man zu schnell geheizt.

3. (gemittelte) Messpunkte als Tabelle ablegen und linear interpolieren. 
Oder wie willst Du mit dem AVR (z.B.) ein Polynom 4. Grades berechnen 
(ok, kann man machen, muss man aber nicht).

4. Infrarot-Thermometer? Nimm einen Alublock, 2 Bohrungen, 
Wärmeleitpaste, packe da den Sensor und einen Thermofühler (vom 
Multimeter) rein und leg das auf die Heizplatte. Und laaangsam anheizen.

von TOM (Gast)


Lesenswert?

@Olaf:
>> ...und du meinst nicht das man da etwas vernachlaessigen kann? .-)

nein, du?
Das ist immer eine Frage der Genauigkeitsanforderungen, die uns ja nicht 
bekannt sind.

Nur weil p1 sehr klein ist, ist noch lang nicht zu vernachlässigen 
immerhin geht die Temperatur in 4. Potenz ein.


@Sebastian B.:
Matlab Curve-Fitting Toolbox

von tipi (Gast)


Lesenswert?

gnuplot hat auch ne fit funktion
vielleicht ja auch maxima oder scilab?

von Sebastian B. (mircobolle)


Lesenswert?

> Nur weil p1 sehr klein ist, ist noch lang nicht zu vernachlässigen
> immerhin geht die Temperatur in 4. Potenz ein.
>

ist etwas sehr kleines "hoch vier" nicht noch viel kleiner ? :-)

((1)^-4) ^4 = (1)^-16

Oder irre ich mich?

MFG

von heinz (Gast)


Lesenswert?

Der Faktor vor der variable wird nicht potenziert sebastian...

von Sebastian B. (mircobolle)


Lesenswert?

heinz wrote:
> Der Faktor vor der variable wird nicht potenziert sebastian...

danke heinz ...

aber einen Koeffizienten (so nennt man die komischen Zahlen) der in der 
Größenordnung E-07 liegt mit einer Variablen zu verrechnen... ob das 
nicht im Rauschen untergeht

von yalu (Gast)


Angehängte Dateien:

Lesenswert?

Die gesuchte Formel findest du bspw. Wikipedia, wenn du nach NTC suchst:

  http://de.wikipedia.org/wiki/NTC

  RH = RN * exp(b * (1/T - 1/TN))

Die Formel enthält drei Parameter RN, TN und b. RN und TN können zu
einem Parameter a = RN * exp(-b / TN) zusammengefasst werden, T wird in
Kelvin angegeben, also ergibt sich

  RH = a * exp(b / (T + 273.15))

a und b sind typabhängig. Durch Ausprobieren (oder Rechnen) findest du
heraus, dass a=0.0105 und b=3100 ganz gut passen (s. Anhang). Für eine
bessere Bestimmung der Parameter muss die Messung genauer sein.

Dass die Kurve so gut passt, spricht dafür, dass es sich bei dem Bauteil
tatsächlich um einen NTC (oder ein Teil mit ähnlicher Funktionsweise)
handelt.

von warm (Gast)


Lesenswert?

Hey, Ihr seid einfach super. Kompliment an alle Tüftler!

von spess53 (Gast)


Lesenswert?

Hi

Und noch mehr Formeln.

MfG Spess

von Sven (Gast)


Lesenswert?

Ist wohl ein 330k-NTC (330kOhm Widerstand bei 20°C). Dann fällt der aber 
als Sensor aus, weil die üblicherweise nur bis 140-150°C gehen. Darüber 
hinaus altern sie stark, was bedeutet, dass sich der Widerstandswert mit 
der Zeit verschiebt.

Besorg Dir einen PT500 oder PT1000, gibt es mäßig teuer bei Conrad, 
billig und robust vom Klempner aus alten Wärmemengenzählern, deren 
Kalibrierung abgelaufen ist. Der hat dann aber eine andere Kennlinie... 
;-)

Bedenke, dass Du sowieso noch umrechnen musst, weil Du ja nicht 
Widerstand, sondern die Spannung über einem Spannungsteiler mißt. FALLS 
Du das mit AVR machen willst => Tabelle und lineare Interpolation ;-) 
;-)

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.