Hallo allerseits,
ich habe folgendes Problem mit der Funktion des PI-Reglers: Bekanntermaßen ist rechnet der PI-Regler nach folgender Formel:
y = ( w - x ) * Kp + INTG( w - x ) * Ki
Ich habe nun einen SOllwert ( w ) von 800ppm. Kp = -0,1. Ki = -0,001. Die Min- und Maxgrenzen liegen bei 0 und 100. Wenn ich den Regler starte und einen Istwert ( x ) von 0 habe, dann ist das Ergebnis für das Stellsignal (y ) negativ. Da die untere Grenze aber bei 0 liegt, ist das Ergebnis für y auch 0. Soweit so gut. Wenn ich nun per Werte forcen den Istwert von 0 auf 600 erhöhe, passiert etwas sehr eigenartiges: Meiner Erwartung nach müsste y bei einem x von 600 immer noch 0 sein, da die Regelabweichung positiv ist, aber die Regelparameter (Ki und Kp) negativ sind (minus mal plus ist gleich minus).
Was bei mir passiert ist jedoch Folgendes: Das Stellsignal springt von 0 auf -x/Kp - also auf 60 - und wird dann durch den I-Anteil langsam runtergerechnet.
Warum passiert das? Beachtet, dass der Sprung auf -x/Kp landet. Das erscheint mir sehr seltsam.
Ich würde mich sehr über Hilfe freuen.
ELSIF Y <= LIM_L THEN
Y := LIM_L;
IF ki <> 0.0 THEN
i := LIM_L - p;
ELSE
i := 0.0;
END_IF;
LIM := TRUE;
this means that when the output is below limit the i will be -p (wrong)
then next round the i is used in the i calc
i := (IN + in_last) * 5.0E-7 * KI * tc + i;
so the i will be 59.9 or something etc.