基于禁忌搜索算法的故障诊断策略优化
2018-07-24刘远宏冯辅周
张 睿, 丛 华, 刘远宏, 冯辅周
(1. 陆军装甲兵学院车辆工程系, 北京 100072; 2. 武警工程大学装备管理与保障学院, 陕西 西安 710086)
制定合理的故障诊断策略是武器装备测试性设计的重要内容之一。故障诊断策略是指综合考虑规定约束、目标和有关影响因素而确定的用于隔离产品故障的测试步骤或顺序[1]。合理的测试步骤或顺序不仅可提升故障诊断效率,而且可降低装备维修保障的成本。诊断策略优化是一种典型的NP-Complete问题,传统的优化方法有贪婪搜索[2]、AO*搜索[2]、Rollout信息启发式[3-4]和基于启发式算法[5-6]。其中:贪婪搜索算法只利用了单步信息进行启发式搜索,得到的策略是局部最优解,优化效果较差;Rollout信息启发式算法将贪婪搜索作为基准策略进行迭代搜索,获得的是近似全局最优解;AO*搜索算法是进行全局最优搜索,但搜索过程中扩展节点和存储路径较多,造成计算时间较长,对于复杂系统并不适用;基于启发式算法使用的多为现代启发式优化算法,优化效果较好,但收敛性不足,容易陷入局部最优。
禁忌搜索算法是一种全局逐步寻优的算法,其利用禁忌记忆表和藐视准则跳出局部最优,在全局范围内逐步逼近全局最优解,通过设置禁忌记忆表对某些局部最优解进行禁忌,具有“容错”的特点,跳出局部最优解的能力较强,可以避免在搜索过程中陷入局部最优解[7-8],已被用于解决多种NP-Complete问题。笔者借鉴禁忌搜索算法解决NP-Complete问题的思路,利用其中模拟人记忆方式的思想,在诊断策略优化设计过程中通过构造优化目标函数、设置禁忌表与确定禁忌长度,进行全局范围寻优,以解决传统方法优化性能较差等问题。
1 故障诊断策略优化问题描述
1.1 基本信息
1) 状态集合F。假设系统内有m个故障状态,并与无故障状态f0共同组成了系统的状态集合F={f0,f1,…,fm}。
3) 系统内测试集合T。假设系统内有n个测试点t1,t2,…,tn,T={t1,t2,…,tn},各个测试均为二值测试,即只有“通过”和“不通过”2种测试结果。
4) 测试费用集合C。C={c1,c2,…,cn},表示执行某一测试时所花费的费用,不随测试顺序的改变而改变。
5) 故障-测试相关性矩阵D。它是进行诊断决策优化的基础,能够表示故障与测试之间的相关关系。矩阵中元素dij=1时,表示故障fi发生时能够被测试点tj检测。无故障状态f0用零向量表示。
1.2 诊断策略的优化目标
PATTIPATI等[9]将诊断策略优化目标进行了简化,提出平均测试费用最低的优化目标,省略了不确定风险及影响因素,着重考虑测试费用这一影响因素,以便能够对测试顺序进行定量化评判。如果生成的测试顺序对应的测试费用越少,则说明该测试顺序越优,因此将诊断策略优化目标确定为
(1)
式中:q为隔离第i个故障状态所需要的测试数目。
2 优化方法设计与实现
2.1 编码
对可选测试集中各测点进行编码,生成对应的n维测试顺序向量,n为可选测试集中测点个数。向量中每个元素为一个决策变量,取值为0~1,变量取值越大,表明该变量对应的测试点的执行顺序越靠前。以图1中4维测试顺序向量为例进行说明。
(1)算法针对的是多站多外辐射源场景,对于单站多外辐射源场景和多站单外辐射源场景同样适用,具有较高的通用性.
图1中:各个测点在测试顺序向量中的决策变量取值为{0.1,0.2,0.3,0.5},根据各变量值的大小进行排序,获得各个测点的执行顺序为t4→t3→t2→t1。
2.2 适应度函数
测试顺序向量代表不同的测试执行顺序Tk,执行每个测试后会根据故障-测试相关性矩阵对故障模糊集进行隔离,最终隔离到每一个独立的故障状态。在隔离过程中,生成的隔离矩阵
I能够表示隔离故障状态时所执行的测试,当I中元素αij=1时,表示隔离第i个故障状态时执行了第j个测试。不同的测试顺序向量对应不同的隔离矩阵,根据隔离矩阵和式(1),构建适应度函数为
f(Tk)=P×I×CT,
(2)
式中:P=[p0p1…pm],为故障状态的先验概率向量;C=[c1c2…cn],为测试执行费用向量。
例:4阶D矩阵为
根据图1中的测试顺序对适应度计算进行说明。各个故障状态的先验概率向量P=[0.8600.0560.0430.041],测试执行成本向量C=[10.520.5]。
按照图1所示的测试执行顺序进行故障隔离,则隔离矩阵
根据式(2)计算该测试执行顺序的适应度,为
f(T)=[0.8600.0560.0430.041]×
2.3 禁忌记忆表
禁忌记忆表将每代搜索过程中所生成的本代最优解的变化方式进行记忆,并在今后一段时间内不能被作为产生新解的方式,从而避免重复搜索,达到跳出局部最优解的目的。禁忌记忆表是一个n阶矩阵,与解决问题的维数n相同,每个元素的位置用于存放对应禁忌解的禁忌迭代次数。禁忌迭代次数由禁忌长度来确定,解禁时根据“先入先出”的原则,对表中的禁忌解逐一进行解禁。王凌[10]经过大量禁忌长度对优化效果的影响试验得出结论:当禁忌长度为解决问题维数的2倍时,既能保证全局寻优能力,又有较好的求解效率。因此,本文选取禁忌长度为解决问题维数的2倍。
2.4 藐视准则
运用藐视准则可以避免错过全局最优解的情况。藐视准则是将候选解中的最优个体与先前的最优个体进行比较,如果该个体优于先前的最优解个体,且产生该解的移动方式为禁忌对象,则无视禁忌长度,对该个体进行解禁,并将该解作为下一代的初始最优解。
2.5 基于禁忌搜索算法的诊断策略优化流程
图2为基于禁忌搜索算法的诊断策略优化流程,具体步骤如下:
1) 初始化禁忌搜索算法中各项参数,包括候选解大小、禁忌长度及最大迭代次数;
2) 根据可选测试集对每个测试进行编码,随机生成初代最优解;
3) 根据最优解,随机将某2个测试顺序进行对调,生成候选解集,并计算出每个候选解个体的适应度,从中选取最优的个体作为最优解;
4) 将生成最优解的测试对调方式存储到禁忌记忆表中,根据禁忌长度对该对调方式进行解禁;
5) 依据藐视准则,将本代最优解与历代最优解进行比较,并判断该方式是否存在于禁忌记忆表,如果本代最优解优于历代最优解,且又存在于禁忌记忆表中,则对该对调方式进行解禁;
6) 判断当前迭代数是否达到最大迭代次数,若达到,则停止搜索,输出最优解,否则重复步骤3)-5)。
3 案例分析
3.1 方法验证
对文献[9]中的实例进行优化。通过与传统的信息启发式方法优化结果进行对比,验证基于禁忌搜索算法故障诊断策略优化方法的有效性。该实例系统具有6个系统状态,其中包括5个故障状态和1个正常状态。系统内测试数目为5,则算法中的个体维度为5, 并假设所有测试费用均为1。根据文献[10]选取各个参数的准则,候选解大小一般不大于所求解问题个体维度平方的1/2,禁忌长度一般选定为所求解问题个体维度的2倍,相关参数设置如表1所示。
表1 禁忌搜索算法相关参数
采用基于禁忌搜索算法和传统的信息启发式方法优化得到的测试执行顺序分别如图3、4所示,执行费用分别为2.234和2.827。可以看出:与采用传统的信息启发式方法相比,采用基于禁忌搜索算法得到的测试执行顺序所需花费的费用少,测试执行成本降低了20.9%。
图5为采用上述2种方法得到的历代最优个体的适应度变化曲线。可以看出:禁忌搜索算法在第25代左右开始收敛,收敛速度比基于信息启发式方法快,跳出局部最优解的能力更强。
上述对比结果表明:基于禁忌搜索算法的故障诊断决策优化方法的全局优化能力更强,不易陷入局部最优解,所得的优化结果更优。
3.2 实例应用
将该方法用于某型装备液压操纵系统的诊断策略优化。该系统由主泵、精度滤油器、主定压阀、换挡缓冲阀、减压阀、变速转阀、2个离合器和3个制动器组成,由于该系统要求将故障定位到部件级,因此取组成部件故障为各个故障状态,系统内有11个组成部件,则部件故障状态划分为f1,f2,…,f11,部件故障状态包含可能发生的故障,部件故障对应关系如表2所示。
表2 部件故障对应关系
系统内共有8个可选测试,每个测试的执行费用均为1。经查询文献[11],得到各个零部件的故障状态的先验概率向量P=10-2×[0.109 0.099 2.154 1.182 1.575 5.295 0.925 3 0.925 3 0.578 5 0.578 5 0.578 5],正常状态下工作的先验概率为0.87。该液压操纵系统的故障-测试相关性矩阵
禁忌搜索算法中各项参数均由测试数目决定,该装备系统中测试数目为8,禁忌搜索算法的相关参数如表3所示。优化后的测试执行顺序以诊断树的形式来表现,如图6所示,所花费用为3.9431。该优化结果不仅减少了故障诊断成本,且能为维修人员提供故障诊断与排除指导意见,解决以何种顺序排除故障的问题,避免盲目排除,最终达到提高维修保障及决策效率的目的。
表3 禁忌搜索算法相关参数
4 结论
针对故障诊断策略传统优化方法存在全局优化能力较差的问题,笔者提出了基于禁忌搜索算法的故障诊断策略优化方法,通过优化效果与适应度对比试验,证明该方法具有较强的跳出局部最优能力,收敛性好,可有效降低故障诊断的测试成本,具有一定的工程应用价值。