PerformanceIndicatorIndicator function using fuzzy membership functions |
This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
The output y is the dimensionless degree of membership to the set of "good performances" or "good outcomes" according to a chosen type of membership function. Using the PerformanceIndicator allows to quickly grasp how a system is currently performing with regard to some criteria: a value of 1 indicates best possible performance, while a value of 0 indicates unsustainable performance.
The following grid displays all available membership function types without inversion (invertResults = false
):
Membership Function Type | a | b | c | d |
---|---|---|---|---|
ramp | foot | shoulder | ||
triangular | left foot | center | right foot | |
trapezoidal | left foot | left shoulder | right shoulder | right foot |
sshaped | foot | shoulder | ||
sigmoidal | steepness of transition area | center of transition area | ||
pishaped | left foot | left shoulder | right shoulder | right foot |
psigmoidal | steepness of left transition | center of left transition area | steepness of right transition | center of right transition area |
gaussian | half width at half maximum | center of curve (maximum) | ||
bell | width of core | steepness | center of core |
When inversion is turned on (invertResult = true
) the result obtained from the membership function as specified will be subtracted from 1. Thus the ramp shown above can be made to ramp down from left to right with a
being the shoulder and b
the foot by inverting the results.
rampmf, trapmf, trimf, smf, sigmf, pimf, psigmf, gaussmf, gbellmf
convertInput |
Value: false Type: Boolean Description: = true, if the input value is a rate or time variable that needs to be converted |
---|---|
inputIsRate |
Value: false Type: Boolean Description: = true, if the input is given in units of time, otherwise it is assumed to be a rate |
convertOutput |
Value: false Type: Boolean Description: = true, if the output value is a rate or time variable that needs to be converted |
outputIsRate |
Value: false Type: Boolean Description: = true, if the output is given in units of time, otherwise it is assumed to be a rate |
a |
Value: Type: InputType Description: Parameter to control shape of membership function |
b |
Value: Type: InputType Description: Parameter to control shape of membership function |
c |
Value: Type: InputType Description: Parameter to control shape of membership function |
d |
Value: Type: InputType Description: Parameter to control shape of membership function |
mft |
Value: MembershipFunctionTypes.ramp Type: MembershipFunctionTypes Description: Membership function type to use |
invertResult |
Value: false Type: Boolean Description: = true, if the degree of membership is to be inverted (i.e., y = 1 - mf(u)) |
y |
Type: RealOutput Description: Output signal |
|
---|---|---|
u |
Type: RealInput Description: Input |
|
u_c |
Type: RealOutput Description: Input after conversion |
|
y_c |
Type: RealOutput Description: Output before conversion |
modelSettings |
Type: ModelSettings Description: Setting important global variables within a model |
|
---|---|---|
rateConversionIn |
Type: RateConversion Description: Convert the input (rate) to another time base |
|
noConversionIn |
Type: PassThrough Description: Use input as is |
|
timeConversionIn |
Type: TimeConversion Description: Convert the input to another time base |
|
noConversionOut |
Type: PassThrough Description: Use output as is |
|
rateConversionOut |
Type: RateConversion Description: Convert the output (rate) to 1/s |
|
timeConversionOut |
Type: TimeConversion Description: Convert the output to seconds |
BusinessSimulation.CausalLoop Evaluation of a stock on a [0,1] scale |
a,b,c,d
to InputType
in v2.2.