基于AOstar算法最优诊断生成组件设计与实现.docVIP

基于AOstar算法最优诊断生成组件设计与实现.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AOstar算法最优诊断生成组件设计与实现

基于AOstar算法最优诊断生成组件设计与实现   摘 要:最优诊断树是电子可测性设计与分析的重要研究内容,也是电子系统故障隔离的基础。针对国内对最优故障诊断树研究和应用的需求,介绍了采用启发式AO*(AOstar)算法求解最优故障诊断树的方法,并将该算法封装实现为COM组件。与国外可测性分析软件TEAMS生成的诊断树结果对比分析,表明结果准确,组件易扩展,可以方便的嵌入到可测性设计与分析以及故障诊断软件之中。   关键词:最优诊断树;故障诊断;AO*算法;启发函数   最优诊断树是一种将电子系统故障形成的原因由总体至部分按树枝状逐级细化并隔离出故障的分析方法,也是隔离复杂系统发生的故障的一种简单、有效、很有发展前途的方法。故障诊断树的生成和优化涉及到测试点的选取、目标函数的确定、生成算法等多方面的问题。文献[1]研究了AO*启发式最优诊断树搜索算法,国外可测性分析软件TEAMS已经实现了故障诊断树生成功能[2],但存在技术封锁问题,国内仍缺乏相关的最优诊断树生成组件或软件平台[3]~[7]。本文针对国内最优诊断树研究、应用的需求,实现了AO*最优诊断树算法,并封装为COM组件,可以方便嵌入到可测性设计与分析软件以及故障诊断软件之中。   1 最优诊断树生成算法   诊断树(也称测试序列)是诊断故障时的测试先后顺序。对系统进行测试时,最好在实现故障诊断的同时达到测试时间少、费用低等要求。而最优诊断树是在考虑测试结果、测试代价及故障率的同时,使测试代价最小的有效的序列。   求解测试序列(也可称为最优诊断树),可将问题用简洁的形式定义为五元组{S,P,T,C,D}之间的关系[3]。其中   S=[s0,s1,s2,…,sm]是系统状态的有限集合,s0为系统的无故障状态,而si(1≤i≤m)分别表示系统的m个不同故障状态;   P=[p(s0),p(s1),…,p(sm)]T是系统各状态的先验概率(也称故障率)向量集;   T=[t1,t2,…,tn]是n个可选的测试集;   C=[c1,c2,…,cn]T是测试代价向量集,由测试时间、人力需求及其他经济因素决定;   D=[dij]是由故障集和测试集的二元依赖关系得到矩阵,其中系统无故障状态s0对应的行dij(1≤j≤n)值始终为0??   某系统含故障率和测试代价的依赖矩阵如表1所示。   1.1 启发评估函数   启发函数HEF是一个容易计算的最优测试代价的启发式评估函数h(x)。本文的结合信息论和启发式搜索方法,将Huffman平均编码长度作为启发函数HEF[1]。   假设模糊集x的故障概率降序排序为p(s0)≥p(s1)≥…≥p(sm),其si∈x中,则与概率向量P=[p(s0),p(s1),…,p(sm)]T对应的最优Huffman编码长度向量为ω=[1,2,…,m-1,m,m]。模糊子集x的平均Huffman编码长度w*(x)为   一般地假设测试代价按升序排序为0≤c1≤c2≤…≤cn,则h(x)的下限HEF如公式(2)   式中:w′(x)为w*(x)的整数部分,cj为测试成本。   1.2 AO*搜索算法   AO*算法是一种有序的、最佳优先的搜索算法。它根据启发式估值函数h(x)自顶向下扩展搜索图中的最有希望达到目标节点的节点x,本文使用公式(2)作为评估函数h(x)。当扩展至底部时,采用下述公式(3)计算模糊集y的实际测试代价,并用公式(4)修正模糊集y的最小测试代价e,选择最合适的测试,即自底向上回溯。具体运算步骤参见文献[1]。   )   (3)(4)式中:Eyj为采用tj展开模糊集y的实际测试代价,cj为tj的固有测试成本,yjp为模糊集y通过测试tj的子集,yif为未通过测试tj的子集,p(yjp)、p(yif)分别为模糊子集yjp、yjf的概率,E(yjp)、E(yjf)分别为模糊子集yjp、yjf的实际测试成本,Πy为前续测试已经使用过了的测试集。   2 软件设计及实现   本软件基于Windows操作系统,使用Visual C++6.0开发工具和面向对象的方法进行设计和开发。结构图如图1所示。   考虑到组件的独立性、平台移植性及整个软件的易扩展性,整体采用COM技术进行封装。如果按功能属性进行划分,可以大致分为AO*最优诊断树生成模块、显示交互模块。为了保障各子模块间内存数据的独立性,各子模块均包含独立的内部缓冲区,子模块间的数据传递是通过拷贝实现的。组件接口定义及模块设计介绍如下。   使用本组件时,只需要调用接口函数SetData(int* D,int m,int n,double* P,double* C)即可完成生成诊断树所需的{S,P,T,C,D}数据初始化。其中D为待分析系

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档