mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Regler einstellen f. Temperaturregelung


Autor: GMB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!!

Habe einen mega8, mein Programm läuft auch prima soweit, es soll jedoch
eine Temperaturregelung implementiert werden.
Diese soll wie folgt ablaufen:

Einlesen des Sollwertes (Poti am ADC)
Einlesen des Istwertes ( Temp.-Fühler am ADC)
Regelung (PI-Regler)

Stellgröße = PWM-Signal für Lüfter

Im Prinzip läuft die Regelung auch, hier mal der Code-Auszug:

W = Getadc(2)

Kp = 18
Ki = 60
Ta = 0.01
X = Getadc(0)
E = W - X
'Vergleich
 Esum = Esum + E
'Integration I-Anteil
 If Esum < -400 Then
 Esum = -400
 End If
'Begrenzung I -anteil
 If Esum > 400 Then
 Esum = 400
 End If
 Y = Kp * E
 Z = 0.6 * Esum
 Y = Y + Z


'Reglergleichung
 If Y < 0 Then
 Y = 0
'Begrenzung Stellgröße
 End If
 If Y > 750 Then
 Y = 750
 End If

 Pwm1a = Y



So, Problem ist nun: das ganze läuft irgendwie nicht, der Lüfter müsste
ja bei Y = 750 sehr langsam laufen (macht er auch wenn ich es
"manuell" vorgebe z.B.), bei Y = 0 auf "volle Pulle", aber das will
irgendwie nicht so ganz?!?!

Wo liegt der Fehler?

Danke schonmal für eure Hilfe!!

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was läuft den nicht so ganz?
Bitte nähere Angaben.
Die Werte für kp und ki sind sehr kritisch und müssen ziemlich genau
passen, damit der Regler gut regelt und nicht schwingt.

evtl. musst Du noch umrechnen, dass der Lüfter bei 750 max läuft und
bei 0 aus ist:
Pwm1a = 750 - Y

oder geht PWM überhaupt nicht, auch mit manuellen Eingaben?

Autor: Marco S (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nils.

Irgendwie hast du das von
http://www.roboternetz.de/wissen/index.php/Regelungstechnik
zusammenkopiert, und es geht nicht? Poste doch mal den ganzen Code, um
zu sehen, ob eine Schleife vorhanden ist, die Variablen vom Typ int
sind, ...

Autor: GMB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich habe es wie gesagt vom Roboternetz, habe jetzt mal ein wenig
mit den Werten für Kp und Ki "rumgespiel", jetzt läuft es WESENTLICH
besser!!

PWM an sich funktioniert, das hatte ich glaube ich auch erwähnt!

Habe auch vorher die beiden Werte angeglichen, so dass beide eine
Temperatur in °C widerspiegeln!

Ich danke euch trotzdem für eure Hilfe, werde also noch ein wenig mit
den Konstanten "experimentieren", und dann sehen wie's läuft!

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.