LSR/worker.fcl

111 lines
4.0 KiB
Plaintext
Raw Normal View History

2020-06-04 19:21:01 +02:00
FUNCTION_BLOCK worker
VAR_INPUT
form1: REAL;
form2: REAL;
points: REAL;
END_VAR
VAR_OUTPUT
result: REAL;
END_VAR
FUZZIFY form1
2020-06-04 21:29:51 +02:00
RANGE := (-1.000 .. 5.000);
2020-06-10 11:29:47 +02:00
TERM bad := (0.5,1)(1.5,0);
TERM notbad := (0.5,0)(1.5,1)(2.5,0)
TERM avg := (1.5,0)(2.5,1)(3.5,0)
TERM notgreat := (2.5,0)(3.5,1)(4.5,0)
TERM great := (3.5,0)(4.5,1);
2020-06-04 19:21:01 +02:00
END_FUZZIFY
FUZZIFY form2
2020-06-04 21:29:51 +02:00
RANGE := (-1.000 .. 5.000);
2020-06-10 11:29:47 +02:00
TERM bad := (0.5,1)(1.5,0);
TERM notbad := (0.5,0)(1.5,1)(2.5,0)
TERM avg := (1.5,0)(2.5,1)(3.5,0)
TERM notgreat := (2.5,0)(3.5,1)(4.5,0)
TERM great := (3.5,0)(4.5,1);
2020-06-04 19:21:01 +02:00
END_FUZZIFY
FUZZIFY points
RANGE := (-30.000 .. 30.000);
TERM low := (-20,1)(-5,0);
TERM avg := (-10,0)(-3,1)(3,1)(10,0);
TERM high := (10,0)(20,1);
END_FUZZIFY
DEFUZZIFY result
RANGE := (-1.000 .. 1.000);
TERM home := (-1,1) (0,0);
2020-06-09 17:11:27 +02:00
TERM draw := (-0.5,0) (0,1) (0.5,0);
2020-06-04 19:21:01 +02:00
TERM away := (0,0) (1,1);
METHOD : COG;
// ACCU : MAX;
DEFAULT := 0
END_DEFUZZIFY
RULEBLOCK
AND : MIN;
ACCU : MAX;
ACT : MIN;
2020-06-09 19:57:26 +02:00
2020-06-10 11:29:47 +02:00
// form1: great | form2
RULE 0 : if form1 is great and form2 is bad then result is home
RULE 1 : if form1 is great and form2 is notbad then result is home
2020-06-04 21:29:51 +02:00
RULE 2 : if form1 is great and form2 is avg then result is home
2020-06-10 11:29:47 +02:00
RULE 3 : if form1 is great and form2 is notgreat then result is home
//rozbicie jednego draw
RULE 4 : if form1 is great and form2 is great and points is low then result is away
RULE 5 : if form1 is great and form2 is great and points is avg then result is draw
RULE 6 : if form1 is great and form2 is great and points is high then result is home
// form1: notgreat | form2
RULE 7 : if form1 is notgreat and form2 is bad then result is home
RULE 8 : if form1 is notgreat and form2 is notbad then result is home
// rozbicie
RULE 9 : if form1 is notgreat and form2 is avg and points is low then result is away
RULE 10 : if form1 is notgreat and form2 is avg and points is avg then result is draw
RULE 11 : if form1 is notgreat and form2 is avg and points is high then result is home
// rozbicie
RULE 12 : if form1 is notgreat and form2 is notgreat and points is low then result is away
RULE 13 : if form1 is notgreat and form2 is notgreat and points is avg then result is draw
RULE 14 : if form1 is notgreat and form2 is notgreat and points is high then result is home
RULE 15 : if form1 is notgreat and form2 is great then result is away
// form1: avg | form2
RULE 16 : if form1 is avg and form2 is bad then result is home
RULE 17 : if form1 is avg and form2 is notbad then result is home
// rozbicie
RULE 18 : if form1 is avg and form2 is avg and points is low then result is away
RULE 19 : if form1 is avg and form2 is avg and points is avg then result is draw
RULE 20 : if form1 is avg and form2 is avg and points is high then result is home
RULE 21 : if form1 is avg and form2 is notgreat then result is away
RULE 22 : if form1 is avg and form2 is great then result is away
// form1: notbad | form2
RULE 23 : if form1 is notbad and form2 is bad then result is home
//rozbicie
RULE 24 : if form1 is notbad and form2 is notbad and points is low then result is away
RULE 25 : if form1 is notbad and form2 is notbad and points is avg then result is draw
RULE 26 : if form1 is notbad and form2 is notbad and points is high then result is home
RULE 27 : if form1 is notbad and form2 is avg then result is away
RULE 28 : if form1 is notbad and form2 is notgreat then result is away
RULE 29 : if form1 is notbad and form2 is great then result is away
2020-06-04 21:29:51 +02:00
2020-06-10 11:29:47 +02:00
// form1: bad | form2
//rozbicie
RULE 30 : if form1 is bad and form2 is bad and points is low then result is away
RULE 31 : if form1 is bad and form2 is bad and points is avg then result is draw
RULE 32 : if form1 is bad and form2 is bad and points is low then result is home
RULE 33 : if form1 is bad and form2 is notbad then result is away
RULE 34 : if form1 is bad and form2 is avg then result is away
RULE 35 : if form1 is bad and form2 is notgreat then result is away
RULE 36 : if form1 is bad and form2 is great then result is away
2020-06-04 21:29:51 +02:00
2020-06-09 19:57:26 +02:00
2020-06-04 19:21:01 +02:00
END_RULEBLOCK
END_FUNCTION_BLOCK