Forum: Mikrocontroller und Digitale Elektronik sehr genaue Temperaturregelung (welcher uC)


von Nils M. (nille81)


Lesenswert?

Hallo,
ich bin neu hier und hoffe, dass mir wer helfen kann.Ich habe bezüglich 
meines Praxissemesters vom Studium die Aufgabe eine sehr genaue 
Temperaturregelung (auf 0,01°C genau) mit einem Microcontroller zu 
bauen. Ich habe nicht sehr viel Erfahrung mit Microcontrollern!
Das Problem beginnt schon am Anfang: Die Wahl des richtigen 
Microcontrollers.
Es sollen zwei Temperaturen über je ein PT1000 aufgenommen werden. Die 
Auflösung sollte mindestens 16Bit betragen. Die meisten uC, die ich 
gefunden habe, haben aber nur einen 10Bit ADC.
Zwei Peltierelemente sollen die beiden Körper auf eine eingestellte 
Temperatur regeln, wofür zwei 0-10V Ausgänge benötigt werden.
Ein dritter 0-10V Ausgang sollte ebenfalls vorhanden sein. Die 0-10 V 
sollten mit mindestens 10Bit, besser 12Bit aufzulösen sein.
Den ein oder anderen Ein- und Ausgang brauch ich dann noch zur 
Überwachung.
Außerdem sollte zur Anzeige der Temperaturen und Einstellung von 
Temperaturwerten noch ein kleiner TFT angesteuert werden können.
Meiner Meinung nach bräucht ich schon für die gesamten Ein- und Ausgänge 
über 70 I/Os.
Ich habe uC gefunden die schon einen 16Bit ADC intergriet haben, 
allerdings haben die dann sehr wenige I/Os.
Ich hoffe, dass ich genügend Informationen gegeben habe und mir 
HOFFENTLICH wer helfen kann, welchen uC ich verwenden kann!
Gruß
Nils

von Alexander L. (lippi2000)


Lesenswert?

Hi Nils,

ich habe bereits ein paar Temperaturregelungen für Peltierelementen für 
Laser gebaut. An deiner Stelle würd ich sofort auf nen einzelnen 
16Bit-ADC umsteigen und lieber nen schnellen uC mit vielen Ports nehmen.

Wichtigste Frage ist jetzt: Wie schnell soll das ganze denn regeln?
Bei einer so genauen Regelung wirst du wohl auf eine Umschaltung 
zwischen Heizen und Kühlen mit genügend Strom (0.5-3A) nicht herum 
kommen. Wobei dies natürlich alles von der thermischen Masse abhängt. 
Schau dir mal ein paar Peltiersdaten an (Spannung Strom und max. 
temp.-Diff.) z.B. bei "supercool.com". In der Regel wird das Peltier 
zwischen eine H-Brücke gelegt, um die Stromrichtung steuern zu können.

Ich verwende einen gechopperten TEK-Controller. Vielleicht solltest du 
dir das Datenblatt als unterstützung durchlesen: ADN8833

Es wäre sicherlich auch von Vorteil, wenn die TFT-Ansteuerung und die 
Regelung getrennt ablaufen. Weiß ja nicht wie die Anforderungen sind.

(z.B. Regelung über Atmel ATMega mit extra ADC und H-Brücke / 
TFT-Ansteuerung über FPGA)

Schau dir die Sachen mal an.

Gruß Alexander

von Zacc (Gast)


Lesenswert?

Ich hab Peltier Regelmodule mit einem 20Bit ADC an einem AVR gebaut. 
Allerding mit PC Ansteuerung, ohne lokale Bedienung. Ich verwende eine 
lineare H Bruecke und erreiche fast 2mK Stabilitaet mit NTC und 50mK mit 
PT1000. Siehe http://www.ibrtses.com/g/produkte/tec.html

von AVRFan (Gast)


Lesenswert?

>Ich habe bezüglich
>meines Praxissemesters vom Studium die Aufgabe eine sehr genaue
>Temperaturregelung (auf 0,01°C genau) mit einem Microcontroller zu bauen.

Wer hat Dir diese Aufgabe gestellt?  Eine Temperatur auf "nur" 0.1 °C 
genau zu ***messen***, ist bereits eine recht anspruchsvolle 
Angelegenheit, bei der schon Effekte wie z. B. die Eigenerwärmung des 
Sensors durch den Messstrom berücksichtigt werden wollen.  Eine 
Genauigkeit von 0.01 °C ist - gelinde gesagt - völlig utopisch; die 
präzisesten Pt100-Sensoren ("Klasse A") bringen es im 
Raumtemperaturbereich auf ca. ±0.2 °C.

von Andreas K. (a-k)


Lesenswert?

Vielleicht wäre hier auch mal wieder der Unterschied zwischen Auflösung 
und Genauigkeit zu beachten. Geht es um die exakte Temperatur, oder geht 
es nur darum, die Temperatur mit einer Abweichung von beispielsweise 
0.1° konstant zu halten, darf aber beispielsweise 0.5° neben dem exakten 
Wert liegen?

von Gerd V. (gerald)


Lesenswert?

fragt Nils nun nach der Genauigkeit des PT1000 (nicht PT100) oder nach 
einem Microcontroller?
Ich warte auch auf den Super-Microcontroller ......
Danach fragte er doch?
Sein letzter Satz lautete doch:
Ich hoffe, dass ich genügend Informationen gegeben habe und mir
HOFFENTLICH wer helfen kann, welchen uC ich verwenden kann!

von Klaus (Gast)


Lesenswert?

Es gibt meines Wissens keine uP mit eingebautem ADC von 16 oder gar mehr 
Bit Auflösung. Da müssen externe Bauteile her.

Alle Bauteile für >= 16 Bit sind sehr exotisch, selbst Widerstände 
braucht man dann in 0,01% oder besser .

Auch ein TFT soll "nebenher" noch angesteuert werden. Hmmm...

Der Typ des uP ist bei dieser Aufgabenstellung --sollte sie nur 
annäherend erst gemeint sein-- fast nebensächlich.

Ich würde da was fertiges kaufen, eine PC/104 Platine z.B., und dort die 
Messtechnik geeignet anflanschen, das ist kompliziert genug.

von Andreas K. (a-k)


Lesenswert?

> Es gibt meines Wissens keine uP mit eingebautem ADC von 16 oder gar mehr
> Bit Auflösung.

Der MSP430F2013 hat einen 16bit Delta Sigma Wandler drin. Aber mit 14 
Pins ist er hier nicht hilfreich.

von Arc N. (arc)


Lesenswert?

Controller gibt's schon ein paar die das theoretisch könnten...
ADuC845, 847 (24-Bit ADC + 12-Bit-DAC + 2x 16-Bit-Delta-Sigma DAC) oder 
die MSC1211/1212 (24-Bit ADC + 4x 16-Bit-DAC) jeweils integrierten 
Stromquellen etc. Mit beiden kann man auch problemlos ein Standard-LCD 
ansteuern (wenn die Ports knapp werden nimmt man eben ein seriell 
ansteuerbares (low cost Variante: Handy-Display)), für ein richtiges 
TFT, wie schon erwähnt wurde, entweder FPGA oder externer Controller.
Weitere Fragen:
- Muss die absolute Temperatur auf 0.01 °C genau gemessen werden?
- In welchem Temperaturbereich soll die Schaltung arbeiten?
  Bsp.: Referenzwiderstand 10k, TK 100ppm/K ergibt etwa
  0.05 °C Fehler pro °C Temperaturänderung der Schaltung
- Reichen die eingebauten ADCs aus. 0.01 °C entsprechen bei einem
  PT1000 und 100uA Messstrom (um die Selbsterwärmung so gering wie
  möglich zu halten) ~4 uV
- Layouterfahrung ausreichend?
- Passendes Messinstrumentarium zur Kalibrierung vorhanden?

von Der Dude (Gast)


Lesenswert?

>Es gibt meines Wissens keine uP mit eingebautem ADC von 16 oder gar mehr
>Bit Auflösung.

Doch, gibt es. Den MSC1210 von Texas Instruments/Burr Brown zum 
Bleistift. Der hat einen ADC mit 24 bit Auflösung drauf.

Wer allerdings glaubt, die Auflösung nutzen zu können, der träumt von 
den Weisswürsten. Wenn man 18 bit erreicht, ist das schon supergut.

Im Praxissemester solche Anforderungen? Und dann noch einen TFT steuern?

Junge, Junge. Das ist sogar für eine Diplomarbeit zu heftig, finde ich.

von Der Dude (Gast)


Lesenswert?

Oh, da war Arcnet schneller...

von AVR-User (Gast)


Lesenswert?

Ich nehm schwer an er meint mit TFT -> Einfaches LCD Display (Zeilen 
oder grafisch)

von Peter D. (peda)


Lesenswert?

Nils Michaelis wrote:

> die Aufgabe eine sehr genaue
> Temperaturregelung (auf 0,01°C genau) mit einem Microcontroller zu
> bauen.

Dürfte in etwa 10 Mannjahren von sehr erfahrenen Entwicklern zu machen 
sein.

> Das Problem beginnt schon am Anfang: Die Wahl des richtigen
> Microcontrollers.

Da ist das kleinste Problem.
Temperatur regeln kostet keine Rechenzeit, jeder ist geeignet.
Selbst ein ATtiny85.


> Zwei Peltierelemente sollen die beiden Körper auf eine eingestellte
> Temperatur regeln, wofür zwei 0-10V Ausgänge benötigt werden.

Hast Du schon die Powerendstufe (~100A) dafür oder mußt Du die auch 
entwickeln ?

> Außerdem sollte zur Anzeige der Temperaturen und Einstellung von
> Temperaturwerten noch ein kleiner TFT angesteuert werden können.

Da sollte man einfach ein fertiges Textdisplay nehmen, sonst ist nur 
dafür schnell ein Mannjahr vorbei.


> Meiner Meinung nach bräucht ich schon für die gesamten Ein- und Ausgänge
> über 70 I/Os.

Viel zu viel !
Wenns nicht schnell sein muß, steuert man alles seriell an.
3 SPI-Leitungen + Selectletungen, so um die 16..32 reichen dicke.


> Ich habe uC gefunden die schon einen 16Bit ADC intergriet haben,

Integrierte ADCs sind nichts für unerfahrene Entwickler (Störeinflüsse). 
Nimm externe ADCs, der ADS8345 ist ganz gut.

Ob man mit nur 16 Bit auf 0,01°C regeln kann, mußt Du prüfen.


Peter

P.S.:
Wenn Du es schaffst auf <1°C genau zu regeln, dann ist das für einen 
Anfänger schon sehr gut.

0,01°C kannste bei SAT1 in der Märchenstunde erzählen.

von nixcheck (Gast)


Lesenswert?

Ich nehm schwer an er meint mit auf 0,01°C genau -> 0,01°C Auflösung.

von Hagen R. (hagen)


Lesenswert?

> Ich nehm schwer an er meint mit auf 0,01°C genau -> 0,01°C Auflösung.

Das machts aber nicht einfacher ;)

Gruß Hagen

von Nils M. (nille81)


Lesenswert?

Hallo,
erst mal vielen Dank für die vielen Antworten!
Erst mal vorweg zum Thema, wer hat dir diese Aufgabe gestellt.
Die mir die Aufgabe gestellt haben, haben ebenfalls keine Erfahrung
mit uC. Es war eher gemeint: "Wenn/Ob es möglich ist."
@Alexander(vielen Dank für die guten Tips!!): Die Temperaturregelung 
soll ebenfalls für einen Laser sein. Der Laser heizt selbst genug, so 
benötigt man keine Umschaltung zwischen heizen und kühlen. Eine 
Peltiertreiber - Platine ist schon vorhanden, die mit den 0 - 10 V 
angesteuert wird. Zwei für die Peltiers und einmal 0-10V für die 
Ansteuerung eines Netzteils, was dann den Strom für die Laserdioden 
liefert.
Der Laser sollte bei Raumtemperatur ca. zwischen 20 und 30 °C auf eine 
konstante Temperatur geregelt werden. Also, wenn 24,00°C eingestellt ist 
kann es auch mal bis 23,96 abweichen. Wenn möglich wäre es natürlich am 
besten, die Temperatur würde bei 24C bleiben.
Zu der Frage, wei schnell die Regelung funktionieren soll: Die 
Temperatur wird eingestellt und kann einen Moment benötigen, bis die 
Temperatur erreicht wird. Am besten natürlich so schnell wie möglich. 
Ich dachte an einen PID - Regler als Programm mit veränderbaren 
Reglerparametern.

Zu dem Diplay, da hatte ich einen uC mit Display (hoffentlich darf ich 
das sagen) bei Diplay3000 gefunden, was ich eigentlich ganz gut fand, 
der aber wahrscheinlich nicht für diesen Zweck ausreicht. Das heißt 
vielleicht diesen uC für die Anzeige und Eingabe verwenden. Einen 
weiteren für die Berechnung und einen externen ADC mit 16Bit oder sogar 
mehr zur Wandlung.
@ Arc Net: Ich denke die Temperatur sollte schon auf 0,01°C gemessen 
werden, damit man die Temperatur auch genauer geregelt werden kann.
Reichen die eingebauten ADC aus: Das könnte sogar möglich sein, aber mit 
ADC`s höherer Bitzahl, dachteich mir, bleibt die Erweiterbarkeit oder 
Umstellung auf ein anderes System vorhanden.
Die Layoutererfahrung: Da gibt es hier welche, die wahrscheinlich 
genügend Erfahrung haben.
Die uC sollten halt miteinander komunizieren können. Und da weiß ich 
nicht so genau, ob das so einfach zu realisieren ist.
Und, falls es nicht fertig wird im Praxissemester, dann hab ich 
vielleicht gleich eine Aufgabe für die Diplomarbeit:-))!
Vielen Dank im voraus!
Gruß

von Marko (Gast)


Lesenswert?

Beim ADC ist dann auch zu beachten welchen Messbereich man normalerweise
vorsieht. Läuft Deine Temperatur nur in einem bestimmten Wertebereich
ab kannst Du die Referenzspannung entsprechend anpassen und kommst
so mit deutlich weniger Bit Auflösung hin.
Die PT-Serie find ich persönlich nicht so berauschend zum Messen, da
nicht linear. Ich bevorzuge die LM35-Geschichten, hab damit gute
Erfahrungen gemacht, aber abgleichen muss man die auch, da kommste nicht
drum herum.
Ich messe in einer Anwendung auf +/- 0,03° mit nem 10-Bit ADC, das geht
auch ganz gut und mit reproduzierbaren Ergebnissen. Würde heute aber 
eher
auf 12-Bit gehen und das 12te Bit als Rauschen verwerfen.
In dem Zusammenhang währe dann auch das Oversampling zu nennen, mitunter
kannst Du Dir noch n Bit konstruieren, aber das ist dann schon etwas
unzuverlässiger

von Uwe Bonnes (Gast)


Lesenswert?

Fuer Laserregelungen mittels Peltier gibt es von Maxim/Analog Devices 
integrierte Loesungen, Stichwort TEC (thermoelectric cooler)

von Falk B. (falk)


Lesenswert?

@ Andreas Kaiser (a-k)

>Vielleicht wäre hier auch mal wieder der Unterschied zwischen Auflösung
>und Genauigkeit zu beachten. Geht es um die exakte Temperatur, oder geht

Genau.

Aufloesung und Genauigkeit

@ Nils Michaelis (nille81)

>Die mir die Aufgabe gestellt haben, haben ebenfalls keine Erfahrung
>mit uC. Es war eher gemeint: "Wenn/Ob es möglich ist."

Die Frage ist aber NICHT, ob es mit einem uC möglich ist!

Die wesentliche Frage ist, WIE die Messung der Temperatur auf 0,01C 
GENAU erreicht wird. Im Bereich von 20..30C auf 0,01 C AUFLÖSEN ist 
recht einfach, das sind gerade mal 1000 Stufen -> 10 Bit.

>Der Laser sollte bei Raumtemperatur ca. zwischen 20 und 30 °C auf eine
>konstante Temperatur geregelt werden. Also, wenn 24,00°C eingestellt ist
>kann es auch mal bis 23,96 abweichen. Wenn möglich wäre es natürlich am
>besten, die Temperatur würde bei 24C bleiben.

Die Temperatur mit 0,01C auflösen und auf die Auflösung ausregeln sollte 
mit vertretbarem Aufwand machbar sein, aber einfach ist es auch nicht. 
Auf 0,01 C GENAU zu messen dürfte absolute HighTec sein, Wie der Peter 
schon fesatstellte.

MFG
Falk

P.S. Bin wieder da ;-) Urlaub vorbei :-(

von Klaus R. (klara)


Lesenswert?

Hallo,
wie wäre es mit dem "IC SMT-UTI-18SOIC TRANSDUCER INTERFACE".
Conrad Best-Nr.: 174548 - 62

Kurzbeschreibung:
PT 100/PT 1000 Mess-/Sensor Auswerteschaltung

Das Universal Transducer-Interface (UTI) ist ein CMOS-Interface-IC für 
Sensorelemente wie PT 100/1000, NTC/PTC oder Kondensatoren und 
Widerstandsmessbrücken. Es benötigt keine Kalibrierung, keine 
zusätzliche Beschaltung und nur eine unipolare Versorgungsspannung von 
2,9 bis 5,5 V/DC. Dank eines integrierten Taktgebers sowie einer 
automatischen und kontinuierlichen Selbstkalibrierung von Offset und 
Verstärkung erübrigt sich der Abgleich. Ein weiterer Vorteil ist die 
50/60 Hz-Unterdrückung. Das UTI arbeitet mit einer Auflösung/Linearität 
von 14/13 Bit bei Messzeiten von 10 ms oder 100 ms. Das Interface 
SMT-UTI ist preiswert und sparsam im Stromverbrauch.

Datenblatt:
http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/174548-da-01-en-IC-SMT-UTI-18SOIC.pdf

mfg Klaus

von Dieter W. (dds5)


Lesenswert?

Ich beziehe mich erst mal nur auf die Regelung, auch das ist nicht 
trivial.

Ein "einfacher" PID Regler wird von der Regelqualität da nicht reichen, 
besser ist es imho auch die eingetragene Leistung durch den/die Laser zu 
erfassen und als Störgröße mit einzubeziehen. Das ist ein wesentlich 
besserer "Vorhalt" als der D-Anteil des Reglers.

von Nils M. (nille81)


Lesenswert?

Hallo,
@Andreas Kaiser:
Es geht darum die Temperatur mit einer Abweichung von 0.01° konstant zu 
halten, darf aber beispielsweise 0.05° neben dem exakten
Wert liegen!

von Falk B. (falk)


Lesenswert?

@ Nils Michaelis (nille81)

>Es geht darum die Temperatur mit einer Abweichung von 0.01° konstant zu
>halten, darf aber beispielsweise 0.05° neben dem exakten
>Wert liegen!

Also wird "nur" eine AUFLÖSUNG von 0,01 C benötigt. Das ist schon eher 
machbar, aber trotzdem nicht trivial. Der uC ist das kleinste Problem.

MFG
Falk

von Eddy C. (chrisi)


Lesenswert?

Die Herausforderung dürfte in der Ermittlung der Übertragungsfunktion 
von der Heizung zum Sensor liegen. Ist diese genau bekannt (z.B. 
Einschwingzeit eines Tiefpass 1. Ordnung), kann auch eine exakte 
Regelung angewendet werden. Das betrifft dann allerdings lediglich die 
Temperatur am Ort der Messung.
Innerhalb des Temperaturgeregelten Raumes treten sicherlich signifikante 
Temperaturunterschiede auf (Konvektion, Wärmeleitung). Je kleiner die zu 
regelnde "Masse" ist, umso genauer kann diese auch geregelt werden.

von Andreas K. (a-k)


Lesenswert?

0,05° absolute Genaugkeit scheint mir recht anspruchsvoll, ärger als 
0,01° Auslösung. Schon weil's sowas selten serienmässig ab Werk geben 
dürfte, also zu allererst mal eine entsprechend genaues Vergleichgerät 
nötig ist.

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.