summaryrefslogtreecommitdiff
path: root/examples/mamdani/SimpleDimmer.fcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/mamdani/SimpleDimmer.fcl')
-rw-r--r--examples/mamdani/SimpleDimmer.fcl35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/mamdani/SimpleDimmer.fcl b/examples/mamdani/SimpleDimmer.fcl
new file mode 100644
index 0000000..a9b9552
--- /dev/null
+++ b/examples/mamdani/SimpleDimmer.fcl
@@ -0,0 +1,35 @@
+FUNCTION_BLOCK simple-dimmer
+
+VAR_INPUT
+ Ambient: REAL;
+END_VAR
+
+VAR_OUTPUT
+ Power: REAL;
+END_VAR
+
+FUZZIFY Ambient
+ RANGE := (0.000 .. 1.000);
+ TERM DARK := Triangle 0.000 0.250 0.500;
+ TERM MEDIUM := Triangle 0.250 0.500 0.750;
+ TERM BRIGHT := Triangle 0.500 0.750 1.000;
+END_FUZZIFY
+
+DEFUZZIFY Power
+ RANGE := (0.000 .. 1.000);
+ TERM LOW := Triangle 0.000 0.250 0.500;
+ TERM MEDIUM := Triangle 0.250 0.500 0.750;
+ TERM HIGH := Triangle 0.500 0.750 1.000;
+ METHOD : COG;
+ ACCU : MAX;
+ DEFAULT := nan;
+END_DEFUZZIFY
+
+RULEBLOCK
+ ACT : MIN;
+ RULE 1 : if Ambient is DARK then Power is HIGH
+ RULE 2 : if Ambient is MEDIUM then Power is MEDIUM
+ RULE 3 : if Ambient is BRIGHT then Power is LOW
+END_RULEBLOCK
+
+END_FUNCTION_BLOCK