Block that limits the rate of change of the input u
by a ramp if the boolean input active is
true, otherwise the block outputs y =
u.
This block computes a threshold for the rate of change between
input u and output y as thr =
(u-y)/Td, where Td > 0 is a parameter. The
output y is computed as follows:
thr < fallingSlewRate, then dy/dt =
fallingSlewRate,thr > raisingSlewRate, then dy/dt =
raisingSlewRate,dy/dt = thr.A smaller time constant Td > 0 means a higher
accuracy for the derivative approximation.
Note that the block limits the rate of change of the input
u in the same way as Buildings.Controls.OBC.CDL.Reals.LimitSlewRate.
However, the Buildings.Controls.OBC.CDL.Reals.LimitSlewRate
has a boolean parameter to flag if the rate of change should be
limited, while this block has the boolean input
activate to enable or disable the functionality. When
the input activate switches to false, the
output y can have a discontinuity.
For the block to work with arbitrary inputs and in order to
produce a differentiable output, the input is numerically
differentiated with derivative time constant Td.