Class EsReason

{

pr otected:

Majo rTable * M ajor ;

SigalTable * Sig al;

Co nclut ionTable * Conclutio n;

Po int Table * point;

RuleTable * Rule ;

BOOL Connectio nDb( ) ;

BOOL LoadT able ( CStr ing name) ;

CStr ing Var iantToCStr ing ( co nst _ var iant_t & var) ;

CStr ing Curr entConditio ns [ 100] ;

CStr ing Curr entConclusio ns[ 100] ;

CStr ing pr og ram;

unsig ned int To tal_Cur rentCo nditions;

unsig ned int To tal_Cur rentCo nclusio ns;

BOOL Reasoning( ) ;

BOOL NEWff( ) ;

}

其中,* Major,* Siga1,* Conctution,* point以及* Rule定义指向主故障模式表、征兆表、结论表、测试点表及规则表的结构指针,便于对数据库中各表数据的记录及访问。通过建立BOOL型成员函数ConnectionDb和LoadTable来实现数据库的连接及加载。在加载数据库时,通过设置SQL语言为打开各个数据表做准备,然后调用记录集指针的成员函数Open打开各个表中的各条记录。通过记录集指针的移动记录各个表中记录集的数目,然后根据记录集指针的移动把各表中的记录存到申请的动态内存中。

综合数据库通过数组Current Conditions[100]和Current Conclusions[100]实现,综合数据库用来记录推理过程中的初始条件、中间结果及最终结论的编码,方便推理机通过综合数据库里的内容进行正向推理,通过CString类型的变量program记录推理过程中用到的规则,以实现推理过程中的解释功能。

在类EsReason中核心的函数是Reasoning和NEWff,Reasoning函数的工作过程为:把综合数据库中的事实作为初始条件,与规则库中的规则前件进行匹配;当规则被激活,通过这些激活的规则,推理函数把结论放到综合数据库中继续推理,直到再没有其他规则的前件能与综合数据库内的事实相匹配为止。在推理过程中用到一个很重要的BOOL型的成员变量Rule_Used记录用过的规则,这样可以避免在推理过程中出

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查