2012-09-19 3 views
0

java에서 jFuzzyLogic library을 사용하고 있습니다.fcl 파일을 예외로 평가했습니다.

FUNCTION_BLOCK rischio_ciclo_fenologico 


VAR_INPUT 
    ciclo_colturale : REAL; 
    ciclo_vegetativo : REAL; 
END_VAR 

VAR_OUTPUT 
    rischio_ciclo_fenologico : REAL; 
END_VAR 

FUZZIFY ciclo_colturale 
    TERM alto := 0 ; 
    TERM medio := 1 ; 
    TERM basso := 2 ; 
FUZZIFY ciclo_vegetativo 
    TERM alto := 0 ; 
    TERM medio := 1 ; 
    TERM basso := 2 ; 
END_FUZZIFY 

DEFUZZIFY rischio_ciclo_fenologico 
    TERM alto := 0 ; 
    TERM basso := 100 ; 
    METHOD : COG; 
    DEFAULT := 0; 
END_DEFUZZIFY 

RULEBLOCK No1 
    AND : MIN; 
    ACT : MIN; 
    ACCU : MAX; 

    RULE 1 : IF ciclo_colturale IS alto AND ciclo_vegetativo IS alto THEN rischio_ciclo_fenologico IS alto ; 
    RULE 2 : IF ciclo_colturale IS alto AND ciclo_vegetativo IS medio THEN rischio_ciclo_fenologico IS basso ; 
    RULE 3 : IF ciclo_colturale IS alto AND ciclo_vegetativo IS basso THEN rischio_ciclo_fenologico IS basso ; 
    RULE 4 : IF ciclo_colturale IS medio AND ciclo_vegetativo IS alto THEN rischio_ciclo_fenologico IS basso ; 
    RULE 5 : IF ciclo_colturale IS basso AND ciclo_vegetativo IS alto THEN rischio_ciclo_fenologico IS basso ; 
    RULE 6 : IF ciclo_colturale IS medio AND ciclo_vegetativo IS medio THEN rischio_ciclo_fenologico IS basso ; 
    RULE 7 : IF ciclo_colturale IS basso AND ciclo_vegetativo IS basso THEN rischio_ciclo_fenologico IS basso ; 
    RULE 8 : IF ciclo_colturale IS medio AND ciclo_vegetativo IS basso THEN rischio_ciclo_fenologico IS basso ; 
    RULE 9 : IF ciclo_colturale IS basso AND ciclo_vegetativo IS medio THEN rischio_ciclo_fenologico IS basso ; 

END_RULEBLOCK 
END_FUNCTION_BLOCK 

내가 사용하고 자바 코드는 다음과 같습니다 :

내가 사용하고있어 FCL 파일은

FIS fis = FIS.load(fileName,true); 

//set variables 

fis.evaluate(); 
return fis.getVariable("rischio_ciclo_fenologico").getValue(); 

그리고 이것은 내가 얻을 예외입니다 :

java.lang.RuntimeException: MembershipFunction and Defuzzifier are neither both discrete nor both continuous 
    Term: rischio_ciclo_fenologico IS alto 
    Membership function: Singleton : {0.0, 1.0} 
    Defuzzifier: CenterOfGravity 

내가 뭘 잘못하고있어? 예외가 너무 분명하지 않습니다. CenterOfGravity Defuzzifier를 싱글 톤과 함께 사용할 수 없습니까?

답변

2

우선, 누락되었습니다 END_FUZZIFY입니다. 싱글 톤을 사용할 때 실제 문제는 METHOD : COG;이고 퍼지 메서드는 METHOD : COGS;

이어야합니다.