FB_CTRL_PID_EXT
Übertragungsfunktion
Die folgende Übertragungsfunktion lässt sich angeben, wenn die boolschen Eingänge bPInTheFeedbackPath
und bDInTheFeedbackPath
FALSE sind, anderenfalls beschreibt die Übertragungsfunktion nur einen Teil des Übertragungsverhaltens des Blocks:
Wirkungsplan
Der Standardwirkungsplan eines PID-Reglers in additiver Form ist um die beiden als "Schalter" wirkenden boolschen Eingänge bPInTheFeedbackPath
und bDInTheFeedbackPath
erweitert worden, so dass ein modifizierter Wirkungsplan aktiviert werden kann.
Der regelungstechnische Hintergrund ist der, dass bei Sollwertsprüngen durch den Differential-Anteil des Regelalgorithmus große Stellgrößen entstehen, die die Stellelemente belasten und das Regelsystem zum Schwingen anregen können. Ein Regelalgorithmus, dessen Differential-Anteil nur auf der Regelgröße angewendet wird (bDInTheFeedbackPath := TRUE
), vermeidet dieses Problem.
Mit den Eingängen bPInTheFeedbackPath
und bDInTheFeedbackPath
können die folgenden Übertragungsfunktionen des geschlossenen Regelkreises realisiert werden:
bPInTheFeedbackPath | bDInTheFeedbackPath | G(s) |
---|---|---|
false | false | |
true | false | |
false | true | |
true | true |
mit:
Die Standardeinstellung für die beiden Eingänge bPInTheFeedbackPath
und bDInTheFeedbackPath
ist FALSE. Der PID-Regler entspricht dann einem Standard PID-Regler in additiver Form.
Abschaltung des I-Anteils in dem OuterWindow
Wenn die Regelabweichung größer als der Parameter fOuterWindow
ist, wird die Integration der Regelabweichung angehalten. Hiermit kann verhindert werden, dass sich bei einer großen Regelabweichung ein sehr großer I-Anteil aufbaut, der eventuell zu einem zu starken Überschwingen führt. Wenn diese Funktion nicht gewünscht ist, kann sie mit fOuterWindow := 0
deaktiviert werden.
Lineare Reduzierung des I-Anteils in dem InnerWindow
Mit dieser Funktion ist es möglich, den I-Anteil in dem mit dem Parameter fInnerWindow
festgelegten Bereich linear zu Null zu führen. Wenn diese Funktion nicht gewünscht ist, kann sie mit fInnerWindow := 0
deaktiviert werden.
Totzone des Ausgangs
Wenn der Parameter fDeadBandOutput > 0
gesetzt wird, wird der Ausgang in dem Intervall [ -fDeadBandOutput ... fDeadBandOutput ]
zu Null gesetzt.
Totzone des Eingangs
Wenn der Parameter fDeadBandInput > 0
gesetzt wird, wird der Ausgang konstant gehalten, solange sich die Regelabweichung in dem Intervall [ -fDeadBandInput ... fDeadBandInput ]
befindet.
Sprungantwort
ARW
VAR_INPUT
VAR_INPUT
fSetpointValue : FLOAT;
fActualValue : FLOAT;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
bHold : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fSetpointValue | FLOAT | Sollwert der Regelgröße |
fActualValue | FLOAT | Istwert der Regelgröße |
fManSyncValue | FLOAT | Eingang, mit dem das PID-Glied gesetzt werden kann. |
bSync | BOOL | Mit einer steigenden Flanke an diesem Eingang wird das PID-Glied auf den Wert „fManSyncValue“ gesetzt. |
eMode | E_CTRL_MODE | Eingang, der die Betriebsart des Bausteins festlegt. |
bHold | BOOL | Ein TRUE an diesem Eingang hält den internen Zustand und somit auch den Ausgang unabhängig von der Regelabweichung konstant auf dem aktuellen Wert. |
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
bMaxLimitReached : BOOL := FALSE;
bMinLimitReached : BOOL := FALSE;
bARWActive : BOOL := FALSE;
fCtrlDerivation : FLOAT;
eState : E_CTRL_STATE;
bError : BOOL;
eErrorId : E_CTRL_ERRORCODES;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOut | FLOAT | Ausgang des PID-Glieds |
bMaxLimit | BOOL | Der Ausgang ist TRUE, wenn sich der Baustein in der oberen Begrenzung befindet. |
bMinLimit | BOOL | Der Ausgang ist TRUE, wenn sich der Baustein in der unteren Begrenzung befindet. |
bARWActive | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass sich das PID-Glied in der Begrenzung befindet. |
fCtrlDerivation | FLOAT | Der aktuelle Wert der Regelabweichung |
eState | E_CTRL_STATE | State des Funktionsbausteins |
bError | BOOL | Liefert bei einem gesetzten |
eErrorId | E_CTRL_ | Wird TRUE, sobald ein Fehler eintritt. |
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_PID_EXT_PARAMS;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_PID_ | Parameterstruktur des PID-Glieds |
stParams
besteht aus den folgenden Elementen:
TYPE
ST_CTRL_PID_EXT_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
fKp : FLOAT := 0;
tTn : TIME := T#0ms;
tTv : TIME := T#0ms;
tTd : TIME := T#0ms;
fDeadBandInput : REAL := 0.0;
fDeadBandOutput : REAL := 0.0;
fInnerWindow : REAL := 0.0;
fOuterWindow : REAL := 0.0;
fOutMaxLimit : FLOAT := 1E38;
fOutMinLimit : FLOAT := -1E38;
bPInTheFeedbackPath : BOOL;
bDInTheFeedbackPath : BOOL;
bARWOnIPartOnly : BOOL;
END_STRUCT
END_TYPE
Name | Typ | Beschreibung |
---|---|---|
tCtrlCycleTime | TIME | Zykluszeit, mit der der Regelkreis bearbeitet wird. Diese muss größer oder gleich der TaskCycleTime sein. Der Funktionsbaustein berechnet mit dieser Eingangsgröße intern, ob die Zustands- und Ausgangsgrößen im aktuellen Zyklus aktualisiert werden müssen. |
tTaskCycleTime | TIME | Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird. |
fKp | FLOAT | Reglerverstärkung / Reglerbeiwert |
tTn | TIME | Nachstellzeit, wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert. |
tTv | TIME | Vorhaltzeit, wenn diese zu T#0s parametriert ist, wird der D-Anteil deaktiviert. |
tTd | TIME | Dämpfungszeit |
fDeadBandInput | REAL | Siehe obere Beschreibung. |
fDeadBand | REAL | Siehe obere Beschreibung. |
fInnerWindow | REAL | Siehe obere Beschreibung. |
fOuterWindow | REAL | Siehe obere Beschreibung. |
fOutMaxLimit | FLOAT | Oberes Limit, an dem die Integration angehalten und der Ausgang begrenzt wird (ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang |
fOutMinLimit | FLOAT | Unteres Limit, an dem die Integration angehalten und der Ausgang begrenzt wird (ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang |
bPInTheFeed | BOOL | Eingang, mit dem die Eingangsgröße des P-Glieds ausgewählt werden kann (siehe Wirkungsplan). |
bDInTheFeed | BOOL | Eingang, mit dem die Eingangsgröße des D-Glieds ausgewählt werden kann (siehe Wirkungsplan). |
bARWOnIPart | BOOL | Wenn dieser Parameter FALSE ist (Standardeinstellung), wird die Integration des I-Anteil dann angehalten, wenn der gesamte Reglerausgang das obere oder untere Limit erreicht. |