李俊武,李国宁
(兰州交通大学自动化与电气工程学院,兰州 730070)
列控车载设备的功能是速度防护控制,是列车运行操纵和控制的主体,是保证列车平稳安全运行的关键,故车载设备的正常运转对列车行车安全至关重要。车载设备发生故障,轻则影响行车效率,重则导致安全事故。因此,快速、准确地发现并排除故障,对保证列车行车安全有重要的意义。
车载设备结构复杂,故障种类繁多,导致了车载设备故障诊断难度加大。近年来,神经网络、故障树、专家系统等智能故障诊断技术不断发展[1-3],很多学者将这些方法应用到车载设备的故障诊断中。文献[4]根据在故障诊断过程中积累的经验,形成专家知识数据库和故障推理机对故障进行诊断,提出了基于专家经验的车载设备故障诊断方法,但是这种专家经验主观偏见性较强,易出现错误诊断。文献[5]提出一种建立系统失效故障树模型的故障诊断方法,但是车载设备结构复杂,失效故障树模型规模庞大且不易实现。文献[6]通过检索案例库中的案例进行故障诊断,并设计了基于案例学习的车载设备故障诊断系统。上述的诊断方法都存在一定的不足和局限性,因此,本文提出了一种新的故障诊断方法。
贝叶斯网络(Bayesian Network,BN)作为表达不确定性知识的一种重要方法,己经成为人工智能研究的热点,并被应用于诸多故障诊断领域[7-9]。粗糙集理论(Rough Sets,RS)作为处理不确定性问题重要的数学理论,能对不完整数据分析和处理。RS理论在过程控制、医疗诊断、决策支持、模式识别等多个领域应用广泛[10-13]。本文将BN作为核心算法结合RS理论,提出了一种RS-BN列控车载设备故障诊断方法。充分利用BN和RS的优点,通过实际故障数据,结合专家经验进行BN的数据学习和参数学习,实现建模和诊断推理,RS理论进行属性约简、消除冗余信息获得最小诊断规则,简化模型并建立最优的网络结构,提高了诊断效率。最后通过某高铁线的现场实际故障数据进行BN模型的验证分析。
目前,我国高铁主要采用CTCS-2(C2)和CTCS-3(C3)级列控系统,而C3包含C2。CTCS3-300T型是C3系统应用最广、最为典型的车载设备,因此将其作为研究对象。CTCS3-300T车载设备采用分布式结构,采用高可靠性的Profibus总线、信号MVB总线、车辆MVB总线实现各模块间的信息传输。车载设备的硬件结构主要由车载安全计算机模块(VCU)、轨道电路信息传输模块(TCR)、应答器信息传输模块(BTM)、测速测距模块(SDU)、动车组接口模块(DI/DX)、司法记录仪(JRU)、无线电台传输(GSM-R)以及人机管理界面(DMI)等模块组成[14-15],其组成结构如图1所示。
图1 CTCS3-300T车载设备硬件结构组成
贝叶斯网络(BN)是一种基于概率推理的有向无环图[16],反映了随机变量间的相互关系。它结合图论和概率论[17],在人工智能领域,通常被用来处理具有不完整、不确定性信息的问题。BN=(G,P)主要由两部分组成: (1)有向无环图(DAG),用G=(I,E)表示,其中I={A1,A2,A3,…,An}为节点集合,E={E1,E2,E3,…,En}为边集合,每条有向边表示了节点间的依赖关系。(2)条件概率表CPT,表示节点在其父节点某一状态下的条件概率分布,描述了BN的概率参数。假设贝叶斯网络变量为A1,A2,…,An,则联合分布概率
(1)
贝叶斯网络常用的结构学习算法为:基于约束的方法和基于搜索评分的方法。当样本数量众多时,基于约束算法的复杂度将是指数级的。因此,本论文采用基于搜索评分的方法。假设有n个样本节点,贝叶斯网络存在的网络数量
(2)
BN的复杂度会随节点数n的增加呈指数级变化,当节点数目较大时,BN结构会非常复杂,本文采用一种局部搜索算法(K2)。K2算法用到公式如下
(3)
(4)
式中,Bs表示网络结构;D表示一组变量。
BN网络的参数学习相对简单,包括完整数据条件下的贝叶斯估计算法、最大似然参数估计算法(MLE)和数据缺失条件下的期望最大化算法(EM)。
粗糙集理论(RS)是一种处理模糊、不确定性问题的重要数学理论[18]。其属性约简[19]的主要作用是通过知识约简,简化属性、得到最简的决策规则而不改变决策能力。理论主要包括以下三部分:(1)知识表达系统,S={U,R,V,f}为一有序四元组,其中论域U={X1,X2,…,Xn}是全体样本集合;R=C∪D为属性集合。(2)不可分辨关系,体现了论域U中对象的类型划分规则。对于任一属性子集B⊆R,如果对象Xi,Xj∈U,∀r∈B,当且仅当f(Xi,r)=f(Xj,r)时,Xi和Xj是不可分辨的,记为Ind(B)。(3)决策表化简,决策表体现了对象的决策诊断规则,是从条件属性到决策属性进行表达的系统。设S={U,R,V,f},a∈R,如果Ind(R-{a})=Ind(R),则a在R中是非必要的,否则称是必要的。对决策表的化简实质删除决策表中重复的行和条件属性冗余的列,保留核属性。
列控车载设备的故障追踪表,数据来源主要是下载的车载日志、JRU数据、故障处理后维修人员填写的维修信息,其包含了列车在运行期间发生的所有故障描述、分析及维修措施。故障追踪表的数据信息是以自然语言记录的,没有统一规则,计算机无法直接对故障数据进行分析,故需对故障追踪表进行数据挖掘处理。
诊断知识数据库建立的好坏,直接影响着故障诊断模型建立的准确性。传统的故障诊断知识数据库主要由专家经验获得。专家经验通常以口头或文字形式表达,往往带有主观偏见性且知识不完备。当遇到某类特殊故障时,这种方法就无法再适用了。本文对故障追踪表进行分析提取、数据挖掘,结合专家经验建立诊断知识数据库,通过对故障记录数据的挖掘,减少了对专家经验的依赖。其建立流程如图2所示。
图2 诊断知识数据库建立流程
根据电务维修人员现场的故障诊断维修流程,建立诊断模型。将故障信息划分为3个层次研究:故障原因层、故障模块层、故障征兆层,分别代表了故障发生的具体原因、模块单元、特征表现。层次间直接因果关系如图3所示。
图3 故障节点层次因果关系
列控车载设备结构复杂,故障种类繁多,存在不确定因素和信息。将全部故障特征作为贝叶斯网络的节点,建立的BN网络结构将非常庞大,会増加故障诊断的复杂度。以某高铁线2016年2月至2017年8月间的故障追踪表作为样本数据,针对其故障模块的发生次数进行统计,结果如图4所示。
图4 故障模块发生次数统计
由图4可知,在此时间段内所有的故障模块中,GSM-R、VCU、DMI、BTM、SDU、DI/DX 6个模块发生故障次数最多,故将此6类故障作为研究对象。根据诊断知识数据库和节点层次划分关系建立CTCS3-300T车载设备故障信息节点层次表,如表1~表3所示。
表1 故障模块节点
表2 故障原因节点
表3 故障征兆节点
根据表1~表3和图3节点间的模型层次关系,建立基于诊断知识数据库先验知识的车载设备BN诊断模型。其中节点信息均为离散变量,有两个状态:发生和未发生,取值1表示发生,取值0表示未发生。利用Matlab贝叶斯网络的BNT工具箱构建模型,如图5所示。
K2算法用贪婪搜索处理模型的选择,搜索效率高,主要解决了在数据完备情况下的结构学习问题。由于获得的故障记录数据是相对完备的,故利用K2算法,进一步挖掘节点之间存在的潜在因果关系。以SDU故障模块为例,对故障信息进行数据挖掘,利用Lean_Struct_K2函数构建模型,如图6所示。
图5 基于诊断知识数据库先验知识的BN模型
图7 基于诊断知识数据库和结构学习相融合的BN模型
图6 基于K2算法结构学习的SDU故障模块BN模型
基于诊断知识数据库先验知识和K2算法结构学习建立的BN结构模型并不十分准确。由诊断知识数据库建立的模型结构会忽略节点间某些潜在的因果关系,存在‘欠拟合’的问题;故障记录数据通过K2算法结构学习可以挖掘出专家知识未能考虑到的节点间存在的潜在因果关系。当样本数据量丰富,通过训练建立的BN模型结构可以达到非常高的精度,但建立的结构存在‘过拟合’问题。因此充分结合两者的优点,将两种方法相融合,建立基于诊断知识数据库和结构学习相融合的BN结构模型,如图7所示。
车载设备故障诊断过程中获得了大量故障数据信息。由于车载设备结构的复杂性,提取的故障节点信息存在冗余和不一致,在建模过程中产生节点数过多,模型过于繁杂,影响了诊断的效率和准确性。RS算法属性约简在维持信息系统分类能力不变情况下,约简核属性,生成精简的分类规则,降低诊断模型的规模和复杂性,提高了诊断的效率。RS算法属性约简的流程如图8所示。
(1)诊断决策表的建立
以诊断知识数据库和车载设备的现场实际故障记录数据为基本数据,进行特征属性值的提取,建立故障诊断决策表,如表4所示。
图8 RS算法属性约简流程
表4 故障诊断决策
(2)建立可辨识矩阵
定义可辨识矩阵M(S)=[Mij]n×n,mij元素值为
(i,j=1,2,…,n)
(5)
令实际故障记录数据表示信息系统U,条件属性集C={S1,S2,…,S26}表示26种故障征兆,决策属性D={M1,M2,…,M6}表示6种故障模块。可辨识矩阵是以主对角线对称的n阶对称方阵,分辨矩阵进行运算时,只需考虑其下三角部分,根据公式(5)和表4建立可辨识矩阵如下。
(3)找出核属性并进行属性的约简
找出可辨识矩阵中单属性集合元素,然后删除矩阵中所有包含单属性的元素并保留剩余元素组合。将这些元素与单属性组合得到约简属性组合。利用互信息公式计算组合属性的依赖度,如计算属性P和Q间的依赖度,公式如下所示
I(Q,P)=H(Q)-H(Q/P)=
(6)
计算出组合属性的依赖度并取平均依赖度值最小的组合作为最简属性组合。根据最简属性约简组合,保留原始诊断决策表中和约简组合相对应的元素,生成新的决策属性完成RS属性的约简。表4的条件属性约简结果为:{S1,S3,S4,S5,S6,S8,S10,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S23,S24,S25,S26},将26个故障征兆节点约简为21个,简化了模型结构并降低了诊断模型复杂度。
(4)建立基于RS-BN算法的BN结构模型
根据上述约简结果,结合诊断知识数据库和K2算法进行结构学习,建立基于RS-BN算法的BN结构模型,如图9所示。
诊断模型建立后,还需要确定各节点的先验概率参数,建立列控车载设备诊断模型的条件概率表(CPT)。在样本数据和先验知识均相同的情况下,参数学习的正确性关系模型建立的准确度。
图9 基于RS-BN算法的BN模型结构
本文采用MLE算法[20]进行BN的参数学习。将图7的基于K2算法结构学习和诊断知识数据库建立的BN模型结构定义为BN1,将图9的基于RS-BN算法的BN模型结构定义为BN2,本文利用GenIe2.0[21]软件采用MLE算法进行数据的先验概率参数学习,学习结果如图10所示。
图10 参数学习结果对比
图10是利用MLE算法对BN1和BN2模型进行参数学习,得到的故障发生原因节点的先验概率,通过比较可以看出,经过约简后的BN2模型和未约简的BN1模型通过MLE参数学习,节点的先验概率参数相同,表明模型约简不会改变节点的先验概率参数。
本文选取了某髙铁线2016年2月至2017年8月间车载设备6个主要模块的1 116条故障记录数据作为样本数据,其中816条数据用于建模,其余300条数据用于模型的验证分析。
从模型验证数据中选取一条作为贝叶斯网络模型诊断的实例,如表5所示。
表5 故障信息表实例
在表5的故障记录中,挖掘提取故障征兆集{‘无线连接超时’,‘列车常用制动’,‘C3转C2’},以1表示故障发生,0表示故障未发生,分别对BN1、BN2模型建立故障征兆集合:T1={1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},T2={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}设置T1、T2作为证据参数并令p(S1=1)=1、p(S2=1)、p(S7=1),利用GenIe2.0软件采用联结树算法(JT)对诊断模型BN1、BN2分别进行诊断推理,诊断结果如图11所示。
通过图11模型诊断结果可以看出,在已知S1、S2、S7故障征兆的情况下,对模型BN1、BN2进行诊断推理,推理出故障发生最可能的原因,故障发生的最大概率为R2(单电台故障),与故障实际发生原因相比较诊断结果一致,验证了此模型的正确性。通过属性的约简,概率值大、排名靠前的节点后验概率变大,说明BN2经过属性约简,较BN1提高了诊断知识清晰度和模型的故障诊断能力。
对300条验证数据进行故障模块的归类,如表6所示。
图11 模型诊断推理结果对比
表6 验证数据故障模块划分
利用BNT工具箱的联合树推理函数(Jtree_inf_engine)对BN1、BN2诊断模型进行故障诊断,仿真推理结果对比如图12所示。
图12 推理诊断对比
获得的故障模块诊断正确率对比如表7(加粗数字代表故障诊断正确次数/诊断正确率)所示。
根据图12和表7的诊断结果,可以看出BN1和BN2对于不同的故障模块诊断正确率相同,说明RS属性约简去除了冗余和不必要的知识属性,并不会改变知识的诊断决策能力,通过属性的约简可以简化诊断模型,降低诊断模型复杂度,提高诊断效率。BN1和BN2模型的GSM-R模块故障诊断正确率为92.6%,SDU模块故障诊断正确率为73.3%,这是因为GSM-R模块较SDU模块建模故障样本数多所致,可以看出随着样本数量的增加,诊断精确率会提高。模型的综合故障诊断正确率均为88%,说明两种模型的故障诊断正确率都较高且有准确的诊断结果,但经过RS属性约简的BN2诊断模型较BN1诊断模型,诊断效率高和实际诊断模型有更高的似然度。
表7 故障模块诊断
本文提出了一种基于RS-BN算法的高铁车载设备故障诊断方法。在贝叶斯网络的建模过程中,充分结合现场实际数据与先验诊断知识数据库,利用K2算法建立BN模型,然后利用粗糙集理论对故障征兆条件属性集进行属性约简,简化模型,得到最优的BN结构,通过经典MLE算法进行BN的参数学习,得到完整的BN结构模型。最后,以某髙铁线实际故障数据为例进行推理验证。结果表明,本文提出的RS-BN诊断模型精简、诊断效率高,具有较高的可靠度和准确性,为维修人员故障维修提供了诊断决策支持,对列控车载设备故障诊断技术的进一步发展具有重要意义。