blockJanoschekNegative

Janoschek's (S-shaped) growth curve with negative slope

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:

y = l - (l-beta) * Exp(-k x^delta)

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


AnimatedGraph.gif

Notes

  • The lowerBound must be smaller than the upperBound. Also y_ref needs to be in the range [lowerBound, upperBound], while x_ref has to be a positive number larger than zero.

  • By default (strict = true) the component will not generate events.

See also

JanoschekPositive

Parameters

TypeNameDefaultDescription
RealupperBound2Upper asymptote for u <= 0 (upperBound > lowerBound)
ReallowerBound0Lower asymptote for u -> infinity
RealgrowthRate2Determines the gradient of the curve
InputTypex_ref1x-value (i.e., u) for point of inflection(>0)
Realy_ref1y-value for point of inflection(lowerBound < y_ref < upperBound)
Time Conversion
BooleanconvertInput (from SISO_Conversion)false= true, if the input value is a rate or time variable that needs to be converted
BooleaninputIsRate (from SISO_Conversion)false= true, if the input is given in units of time, otherwise it is assumed to be a rate
BooleanconvertOutput (from SISO_Conversion)false= true, if the output value is a rate or time variable that needs to be converted
BooleanoutputIsRate (from SISO_Conversion)false= true, if the output is given in units of time, otherwise it is assumed to be a rate
TimeBasestimeBaseInput (from SISO_Conversion)TimeBases.secondsTimeBase to convert from (default = seconds)
TimeBasestimeBaseTableIn (from SISO_Conversion)modelSettings.modelDisplayTimeBaseTimeBase used for the lookup function input (default = modelDisplayTimeBase)
TimeBasestimeBaseTableOut (from SISO_Conversion)modelSettings.modelDisplayTimeBaseTimeBase assumed for the lookup function output (default = modelSettings.modelDisplayTimeBase)
TimeBasestimeBaseOutput (from SISO_Conversion)TimeBases.secondsTimeBase used for the output (default = seconds)
Advanced
Booleanstricttrue= true, if strict limits with noEvent(..)

Connectors

TypeNameDefaultDescription
Connectors.RealInputu (from SISO)Input

Components

TypeNameDefaultDescription
RealOutputy (from SO)
ModelSettingsmodelSettings (from SISO_Conversion)

Revisions

  • Modified in v2.0.0.

  • Changed type for x_ref to InputType in v2.2.