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.