percentageIncreaseLimited = MaxPercentageIncrease(window=..., upperPercentageLimit=...).y;
In any (sliding) time window of length window, the percentage increase of input u is limited by parameter upperPercentageLimit, that is
percentageIncrease(t) = 100*(u(t) - u(t-window)/max(|u(t-window)|,usmall), if t ≥ t0 + window = 100*(u(t) - u(t0)/max(|u(t0)|,usmall), if t < t0 + window y(t) = percentageIncrease(t) ≤ upperPercentageLimit
Whenever this property is fulfilled, Boolean output y = true, otherwise y = false.
The denominator of the percentageIncrease uses the max(...,usmall)) construction to guard against division by 0.
Note, percentageIncrease and upperPercentageLimit have unit [%].
The property is demonstrated with the following example calling the block as:
results in
simulation result |