FUZZY LOGIC CODE
FUNCTION_BLOCK controladord
VAR_INPUT
distanciai : REAL;
distanciad : REAL;
END_VAR
VAR_OUTPUT
velocidad : REAL;
END_VAR
FUZZIFY distanciai
TERM baja := trian 5 150 300;
TERM media := trian 310 460 620;
TERM alta := trian 610 800 1003;
END_FUZZIFY
FUZZIFY distanciad
TERM baja := trian 5 150 300;
TERM media := trian 310 460 620;
TERM alta := trian 610 800 1003;
END_FUZZIFY
DEFUZZIFY velocidad
TERM baja := trape 0 1 2 3;
TERM media := trape 2 4 5 6;
TERM alta := trape 5 7 8.5 10;
METHOD : COG;
DEFAULT:=0;
END_DEFUZZIFY
RULEBLOCK Reglas1
ACT : MIN;
AND : MIN;
ACCU : MAX;
RULE R1: IF distanciai IS baja AND distanciad IS baja THEN velocidad is baja;
RULE R2: IF distanciai IS baja AND distanciad IS media THEN velocidad is media;
RULE R3: IF distanciai IS baja AND distanciad IS alta THEN velocidad is media;
RULE R4: IF distanciai IS media AND distanciad IS baja THEN velocidad is baja;
RULE R5: IF distanciai IS media AND distanciad IS media THEN velocidad is media;
RULE R6: IF distanciai IS media AND distanciad IS alta THEN velocidad is alta;
RULE R7: IF distanciai IS alta AND distanciad IS baja THEN velocidad is media;
RULE R8: IF distanciai IS alta AND distanciad IS media THEN velocidad is alta;
RULE R9: IF distanciai IS alta AND distanciad IS alta THEN velocidad is alta;
END_RULEBLOCK
END_FUNCTION_BLOCK
Comentarios
Publicar un comentario