PID controller in the standard form
y = k ( e(t) + 1 ⁄ Ti ∫ e(s) ds + Td de(t)⁄dt ),
where y is the control signal, e(t) = us - um is the control error, with us being the set point and um being the measured quantity, k is the gain, Ti is the time constant of the integral term and Td is the time constant of the derivative term.
Note that the units of k are the inverse of the units of the control error, while the units of Ti and Td are seconds.
For detailed treatment of integrator anti-windup, set-point weights and output limitation, see Modelica.Blocks.Continuous.LimPID.
Through the parameter controllerType
, the controller can be configured
as P, PI, PD or PID controller. The default configuration is PI.
Through the parameter reverseActing
, the controller can be configured to
be reverse or direct acting.
The above standard form is reverse acting, which is the default configuration.
For a reverse acting controller, for a constant set point,
an increase in measurement signal u_m
decreases the control output signal y
(Montgomery and McDowall, 2008).
Thus,
reverseActing = true
, but
reverseActing = false
.
The controller can be configured to enable an input port that allows resetting the controller output. The controller output can be reset as follows:
reset = AixLib.Types.Reset.Disabled
, which is the default,
then the controller output is never reset.
reset = AixLib.Types.Reset.Parameter
, then a boolean
input signal trigger
is enabled. Whenever the value of
this input changes from false
to true
,
the controller output is reset by setting y
to the value of the parameter y_reset
.
reset = AixLib.Types.Reset.Input
, then a boolean
input signal trigger
and a real input signal y_reset_in
are enabled. Whenever the value of
trigger
changes from false
to true
,
the controller output is reset by setting the value of y
to y_reset_in
.
Note that this controller implements an integrator anti-windup. Therefore,
for most applications, keeping the default setting of
reset = AixLib.Types.Reset.Disabled
is sufficient.
However, if the controller is used in conjuction with equipment that is being
switched on, better control performance may be achieved by resetting the controller
output when the equipment is switched on.
This is in particular the case in situations
where the equipment control input should continuously increase as the equipment is
switched on, such as a light dimmer that may slowly increase the luminance, or
a variable speed drive of a motor that should continuously increase the speed.
R. Montgomery and R. McDowall (2008). "Fundamentals of HVAC Control Systems." American Society of Heating Refrigerating and Air-Conditioning Engineers Inc. Atlanta, GA.
k
.homotopyType=NoHomotopy
.
See issue 1221.
limitsAtInit
because it was only propagated to
the instance limiter
, but this block no longer makes use of this parameter.
This is a non-backward compatible change.strict=true
in order to avoid events
when the controller saturates.
This is for issue 433.