CTRL_PI Problem mit PI-Regler

Begonnen von Klimamensch, 12. September 2012, 09:07:30

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Klimamensch

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.

shooter

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.