diff options
Diffstat (limited to 'examples/hybrid/tipper.fcl')
-rw-r--r-- | examples/hybrid/tipper.fcl | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/examples/hybrid/tipper.fcl b/examples/hybrid/tipper.fcl new file mode 100644 index 0000000..299dbb8 --- /dev/null +++ b/examples/hybrid/tipper.fcl @@ -0,0 +1,66 @@ +//Code automatically generated with fuzzylite 6.0. + +FUNCTION_BLOCK tipper + +VAR_INPUT + service: REAL; + food: REAL; +END_VAR + +VAR_OUTPUT + mTip: REAL; + tsTip: REAL; +END_VAR + +FUZZIFY service + RANGE := (0.000 .. 10.000); + TERM poor := Trapezoid 0.000 0.000 2.500 5.000; + TERM good := Triangle 2.500 5.000 7.500; + TERM excellent := Trapezoid 5.000 7.500 10.000 10.000; +END_FUZZIFY + +FUZZIFY food + RANGE := (0.000 .. 10.000); + TERM rancid := Trapezoid 0.000 0.000 2.500 7.500; + TERM delicious := Trapezoid 2.500 7.500 10.000 10.000; +END_FUZZIFY + +DEFUZZIFY mTip + RANGE := (0.000 .. 30.000); + TERM cheap := Triangle 0.000 5.000 10.000; + TERM average := Triangle 10.000 15.000 20.000; + TERM generous := Triangle 20.000 25.000 30.000; + METHOD : COG; + ACCU : MAX; + DEFAULT := nan; +END_DEFUZZIFY + +DEFUZZIFY tsTip + RANGE := (0.000 .. 30.000); + TERM cheap := 5.000; + TERM average := 15.000; + TERM generous := 25.000; + METHOD : COGS; + DEFAULT := nan; +END_DEFUZZIFY + +RULEBLOCK mamdani + AND : PROD; + OR : ASUM; + ACT : MIN; + RULE 1 : if service is poor or food is rancid then mTip is cheap + RULE 2 : if service is good then mTip is average + RULE 3 : if service is excellent or food is delicious then mTip is generous with 0.5 + RULE 4 : if service is excellent and food is delicious then mTip is generous with 1.0 +END_RULEBLOCK + +RULEBLOCK takagiSugeno + AND : PROD; + OR : ASUM; + RULE 1 : if service is poor or food is rancid then tsTip is cheap + RULE 2 : if service is good then tsTip is average + RULE 3 : if service is excellent or food is delicious then tsTip is generous with 0.5 + RULE 4 : if service is excellent and food is delicious then tsTip is generous with 1.0 +END_RULEBLOCK + +END_FUNCTION_BLOCK |