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 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
.