mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Temperaturregelung via PWM


Autor: GMB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!!

Habe einen mega8 den ich über Bascom programmiere, habe bereits schon
einen Lüfter über PWM angesteuert, indem ich das Tastverhältnis des
PWM-Signal "manuell" durch neu-programmierung des Controllers
geändert habe. Dies klappt zu meiner Verwunderung auch einwandfrei!!

Jetzt möchte ich gerne eine Temperaturregelung implementieren, die
Temperatur lese ich natürlich über den ADC ein, habe den Wert dann als
"echte" Temperatur in °C vorliegen.

Habe mir jetzt folgendes überlegt bzw. ausprobiert:

1. Einlesen des ADC-Wertes (+ Umrechung)
2. Vergleich mit voreingestelltem Wert (z.B. "-30°C")
3. Wenn ADC-Wert > Vergleichswert: Tasteverhältnis "vergrößern" =>
Lüfter dreht schneller
4. Sonst Tastverhältnis "verkleinern" => Lüfter dreht langsamer

Das ganze dann als Schleife (mit Display-Ausgaben zwischendurch), habe
es mal ausprobiert, aber hatte irgendwie nicht den gewünschten
Erfolg...gibt es da evtl. eine besser "Grundidee"?

Wäre für jede Hilfe dankbar!

Autor: Senf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MONGO, dies ist die Code SAMMLUNG und nicht die bitte helft mir hab
keinen Plan Abteilung. Hab es allmählich satt.

Autor: GMB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für das "Mongo", Senf!! :-)

Habe beim durchlesen des Forums diverse Beiträge mit Fragen gesehen,
und mich dann "eingereiht"...aber man könnte diesen Thread ja auch
sinnvoll nutzen, und alle Codes zu dem Thema hier einstellen, denn in
der Suche habe ich nichts brauchbares gefunden

HORNOCHSE!!!!!

Autor: Dennis Strehl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, im Grunde hat er ja recht, es heißt "Codesammlung" und nicht
"Fragen-zu-Code-Sammlung".
Zum Problem: Wie ich das verstanden habe, wird das Temperatursignal
integriert und dann als PWM-Signal ausgegeben. Dies nennt sich
Integralregler und fängt an zu schwingen, wenn zwischen
Drehzahländerung und Reaktion der Temperatur darauf zu viel Zeit liegt.
Du kannst entweder die Differenz durch einen bestimmten Wert teilen und
dann erst dazuzählen oder du verwendest eine andere Reglerart.

Literatur dazu:
http://www.roboternetz.de/wissen/index.php/Regelungstechnik

MfG

Autor: GMB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir ist zwar nicht ganz klar, wie du darauf kommst das ich etwas
integriere, aber die "Grundlagen" der Regelungstechnik sind mir sehr
wohl bekannt...doch leider nur als analoge Schaltung mit OP...:-/
Bzw. dann als Übertragungsfunktion und dergleichen...

Doch leider ist mir etwas schleierhaft, wie ich das umsetzen kann, aber
ich glaube ich muss mich da einfach mal wieder einlesen...

Ich hatte meinen "Code" eigentlich als P-Regler aufgefasst, aber ist
ja im Prinzip ja auch nicht richtig, weil er ja nicht die
Regelabweichung multipliziert... :-(

Dachte es hätte jemand einen "Tip" auf Lager...:-/

Autor: Oliver S. (stopfohr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P-Regler: Die Stellgröße ist proportional zur Regelabweichung.

Beispiel: Solltemp 10Grad. Isttemp: 15 Grad. Prop.-Faktor 1:
Reglerausgabe -5. (Was immer "-5" jetzt auch bedeutet...). Also in
jedem Schleifendurchlauf die Regeldifferenz bilden und den Ausgabewert
danach berechnen. Bleibt die Regeldifferenz konstant, bleibt auch der
Ausgabewert konstant.

Du hast geschrieben:
3. Wenn ADC-Wert > Vergleichswert: Tasteverhältnis "vergrößern" =>
Lüfter dreht schneller
4. Sonst Tastverhältnis "verkleinern" => Lüfter dreht langsamer
 Wenn das wirklich so programmiert ist, dann ist es so etwas wie ein
I-Regler: Bei konstanter Temperaturdifferenz veränderst du den
Ausgabewert bei jedem Schleifendurchlauf. (ok, bei einem richtigen
I-Regler wäre die "Veränderungsrate" proportional zur Regeldifferenz,
ist aber jetzt egal). Praktisch wird dein Ausgabewert wahrscheinlich
immer an der oberen oder unteren Begrenzung hängen (falls vorhanden).

Oliver

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man sich die Überschrift im Forum mal durchlesen würde könnte man
dies lesen:"
Forum - Codesammlung
Wenn ihr eigene Programme oder Anleitungen geschrieben habt könnt ihr
sie hier posten. Fragen werden gelöscht! "
Also nicht wundern, wenn das Posting einfach mal weg ist...

Autor: GMB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal an die Mods für's verschieben!! Ich weiß dann jetzt
bescheid, was wo hingehört... ;-)

Zurück zum Thema: so wie du es erklärt hast Oliver klingt es jetzt auch
logisch für mich, ich werde mich da nochmal richtig dran setzen, wozu
hab ich schließlich eine Reglerdimensionierung gelernt?!?! ;-)

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.