Forum: Mikrocontroller und Digitale Elektronik Temperaturregelung - Peltierelement - Microcontroller


von Fabian V. (racervx)


Angehängte Dateien:

Lesenswert?

Hi Leute,
ich habe mir schon ein paar Threads zu dem Thema hier durchgelesen.
Aber zuerst mal zu meiner Person:

Ich heiße Fabian, bin 30 Jahre alt, habe Maschinenbau studiert und bin 
gerade dabei mit meinem Kumpel (Programmierer) eine Temperaturregelung 
mit einem Peltierelement zu bauen. Leider hatte ich nur ein Semester 
lang Grundlagen der E-Technik und habe daher nicht das nötige Wissen so 
eine Steuerung von Grund auf aufzubauen.

Stand der Dinge:
Bisher haben wir ein TEC1-12730 (max. 15,6V & 30,5A) mit einem 
PC-Netzteil laufen lassen. Gemessen haben wir dabei 11,8V und 22A 
ungeregelt. Macht also roundabout 260W. Nun haben wir einen 
Motorentreiber (BTS7960) mit einem Arduino Nano per PWM (980Hz) 
angesteuert um die Spannung zu regeln.

In dem angehängten Screenshot sieht man schon das Programm, das mein 
Kumpel geschrieben hat. Da wir die Temp. Sensoren vertauscht hatten, 
zeigt die rote kurve die Temp. der kalten Seite und die grüne Kurve die 
Temp. der warmen Seite an. Die Wärme wird natürlich abtransportiert, 
daher ist die Temperatur dort relativ stabil. Mit dem Schieberegler 
rechts wird der Dutycycle für das PWM-Signal, also die Leistung manuell 
geregelt und darunter gibt es die Möglichkeit einen PID-Regler zu 
aktivieren. Der PID-Regler soll im Endeffekt dann die kalte Seite 
regeln. Die Regelung funktioniert auch so weit, mit den PID-Werten 
müssen wir aber noch rumspielen.

Punkt 1 der uns an dieser Geschichte nicht gefällt, ist das der Treiber 
selber über ~33W frisst und dabei auch noch verdammt heiß wird. Bei über 
100°C am Kühlkörper nach ca. 5min. haben wir dann abgeschaltet. (Bekommt 
man das besser hin?)

Punkt 2: Irgendwie hat mich der Ehrgeiz gepackt und ich möchte gerne 
eine schöne Platine haben, auf der alles drauf ist und die ich in ein 
Gehäuse bauen kann. Nicht nur aus Spaß an der Freude, sondern auch um 
wieder etwas zu lernen.

Ich habe mir das also so vorgestellt:
Eine Platine, an die man lediglich das Netzteil, das TEC, die Sensoren 
und ein USB-Kabel anschließt. Ich habe jetzt einige Stunden im Netz 
gesucht und da das TEC nur kühlen soll, denke ich das der BTN8962TA für 
meine Zwecke passen würde.

Nun zum Microcontroller:
Ich habe gelesen, das die TECs eigentlich keine PWM mögen. Es sei denn, 
die Frequenz ist ausreichend hoch. Ausreichend hoch scheint aber 
deutlich höher als die 980Hz des Aurduino zu sein. Mit welcher Frequenz 
muss ich letztendlich arbeiten und welchen Microcontroller kann man da 
empfehlen? Ich habe des Öfteren Werte zwischen 25-100kHz im Netz 
gefunden. Entweder ich nehme etwas ähnliches wie einen Arduino und 
stecke den dann mit einer Stiftleiste auf meine Hauptplatine, oder der 
Microcontroller kommt direkt auf die Platine. Zum letzteren Punkt fehlt 
mir allerdings wieder das know-how, wie die externe Beschaltung des 
Microcontrollers auszusehen hat.

Mein Plan ist es mich mit eurer Hilfe hier langsam zum Endergebnis 
vorzuhangeln und dabei hoffentlich viel zu lernen. Vorausgesetzt, ihr 
habt die Lust und ausreichend Gedult mir dabei zu helfen :)

Ich bedanke mich schon mal im Voraus,
LG, Fabian

von Andras H. (kyrk)


Lesenswert?

Kann der Arduino wirklich nur max 980Hz? Würde mich wundern. Habe nie 
mit Arduino gearbeitet. Sicherlich könnte man den Datenblatt lesen und 
daraus herausnehmen wie man da auf Registerebene PWM generiert und auf 
welche Frequencz und Auflösung man damit kommen kann.

Wobei Peltier regelt man eher auf Strom. Da würde ich einfach einen 
Messwiederstand nehmen, den Strom messen, dann verstärken und auf ein 
Comparator leiten. Der Comparator kann dann mit einer Analog Wert aus 
der uC (PWM + low pass filter) gespeist werden, und schaltet damit einen 
Schaltelement. Geschaltete spannung dann noch filtern und das sollte 
meiner Meinung nach tun. Wobei ich selbst habe noch soetwas nie gebaut.
2. Lösung könte sein: Peltier auf max Strom betreiben. Dann einfach ein 
und ausschalten. Kann auch langsames PWM sein. Man muss die 
Zeitkonstanten von den Regelstrecken ermitteln und anpassen.

von MaWin (Gast)


Lesenswert?

Fabian V. schrieb:
> Ich habe gelesen, das die TECs eigentlich keine PWM mögen.

Ach.

>  Es sei denn, die Frequenz ist ausreichend hoch.

Nein, auch dann nicht.

Aber man kann bei ausreichender Frequenz des Strom zum Peltier leicht 
mit einer Drosselspule glätten.

Ausreichend sind dann eher >10kHz also 910Hz.

Andras H. schrieb:
> 2. Lösung könte sein: Peltier auf max Strom betreiben. Dann einfach ein
> und ausschalten.

Nein.  Das ist keine Lösung, sondern Quatsch.

Es ist SOOO einfach, nur zu kühlen, ein MOSFET, eine Diode und eine 
Spule ist alles was man braucht. Warum aus Unkenntnis pfuschen, der TEC 
ist teuer genug.

Wenn ihr den wirklich nur mit 12V/25A fahren wollt (die Hälfte der 
Kühlleistung verschenkt), dann nehmt einen MOSFET mit <10mOhm im 
eingeschalteten Zustand wie  IRF3704Z, ca. 5W Verlust, eine 25A 
Schottkydiode wie MBR2530, eine Spule die 25A aushält, sagen wir sie hat 
100uH, und macht eure PWM schnell genug damit der Strom sich höchstens 
um 5% ändert, bei 100uH und 6V im Mittel also 50kHz, die Auflösung muss 
nicht so hoch sein, es würden schon 4 bit reichen, der Rest passiert 
durch dithering. Obwohl der ausgesuchte MOSFET mit 4.5V aus einem 
Arduino ausreichend durchgesteuert wird, gönnt ihr euch besser einen 
MOSFET Treiber wie MC34151.

von Fabian V. (racervx)


Lesenswert?

Vielen Dank für eure Antworten.
Nun muss ich erstmal etwas recherchieren und lesen, um die Funktion der 
Bauteile zu verstehen.

von Roland E. (roland0815)


Lesenswert?

Fabian V. schrieb:
> Vielen Dank für eure Antworten.
> Nun muss ich erstmal etwas recherchieren und lesen, um die Funktion der
> Bauteile zu verstehen.

Ermittle die Zeitkonstante deines Aufbaues. Schneller als ein viertel 
der Zeit brauchst du nicht schalten. Dann reicht sogar ein 
Zweipunktregler.

Alternativ etwa 1kHz. Eine fette Drossel zum glätten und eine 
Freilaufdiode. Dann kann ein integrierender Regler dran.

von W.S. (Gast)


Lesenswert?

MaWin schrieb:
> eine Spule die 25A aushält, sagen wir sie hat
> 100uH,

Paßt nicht. Hochstrom-Induktivitäten haben keine 100µH sondern eher 
unter 10µH.

Beispiel: WE-HCI Serie. Die 74435580820 hat 8.2µH bei Nennstrom von 
25.5A und Sättigung bei 30A und ohmscher Widerstand bei 2.7mOhm.

Mein Vorschlag wäre ein Synchron-Buck-Regler mit externen 
Schalttransistoren. Sowas kann heutzutage mit rund 1 MHz oder mehr 
laufen, hat wegen des Transistors anstelle der Diode deutlich weniger 
Verluste und liefert schlußendlich Gleichspannung.

W.S.

von Olaf (Gast)


Lesenswert?

> Mein Vorschlag wäre ein Synchron-Buck-Regler mit externen
> Schalttransistoren.

Ja, so in etwas wuerde ich das wohl auch angehen. Man hat dann zwar noch 
einen Schaltregler zusaetzlich in der Schaltung, aber dafuer braucht die 
Spule keine Raeder um sie zu bewegen.

Olaf

von Fabian V. (racervx)


Angehängte Dateien:

Lesenswert?

Okay, ich habe mal ein Bild angehängt.

Wie gehe ich jetzt vor? Schaue ich, was für eine Spule ich bekomme und 
passe darauf dann PWM-Frequenz und die Kapazität an, oder kann ich jetzt 
sagen, ich möchte mit den Standart 980Hz vom Arduino arbeiten und passe 
darauf dann Induktivität und Kapazität an? Wenn es möglich ist die 
Frequenz zu erhöhen, dann bekommt mein Kumpel das mit Sicherheit hin. 
Ansonsten müssten wir einen anderen Controller nutzen.

von MaWin (Gast)


Lesenswert?

Fabian V. schrieb:
> Okay, ich habe mal ein Bild angehängt

Uff, guck doch vorher, wie man das richtig baut.

Man braucht bei konstanter Last keinen C1 und synchron beide MOSFETs zu 
takten ist für einen Anfänger zu schwer, benutze nur 1 MOSFET und eine 
Freilaufdiode.

Dann bleibt nur noch übrig, wie man einen N-MOSFET an 1#V mit 5V PWM 
bedient.

von Bauform B. (bauformb)


Lesenswert?

MaWin schrieb:
> Fabian V. schrieb:
>> Okay, ich habe mal ein Bild angehängt
>
> Uff

Etwas aussichtsreicher könnte sowas sein:
https://www.reichelt.de/labornetzgeraet-1-16-v-0-40-a-stabilisiert-peaktech-1525-p105637.html?&trstct=pol_0&nbc=1

Speziell bei dem Gerät lässt sich der Ausgangsstrom analog mit 0 bis 5V 
fernsteuern. Ihr müsstet nur eure 980Hz-PWM ein wenig filtern, grob über 
den Daumen zwei RC-Glieder 1k+10uF hintereinander. Oder 2k7+4u7 oder... 
Niederohmiger ist schlecht, weil der Arduino nicht beliebig viel Strom 
liefert und wenn es hochohmiger wird, erreicht man irgendwann nicht mehr 
den vollen Ausgangsstrom. Aber in der Richtung ist noch Luft.

von Fabian V. (racervx)


Angehängte Dateien:

Lesenswert?

MaWin schrieb:
> Uff, guck doch vorher, wie man das richtig baut.

Deshalb bin ich doch hier ;)

MaWin schrieb:
> Man braucht bei konstanter Last keinen C1

Warum gehst du von einer konstanten Last aus?
Regelt man die Spannung herunter, dann sinkt ja auch die Stromaufnahme 
des Peltierelments.

MaWin schrieb:
> synchron beide MOSFETs zu
> takten ist für einen Anfänger zu schwer, benutze nur 1 MOSFET und eine
> Freilaufdiode.

Was genau ist daran schwer? Reicht es nicht aus, das Signal einfach zu 
invertieren? Wenn das so nicht funktioniert, kann man dann nicht einen 
zweiten PWM-Ausgang nutzen und denn "gegenläufig" arbeiten lassen?
Aber okay, wenn das wirklich so schwer ist, dann tausche ich ihn 
natürlich gegen eine Diode.

Bauform B. schrieb:
> Etwas aussichtsreicher könnte sowas sein:

Danke für den Tipp, das Teil ist erstens etwas teuer und zweitens möchte 
ich es tatsächlich versuchen so hinzubekommen, sofern Hopfen und Malz 
noch nicht  vollends verloren sind...

von Kevin M. (arduinolover)


Lesenswert?

Fabian V. schrieb:
> Was genau ist daran schwer?

Stichwort Deadtime.

Fabian V. schrieb:
> Warum gehst du von einer konstanten Last aus?
> Regelt man die Spannung herunter, dann sinkt ja auch die Stromaufnahme
> des Peltierelments.

Ein Peltier Element ist kein Spannungs- sondern ein Stromgesteuertes 
Bauelement. Demnach benötigt ihr Konstantstrom und nicht 
Konstantspannung. Die Spannung ändert sich mit steigender 
Temperaturdifferenz, da die Seebeck Spannung steigt. Das Problem mit PWM 
bei den Elementen ist, das bei ausgeschaltetem Zustand die Wärme 
zurückfließt, wodurch das Element einen noch schlechteren Wirkungsgrad 
hat als onehin schon.

von MaWin (Gast)


Lesenswert?

Fabian V. schrieb:
> Warum gehst du von einer konstanten Last aus?

Weil ein Peltier das ist.

von Fabian V. (racervx)


Angehängte Dateien:

Lesenswert?

Kevin M. schrieb:
> Ein Peltier Element ist kein Spannungs- sondern ein Stromgesteuertes
> Bauelement.

Okay, habe ich verstanden. Ich habe allerdings noch ein Verständnis 
Problem bezüglich der Regelung.
Der Step-Down Converter unterbricht mit seinem Schalter ja Strom und 
Spannung. Durch die Spule und dessen Magnetflet fällt diese jedoch nicht 
instant ab, sondern wird mit der Zeit abgebaut. Schaltfrequenz, 
dutycycle und Induktivität bestimmen dabei die Restwelligkeit. Aber 
Strom und Spannung können doch beide nicht "Konstant" sein. Bei einem 
Dutycycle von 50% sinken doch beide zwangsweise, oder sehe ich das 
falsch? Ich muss zugeben, den Zeitlichen Verlauf, bzw die resultierende 
Funktion des Stromes habe ich jetzt nicht berechnet.

Wie gehe ich nun bei der Dimensionierung der Bauteile vor?

Vielen Dank!

von Achim S. (Gast)


Lesenswert?

Fabian V. schrieb:
> Ich habe allerdings noch ein Verständnis
> Problem bezüglich der Regelung.

Erst mal zum Problem deiner Schaltung: dein nFET soll 12V durchschalten, 
er bekommt aber am Gate nur maximal 5V - das wird nicht funktionieren. 
Da muss ein Treiber dazwischen, der das Gate mit ausreichend hoher 
Spannung ansteuert.

Jetzt hierzu:

Fabian V. schrieb:
> Der Step-Down Converter unterbricht mit seinem Schalter ja Strom und
> Spannung. Durch die Spule und dessen Magnetflet fällt diese jedoch nicht
> instant ab, sondern wird mit der Zeit abgebaut.

Der FET unterbricht die Verbindung zwischen 12V und Spule (wenn er 
richtig beschaltet ist). Die Spannung am linken Ende der Spule springt 
also zwischen 12V und ca. 0V. Der niedrigere Wert ist nicht wirklich 0V 
sondern ca. -0,7V, weil der Strom durch die Spule weiterfließt - nur 
halt nicht mehr über den FET sondern über die Freilaufdiode D1.

Die Spannung am linken Ende der Spule springt also zwischen 12V und 
-0,7V, der Strom durch die Spule variiert nur wenig (dazu ist die Spule 
da). Und damit variiert auch die Spannung am rechten Ende der Spule 
(also am Peltier) nur wenig.

Fabian V. schrieb:
> Bei einem
> Dutycycle von 50% sinken doch beide zwangsweise, oder sehe ich das
> falsch?

Bei einem Dutycycle von 50% ist die "mittlere Spannung" am linken 
Spulenende knapp 6V, und es fließt ungefähr so viel Strom durchs 
Peltier, wie wenn du dort konstante 6V anschließen würdest.

Fabian V. schrieb:
> Wie gehe ich nun bei der Dimensionierung der Bauteile vor?

Du wählst die Spule so groß, dass der Stromripple deinen Vorstellungen 
entspricht. Die Stromänderung durch die Spule ist di/dt= U/L
U ist die Spannung, die an der Spule anliegt (also maximal 12V), und je 
größer du L wählst, desto geringer wird di/dt.

von Fabian V. (racervx)


Lesenswert?

Achim S. schrieb:
> Du wählst die Spule so groß, dass der Stromripple deinen Vorstellungen
> entspricht. Die Stromänderung durch die Spule ist di/dt= U/L
> U ist die Spannung, die an der Spule anliegt (also maximal 12V), und je
> größer du L wählst, desto geringer wird di/dt.

Danke dafür schon mal.
Ich habe eine Spule gefunden mit 23Amax und 3mH.
Bei 10kHz PWM wäre das demnach eine Stromänderung von 0,4A, wenn ich 
richtig gerechnet habe. bei 20kHz PWM dann entsprechend 0,2A 
Stromänderung. Mein Kumpel hat herausgefunden, das man die PWM vom 
Arduino bis auf ~95kHz bekommen kann. Die Stromänderung sollte also mit 
dieser Spule ausreichend gering ausfallen. Vielleicht macht es auch sinn 
eine noch "größere" Spule zu nehmen, falls man das ganze doch noch mit 
15V/30A betrieben möchte.

Zu den MSOFETS muss ich mich erst noch etwas belesen.

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Fabian V. schrieb:
> Ich habe eine Spule gefunden mit 23Amax und 3mH.

zeig bitte mal einen Link. Spulen als Energiespeicher für 23A und 3mH 
sind selten. W.S. hat das oben schon angedeutet. Vielleicht hast du eine 
stromkompensierte Drossel erwischt - die ist als Speicherspule für diese 
Anwendung nicht nutzbar.

Fabian V. schrieb:
> Bei 10kHz PWM wäre das demnach eine Stromänderung von 0,4A, wenn ich
> richtig gerechnet habe

rechnerisch ist das richtig. Aber wie gesagt: ich glaube nicht, dass du 
wirklich eine funktionierende Spule mit diesen Parametern hast.

Fabian V. schrieb:
> Mein Kumpel hat herausgefunden, das man die PWM vom
> Arduino bis auf ~95kHz bekommen kann.

Rechnerisch mag auch das richtig sein. Aber 20A mit 95kHz zu schalten 
ist keine triviale Sache.

von Oliver S. (phetty)


Lesenswert?

Aus meiner Erfahrung zieht ein Peltier was es bekommen kann!
Ich habe als einfache Reglung ein Schaltnetzteil eines Monitors 
genommen. Das liefert 5A bei 12V. Das Peltier auf einem Kühlkörper mit 
Lüfter. Da merkt man sofort wie das Netzteil an die Grenze geht, 
abschaltet und wieder loslegt.

Schlechtere Netzteile würden vermutlich einfach durchgehen und anfangen 
zu stinken.

von Kevin M. (arduinolover)


Lesenswert?

Oliver S. schrieb:
> Aus meiner Erfahrung zieht ein Peltier was es bekommen kann!

Da es kein Supraleiter ist bezweifle ich das irgendwie.

von Jakob (Gast)


Lesenswert?

Temperatur-Regelung mit Peltier?

Wird schon von Anbeginn des µC-Nets angefragt, hat aber noch nirgends 
funktioniert. Ist Trollkram für Leute, die nicht rechnen können.

Einfach IGNORIEREN!
BITTE!

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.