mikrocontroller.net

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


Autor: warm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.. :-)

Autor: heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gast (Gast)
Datum:
Angehängte Dateien:

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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gast (Gast)
Datum:

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

Autor: warm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: warm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: warm (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
OpenOfficeCalc schlägt diese Näherung vor, Potenzfunktion ausgewählt.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tipi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gnuplot hat auch ne fit funktion
vielleicht ja auch maxima oder scilab?

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Faktor vor der variable wird nicht potenziert sebastian...

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: yalu (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: warm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, Ihr seid einfach super. Kompliment an alle Tüftler!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Und noch mehr Formeln.

MfG Spess

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-) 
;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.