晏震乾,曹 磊,陈 金
(1.上海民用飞机健康监控工程技术研究中心,上海 200241;2.北京航天测控技术有限公司,北京 100041;3.北京市高速交通工具智能诊断与健康管理重点实验室,北京 100041;4.轨道交通装备全寿命周期状态监测与智能管理技术与应用北京市工程实验室,北京 100041)
商用飞机的维修和自动化故障诊断,具有非常的技术意义和商业价值。本文着重研究用于商用飞机的故障诊断技术,助力中国商用飞机的维修[1]与自动化故障诊断技术的积累和维修成本的节约。本文将采用基于案例推理和粗糙集结合的方法进行商用飞机故障诊断的全流程一体化解决方案。其中,使用MongoDB存储故障案例库,通过构建中文航空词本进行同义词替换减少故障中文描述的差异,粗糙集表示飞机故障案例且粗糙集动态决策计算故障案例的特征属性权重并结合海明距离来度量案例间的相似度实现案例的检索,最后是案例库学习实现案例的扩充,提高系统的可靠性以及技术流程的闭环。
基于案例推理[2-4](case-based reasoning,CBR)是指在解决新案例时,通过在案例库中检索过去已解决的类似案例,并比较新旧案例的异同,推理出新案例的解决方法的一种决策推理方法,常用于决策系统、专家系统中。
推理新案例时,先将新案例通过案例表示输入基于案例推理系统中,通过相似度计算检索出与目标故障案例相似的案例集,若有与目标故障案例描述完全一致的案例,则将其故障排除方法着重突出提交给用户;若没有则把目标案例的相似案例按相似程度高低进行排序输出给用户,若实践验证成功则对此次案例诊断进行评价打分并加入案例库,完成以此次故障诊断。基于案例推理的故障诊断流程如图1所示。
图1 基于案例推理的故障诊断过程
基于案例推理的关键在于案例库的数量和质量。随着案例库中案例的增量式学习,案例库的覆盖程度随着系统的使用会逐渐增大,新案例推理的效果就会越来越好。
粗糙集[5-7]是用来研究不完整数据,不精确知识的表达、学习,归纳等的一套理论方法。它是一种新的处理模糊和不确定性问题的数学工具,被广泛应用于知识发现、机器学习、决策支持、模式识别、专家系统及归纳推理等领域。
基于案例推理进行飞机故障诊断的关键是案例表示和案例检索即案例间相似度的计算。之前的基于案例推理故障诊断系统案例间相似度的计算大多采用专家指定案例的特征属性权重去进行相似性度量,这具有很大的主观性。本文采用粗糙集表示案例进而粗糙集动态决策计算出案例的特征属性权重,避免案例间相似度计算时特征属性权重确定的主观性。
案例的知识表示是案例推理的基础。首先,应确定案例应该描述哪些信息。
从多种多样的飞机故障案例报告中抽取其最重要最有效的共同特征,将案例抽象成这些共同特征来进行案例描述。飞机故障案例1如图1所示。
图2 飞机故障案例1
案例描述内容包括:机型、故障来源、发生位置、故障现象或代码、故障排除方法等。
然后,是确定案例的存储方式,将过去已解决的飞机故障实例存储到数据库即案例库中。
传统使用结构化查询语言SQL把故障案例的各特征编码成传统的数据结构保存在例如MySql或Oracle等关系型数据库中,其具有牵涉信息的编解码、增加复杂度和信息的不直观等缺点。
由于故障案例来源自航空机修工程师一手的pdf格式的飞机故障案例报告文件,故而本文采用一种最新的NoSql非关系型数据库MongoDB[8]数据库直接保存文本信息,克服上述缺点。
我们感兴趣的关键内容通过专门定制的pdf读取软件,将pdf刚兴趣内容读取后以如下BSON的形式存储在MongoDB数据库中:
{“案例编号”:”xx”,
“案例名称”:”xx”,
“发生时间”:”xx”,
“机型”:”xx”,
“故障来源”:”xx”,
“发生位置”:”xx”,
“故障现象或代码”:”xx”,
“故障排除方法编号”:”xx”,
“故障排除方法”:”xx”,
“解释”:”xx”,
“参考资料”:”xx”}注:内容略
飞机故障诊断案例一般主要由故障现象及故障排除方法两部分组成。对飞机故障案例进行知识表示时,有必要联系案例的上下文环境,即机型、故障来源和发生位置。因为是通过搜索故障现象得到目标故障排除方法实现故障诊断功能,所以检索的故障案例描述有(机型;故障来源;发生位置;故障现象),其中故障现象中又有不确定数量的特征描述。
最后,是从案例数据库中读取的案例,该以什么方式表示,并有利于后续实现案例间的检索。
粗糙集用S=(U,A,V,f)表示,其中U是非空有限对象集,称为论域,A是非空有限属性集,V=Ua∈AVa,Va是属性a的值域,f:U×A→V是一个信息函数。对于任意a属于A,并且x属于U,f(x,a)∈Va。如果A=C∪D,则C是条件属性集,D是决策属性集,S=(U,A,V,f)也被称为决策表。
以上述飞机故障案例1为例,此案例为U(只有一个案例的案例集),机型、位置、故障现象等故障描述为条件属性集C,故障排除方法为决策属性集D,V为属性的具体取值,f为粗糙集系统归纳总结的决策规则。
基于案例推理关键环节在于相似案例的检索,案例的检索是一个查找与匹配的过程,即从案例库中搜索出与搜索案例相似的有帮助的案例集供用户查阅。
同义词替换作为自然语言处理数据预处理的一种手段,在比较两个中文句子的相似性时,利用同义词替换技术把几个同义词转换为同一个词,可以提高中文相似度计算的可靠性,也就提高了故障描述相似度计算的可靠性。
由于中文语言的博大精深与表述多元化,同一事物的描述词汇较之英文更多种多样,不同航空工程师对故障现象的描述也会使用不同的近义词。比如:供气与通风、排气与抽风、二号发动机与右发。
所以,首先需要对故障案例的中文描述语言进行分词,然后再利用同义词词本进行同义词替换[9]。
同义词词本一方面可以来自通用中文同义词词林,比如哈尔滨工业大学的大词林[10],并一方面,航空领域的专业词汇通常高频出现在故障案例描述中,其呈现高频和有限的特点,应该由航空领域专业人士构建并维护一个航空领域专用同义词词本“同义词航空领域专用词本.txt”并随时收集与增改。
其词本内容格式及示例如下:
右发|二号发动机|右发动机
故障|正常位OFF灯亮
钢缆|钢索
通风|供气
抽风|排气
地面|外站短停
每行为一个同义词序列,同义词之间用指定分隔符“|”隔开,每行后面的同义词都会替换为该行第一个指定的最优表述词。
由于飞机故障大多是由指示灯指示的,而指示灯出于惯性大多是英文,而英语的分词很简单,就是空格和标点,但需要中英描述之间的匹配,此时案例检索时遇到英文要翻译成中文再进行中文故障描述的匹配。例如:VENT AVNCS SYS FAULT(电子舱航电系统故障)、VENT BLOWER FAN FAULT(电子舱通风扇故障)、VENT EXTRACT FAULT(电子舱抽风扇故障)。
向量或样本之间的相似性度量,一般通过计算两个向量之间的距离,即转化为数学上的向量之间距离的计算,它可以反映出事物间在距离上接近或远离的程度。案例的故障描述视为一个粗糙集,粗糙集间的相似度可以用案例描述属性间的海明距离来测量。
信息编码学中,海明距离是两个码流对应位上编码不同的位数,比如比特流1011与1110,第二位与第四位不同,其海明距离为2。本文中将海明距离取反作为相似度衡量标准,记为海明相似数,比如特征描述1{特征A、特征B、特征C}和特征描述2{特征A、特征D、特征E},特征描述1与特征描述2中,有一个相同的特征A,其海明相似数为1。海明相似数越大,案例特征描述越匹配,案例间越相似。
例如上述飞机故障案例2(见图3)的故障现象为“供气正常位OFF灯亮,排气正常位OFF灯亮”。标点分隔每一句话为一个特征描述(特征集),中文分词为一个特征。
图3 飞机故障案例2
如图4所示,结合航空词本同义词替换,两个案例的故障现象描述语句相似数为4。因为中文表达的开放又统一,可以认为两个故障现象描述语句中有一个同义词以上(相似数大于1),两个故障现象描述语句的相关性就强,需要被检索出来,从而把故障现象的值设为“存在”或“不存在”两种取值更有意义,分别以1或0表示。
在案例的检索中,案例的特征属性对搜索案例与其他案例区分时所起到的作用是不同的,即特征权值反映了特征的不同重要程度,因此赋予特征合适的权值对案例间相似度的计算是非常有意义的。
现有基于案例推理系统中,属性的权重是由专家指定的,比如故障现象、发生时间、发生位置权重分别设为0.75、0.05、0.2,存在非常大的主观性。事实上,发生时间、发生位置、故障现象,同为故障描述的三者,本质上并没有高低轻重之分。所以,采用自动地属性权重计算方法,通过粗糙集的决策规则自动提取功能,动态决策计算出属性的权重。
粗糙集理论中,属性重要度反映去掉某个属性后决策的变化程度。设属性{a}为条件属性集C的一个属性,属性{a}关于条件属性集C相对于决策属性集D的属性重要度为:
Sig(a,C,D)=γC(D)-γC-{a}(D)
其中:γC(D)表示决策属性D对条件属性集C的依赖程度。
其中:POSC(D)表示D关于C的正域,|U|表示U的数量。
而γC-{a}(D)表示决策属性D对去掉属性{a}的剩余条件属性集的依赖程度,两者相减即为决策D对属性{a}的依赖程度,即属性{a}对决策的权重。
下面先用有6个案例的案例库实验论证粗糙集动态决策计算出案例的特征属性权重的可行性和有效性;然后利用计算出的属性权重,结合海明距离相似数,对文中列出的两个示例案例间的相似性进行度量,表明基于案例推理飞机故障诊断系统案例检索的有效性;最后对基于案例推理和粗糙集结合的飞机故障诊断系统存在的问题和需要改进的地方进行论述。
表1中,设某机型1=1,某机型2=2,故障来源1=飞行中,故障来源2=地面,故障现象1=电子舱航电系统故障,发生位置1=电子舱航电系统,发生位置2=电子舱风扇,故障现象1=电子舱航电系统故障,故障现象2=电子舱通风扇故障,故障现象3=电子舱抽风扇故障,故障现象是否存在用1或0表示,排故方案以编号表示。
表1 飞机故障诊断决策表
按照上述粗糙集属性重要性计算公式,得出属性{机型a1,故障来源a2,发生位置a3,故障现象1a4,故障现象2a5,故障现象3a6}的权重分别为:
即属性{机型a1,故障来源a2,发生位置a3,故障现象1a4,故障现象2a5,故障现象3a6}的权重分别为{0.2,0,0.2,0.2,0.2,0.2}。
结合上节海明距离相似数乘以属性权重,上述两个飞机故障示例案例1和2案例描述之间的相似性度量为:
1×0.2+1×0+1×0.2+1×0.2+1×0.2+1×0.2=1
则故障案例2可以采用故障案例1的排故方案,从而实现飞机故障诊断功能。从故障案例1、2的故障排除方法也可以看出,故障案例1、2的排故方案也确实是大体相同的。
实验结果证实了结合海明距离和粗糙集动态计算属性权重实现案例间相似性度量(即案例检索)的可行性和有效性,但由于案例库中的案例来自飞机在役飞行航空维修工程师的一手数据,获取困难。目前实验的案例库中的案例数量还不够,不仅影响粗糙集对案例的特征属性权重的动态决策的准确性,而且众所周知检索的关键、效果好坏在于内容的多寡,基于案例推理系统必须足够数量案例的案例库才能发挥其基于案例推理专家系统的效果,下一步项目实施的重点在于案例库的扩充与学习。
随着本系统的使用和故障案例的发现,故障案例库会记录越来越多的故障案例,这样可以积累国产商用飞机自己的宝贵维修故障数据,并且对商用飞机自己的故障更有针对性,基于案例推理和粗糙集的国产商用飞机故障诊断系统故障诊断的效果也会越来越好。
本文基于案例推理和粗糙集算法对中国商用飞机故障诊断提供了全链路的技术解决方案和实验可行性验证。一是用MongoDB存储商用飞机故障案例库;二是构建航空同义词词本替换案例描述中的中文同义词;三是用粗糙集表示故障案例,并用粗糙集动态决策计算故障案例描述属性的权重,并结合海明距离计算故障案例间的相似度,来实现案例检索;四是案例库扩充学习以完成解决方案的闭环和提高基于案例推理和粗糙集的故障诊断系统的可靠性与准确性。
值得指出的是,只有在实际应用中不断扩展案例库中案例的数量和质量,基于案例推理和粗糙集的商用飞机故障诊断系统才能越来越可靠和有效。