diff options
Diffstat (limited to 'examples/takagi-sugeno/octave/linear_tip_calculator.fcl')
-rw-r--r-- | examples/takagi-sugeno/octave/linear_tip_calculator.fcl | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/examples/takagi-sugeno/octave/linear_tip_calculator.fcl b/examples/takagi-sugeno/octave/linear_tip_calculator.fcl new file mode 100644 index 0000000..d326b2e --- /dev/null +++ b/examples/takagi-sugeno/octave/linear_tip_calculator.fcl @@ -0,0 +1,41 @@ +FUNCTION_BLOCK Linear-Tip-Calculator + +VAR_INPUT + FoodQuality: REAL; + Service: REAL; +END_VAR + +VAR_OUTPUT + Tip: REAL; +END_VAR + +FUZZIFY FoodQuality + RANGE := (1.000 .. 10.000); + TERM Bad := Trapezoid 0.000 1.000 3.000 7.000; + TERM Good := Trapezoid 3.000 7.000 10.000 11.000; +END_FUZZIFY + +FUZZIFY Service + RANGE := (1.000 .. 10.000); + TERM Bad := Trapezoid 0.000 1.000 3.000 7.000; + TERM Good := Trapezoid 3.000 7.000 10.000 11.000; +END_FUZZIFY + +DEFUZZIFY Tip + RANGE := (10.000 .. 20.000); + TERM TenPercent := Linear 0.000 0.000 10.000; + TERM FifteenPercent := Linear 0.000 0.000 15.000; + TERM TwentyPercent := Linear 0.000 0.000 20.000; + METHOD : COGS; + DEFAULT := nan; +END_DEFUZZIFY + +RULEBLOCK + AND : MIN; + RULE 1 : if FoodQuality is Bad and Service is Bad then Tip is TenPercent + RULE 2 : if FoodQuality is Bad and Service is Good then Tip is FifteenPercent + RULE 3 : if FoodQuality is Good and Service is Bad then Tip is FifteenPercent + RULE 4 : if FoodQuality is Good and Service is Good then Tip is TwentyPercent +END_RULEBLOCK + +END_FUNCTION_BLOCK |