首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算fcl文件时出现异常

计算fcl文件时出现异常
EN

Stack Overflow用户
提问于 2012-09-20 01:10:11
回答 1查看 438关注 0票数 0

我正在使用java中的jFuzzyLogic library

我使用的Fcl文件是:

代码语言:javascript
复制
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

我使用的java代码片段是:

代码语言:javascript
复制
FIS fis = FIS.load(fileName,true);

//set variables

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

这是我得到的异常:

代码语言:javascript
复制
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解模糊器不能与单例一起使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-21 22:57:18

首先,缺少一个END_FUZZIFY。当使用单例时,真正的问题是METHOD : COG;,反模糊化方法必须是METHOD : COGS;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12499585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档