blockJanoschekNegative
Extends from Interfaces.PartialConverters.SISO_Conversion (Partial SISO converter class with input and output conversions for lookup functions).
Information
This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
This negative sloping Janoschek-Growth-Curve is simply a modification of the positive version. For more detail see JanoschekPositive.
The function is given by the following equation:
Where l is the lower bound, β is the upper bound, and δ is a parameter that determines the rate of growth (e.g., steepness of the curve). Given the point of inflection (x_ref,y_ref) the parameter k can be obtained in closed form, which is made use of in this implementation.
The following animation shows a growth curve with the following parameters:
| Parameter | Value |
|---|---|
upperBound |
2 |
lowerBound |
0.1 |
(x_ref, y_ref) |
(1,1) |
growthRate |
1, ... ,10 |

Notes
- The
lowerBoundmust be smaller than theupperBound. Alsoy_refneeds to be in the range [lowerBound, upperBound], whilex_refhas to be a positive number larger than zero. - By default (
strict = true) the component will not generate events.
See also
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | upperBound | 2 | Upper asymptote for u <= 0 (upperBound > lowerBound) |
| Real | lowerBound | 0 | Lower asymptote for u -> infinity |
| Real | growthRate | 2 | Determines the gradient of the curve |
| InputType | x_ref | 1 | x-value (i.e., u) for point of inflection(>0) |
| Real | y_ref | 1 | y-value for point of inflection(lowerBound < y_ref < upperBound) |
| Time Conversion | |||
| Boolean | convertInput (from SISO_Conversion) | false | = true, if the input value is a rate or time variable that needs to be converted |
| Boolean | inputIsRate (from SISO_Conversion) | false | = true, if the input is given in units of time, otherwise it is assumed to be a rate |
| Boolean | convertOutput (from SISO_Conversion) | false | = true, if the output value is a rate or time variable that needs to be converted |
| Boolean | outputIsRate (from SISO_Conversion) | false | = true, if the output is given in units of time, otherwise it is assumed to be a rate |
| TimeBases | timeBaseInput (from SISO_Conversion) | TimeBases.seconds | TimeBase to convert from (default = seconds) |
| TimeBases | timeBaseTableIn (from SISO_Conversion) | modelSettings.modelDisplayTimeBase | TimeBase used for the lookup function input (default = modelDisplayTimeBase) |
| TimeBases | timeBaseTableOut (from SISO_Conversion) | modelSettings.modelDisplayTimeBase | TimeBase assumed for the lookup function output (default = modelSettings.modelDisplayTimeBase) |
| TimeBases | timeBaseOutput (from SISO_Conversion) | TimeBases.seconds | TimeBase used for the output (default = seconds) |
| Advanced | |||
| Boolean | strict | true | = true, if strict limits with noEvent(..) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Connectors.RealInput | u (from SISO) | Input |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| RealOutput | y (from SO) | ||
| ModelSettings | modelSettings (from SISO_Conversion) |
Revisions
- Modified in v2.0.0.
- Changed type for
x_reftoInputTypein v2.2.