SoftMinGradual approach of a ceiling that cannot be exceeded |
![]() |
The output y is obtained by applying a factor in the interval [0,1] to the maximum output u_max (the ceiling). It effectively calculates a smooth minimum with regard to the inputs u and u_max:
The following graph shows the results for u_max = 1.0
and k ∈ {10,5,3,2}
:
When the intended output u
is a small fraction of the maximum output u_max
(ceiling) the actual output y
will be equal to the intended output. As u
approaches the ceiling the limitations will have a gradual effect so that less than the intended output is returned. Eventually the output will be identical to the maximum value.
u : u_max
is used as input to the smooth minimum; John Sterman [3, pp. 711-713] uses the ratio u_max : u
instead.k |
Value: 4.7 Type: Real Description: Parameter to control the closeness to a hard minimum |
---|---|
useMinOperator |
Value: false Type: Boolean Description: = true, if a regular 'hard' minimum is to be used |
clipNegativeOutput |
Value: true Type: Boolean Description: = true, if output can never be less than zero |
strict |
Value: true Type: Boolean Description: = true, if strict limits with noEvent(..) (clippedOutput.strict) |
![]() |
y |
Type: RealOutput |
---|---|---|
![]() |
u |
Type: RealInput Description: Input |
![]() |
u_max |
Type: RealInput Description: The ceiling |
![]() |
hardMin |
Type: Min Description: Hard min operator |
---|---|---|
![]() |
clippedOutput |
Type: ZeroIfNegative |
![]() |
unclippedOutput |
Type: PassThrough |
![]() |
expMaxUtil |
Type: Exp |
![]() |
scaledMaxUtil |
Type: Gain |
![]() |
scaledInput |
Type: Gain |
![]() |
expInput |
Type: Exp |
![]() |
sumExp |
Type: Add_2 |
![]() |
logSum |
Type: Log |
![]() |
adjustmentFactor |
Type: Gain |
![]() |
softMin |
Type: Product_2 |
![]() |
maxUtilization |
Type: ConstantConverter Description: Maximum utilization |
![]() |
utilization |
Type: Division_Guarded Description: Fraction of the maximum |