(* FCL File Created From FFLL Model: Thu Aug 01 11:37:45 2002 *) FUNCTION_BLOCK VAR_INPUT Separation REAL; (* RANGE(-200 .. 200) *) END_VAR VAR_OUTPUT Velocity REAL; (* RANGE(-29.3 .. 29.3) *) END_VAR FUZZIFY Separation TERM LG_NEG := (-200, 0) (-200, 1) (-110, 1) (-40, 0); TERM MD_NEG := (-130,0) (-110, 1) (-58, 1) (-15, 0); TERM SM_NEG := (-50, 0) (-10, 1) (0, 0); TERM ZERO := (-15, 0) (0, 1) (15, 0); TERM SM_POS := (0, 0) (10, 1) (50, 0); TERM MD_POS := (15, 0) (58, 1) (110, 1) (130, 0); TERM LG_POS := (40, 0) (110, 1)(200, 1) (200, 0); END_FUZZIFY FUZZIFY Velocity TERM LG_NEG := (-29.3, 0) (-29.3, 1) (-26, 0); TERM MD_NEG := (-26, 0) (-15, 1) (-10, 0); TERM SM_NEG := (-13, 0) (-8, 1) (-1, 0); TERM ZERO := (-2, 0) (0, 1) (2, 0); TERM SM_POS := (1, 0) (8, 1) (13, 0); TERM MD_POS := (10, 0) (15, 1) (26, 0); TERM LG_POS := (26, 0) (29.3, 1) (29.3, 0); END_FUZZIFY DEFUZZIFY Velocity METHOD: COG; END_DEFUZZIFY RULEBLOCK first AND:MIN; ACCU:MAX; RULE 0: IF (Separation IS LG_NEG) THEN (Velocity IS LG_NEG); RULE 1: IF (Separation IS MD_NEG) THEN (Velocity IS LG_NEG); RULE 2: IF (Separation IS SM_NEG) THEN (Velocity IS SM_NEG); RULE 3: IF (Separation IS ZERO) THEN (Velocity IS ZERO); RULE 4: IF (Separation IS SM_POS) THEN (Velocity IS SM_POS); RULE 5: IF (Separation IS MD_POS) THEN (Velocity IS LG_POS); RULE 6: IF (Separation IS LG_POS) THEN (Velocity IS LG_POS); END_RULEBLOCK END_FUNCTION_BLOCK