基于知识工程的飞机装配过程故障智能诊断技术*
2022-07-15郭皓辰潘尔顺
郭皓辰,汪 含,楼 林,潘尔顺
(1.上海交通大学机械与动力工程学院,上海 200030;2.中国商用飞机有限责任公司,上海 200210)
飞机的生产过程会在各个装配环节产生质量故障,如孔位超差、表面损伤等,需要管理维护人员从大量维护手册中寻找解决方法,增加了其工作量,降低工作效率。本文立足于优化飞机装配过程中质量问题处理流程,从而可以节约人力物力成本,缩短飞机生产时间。目前关于飞机故障诊断与维修的研究,大多数是通过监测或检测手段获取数值型故障特征数据及故障时间序列数据进行。然而,很多装配故障信息是以故障表单、故障记录案例等文本形式存在。而现有的关于装配故障的研究中,多是对故障进行统计分析与事前预防[1–2],缺乏针对性的诊断。因此,利用文本分析等技术方法,解决飞机生产装配过程产生的故障,成为当前研究的重要方向。
近年来,故障诊断技术在理论以及故障诊断系统的应用和拓展上都达到新的水平。Schutte 等[3]提出了基于规则和基于模型的推理策略、操作因果、时间和定性信息,能在实时环境中检测和诊断已知或未知类型的飞机故障。Fazlollahtabar 等[4]将故障树分析与可靠性框图方法相集成,并配置危害决策树来计算每个组件实现故障诊断。陈瑞勋等[5]提出基于规则和故障树的故障诊断方法,将模型与经验知识相结合,与故障树配合做出故障诊断。包勇等[6]采用模型化事实对系统知识进行编码,并设计了故障树动态生成和删减规则集合,达成了深知识和浅知识的有效结合。以上的诊断模型是在拥有标准知识规则的前提下建立的,而对于系统互相制约所导致或产生原因复杂的故障,这些传统方法不能精准地进行诊断和故障定位,使用将受到限制。
Heider[7]使用基于案例重新发现的数据挖掘技术,对波音737 的引擎进行故障排除。Kordestani 等[8]通过有序加权平均方法开发了一种使用人工神经网络和离散小波变换的集成故障诊断新方法,以实现更高可靠性和更快的飞机扰流板诊断系统。李晓明等[9]基于某型航空发动机防喘控制系统的故障特点,运用案例推理技术,设计出案例的三级推理策略来检索历史相似故障的解决办法。王锐光等[10]提出一种迭代式的故障诊断基本过程,将卷积神经网络与随机森林模型应用于飞机设备的故障原因判别。以上方法通过检索历史故障解决新的问题,处理的数据均为数值或短文本数据,这些方法对非结构化长文本信息并不适用。
在自然语言处理方面,对非结构化长文本特征提取的有关研究中,典型的处理方法为词袋模型,其通过TF–IDF 算法[11]或Textrank 算法[12]抽取文本中的关键词与权重,以词汇与对应权重的集合表示文本。但传统方法的问题是词汇的维度与稀疏性高,且忽视了各个词汇间的语义关系。为解决这一问题,Mikolov 等[13]提出了Word2vec 算法,将词汇以向量的形式映射到低维空间中,并通过向量的数值反映其与上下文间的联系。之后,其又在Word2vec 的基础上改进训练模型,拓展为Doc2vec 算法[14],将一段文本用一个向量来代替,从而可以将一段非结构化的文本数据转换为一个结构化向量数据。以上的文本处理方法在非结构化数据故障诊断方面有很好的适用性。
综上,以往的故障诊断文献缺乏对长文本数据处理的研究。因此,本文提出一种基于深度学习的飞机装配过程故障智能诊断技术,将文本挖掘方法与知识工程方法相结合,试图解决飞机装配过程故障诊断时知识获取、知识表示和知识推理的关键问题,以期为新发故障提供准确的参考处理建议。
1 飞机故障表单的知识获取
知识获取是指人们通过多种策略和技术,将知识输入进机器当中,是将外部知识转化为诊断系统知识库中知识的过程。飞机故障表单知识获取主要是将历史上飞机设备的结构信息、飞机故障现象及原因、飞机故障处置措施及故障表单处理时间等信息进行分类,提取关键信息并将其转换输入到故障智能诊断系统中。
1.1 数据预处理与属性约简
粗糙集理论是用于分析不精确、不完整数据信息的理论方法,可以在留存有效数据的情况下,对总体信息做出删减并获取知识的最小表达。本文基于粗糙集理论,首先从原始表单数据库里获得飞机故障表单信息,然后对样本表单数据做预处理,删除信息不完整或无法识别的表单。删除故障完全相同但处理结果不同的表单。对表单中结构化属性进行数据转换,转换为可供计算机识别的编码。对表单做出预处理后,将通过粗糙集理论中的属性约简与值约简的方法,压缩数据维度。
属性约简即在维持系统归类能力不变的前提下,删去无关或不重要的属性,提升诊断系统潜在知识的清晰程度[15]。假定C为条件属性集,任一属性a∈C-R的重要度Qx(a,R,X)可以表示为
式中,X为决策属性集,R∈C;对于决策属性导出的类别,Qx(a,R,X)代表属性a影响R对X的分类效力,其取值越高,影响效力越大。根据专家知识来判别各个科目属性的重要程度,提取与飞机故障诊断密切相关的知识,为接下来的知识表示与知识推理奠定基础。
1.2 基于分词算法的值约简
飞机故障表单中,飞机故障偏差描述属性中值的数据是中文文本,即非结构化数据,对于表单中文本类的非结构化数据,可以通过自然语言处理等方法转化为结构化数据。第1 步就是要将文本进行分词处理,把一段中文文本中的词汇区分出来,由于飞机故障表单文本专业性强,使用分词算法直接进行分词将造成部分飞机系统中的术语与文本中的偏离词语不能被正确辨识。为了提高分词的准确性,本文结合专家知识建立飞机故障分词词库,包括飞机零件词库、偏离词库以及停用词库。
飞机零件词库通过零件名称属性得到,偏离词库包含描述飞机设备故障状态的词汇,由偏离描述属性与专家知识相结合整理得到。停用词词库包含标点符号和与表达内容无关的词汇,有连词、副词等,例如“中”、“并且”,也包括在文本中频繁出现,但对区分不同故障作用不大的词汇,例如“检查”、“详见”。构建飞机故障分词词库时,飞机零件词库与偏离词库用于调整分词点位置,而停用词词库充当约简文本信息的过滤词词库。
图1展示了对文本分词后的效果。针对一份故障表单中需要分词的一段文本,首先过滤掉标点符号与换行符等停用符号,此时一份飞机故障表单的偏差描述文本在诊断系统文件中对应一句。结合专家知识建立飞机故障分词词库,运用基于最大逆向匹配算法的Jieba分词算法进行分词,可以获得较优的分词结果。
图1 文本分词示意图Fig.1 Text segmentation diagram
2 飞机故障数据的知识表示
知识表示是将知识符号化与形式化表达的一个过程,将知识转化为可供计算机分析处理的形式。由于飞机故障表单数据中偏差描述属性是非结构化文本数据,本文在对非结构化文本属性进行分词值约简之后,选用深度学习算法中的Doc2vec 算法,将文本数据表示为数值化的向量数据,以进行后续的知识推理运算。
深度学习首先就要将自然语言文本转换为数字数据。其中词汇最直观且典型的表示方法是“0~1 表示法”(One-hot representation),即把每个词表示为一个稀疏向量,其维度是词汇集的大小,其中除一个维度的值为1 之外其他维度值均为0,这个维度就代表了当前的词。例如“支架”可表示为 [0 0 1 0 0 0 … ]。而飞机故障表单的文本词语关联性强的特点,例如“偏离”与“偏差”表达意思相近,但用这种方法表示词汇将忽略词汇之间的语义关系,丢失部分信息;同时飞机故障文本专业词汇丰富,过高的数据维度会使计算时的复杂度过高。而基于分布式表示的词向量表达方法可以有效地适应飞机故障文本的特点。它将词语压缩到低维空间用密集方法表示,向量的每个维度上的数值表示各个单词在这一维度上的关联水平。例如此时“支架”表示为[0.422–0.154–0.125 0.089 …]。这种表示方法可以通过向量之间的距离计算词汇之间的关联程度,避免了高维稀疏矩阵可能产生的维数灾难问题,同时近义词汇所转换的向量距离也相对更加靠近。
Doc2vec 算法是分布式向量表示法的一种,由Word2doc 算法演化而来。Word2doc 算法利用神经网络模型训练,将文本信息中的每个词汇映射成K维向量。其训练框架如图2所示。
图2 Word2doc算法训练示意图Fig.2 Word2doc algorithm training diagram
在模型内,输入词汇都被映射到向量空间中,将输入的上下文词汇的词向量相加作为特征,推测文中的下一个词汇。通常给定如下训练单词序列w1,w2,…,wT,目标函数是最大化平均对数概率:
预测任务通常用一个多分类器 (如Softmax)来完成,计算方法为
yi为预测出每个词汇i的概率,计算yi的公式为
式中,U和b为Softmax 参数;h是将wt–k,…,wt+k求平均得到。待训练收敛之后,意义相似的单词将会被映射在向量空间中的相似坐标。
而Doc2vec 算法在Word2doc 训练模型的基础上加以改进,其训练框架如图3所示。其在训练过程中为语料库中的句子或段落额外标注一个向量,此句向量也可以被抽象成一个词汇,理解为为联系前后文的记忆单元或者是该段落的宗旨。对同一条语句的各个段落训练时,句向量维持不变,即预测语句内每个词语时都利用了整条语句的语义特征。在预测过程中,保持各词语的词向量及输出层的Softmax 参数恒定,通过梯度下降法进行反向传播,收敛后可获得待预测语句的句向量。
图3 Doc2vec算法训练示意图Fig.3 Doc2vec algorithm training diagram
总结Doc2vec 的过程,主要有两步:(1)首先利用历史文本数据训练模型,通过已知的训练数据中得到词向量w,Softmax 的参数U、b和句向量D;(2)推断过程,对于新的段落,通过在矩阵D中增加新的列,在固定w、U、b的情况下,根据以上方法进行训练,利用梯度下降的方法获得新的D,即可得到新段落的向量表达。通过Doc2vec 算法,将故障文本中的各词汇向量赋权累加,可以得到句子整体的特征向量,向量的每个维度是一个抽象出的语义维度,而非传统方法如词袋模型,向量维度只表示某个词汇的有无。这种特征表示方法更有利于语义的保留。
3 飞机故障诊断的知识推理
基于飞机装配过程故障涉及系统多,产生原因复杂的特点,本文将选用案例推理(CBR)方法进行知识推理过程。CBR 的核心原理是通过历史的知识与经验来处理新出现的问题。当新问题出现时,在知识库中寻找类似问题,将它的解决方法作为解决新问题的起点,通过部分修改而获得新问题的解。
进行案例检索时,将新表单中各故障描述属性与历史表单的各属性匹配,根据属性值计算两两表单案例间的相似程度,并根据相似度对历史案例排序。案例相似度计算方法中最常用的方法是K–最近相邻策略,即KNN,其相似度计算函数为
式中,vi是第i个故障描述属性对应的权重,是待检索案例n的第i个属性与历史案例o的第i个属性之间的相似度。对于数据为数值或结构化文本的属性,取值相同则相似度为1,反之为0。而对向量化表示的文本属性,采用求各向量之间余弦值的办法来确定它们之间的相似度。对于两个n维向量S和T,S=(s1,s2,…,sn),T=(t1,t2,…,tn),其余弦值的计算方法为
通过案例检索得到与新案例相似度较高的历史案例,可参考其处理方法解决新案例故障。
4 算例分析
本文以某型号飞机的质量故障表单数据库为例,对该诊断技术进行了验证,并基于本文所提出方法,利用Python 进行封装后构建了简易的飞机故障智能诊断模拟系统,可通过输入表单部分信息“查询”相似案例并提供对应Excel“详细”内容,以证明工程上的可行性。
4.1 数据概况
一份飞机质量故障表单由多个科目属性构成,包括类型、偏离描述、FRR 编号、图号、ATA 章节、零件名称、架次描述、拒收数量、质保、偏差描述、关重件标识、纠正措施说明、偏离分类、处置说明和会签意见等科目属性。表单中含有大量无效与多余数据。对于历史表单和每份新表单,都要进行属性约简和分词操作。
首先对表单中的属性进行约简,将与故障诊断无关的属性和冗余属性去除,之后剩余提取出的数据可以分为故障描述科目属性与处理方法科目属性两类。
(1)故障描述属性:类型,偏离描述,零件名称,偏差描述。
(2)处理方法属性:纠正措施说明,处置说明。
各个属性的内容数据表达方法,如用于测试的故障表单如表1所示。其中,类型、零件名称与处置说明为结构化数据,有固定的名词集。而偏差描述与纠正措施说明为非结构化文本数据。输入新案例后,将根据其故障描述属性进行检索。
4.2 数据处理与模型建立
对“偏差描述”属性进行数据处理,首先根据 “偏离描述”、“零件名称”两个属性所含有的词汇的集合建立自定义词库,其包含所有属性词汇。之后采用Jieba 分词算法,使用全模式进行分词,把文本中所有可能的词语都扫描出来,确保正确词汇的出现,同时加入自定义词库避免专有词汇被分割。分词结束后,将标点符号去掉,同时提取出词性为连词、介词、副词的词汇。对其余部分通过IF–IDF 算法对词汇的权重进行排序,在高权重词汇中,结合专家经验,提取出无效词汇。将标点符号、连词等词汇与无效词汇组合为停用词库。之后对原“偏差描述”属性数据进行重新分词,分词时加入自定义词库与停用词库。
当历史表单均完成上述处理过程后,对将历史表单处理后的“偏差描述”属性数据带入Doc2vec 算法训练模型,采用PV–DM 模式,将各句子中各词汇作为输出,与该词汇关联的上下文词汇作为输入;作为输入的词汇首先要与输出词汇处于同一句子,其次与输出词汇的上下文距离间隔有限制。将词汇关联的上下文词汇的最远距离设置为8,将最终向量的维度设置为100,以固定次数20 作为训练的循环迭代次数进行训练。训练完成后得到的训练网络各节点权重参数即为Doc2vec 权重矩阵,将权重矩阵进行存储,而后将各表单“偏差描述”属性文本代入到权重矩阵中就实现了属性数据的向量化表示。之后有处理后的新表单加入,都将其代入此权重矩阵求其向量。
4.3 相似度计算与案例检索
训练完成后将用于测试的表单数据录入,来检索历史相似案例。由于故障描述属性有4 种,故障描述属性在相似度计算时权重均取0.25,最终相似度在[0,1]之间。
以表1中的故障表单为例,其不参与训练,作为测试用表单在智能诊断示范系统录入故障描述信息后,检索到的相似度前3 的历史案例如图4所示。点击详细可以进一步查看其他内容。表2和3 分别展示了案例的偏差描述与处置说明等其他内容,并将原表单由专家输入的纠正措施说明与处置说明和系统推荐所得作对比。可以看出,原表单与检索出的表单处置说明均为返修,而纠正措施说明中均含有“拆除–堵孔–重装”的关键步骤。从与专家处理结果的对比效果上看,该智能诊断系统及对应技术具有辅助飞机维护人员作判断决策的潜在应用价值。
表1 故障表单表达形式表Table 1 Fault form representation table
表2 相似案例表Table 2 Similar case table
表3 结果对照表Table 3 Result comparison table
图4 智能诊断系统示意图Fig.4 Intelligent diagnosis system diagram
5 结论
本文针对飞机装配过程故障特点,将知识工程与深度学习的方法相结合,完成了故障智能诊断系统中知识获取、知识表达与知识推理3 大关键步骤,并以某型号飞机的质量故障表单数据为例,对该诊断技术进行验证,证明工程上的可行性。该研究成果有助于通过辅助维修方案决策,便于管理及维修人员对故障及时反应和修复,从而提高生产装配阶段飞机系统故障诊断的效率。本文暂时没有考虑通过构建指标定量地对比不同方法准确度方面的差异,因此对案例效果做出定量分析,并解决小样本故障问题将是未来研究的重要方向。