PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Regelung Lüfter Temperatursteuerung



steg14
16.02.2007, 00:43
Für den Kühlkörper der Endtransistoren meines Labornetzgerätes habe ich eine Temperaturregelung gebaut.
Ich messe die Temperatur mit einem NTC. Ein µC steuert den Lüfter.
Ich habe also Temperaturwert und kann Spannungen am Lüfter einstellen.

Wie macht man aber eine sinnvolle Regelung?
im Moment habe ich mal ohne groß zu überlegen einfach ein paar if-Abfragen gemacht und irgendwelche Werte eingetragen:
_______________
< 60° Lüfter aus
60-70° Lüfter 5,4V
70-80° Lüfter 7,3V
80-90° Lüfter 9,0V
90-100° Lüfter 10,5V
100-110°Lüfter 11,8V
>110° Lüfter 12,5V Übertemperatur-LED an
_______________
Geht natürlich irgendwie, aber ich möchte es schon etwas professioneller steuern.

kalledom
16.02.2007, 01:04
Ich würde die Temperatur in Zeitabständen von z.B. 1 Sekunde messen. Ist die Temperatur in der Zeit weiter gestiegen, würde ich dem Motor z.B. 1V mehr geben. Sinkt die Temperatur wieder ab, würde ich dem Motor z.B. 0,5V weniger geben. Dem Motor würde ich generell erst ab z.B. 30°C eine Spannung anbieten, bei der er langsam aber sicher rotiert.
Das Ganze regelt sich somit selbst. Denn, was machst Du, wenn bei 90-100° die angenommenen 10,5V nicht ausreichen, um genügend Luft weg zu pusten und die Temperatur zu senken ?
Wenn bei 110° die 12,5V immer noch nicht ausreichen, dann dürfte der Lüfter wohl zu klein sein oder die Verlustleistung zu hoch; auf jeden Fall wäre das ein Problem.

steg14
16.02.2007, 08:04
Bei zu hoher Temperatur schalte ich das Netzgerät ab. Das macht aber ein Bimetallschalter, weil ich zu denen mehr Vertrauen habe als zu meiner SW ;.)

Der Lüfter läuft mit 5,4V sicher an.
Warum schon bei 30° den Lüfter einschalten?

kalledom
16.02.2007, 11:04
Ausgehend von Zimmertemperatur waren die 30° ein Vorschlag, es könnte auch ab 40° sein. Je wärmer der Kühlkörper allerdings schon ist, um so schneller erreicht er höhere Temperaturen. Von 30° auf 100° dauert länger als von 40° auf 100° :-)
(100° ist auch nur ein Beispiel)

Gock
16.02.2007, 13:35
Die einfachst Regelung, die wenig Code benötigt wäre eine Lineare Regelung: VentilatorSpannung=X*Temp +Offset, wobei X der Linearitätsfaktor ist. Das gilt dann zb ab 40°C. Dadurch läuft der Lüfter langsam hoch und wieder runter anstatt sprunghaft.
Wenn Du noch drüberintegrierst und auf das Integrationsintervall normierst, dann pendelt sich der Lüfter bei einer Geschwindigkeit ein, die zb 40° hält. Ist aber nicht sehr dynamisch.
Kalledom schlägt eine Differenzstufe vor, dh bei starkem Anstieg der Temperatur, geht auch die Drehzahl schnell hoch. Das ist eine sehr dynamische Regelung, die zwar Dein Netzteil am besten schützt, aber Dir eventuell auch den letzten Nerv raubt, weil das Ding ständig hoch und runter dreht.
Die Mischung aus allen dreien ist in aller Regel die beste Lösung, aber auch die Komplizierteste = PID-Regler.
Zu dieser Lösung gibt es von Atmel aber eine Application Note, die Du Dir reinziehen kannst. Musst mal bei Atmel suchen, da gibts glaube ich sogar Code und Du musst nur noch die Parameter ausprobieren.
Gruß

steg14
16.02.2007, 20:34
Also PID scheint mir zu komplizert und ist auch nicht nötig.
(ausserdem verbinde ich damit unangenehme Erinnerungen).

Ich habe die Regelung heute den ganzen Tag getestet, läuft recht gut.
Bei der SW habe ich extra, und umständlich, mit vielen IF gearbeitet, damit es jeder leicht nachvollziehen und modifizieren kann.
Einzige Schwierigkeit ist die Formel um aus den AD-Werten die Temperatur zu berechnen. Gut dass meine Tochter gerade die Geradengleichung in der Schule hatte ;-)
Der Schaltregler vermeidet große Mengen CO2-Ausstoß.
Die Widerstandsdimensionierung ist auch noch etwas kritisch. Ich habe sie so ausgelegt, dass die minimale Spannung 5,4V ist, damit läuft mein Lüfter an.
Der verwendete KTY81 reagiert recht langsam. Wenn ich schnell aufheize, kann ich 130°C erreichen obwohl er dann erst 110° misst.

So siehts aus:
http://www.stegem.de/Elektronik/Luefter/luefter.htm

Gock
17.02.2007, 10:09
Einzige Schwierigkeit ist die Formel um aus den AD-Werten die Temperatur zu berechnen. Gut dass meine Tochter gerade die Geradengleichung in der Schule hatte
Aber Geradengleichung ist auch nicht wirklich angemessen, weil die Kurve nicht sehr linear ist. Eigentlich macht man sowas per LookUpTable. Das heißt, zu jedem Spannungswert liest Du einen Temperaturwert aus einer Tabelle aus.
Gruß

Benji
17.02.2007, 11:06
Gock:

VentilatorSpannung=X*Temp +Offset

Aber Geradengleichung ist auch nicht wirklich angemessen, weil die Kurve nicht sehr linear ist

Von mir aus gesehen ist aber diese Formel eine Geradengleichung...

Hmm, ich weiss nicht ob es dann klug ist den Lüfter linear anzusteuern wenn die Temperaturkurve nicht linear ist(?)

steg14
17.02.2007, 11:53
Für meinen Zweck ist die Kurve ausreichend linear. Hier meine Messwerte
Wert des AVR Temp
105 68
112 85
118 98
124 109
130 118
136 125
selbst wenn die Temperatur 10° daneben liegt, funktioniert die Regelung.
Ich möchte die SW nicht unnötig kompliziert machen, es soll ja jeder nachbauen können.
Eine einfache Möglichkeit der Linearisierung wäre noch die Verwendung eines LM35. Hatte nur gerade keinen da.
Ich werde aber bei nächster Gelegenheit die Schaltung auf LM35 umstellen, dann muss nicht jeder die Messwerte seines Sensors aufnehmen und die Formel anpassen.

Gock
17.02.2007, 12:40
Benji schrieb:

Von mir aus gesehen ist aber diese Formel eine Geradengleichung...
Ja, aber das soll doch auch die Gleichung für die Regelung sein und die muss natürlich schon die linearisierte Temperaturkennlinie (T(V)) enthalten!

@Steg14
Die Kennlinie ist übrigens normalerweise im Datenblatt angegeben, Du musst also nicht selbst messen.
Gruß

steg14
17.02.2007, 14:00
laut Datenblatt ist mein KTY82 linearer als in Wirklichkeit

Es gibt aber auch praktische Gründe fürs Messen:
- Kontakt des Sensors mit dem Kühlkörper
- Die Exemplarstreueng des Sonsors
- Die Tolerenz des Widerstandes des Spannungsteilers
- die Streuung des AD-Wandles AVR

Wenn ich den Sensor am Kühlkörper montiert einer definierten Kühlkörpertemperatur aussetze und mir vom AVR den Wert anzeigen lasse, umgehe ich alle Unsicherheiten.
Aber wie gesagt bei dieser Anwendung alles egal.

Gock
17.02.2007, 14:20
@ steg14
Im Prinzip hast Du natürlich Recht, vorausgesetzt, Deine Referenztemperaturmessung hat die notwendige Genauigkeit. Ist aber Arbeit, die man nicht machen muss, wie gesagt, und da Du es eh' nicht so genau brauchst...
Gruß

Rofo88
20.02.2007, 12:43
Die Mischung aus allen dreien ist in aller Regel die beste Lösung, aber auch die Komplizierteste = PID-Regler.
Zu dieser Lösung gibt es von Atmel aber eine Application Note, die Du Dir reinziehen kannst. Musst mal bei Atmel suchen, da gibts glaube ich sogar Code und Du musst nur noch die Parameter ausprobieren.
Gruß

Kann mir mal bitte einer nen Tip geben wo ich das auf der Atmel Homepage finden kann.

MfG

steg14
20.02.2007, 14:34
AVR221
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
http://www.atmel.com/dyn/resources/prod_documents/AVR221.zip

Rofo88
20.02.2007, 14:40
Danke! Ich werd mir wohl mal ne neue Brille versorgen müssen.