Hallo,
wie berechne Ich für einen Temperatursensor Anhand des Widerstandes die
Temperatur, wenn Ich nur die Widerstandstabelle mit den etnsprechenden
Temperaturangaben habe?
z.B. der KTY83/10
962 Ohm, 20°C
1000 Ohm, 25°C
1039 Ohm, 30°C
Über einen Spannungsteiler kann Ich ja jetzt den Widerstand des
Temperatursensors messen, aber jetzt habe Ich da 30 verschiedene Werte
Ohm/°C aus der Tabelle des Herstellers.
Was wäre den eine gute Lösung um die Temperatur zu berechnen?
Slati schrieb:> wie berechne Ich für einen Temperatursensor Anhand des Widerstandes die> Temperatur, wenn Ich nur die Widerstandstabelle mit den etnsprechenden> Temperaturangaben habe?
Indem du für ein mathematisches Modell des funktionalen Zusammenhangs
zwischen Temperatur und Widerstand die Parameter bestimmst und dann mit
dieser Funktion von Widerstand in Temperatur umrechnest. Aus drei
Stützstellen lassen sich nur drei Parameter bestimmen, also muss das
Modell sehr gut das Verhalten beschreiben.
Du wirst aber eher nicht den Widerstand messen, sondern den Sensor in
einem Widerstandsnetzwerk (Spannungsteiler mit Parallelwiderstand)
einsetzen und dann die gemessene Spannung in eine Temperatur umrechnen
wollen.
Wolfgang schrieb:> Aus drei> Stützstellen lassen sich nur drei Parameter bestimmen
er schreibt von 30 Wertepaaren,
da würde ich eine Tabelle anlegen und zwischen den Stützstellen linear
interpolieren
Walter S. schrieb:> Wolfgang schrieb:>> Aus drei>> Stützstellen lassen sich nur drei Parameter bestimmen>> er schreibt von 30 Wertepaaren,> da würde ich eine Tabelle anlegen und zwischen den Stützstellen linear> interpolieren
Hier: Ja.
Bei nem beliebigen Sensor mit unbekanntem Verhalten erstmal plotten und
dann ne Interpolationsmethode überlegen. Für PTC und NTC wären linear
schon ziemlich suboptimal, auch wenn man viele Stützstellen hat.
Walter S. schrieb:> er schreibt von 30 Wertepaaren,
Oh, überlesen - hatte nur 3 gesehen ;-)
> da würde ich eine Tabelle anlegen und zwischen den Stützstellen linear> interpolieren
Wenn's schön sein soll und nicht auf eine elegante Beschreibung drauf an
kommt: Interpolation mit kubischen Splines.
Aber wie schon gesagt: Die Widerstandswerte interessieren bei der
Messung eigentlich nicht, da man gewöhnlich eine Spannungen in einem
(minimalistischen) Widerstandsnetzwerk misst. Bei richtiger
Dimensionierung ergibt sich ein recht linearer Zusammenhang. Um
abzuschätzen, wieviel Aufwand man treiben will, sollte man die
Genauigkeitsanforderungen kennen. Der Excel Solver hilft schnell, wenn
man ein Modell auf minimale Abweichungen anpassen möchte.
Im übrigen ist das Problem wirklich nicht neu. ;-)
Stichworte: KTY83 Linearisierung
Wolfgang schrieb:> Interpolation mit kubischen Splines.
wenn man sich die Genauigkeit des Sensor anguckt ist das mit Kanonen auf
Spatzen geschossen (und dass der TO (noch) nicht der Crack ist und
deshalb hier nachfragt, sollte man auch berücksichtigen)
Werte in Tabellenkalkulation eingeben, daraus Spannung des
Spannungsteilers und entsprechenden ADC-Wert errechnen, Graphen
darstellen, Trendlinie mit Formel anzeigen (evtl. Anzahl der angezeigten
Stellen erhöhen), fertig.
> sondern den Sensor in einem Widerstandsnetzwerk (Spannungsteiler> mit Parallelwiderstand) einsetzen
Parallelwiderstand biegt zwar die Kurve etwas gerader (das kann der µC
besser), kostet aber Auflösung.
Serienwiderstand des Spannungsteilers so groß wählen, wie der Sensor bei
der Temperatur hat, an der man die höchste Auflösung wünscht.
Oh, vielen dank für die vielen Antworten.
Also Parallelwiderstand so wählen, dass die Kurve gut getroffen wird und
dann linear zwischen Zwei Widerstandswerten annähern und dann zu den
nächsten beiden springen etc.?
Das hatte der Prof. an meiner Lösung angemängelt.
Ist es in der Praxis üblich eine Funktion herzuleiten die alle
Widerstandswerte als Funktionswert annimmt?
Sowas wie Polynom Approximation ...?
Slati schrieb:> Sowas wie Polynom Approximation ...?
Polynome treffen zwar die Stützstellen bei ausreichend hohem Polynomgrad
genau, machen aber dazwischen gerne beliebigen Unfug. Bei manchen
Funktionsverläufen tun sie sich fürchterlich schwer.
Bei einem NTC-Widerstand wird oft diese Formel mit Rn und B hier
genommen.
https://de.wikipedia.org/wiki/Hei%C3%9Fleiter
Für höhere Genauigkeit gibt es dann noch die Steinhart-Hart Gleichung
mit 3 Koeffizienten für NTC-Widerstände.
Bei einem Hersteller hatte ich auch schon mal eine Gleichung ähnlich mit
Steinhart-Hart mit 4 Koeffizienten gesehen.
Wenn man natürlich nur einen schwächlichen Mikrocontroller und
Echtzeitanforderungen hat, dann macht man eher eine Interpolation in
einer Tabelle.
Helmut S. schrieb:> Bei einem NTC-Widerstand wird oft diese Formel mit Rn und B hier> genommen.>> https://de.wikipedia.org/wiki/Hei%C3%9Fleiter>> Für höhere Genauigkeit gibt es dann noch die Steinhart-Hart Gleichung> mit 3 Koeffizienten für NTC-Widerstände.> Bei einem Hersteller hatte ich auch schon mal eine Gleichung ähnlich mit> Steinhart-Hart mit 4 Koeffizienten gesehen.>>> Wenn man natürlich nur einen schwächlichen Mikrocontroller und> Echtzeitanforderungen hat, dann macht man eher eine Interpolation in> einer Tabelle.
Oh ich sehe gerade, dass es um einen Si-Sensor (PTC) geht. Da passen
meine vorgeschlagenen NTC-Gleichungen natürlich gar nicht.
Wenn du die von mir angegebene Excel-Tabelle benutzt, kannst du dir den
Tempertaturbereich für die optimale Linearisierung genau vorgeben und
den enstehenden Fehler auswerten:
Beitrag "Re: Zwischenwerte vom KTY82-210 berechnen"
Oben die Temperatur (Kal-Temp1 und Kal-Temp2) eingeben und es wird der
Optimale Vorwiderstand ausgerechnet. Unten in der Tabelle steht der
Linearisierungsfehler. Die gewählten Koeffizienten sind aus dem
Philips-Datenblatt - die kann man auch noch anpassen.
http://rn-wissen.de/wiki/index.php?title=PTC/NTC#Linearisierung
Man sollte vielleicht mal darüber reden und festlegen wie groß der
Linearisierungsfehler werden darf. Was genau hat der Prof bemängelt? Die
Genauigkeit, Auflösung, Methodik...?
Weitere Suchbegriffe in Kombination mit Temperatursensor sind:
Toleranzbandmethode, Festpunktmethode
Man kann alles so allgemein megapräzise und hochkomplex exakt
nachrechnen. Wenn man aber die Anforderungen und Einsatzbedingungen auch
nur etwas eingrenzt, kommt man oft mit erstaunlich einfachem Mitteln zu
Ergebnissen, deren Fehler in den Unzulänglichkeiten des des Aufbaus,
z.B. im ADC, (nahezu) verschwinden. Das kann man im Obigen Link schön
sehen.
Eine Raumtemperatur braucht man z.B. nicht auf die zweite
Nachkommastelle genau messen. Das wird nichts. Wozu dann den
Rechenfehler mit viel Aufwand um noch eine Größenordnung kleiner
halten?
> Polynome treffen zwar die Stützstellen bei ausreichend hohem Polynomgrad> genau, machen aber dazwischen gerne beliebigen Unfug. Bei manchen> Funktionsverläufen tun sie sich fürchterlich schwer.
Kannst du dafuer mal ein Beispiel zeigen? Ich haette eher gedacht das
ein Polynom bei AUSREICHEND hohem Polynomgrad sehr gut interpoliert.
Problematisch ist da IMHO eher die Extrapolation.
Olaf
Olaf schrieb:> Kannst du dafuer mal ein Beispiel zeigen?
Erzeuge mal Testdaten mit der Funktion
1
y = a + b * 1/x
und dann versuche die durch ein Polynom
1
y = summe (k_i * x^i) mit i >= 0
zu approximieren.
Wenn du das richtige Modell hast (1/x) reichen zwei Stützstellen, um die
zwei Parameter zu bestimmen und eine fehlerfreie Interpolation zu
machen. Versuch das mal mit einem Polynom y= k_0 + k_1*x
Wolfgang schrieb:> Wenn du das richtige Modell hast (1/x) reichen zwei Stützstellen, um die> zwei Parameter zu bestimmen und eine fehlerfreie Interpolation zu> machen.
na das ist jetzt aber etwas unfair zu den Polynomen.
Ich kann aber auch gemein sein:
versuch mal
y= k_0 + k_1*x
durch
y = a + b * 1/x
zu approximieren
Walter S. schrieb:> na das ist jetzt aber etwas unfair zu den Polynomen.
Genauso ist nicht garantiert, dass ein KTY weniger unfair ist ;-)
Du darfst den Grad des Polynoms auch mal um den Preis von mehr
Stützstellen erhöhen. Es bleibt ein Krampf - besonders wenn es an die 0
ran geht.
Olaf schrieb:>> Polynome treffen zwar die Stützstellen bei ausreichend hohem Polynomgrad>> genau, machen aber dazwischen gerne beliebigen Unfug. Bei manchen>> Funktionsverläufen tun sie sich fürchterlich schwer.>> Kannst du dafuer mal ein Beispiel zeigen? Ich haette eher gedacht das> ein Polynom bei AUSREICHEND hohem Polynomgrad sehr gut interpoliert.> Problematisch ist da IMHO eher die Extrapolation.>> Olaf
Auf der Wikipedia-Seite meiner Lieblings-Interpolationsmethode gibt's da
zumindest ein anschauliches Beispiel:
https://en.wikipedia.org/wiki/Monotone_cubic_interpolation
ebenso ab Seite 17 in
http://www.mathworks.com/moler/interp.pdf
Figure 3.8 und 3.9 wo u.a. stückweise lineare, Spline-,
Polynom-Interpolation zu sehen sind.
Das Problem ist meist nicht die Stützstellen zu treffen, sondern ob das
Dazwischenliegende der Realität entspricht.
Edith: Ist schon oben unter Kreuzvalidierung schön gezeigt.