Kennlinie eines NTC-Widerstandes im FB linearisieren?

tino2512

Level-1
Beiträge
86
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich hab folgendes Problem:( :

Ein ADC 13 Bit (S7) gibt mir im Bereich von 800 bis 8000 entsprechende Zahlen zur zugehörigen Temperatur. Diese Eichkurve der Temperatur ist aber nicht linear.
Wie kann ich eine Umrechnungsfunktion in einem FB erstellen, welche über die stark nichtlineare Kennlinie des Thermistors die Temperatur in Grad Celsius bereitstellt.
Eingangsparameter: Counts vom Temperatursensor
Ausgangsparameter: Temperatur in Grad Celsius

Liebe Grüße tino
 

Anhänge

  • Temperaturkennlinie.JPG
    Temperaturkennlinie.JPG
    184,7 KB · Aufrufe: 90
Ich kann deiner Frage nicht ganz folgen. Nimm den Eingangswert, berechne mit der Formel unten im Bild den zugehörigen Wert und gib ihn aus. Andere Frage wäre, ob das wirklich ein Polynom 6. Ordnung sein muß oder ob es auch ein oder mehrere Stufen niedriger noch hinreichend genau ist. Dann wird die Rechnerei um einiges einfacher und vor allem Zykluszeit sparender :ROFLMAO:.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
diese Funktion hab ich mir von Excel ausgeben lassen, in dem ich eine Trendlinie in die Kurve gelegt hab. Nur wenn ich x-werte eingebe passen die y-WErte nicht dazu.
 
Andere Frage wäre, ob das wirklich ein Polynom 6. Ordnung sein muß oder ob es auch ein oder mehrere Stufen niedriger noch hinreichend genau ist. Dann wird die Rechnerei um einiges einfacher und vor allem Zykluszeit sparender :ROFLMAO:.

Ich wage mal zu bezweifeln, dass die Zykluszeit bei einem Polynom 6. Ordnung wirklich so viel größer ist, als bei einem Polynom 2. Ordnung oder einem Polynom 4. Ordnung. Wenn man die Formel so wie in meinem FC berechnet, sollte man keinen großen Unterschied bemerken. :rolleyes:

Gruß Kai
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wage mal zu bezweifeln, dass die Zykluszeit bei einem Polynom 6. Ordnung wirklich so viel größer ist, als bei einem Polynom 2. Ordnung oder einem Polynom 4. Ordnung. Wenn man die Formel so wie in meinem FC berechnet, sollte man keinen großen Unterschied bemerken. :rolleyes:

Gruß Kai

Dann zweifel mal ruhig weiter.

Wenn er eine langsame CPU hat dauert die Ausführung eines *R 6,4 µs. In deinem FC sind 10 Gleitpunktoperationen *R (6,5µs) und 4 +R (5,5µs). Das macht 87 µs also fast 0,1 ms. Das ist ein Polynom 4. Ordnung, bei einem 6. Ordnung dürfte sich der Wert fast verdoppeln. Das ist ganz sicher nicht die Masse, lohnt aber schon mal, darüber nachzudenken, was so alles zusammenkommt. Denn es wird ja vielleicht nicht nur diese eine Kurve berechnet und ganz sicher noch so einiges anderes mit der SPS erledigt. Bei einer 319 mit 0,04 µs für ein *R darf mann da dann schon großzügiger sein :ROFLMAO:!
 
Dann zweifel mal ruhig weiter.!

Das mache ich doch glatt. :D


Wenn man wirklich so auf die Zeit achten muss, dann wird die Funktion eben etwas optimiert:

Polynom 1. Ordnung:

1 mal *R (6,5µs) + 1 mal +R (5,5µs) = 12µs

Polynom 2. Ordnung:

3 mal *R (6,5µs) + 2 mal +R (5,5µs) = 30,5µs

Polynom 4. Ordnung:

7 mal *R (6,5µs) + 4 mal +R (5,5µs) = 67,5µs

Polynom 6. Ordnung:

11 mal *R (6,5µs) + 6 mal +R (5,5µs) = 104,5µs


Für jede zusätzliche Polynomordnung kommen also 18,5µs hinzu:

2 mal *R (6,5µs) + 1 mal +R (5,5µs) = 18,5µs

Und ob das wirklich so problematisch ist? :rolleyes:

Gruß Kai
 

Anhänge

  • FC11.pdf
    4,4 KB · Aufrufe: 56
Zurück
Oben