GMB
04.04.2006, 16:27
Hallo zusammen!
Habe da nochmal eine Frage zur Temperatur-Regelung.
Habe wie im Artikel dazu eine Regelung aufgebaut, die läuft aber nicht ganz so wie ich es möchte.
Hier ein Auszug aus dem Programm:
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 > 600Then
Y = 600
End If
Pwm1a = Y
Wie man sieht liest der die Werte für den Sollwert und den Istwert jeweils aus einem A/D-Wandler aus, da der Sollwert über ein Poti eingestellt wird, der Istwert über einen Temperatursensor eingelesen wird.
Ich habe bereits "so" mal die besten Werte für meinen Lüfter ausprobiert, dieser läuft von Werten für PWM1a von 0 (also "Vollgas") bis ca. 600 optimal!! Also ohne zu ruckeln etc.
Jedoch klappt die Regelung nicht ganz, wenn ich mir den Wert für Y im Display anzeigen lassen, ist dieser dauernd auf 600, der Lüfter dreht aber trotzdem noch relativ schnell.
Woran könnte das liegen?
Habe da nochmal eine Frage zur Temperatur-Regelung.
Habe wie im Artikel dazu eine Regelung aufgebaut, die läuft aber nicht ganz so wie ich es möchte.
Hier ein Auszug aus dem Programm:
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 > 600Then
Y = 600
End If
Pwm1a = Y
Wie man sieht liest der die Werte für den Sollwert und den Istwert jeweils aus einem A/D-Wandler aus, da der Sollwert über ein Poti eingestellt wird, der Istwert über einen Temperatursensor eingelesen wird.
Ich habe bereits "so" mal die besten Werte für meinen Lüfter ausprobiert, dieser läuft von Werten für PWM1a von 0 (also "Vollgas") bis ca. 600 optimal!! Also ohne zu ruckeln etc.
Jedoch klappt die Regelung nicht ganz, wenn ich mir den Wert für Y im Display anzeigen lassen, ist dieser dauernd auf 600, der Lüfter dreht aber trotzdem noch relativ schnell.
Woran könnte das liegen?