Hallo,
ich möchte(muss) mir eine Tabelle für die Temperaturermittlung mit
PT1000
Sensoren berechnen.
Dazu muss ich die folgende Formel nach "t" auflösen:
R(Temperatur) = R * (1 + A * t + B * t² + C * (t-100) * t³)
Da diese Aufgabe meine Kenntnisse in Mathematik übersteigt bin ich
auf fremde Hilfe angewiesen. Leider konnte mir der Mathelehrer meines
Sohnes auch nicht weiter helfen und ich hoffe nun, das mir hier geholfen
werden kann.
Viele Grüße
Jürgen
Da kann dir ein Mathematiklehrer nicht helfen???
ERSCHRECKEND!!! Pisa lässt grüßen!!!
Formeln umstellen sollte so schlimm nicht sein.
Aber um's vorweg zu nehmen: ICH MACH's AUCH NICHT!
Hallo Stefan,
ich brauche ja eben die umgestellte Formel um mit einer
Tabellenkalkulation
die Temperatur berechnen zu lassen.
Auf die Tabelle wird dann über den Index auf den entsprechenden
Temperaturwert zugegriffen.
Die Formel für den positiven temperaturbereich konnte ich schon
umstellen,
nur bei der obigen Formel komme ich nicht mehr weiter.
Vieleicht kann (mag) mir doch einer helfen.
Ein nützlicher Link würde auch reichen.
Viele Grüße
Jürgen
naja die formel auf folgende form zu vereinfachen dürfte kein problem
sein
0 = x + x^2 + x^3 + x^4
--> 0 = (x+ x^2)(1 + x^2)
--> 0 = x + x^2 und 0 = 1 + x^2
--> 0 = 1 + x und -1 = x^2
--> x = -1 und x = j
x = -j
mit den konstanten gibts halt eitwas schreibarbeit, da hab ich keine
lust... aber mit diesem weg kommst du ans ziel...
mfg CH
Hallo,
vielen Dank für eure Hilfe.
Die XLS von PeterL ist genau was ich gesucht habe.
Der Link von Andreas W ist auch sehr interresant.
Den Lösungsweg von CH kann ich heute nicht mehr nachvollziehen, ich
werde
es aber trotzdem noch versuchen.
Also nochmals vielen Dank und gute Nacht.
Jürgen
Hab eben versucht die Formel umzustellen, ist mir dann aber zu
kompliziert geworden. Da mein Matheprof nicht mehr lebt, kann ich ja
zugeben, dass ich es nicht mehr kann :-)
Warum auch lass Excel aus der Temp. den Widerstand berechnen. In der
Spalte Widerstand suchst du den passenden Wert und einen kleineren und
einen größeren Wert. Dann den Zwischenwert durch eine Geradengleichung
ermitteln.
Oder lass die Konstante c weg. Dann hast du etwa 1%-2% Abweichung.
So genau kannst du gar nicht messen.
Ich glaube Jürgen wollte speziell die Formel aus Wiki haben
http://de.wikipedia.org/wiki/Pt100
Im Bereich unter 0 °C verwendet man ein Polynom 4. Grades:
R = R0 ·(1 + a ·T + b · T2 + c · (T − 100 °C)· T3)
a = 3,9083 · 10-3 / °C
b = -5,775 · 10-7 / °C2
c = -4,183 · 10-12 / °C4
Ich denke Stefan hat Recht, das Polynom 2. Ordnung ist hier vollkommen
ausreichend. Und der Fehler ist dabei ganz sicher kleiner als 2%, denn C
ist gerade mal in der Grössenordung 10^-12!!!! Dann isses nur ne
einfache quadratische Geleichung (Mathematik Klasse 7 oder so)
R = R0( 1 + A*T + B*x^2)
R/R0 = 1 + A*T +B*T^2
0 = 1-R/R0 + A*T +B*T^2
-> Normierung
p = A/B
q = (1-R/R0)/B
Mit den bekanntlich zwei Lösungen
T1 = -p/2 + sqrt ( (-p/2)^2-q )
T2 = -p/2 - sqrt ( (-p/2)^2-q )
Google ist dein Freund.
MFG
Falk
Hallo,
so ein Polynom vierten Grades analytisch zu lösen is nicht ganz so
einfach... ich hab mich neulich mal daran versucht, wobei allerdings der
Term zweiter Ordnung null war. Nach einem Tag habe ich mich dann
frustriert an eine numerische Lösung gemacht, genauso wie oben
geschehen...
Gruss
S.
Ich verstehe nicht ganz wo das Problem überhaupt lag, eine Tabelle legt
man doch an um die Gleichung eben NICHT lösen zu müssen. Numerisch wäre
ein 8-Bitter damit auch doch eine Zeit beschäftigt. Das tolle an einer
Tabelle ist ja eben das man sie in beide Richtungen verwenden kann. Das
hat aber ja auch bereits steg13 in seiner ersten Antwort angedeutet.
-wiebel
Hi,
ich wollte eben mal Octave ausprobieren, er gibt mir allerdings, wenn
ich für t=[-200 usw. einfüge den fehler
t = [ -200 -150 -100 -50 0 50 100 150 200 250 300 350 400 450 500 550
600 650 700 750 800 850 ]
error: number of columns must match (6 != 16)
aus.
Für r das hier:
r = [ 18.49 39.71 60.25 80.31 100 119.4 138.5 157.31 175.84 194.07
212.02 229.67 247.04 264.11 280.9 297.39 313.59 329.51 345.13 360.47
375.51 390.26 ]
error: number of columns must match (2 != 10)
Kann mir da jemand helfen?
Hintergrund ist Berechnung für den PT1000 aus diesen Werten:
Wobei R0 der Widerstand bei 0°C ist und R der gemessene Widerstand.
Die Rechenzeit hält sich in Grenzen, der PT1000 ist eh' nicht so
schnell, dass da blitzartig was passieren könnte.
In einem Temperaturregler läuft das schon mehrfach recht gut.
In meinem Fall habe ich zwei Widerstände zum Kalibrieren benutzt.
Einer für 0°C (1000 Ohm), einer für 100°C (1385 Ohm).
Der Null-Grad-Punkt (ADC_Null) und der 100-Grad-Punkt (ADC_Ende) wird
jetzt gemessen.
Dann mit
1
Rconst=385/(ADC_Ende-ADC_Null);
Die Spanne (ADC-Werte) entsprechend 385 Ohm berechnet.
Nun mit
1
R=1000+((Messwert-ADC_Null)*Rconst);
den aktuellen Widerstand berechnen.
Das war's. ;)
Ach ja: ich bilde einen Mittelwert aus 100 Messwerten und dämpfe das
Signal noch zusätzlich.
Das Messignal muss natürlich entsprechend aufbereitet werden, bei mir
-35°C...130°C entsprechen 0...5V.
Hallo,
ich berechne meine Tabelle mit folgender Formel:
Der Adwandler des Mega128 wird im Differemtial-Modus betrieben
ADCWERT = Ergebins aus der AD-Wandlung (0 - 1024)
VREF = Refernzspannung des AD-Wandlers (3,4V)
GAIN = Verstärkung des AD-Wandlers beim Mega128 einstellbar (10)
VNEG = Spannung am Negativen Eingang des AD-Wandlers (1,22V)
RVOR = Wiederstand des Spannungsteilers (2700 Ohm)
VCC = Versorgungsspannung des Spannungsteilers (5V)
3367,821441-@WURZEL(11342221,26-((((((ADCWERT * VREF)/(GAIN *
512))+VNEG)*RVOR)/(VCC-(((ADCWERT*VREF)/(GAIN*512))+VNEG)))/10-100)/5,80
2E-05)
Das Ergebnis wird noch auf eine Stelle nach dem Komma gerundet und mit
10 multipliziert in einer Tabelle mit 1024 werten gespeichert.
Die Hardware ist im Anhang beschrieben.
Danke für die großartige Hilfe, die ihr mir gegeben habt. Ich wollte
allerdings den PT1000 über einen OPV verstärken und dann einfach den ADC
des µC verwenden. Wird auch gehen, denke ich.
Zur Fehlerberechnung nochmal:
Ich habe mir die Mühe gemacht und mal ausgerechnet wie der Fehler ist,
wenn man von von "nicht linearität" und von "linearität" ausgeht.
Mit den Formel (nicht linearität) hat man bei einem 10bit ADC einen
Fehler von ca. 0,9%.
Ohne die Formeln (linearität) hat man einen Fehler von ca. 1,32%.
Messbereich von 10°C bis 100°C.
Ist also eigentlich zu vernachlässigen und man könnte sich den ganzen
Rechenaufwand auch schenken :)
Mal schaun, was ich draus mache.
Sorry, haben diesen Thread erst jetzt gesehen und kann eine recht
ausführliche Excel-Tabell (für Pt100, Pt500 und Pt1000) beisteuern -
falls es noch irgend jemanden interessiert/hilft.
Zur Erklärung sei zu sagen, daß die (änderbaren) Werte sich wie folgt
erklären:
Ic: Konstantstrom durch den Pt-Sensor
g1: Gain des ersten OpAmps, der die Pt-Spannung um diesen Wert
verstärkt.
g2: Gain des zweiten OpAmps, der auch den Offset um diesen Wert
verstärkt.
o2: Offset des zweiten OpAmps, um bei 0°C auch 0V auszugeben.
Die Werte sind default-mäßig so gewählt, daß ein Temp-Bereich von -200°C
bis etwa +266°C einer Spannung von -8,15...V bis +10V entspricht.
Durch das verändern der Gain und Offset-Werte läßt sich eigentlich jeder
nur denkbare Ausgangsspannungsbereich für den nachfolgenden ADC als auch
der zu messende Temperaturbereich (z.B. bis zum Maximum der meisten
Pt-Elemente bei 850°C) einstellen.
Interessant für die Programmierung ist dann die Formel für die
eingezeichnete Trendlinie in den Diagrammen.
Wem es auffällt, wird sicherlich feststellen, daß die Funktion für
positive Temperaturen (nur) ein Polynom 2. Ordnung ist, während für
negative Temperaturen sich ein Polynom 4. Ordnung ergibt. Dies ist
jeweils am zweiten und dritten Diagramm eines jeden Tabellenblattes
erkennbar.