Forum: Mikrocontroller und Digitale Elektronik Regler einstellen f. Temperaturregelung


von GMB (Gast)


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!!

von Profi (Gast)


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?

von Marco S (Gast)


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, ...

von GMB (Gast)


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!

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.