mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Temperaturregelung LM35 / automatische Kalibrierung


Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab folgendes Problem:

ich möchte per µC Temperatur messen und dabei bei bestimmter Temperatur 
z.B. 50C ein PWM 0-100% erzeugen. Ich will die Temperatur am Kühlkörper 
eine LED Leuchte messen, und dann mit PWM die Temperatur z.B. 50C 
halten.
Wie kann ich es technisch realisieren??
Was ist da für ein Regler PD/PID-Regler?

Ich hab mir folgendes überlegt:
1. Gerät eingeschaltet, so Temperatur steigt auf 50C.
2. ab 50C messe ich jetzt die Zeit, bis die Temperatur 55C erreicht hat.
3. ist die Zeit kurz so regele ich mehr, zum Beispiel -10% PWM,
   also zeitabhängig steuern.
4. Sinkt die Temperatur unter 50C, fange ich wieder die Zeit zumessen.
   Bei 45C regele ich wieder zeitabhängig  hoch z.B. +5% PWM.

Oder wie kann ich es technisch am einfachsten machen????

Gruß

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Regler (Gast)

>Oder wie kann ich es technisch am einfachsten machen????

Zweipunktregler.

>51 C, Wärmequelle abschalten
<49 C, Wärmequelle einschalten

MFG
Falk

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Falk Brunner

 >51 C, ich will da nicht abschalten, sondern pwm runter regeln
 Z.B. von 100% auf 85%. soweit runterregeln bis die 50C stabil bleiben.

 <49 C, will ich hoch regel, also wenn Istwert=70%, soweit hochregeln 
bis die 50C stabil bleiben.

Ich will auf kein Fall LED´s abschalten, sondern schrittweise PWM/Duty 
cycle runter/hoch regeln bis meine Temperatur stabil bleibt also z.B. 
50C!!!

Autor: Wolfgang-G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
analog: 1x OPV als p-Regler
        1x Diode als Temperaturfühler
        Hühnerfutter

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte aber digital, da die Schaltung/Layout schon fertig ist.

Hab LM35, geht direkt an µC. per ADC wollte ich auslesen/auswerten.
Hab mir so vor gestellt, jede 1 sec Interrupt auslösen, dabei Temperatur 
messen, auswerten und mit PWM nachregeln, aber wie???

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat den keiner eine IDEE?

Eine Temperatur-Regelung, die pwm-abhängig arbeitet.
Also soweit nachregelt bis die eingestellte Temperatur z.B. 50 C 
konstant bleibt.

Ich brauch kein Code, sondern ein Ablauf:
1. Temperatur steigt auf 50 C.
2. Jetzt Zeit messen, bei einer Steigung auf 55 C
3. Auswertung der Steigung,
4. PWM nachregeln in Abhängigkeit der Zeitmessung
   steigt schnell = mehr nachregeln
   steigt langsam = weniger nachregln

und das gleiche nochmal wenn die Temperatur runterfällt auf 49C

Wird es funktionieren oder gibt es eine einfachere Lösung???

Gruß
Regler

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#2 hast es doch schon geschrieben -> Zweipunktregelung.

Die 4 Punkte sind totaler Blödsinn. z.B.:
4. PWM nachregeln in Abhängigkeit der Zeitmessung
   steigt schnell = mehr nachregeln
   steigt langsam = weniger nachregln

Wie willst du den bitteschön eine zu hohe Temp. nachregeln? Schneller 
als den Strom wegnehmen, ist nun mal nicht drin, oder einen Lüfter 
einschalten...

Oder soll das eine Regelung mit Nebenbedingungen werden? Also mit min 
PWM.

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie willst du den bitteschön eine zu hohe Temp. nachregeln? Schneller
>als den Strom wegnehmen,

einfach PWM Tastverhältnis ändern, in dem ich bei einem schnellem 
Anstieg z.B. -5% abziehe. bei langsamen Anstieg z.B. 1% Abziehe.
Das ist klar das ich beim jedem Abzug/Erhöhung Weile warten muss.

Steigt die Temperatur noch mehr abziehen, geht das nicht?

Die Temperatur soll sich nach bestimmter Zeit sich einpendeln und bei ca 
50 C bleiben, das will ich :-)

Ich hab Problem mit Kühlkörper, da der sich viel zu langsam 
abkühlt/erwärmt.
Da liegt mein Problem, oder nicht?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Regler (Gast)

>Hat den keiner eine IDEE?

Doch. Mach doch einfach einen PID-Regler in Software.

http://de.wikipedia.org/wiki/Regler

Viel Formeln, davon sollte man sich nicht irre machen lassen.

Der Ablauf ist recht einfach:

Differenz zwischen Soll und Ist Temperatur ausrechnen.

delta_T = T_ist-T_soll

P Anteil berechnen.

P_Anteil = K_P * delta_T

I Anteil berechnen, dazu muss delta_T integriert werden, sprich 
fortlaufend aufsummiert.

Integral_T = Integral_T + delta_T
I_Anteil = K_I * Integral_T

D Anteil berechnen, dazu muss delta_T differenziert werden, sprich 
Vergleich mit dem letzten Messwert.

Differenz_T = delta_T - delta_T_alt
D_Anteil = K_D * Differenz_T
delta_T_alt = delta_T

Neue PWM einstellen.

PWM = P_Anteil + I_Anteil + D_Anteil

K_P, K_I, und K_D sind feste Faktoren, welche rechnerisch oder 
experimentell ermittelt werden müssen.
Das ganze kann man mit Festkommaarithmetik machen, float ist 
natürlich die Luxusvariante.

>2. Jetzt Zeit messen, bei einer Steigung auf 55 C

Macht dein PID-Regler allein, vorausgesetz er ist richtig eingestellt 
;-)

MfG
Falk

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Falk und "Regler" ...hast Du eigentlich auch einen Namen? Ich 
denke das gehört sich so :-)

>> 2. Jetzt Zeit messen, bei einer Steigung auf 55 C

> Macht dein PID-Regler allein, vorausgesetz er ist richtig eingestellt
;-)

Nicht ganz! Ein PID Regler benötigt schon die verstrichene Zeit zwischen 
2 Messungen, aber wenn Du den Regler in einem festen Zeitraster 
aufrufst, also z.B. alle 10sek, ist sie immer konstant und du kannst t=1 
annehmen. Somit geht sie nicht in die Rechnung ein. Mußt halt nur K_P, 
K_I, und K_D entsprechend anpassen.

Viele Grüße,
Steffen

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Steffen (Gast)

>Nicht ganz! Ein PID Regler benötigt schon die verstrichene Zeit zwischen
>2 Messungen,

Ach was?

> aber wenn Du den Regler in einem festen Zeitraster
>aufrufst,

Das ist ja wohl implizit, hat selbst der OP schon erkannt.

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Falk Brunner,

also hab das richtig vorhin überlegt, ein PID-Regler :-)

Jetzt versuche ich mal in Assembler umzusetzen :-)

Es wir wahrscheinlich "sehr schwer" fahlen

Hat es schon mal einer  Software PID-Regler mit Assembler geschrieben??

Gruß

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Habe mich mal ne Zeitlang mit Fuzzyreglern beschäftigt, und die gingen
fast so wie du es beschreibst. Stelle dir vor du hast einen
Leistungsregelknopf und ein Thermometer. Deine Aufgabe: halte die Temp. 
auf genau 50°C. Du sollst 50°C möglichst nicht überschreiten.
Wie würdest du das machen?
Eventuell so:

<< 50°C -> Regler voll auf
Temp steigt langsam -> bei 48° schauen wir mal etwas genauer hin(voll 
auf)
49° -> Regler zu, jetzt gehts los:
jede Sekunde, Was macht Temp?
steigt stark -> Regler 0%
steigt -> Regler -5%
steht -> Regler lassen
fällt -> Regler +5%
fällt stark -> Regler 100%

Wenn man sich dazu etwas Gedanken über die Stell-und Messgrössen macht,
kann man das sehr leicht in Software umsetzen.
Ich war jedenfalls begeistert von dem Regelverhalten. Einen PID dort 
hinzubringen erfordert da schon einiges an Kenntnis über Regelverhalten.
Das andere kann jede Hausfrau .-)

Viel Erfolg, Uwe

Autor: Regler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi UWE,

ich hab noch nie was mit Regler zu tun gehabt und geschweige 
programmiert :-)
ich werde es aber trotzdem versuchen.

Ich verwende PIC18 und ASM, hier hab ich was schönes gefunden:
http://ww1.microchip.com/downloads/en/AppNotes/00937a.pdf

Blicke aber noch nicht ganz durch... o_O

Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.