杜小帅,胡 冰,施端阳
(1.空军预警学院,武汉 430010; 2.中国人民解放军94005部队,甘肃 酒泉 735000)
随着高新科技的发展和应用,武器装备的结构和功能越来越复杂化、精细化,其使用条件和战场环境的恶劣程度日趋提升,对装备的测试与诊断提出了更高的要求。而要解决这一问题则需要采用“并行工程”的思想,在装备设计阶段就使其具有良好的测试性。
诊断策略设计是装备测试性工作中的一项重要内容,其目的是在相关性数学模型的基础上,实现测试资源的优化选择,同时设计一组测试序列,达到以较小的期望测试费用快速准确的检测和隔离装故障状态的目的。GJB 2547A-2012将诊断策略定义为“综合考虑规定约束、目标和有关影响因素而确定的、用于依据观测数据进行故障诊断的测试判断逻辑”[1]。诊断策略既可应用于装备的工程研制与设计阶段,也可以在使用维护阶段指导装备的故障诊断,是提高故障诊断效率、改善装备故障诊断能力、降低寿命周期费用的关键。
Pattipati证明诊断策略设计问题是NP-Complete问题[2],穷举法虽然能得到最优解,但其计算量随着问题的复杂度增加而指数性的增长。针对这一问题,国内外学者提出了不少优化算法,最常用的方法是AND/OR图启发式搜索方法和智能优化算法。本文对国内外诊断策略设计的研究现状进行了综述,系统总结了理想假设条件和复杂条件下(多故障条件、多值测试属性和测试不可靠条件)的诊断策略设计方法。
理想条件下的诊断策略问题可描述为五元组
1)F={f0,f1,…,fm}为装备的故障状态集,假设同一时刻装备最多只有一个故障发生,其中f0是无故障状态,fi(i=1,2,…,m)表示仅有第i个故障发生时的故障状态;
3)T={t1,t2,…,tn}为装备的测试集,理想条件下规定测试只有通过、不通过两种情况,且测试结果可靠;
4)C={c1,c2,…,cn}为测试费用的集合,其中cj表示执行测试tj所需的费用,测试费用泛指测试执行时间,消耗的人力和物力等不同类别的成本,设定测试费用为无量纲的物理量;
5)D=[dij](m+1)×n为相关矩阵,是一个(m+1)×n维的布尔矩阵,用来描述故障与测试之间的相关关系。矩阵中的元素dij的值为0或1,dij=0表示tj与fi不相关,即故障发生时,测试通过;dij=1表示tj与fi相关,即故障发生时,测试不通过。
诊断策略设计的目的是,当装备发生故障时,能够按照给定逻辑和顺序选择测试,快速检测和准确隔离故障,并且使得测试费用期望值最小,其计算公式为[2]:
(1)
其中:Dopt表示不模糊的隔离全部故障且平均测试费用最少的诊断策略;D(i)表示诊断树中隔离出故障fi的测试序列,|D(i)|表示该序列的长度;cD(i)[h]表示序列D(i)中的第h个测试的费用。
AND/OR图启发式搜索方法将诊断策略设计问题表示为AND/OR图上的有序的最优搜索问题。图中,根节点为包含所有故障状态的模糊集,代表着诊断策略要求解的原始问题;终端叶节点代表最终求解的故障状态;AND节点代表测试;OR节点代表待求解的故障状态模糊子集。AND/OR图启发式搜索方法按照启发式函数和搜索策略的差异可分为不同的算法或方法。
诊断策略设计是一个不断减小故障状态不确定性的过程,受无噪声编码的启发,Johnson以单位费用互信息量构造启发式函数[4],提出了信息熵算法。信息熵算法综合考虑了故障概率、故障和测试的相关性和测试费用的影响,在优选测试时,每次选择使故障-测试互信息量和测试费用的比值最大的测试为最优测试,其启发式函数如下:
(2)
IG(X;tj)=-P(Xj0)log2P(Xj0)-P(Xj1)log2P(Xj1)
(3)
其中:IG(X;tj)为测试tj与故障状态模糊集X的互信息量;cj为测试tj的相关费用。
基于信息熵算法,文献[5-6]分别研究设计了的装甲车辆电源系统和导弹姿态稳定分系统的故障诊断策略。文献[7]以驱动电流控制电路为例,分析研究了电路的测试点优化策略。文献[8]着重分析了信息熵算法的优越性。
文献[9]基于相关性模型研究了“测试点最少”的诊断策略设计方法。该方法以故障检测权值和故障隔离权值构造启发式函数,按照先检测后隔离的方式设计诊断策略。若考虑被测单元可靠性和测试费用的影响,则故障检测权值、故障隔离权值可表示为:
(4)
(5)
(6)
(7)
其中:ai为第i个组成单元的故障发生频数比;λi为第i个组成单元的故障率;acj为测试tj的相对费用比。
基于此方法,文献[10]对无线电引信的相关性模型进行了分析,设计了诊断策略;文献[11-12]研究设计了舰船装备的诊断策略;文献[13]分析优化了某高炮装备的火控分系统系统的诊断策略;文献[14]建立了电源滤波组合的相关性模型,在此基础上进行了诊断策略设计。
以上两种方法在进行诊断策略设计时,每次选择使启发式评估函数达到最优值的测试,无回溯或迭代等步骤,因此被统称为贪婪算法。贪婪算法只考虑当前的最优测试,复杂度小,操作简单,但其没有考虑后续测试的影响,因此最优性不佳。针对这一问题,Pattipati等提出了AO*算法[2]。AO*算法通过回溯修正测试费用保证构造诊断策略的最优性,其主要包括两个步骤。第一个步骤是利用启发式函数自上而下的扩展诊断树。依次选择备选测试集中的测试,根据测试的输出结果将当前节点划分为不同的枝节点,使用基于霍夫曼编码的启发式评估函数对隔离这些枝节点所需测试费用的下界值进行估计,并根据枝节点的概率大小加权求和,作为其对应测试的启发式函数值,选择使启发式函数达到最优值的测试为最佳测试。第二个步骤是自下而上的费用修正。每次扩展诊断树后,从最新被拓展的节点开始,将测试费用逐步向上回溯,直到根节点,并修正测试费用,根据最新计算的测试费用重新选择最优的测试序列。
AO*算法主要通过霍夫曼编码对测试费用的下界值进行估计[2]。对给定的故障状态模糊集X,根据其中元素的概率大小计算其霍夫曼编码平均字长为L*(X),将X的备选测试的费用按照由小到大的顺序进行排序(0≤c1≤…≤cn),则X的最小测试费用估计值为:
(8)
其中:|·|为取下整数;ck为备选测试集中tk对应的测试费用。由此,可得到基于最小测试费用估计的启发式评估函数:
P(Xj1)h(Xj1)}
(9)
其中:cj为测试tj对应的费用;Xj0和Xj1为根据tj的输出结果而划分的两个故障模糊子集,P(Xj0)和P(Xj1)分别为两子集中包含的故障元素的概率和;h(Xj0)和h(Xj1)分别表示模糊子集Xj0和Xj1的最小测试费用估计值。此外,用信息熵代替霍夫曼编码,pattipati还提出了基于熵和基于熵+1的最小测试费用估计函数:
h′(X)=
(10)
h″(X)=
(11)
其中:H(X)为X的熵。基于霍夫曼编码字长、熵和熵+1的启发式函数满足H(X)≤L*(X)≤H(X)+1。AO*算法的启发式评估函数与贪婪搜索的启发式评估函数不同,它不是选择当前使启发式评估函数值达到最佳的测试,而是选择使诊断策略期望测试费用达到最小的测试。因此AO*算法的最优性非常依赖于启发式函数h(X)与最小测试费用的近似程度。基于霍夫曼编码的启发式评估函数根据故障模糊集X中元素的概率分配码长,并根据备选测试集中的测试费用估计最终的期望测试费用,能够较好估计测试成本,故基于霍夫曼编码的启发式评估函数应用最广泛。
为减少AO*算法的回溯次数,从而降低计算量,文献[15]引入了β系数,只有当前估计测试费用超出最优策略估计测试费用的1+β倍时才改变最优策略。此方法虽然会降低搜索精度,但会提高算法效率。文献[16-17]为解决AO*算法计算量较大的问题,根据离散粒子群算法收敛速度快、全局优化性能好的特点,提出先采用离散粒子群算法对测试集进行优选,后使用AO*算法生成诊断策略。文献[18]研究了测试费用和故障概率动态变化情况下诊断策略设计问题,提出了测量参数动态变化的AO*算法。
AO*算法虽然能获得近似最优的结果,但其搜索过程过于复杂,容易陷入回溯和递归过程,导致计算时间增加。为克服AO*算法计算爆炸的问题,文献[19]以信息熵算法为基准策略,使用回溯策略对基准策略进行迭代,提出了一步前向回溯的Rollout算法。Rollout算法在设计诊断策略时使用基准策略构造以备选测试集中测试为根节点的诊断策略,并计算相应的费用,选择使期望测试费用最小的诊断策略所对应的测试为最优测试。其启发式评估函数如下:
(12)
(13)
其中:h(Xi0)和h(Xi1)分别为以Xi0和Xi1为根节点的,使用基准策略设计的诊断策略的期望测试费用。
在诊断策略的设计过程中,AO*算法主要通过基于霍夫曼编码的启发式评估函数对期望测试费用的下界值进行估计,通过不断地回溯操作使得估计值更加逼近实际的最优值。而Rollout算法利用信息熵算法生成以各子集为顶点的诊断策略,使得其测试费用的估计值更加接近实际值,使得其在优选测试时,只需向当前节点回溯测试费用,从而避免了AO*算法不断回溯的问题,在保持最优性的同时,降低了计算复杂度。基于Rollout算法,文献[20]提出了针对具有多种工作模式系统的诊断策略设计方法。文献[21]针对分层系统,提出根据系统的故障隔离层次使用Rollout算法设计诊断策略,将相关性矩阵分成更小的矩阵进行处理,减少了分层系统的计算复杂度。
AND/OR图启发式搜索方法通过启发式评估函数求解最优的诊断策略,其结果的最优性主要依靠于启发式评估函数的性能,且搜索过程较为复杂。因此,许多学者将智能优化算法应用于诊断策略设计问题中。智能优化算法主要模拟自然界的优化过程,具有简单、通用和便于并行处理等特点。智能优化方法能够提高诊断策略设计的效率,减少计算时间,并且随着处理对象规模增加,这种效果会更加明显。
蚁群算法将诊断策略设计问题转换为蚁群搜索最小完备测试序列的问题,通过建立蚂蚁的状态转移规则和信息素更新机制,实现装备的诊断策略设计[22]。在蚁群算法中,蚂蚁主要根据测试之间的信息素量的大小选择下一步测试进行状态转移。蚂蚁走过的路径为测试序列,其状态转移规则如下:
(14)
τij(t+n)=ρ·τij(t)+Δτij(t,t+n)
(15)
(16)
(17)
(18)
在蚁群算法的基础上,文献[23]通过额外的强化每次迭代的最优路径,提出了基于精华蚂蚁系统的诊断策略设计方法。文献[24]使用蚁群算法设计了雷达频率合成系统的诊断策略。
粒子群算法将每个粒子定义成同测试集具有相同维数的布尔矩阵[25],第i个粒子的位置可表示为xi=(xi1,xi2,…,xin)。其中,xij=1表示tj被第i个粒子选中;xij=0表示未被选中。第i个粒子的位置公式如下:
(19)
(20)
(21)
(22)
文献[26]在离散粒子群算法的基础上,针对算法容易陷入早熟收敛的问题,引入了混沌变量,通过控制种群的多样性,提高了算法总体性能,并将改进的算法应用于诊断策略设计问题。文献[27]基于混沌粒子群优化算法研究了雷达装备诊断策略设计过程。文献[28]通过提高粒子群算法自适应搜索能力,使得其在诊断策略设计过程中能够保持较好的种群多样性,从而提高了算法的全局最优性。文献[29]构造了自适应变化的惯性权重,以信息熵算法设计的诊断策略的期望测试费用为基础,构造了适应度函数,从而引导粒子群到达更好的位置。
进化算法方面,文献[30]采用变长的符号编码表示有效的测试序列,通过计算测试费用,决定了染色体的有效编码长度,同时设计了适用于诊断策略设计的选择、交叉和变异机制,经过进化计算求解了最优的诊断策略。文献[31]将退火局部寻优同遗传算法相结合,提出了基于遗传退火算法的诊断策略设计方法。文献[32]将差分进化算法应用于诊断策略设计问题中,通过随机变异操作和扰动操作提高了算法的全局搜索能力,通过引入局部动态搜索算子提高了算法收敛速度。文献[33]构造了综合故障检测率、故障隔离率和测试费用的适应度函数,通过对差分进化算法增加额外的惯性速度因子项对复杂系统的诊断策略进行了求解。
为了简化分析,以上诊断策略设计方法都是在理想状态的假设条件下提出的。即同一时刻最多只有一个故障发生;测试输出只有“0”和“1”两种情况;且测试结果可靠,不考虑漏检概率和虚警概率的影响。但是在装备的实际使用过程中,往往会发生多故障并发的情况,且测试会有多值输出,测试结果也不一定可靠。
多故障并发的情况下,由于隐藏故障和伪故障的存在[34],使用单故障诊断策略会导致漏诊和误诊,因此需要分析隐藏故障和伪故障的故障表现。
若故障fj与故障fi同时发生时的征兆与fi单独发生时的征兆相同,则称fj为fi的隐藏故障;若故障组合X中的元素同时发生时的征兆与fi单独发生时的征兆相同,则X为fi的伪故障。
设xi为单故障诊断策略中的某一故障结论,xi的隐藏故障集和伪故障集记为HF(xi)和MF(xi),则:
HF(xi)={fj|(TF(fj)∩T(xi))∪TF(xi) =
TF(xi),∀fj∉xi}
(23)
MF(xi)=
{X⊆(F-xi)|∪∀fj∈X(TF(fj)∩T(xi))=TF(xi)}
(24)
其中:TF(fj)为fj的故障征兆,TF(fj)={ti|bij=1,ti∈T};T(xi)为诊断结论xi的隔离测试集,T(xi)⊆T;TF(xi)为xi的隔离测试集中未通过的测试组成的集合,即xi在单故障诊断策略中的故障征兆。若X的任意真子集中的元素构成的故障组合都不是xi的伪故障,则称X为xi的最小伪故障,记为MMF(xi):
MMF(xi)={X∈MF(xi)|∀Y⊂X,Y∉MF(xi)}
(24)
针对多故障条件下的诊断策略设计问题,文献[35]提出使用紧致集X=Θ(L;F0,…,FL;G)表示多故障模糊组,用来描述OR节点的多故障状态。在此基础上,文献[36]通过引入最小碰集的概念,求解了多故障模糊组的最小集,识别了伪故障;同时,通过引入维修/替换的操作,提出了基于确定策略的多故障诊断策略设计方法。王子玲等提出了基于扩展单故障策略[37]和利用CHS-树计算最小碰集的多故障诊断策略设计算法[38]。王红霞等提出一种通过集合覆盖求解伪故障的方法[39],通过单故障扩展方法获得多故障的诊断策略[40]。文献[41]利用离散粒子群算法求解冲突集的最小碰集,识别了伪故障。文献[42]利用二进制粒子群算法,文献[43]运用混合策略的离散差分进化算法求解了多故障模糊组的最小集,并生成了相应的多故障诊断策略。文献[44]采用布尔逻辑运算生成每步测试执行后的完备最小割集,利用信息熵算法生成近似最优的诊断策略。文献[45]将多故障模糊组和基于信息启发式贪婪算法相结合,提出了即时生成多故障诊断策略的方法。文献[46]通过定义测试的最小可测度,提出当检测到故障发生后,就立刻进行维修操作,以此来隔离多故障状态。文献[47-50]根据多故障状态对相关性矩阵进行了拓展,利用Rollout算法研究了冗余系统和非冗余系统的多故障诊断策略设计方法。
理想条件下,测试输出结果被简化为“通过”和“不通过”两种情况。而实际上,测试的输出结果是多值的,不同的测试输出值对应装备不同的状态。因此,将测试定义为多值输出属性,更能贴近装备实际,从而更好的利用测试提供的信息,提高故障诊断效率。
对于多值测试属性的诊断策略设计问题,文献[51]将信息熵算法同多值测试输出的特点相结合,提出了基于多值测试的诊断策略设计方法。文献[52]将多值关联矩阵扩展为二值关联矩阵,利用AO*算法对扩展的矩阵进行了求解。文献[53]将Rollout算法应用于多值测试属性问题,在飞机等复杂系统的诊断策略设计中保持了计算复杂度和精确结果之间的平衡优化。文献[54]利用蚁群算法设计了电子设备多值测试的故障诊断策略。文献[55]在蚁群算法的基础上,通过综合考虑信息素矩阵、蚂蚁比重和测试费用的影响,重新制定了状态转移规则;通过引入信息素矩阵,改进了传统蚁群算法随机性大、计算时间长的缺点,同时基于改进的蚁群算法,提出了一种多值测试属性的诊断策略设计方法。文献[56]通过在蚁群算法中引入遗传算法的变异思想,提高了多值测试诊断策略的最优性。
由于外界环境的干扰和测试设备自身可靠性的影响,在测试的过程中会发生虚警和漏检的现象,从而影响到测试结果的可信度。使用PT={pdij,pfij}表示测试的不确定性,其中pdij=P{O(tj)=1|fi=1}和Pfij=P{O(tj)=1|fi=0}分别表示测试tj对fi的检测概率和虚警概率。则测试tj对fi的漏检概率为1-pdij,从而可以得到测试不可靠条件下的相关性矩阵的元素为rij=dij×pdij+(1-pdij)×pfij。虚警和漏检会导致错误的诊断结论,造成测试和维修资源的浪费。使用CT={mdi,fai}表示错误诊断的代价,其中mdi和fai分别为故障fi的漏检代价和虚警代价。
针对测试不可靠的条件,文献[57]基于贪婪算法,通过对故障检测概率、虚警概率和漏检概率进行加权处理,提出了综合考虑测试费用和误诊费用的优化目标,通过动态调整启发式函数中故障检测权值和故障隔离权值的比重,使得该方法具有先检测后隔离的特点。文献[58]基于Rollout算法,研究了测试不可靠条件下的诊断策略。文献[59]建立了测试不可靠条件下的诊断策略设计模型,利用遗传算法对模型进行了求解。文献[60]从固有不确定性和观测不确定性两方面阐述了测试不可靠的问题,在此基础上,利用信息熵算法设计了诊断策略。文献[61]考虑了不可靠测试和现场约束条件影响,提出了动态的诊断策略设计方法,该方法比传统静态诊断策略更具有适应性和实用性。文献[62]将信息熵算法的启发式评估函数和粒子群算法相结合,通过重新定义测试性分析模型和测试性指标,描述和求解了测试不可靠条件下的诊断策略设计问题。文献[63]构建了包含漏诊代价、虚警代价和测试费用的启发式函数,利用精华蚂蚁系统算法对测试不可靠条件下的诊断策略设计问题进行了求解。
诊断策略设计是一项系统性工程,考虑的因素越全面,其结果越符合装备的实际情况,越有利于提高装备的故障诊断能力。本文对诊断策略设计的发展现状进行了综述,系统总结了理想假设条件和复杂条件下(多故障条件、多值测试属性和测试不可靠条件)的诊断策略设计方法。随着研究的深入,未来还可在以下三个方面开展进一步的研究:
1)设计具有自适应能力的启发式评估函数。AND/OR图启发式搜索方法的性能主要依赖于其启发式评估函数。在诊断策略设计问题中,要使测试费用的期望值尽可能小,则先验概率较大的故障应该对应较少的测试步骤和测试费用。而在装备的实际运行过程中,无故障状态的概率往往远大于其他故障发生的概率,不同装备的故障概率分布也不相同,且在故障的检测和隔离过程中,随着矩阵的分割,各子矩阵具有不同的特点。因此,启发式评估函数应具备根据矩阵中故障状态概率的分布情况进行自适应调整的能力,从而达到提高算法的最优性和降低计算复杂度的目的。
2)智能优化算法在复杂条件下的应用研究。智能优化算法具有简单、通用和便于并行处理的优点,已被广泛应用于诊断策略设计问题中,但其在多故障和多值属性输出条件下的应用相对较少。多故障条件下,智能优化算法主要被应用于求解最小碰集,但是如何利用智能优化算法直接对多故障问题进行描述和求解,还值得进一步研究;蚁群算法被广泛应用于求解多值测试属性的诊断策略,而其他算法在此问题上的应用较少。
3)研究的成果转化与应用。国内外学者针对诊断策略设计及其衍生问题创新的提出了多种高性能的算法。这些算法可集成到测试性辅助设计和分析工具中,为装备测试性分析和诊断策略设计提供有效的算法支持,从而实现计算机辅助的测试性设计和分析,达到提高装备的设计效率,降低设计成本的目的。