赵翠荣
(安徽文达信息工程学院,安徽 合肥 231201)
随着汽车数量的不断攀升,由于汽车发生故障而造成的交通安全问题日益突出,这对汽车故障预测技术提出了更高的挑战。目前大多数设备仍然停留在设备诊断技术水平,无法充分管理设备“健康”,只是在故障发生后,及时定位和修复故障。汽车的故障诊断技术为汽车故障预测提供了一些借鉴,从最初的人工经验诊断到简单仪器检测诊断,再到精密检测诊断,再到近些年兴起的人工智能诊断,汽车故障诊断技术得到了长足发展。
智能化应用于汽车故障诊断,基本消除了人为的判断失误,提高了诊断的准确性及精度,这为汽车故障预测的发展提供的充分的技术支持,使得故障预测技术逐渐成熟并趋于实用。
汽车故障是指汽车中的零部件或整个系统失去原有性能甚至是功能的现象。汽车故障按照对汽车性能影响的程度,可以分为功能性故障和参数性故障。功能性故障主要是针对汽车已经不能完成最初设计所提供的功能,比如行驶跑偏、发动机不能启动等;参数故障是指汽车的相关性能参数不符合规定指标,由于参数性故障造成的后果的严重程度不一,一般又可以分为轻微故障、一般故障、严重故障和致命故障[1][2]。
引起汽车故障的因素是错综复杂的,每个故障都可能由多种原因共同作用而引起的,传统的汽车故障分析是建立在人工现场检测的基础上,对人工推理和判断有极大的依赖,这不仅会引入大量主观判断的误差,还大大加重了相关人员的工作负担。同时,这种方法在面对越来越复杂的汽车系统时也逐渐显得力不从心,所以寻求一种智能手段实现对汽车的全面准确的故障分析与预测已经迫在眉睫。
目前业界对故障诊断技术的关注度比故障预测要高,一方面是故障类型繁多,预测困难,另一方面是故障预测是建立在对大量数据的分析的基础上,而故障发生概率往往较小,数据采集不易。但是由于故障诊断的局限性,故障预测技术必然成为汽车故障分析的关键技术。故障诊断是在系统发生故障后,通过相应的方法和手段通知用户,因此故障诊断主要针对事后维修而开展的。事后维修是以系统已经发生的故障为依据,通过维修以恢复系统的正常功能或性能。然而,事后维修是最原始的维修方式,有可能会出现一种情况,即当一个部件出现故障时,它会损坏其他部件,甚至毁坏整个系统或危及人身安全。这是一个只有通过故障预测技术才能解决的难题。汽车故障预测的研究目前主要集中在回归分析、时间序列分析、模糊理论以及神经网络,然而这些方法在样本小、不确定性高的情况下,无法达到实际要求。因此需要一种在基于小样本的概率推理方法来实现汽车故障预测。
故障预测是以当前的状态为起点,对未来可能会出现的故障进行预测,向用户及时提出警告,以便能够采取相应手段避免恶性故障的发生,从而达到及时的故障预测和有效的汽车健康管理。然而,由于汽车故障类型繁多,要想在汽车故障暴露之前就及时察觉,需要于众多不确定性和不完整性中得出较为确定的结论,这无疑需要进行基于概率的研究。通过支持向量机(Support Vector Machine,SVM)能够得到当前状态在不同故障类型上的概率,并实现对单一故障的分类,从而完成故障预测的第一步:分类和概率提取[3][4][5]。
支持向量机 (Support Vector Machine,SVM)是一种研究有限样本情况下机器学习的统计学习方法,它建立在统计学习理论和结构风险最小化的基础之上,通过保持经验风险值固定并最小化置信范围来实现结构风险最小化,能够较好地解决小样本的学习问题。从理论上说,支持向量机得到的是全局最优点,从而避免了神经网络方法的局部极值问题。故障发生本身属于小概率事件,样本一般较少,这是支持向量机用于故障预测领域的突出优势所在[6]。
已知某汽车故障训练样本
其中,xi∈X=Rn,xi=Y= {1,-1 },i=1,…,l, l为样本容量,n为故障预测特征向量的位数,并设系统故障种类数为m。
选取“一对多”的多类故障分类器,建立SVM故障预测模型的步骤为:
(1)数据准备:
①对训练数据进行归一化处理,以消除数据由于数量级及量纲带来的影响;
②调整yi:若故障属于第p类,则对于第p类而言,yi=1,对于不属于第p类的所有样本yi=1。每建立一个SVM,p值就发生一次变化。对于m类的多类分类问题,p值依次取值为1,2,…,m。
(2)建立m类故障的SVM分类器:
把训练样本通过核函数映射到高维特征空间,选择适当的核函数和惩罚参数C,对训练样本求解如下的二次规划问题,以获得(ω*,b*)及其对应的支持向量α*:
重复进行步骤(2)共 m 次,得到 1,2,…,m个故障分类模型SVMm。
(3)故障分类:
利用训练获得的模型,根据故障输入模式,判断故障类型。第p个模型的输出等于1,则有第p类故障发生;若第p个模型的输出等于-1,则无第p类故障发生。训练好的故障分类器,对每一个测试样本,应该只有一个SVM分类器的输出为1。若出现多个SVM分类器的输出为1,则SVM的分类模型要重新训练。
利用台湾林智仁教授的liblinear软件包进行Matlab分析,主要针对五类故障进行分类,即发动机熄火、轴承老化、漏油、发动机过热和离合器打滑。 赋予这五类故障的标签分别为:0,1,2,3,4。通过对多类传感器获得的数据的分析,提取出故障分类的特征向量,主要包括汽车行驶速度、发动机温度、油箱温度和压强,以及指定时间内耗油量等物理量。在发生故障之后,将发生故障前20分钟的数据作为原始数据,经过滤波去除噪声,然后提取特征值,再输入到SVM分类器中。得到的分类结果如图1所示:
图1 不同故障测试样本点分类结果
显然,利用SVM对单独一种汽车故障进行分类是有效的,五类故障的识别率基本都在90%以上。图中所示的漏油和离合器打滑出现了误识别,不过总体识别率依然很高。然而为了避免故障分析的局限性,生成完整的汽车故障预测报告,必须得到所有故障在未来发生的趋势,并确定它们之间的相互影响的程度。通过软件包中的predict函数的返回值提取汽车某一时刻的状态在不同种类故障上的概率值,作为接下来推理系统的输入[7]。
贝叶斯网络(Bayesian Network,BN)是一种概率网络,它是基于概率推理的图形化网络,而贝叶斯公式为概率网络提供坚实的数学基础。贝叶斯网络是基于概率推理的数学模型,所谓概率推理就是通过一些变量的信息来获取其他变量的概率信息的过程,基于概率推理的贝叶斯网络是为了解决不确定性和不完整性问题而提出的,它对于解决复杂设备不确定性和关联性引起的故障有很大的优势。在汽车故障预测问题中,不同故障的相互影响、不同部件的关联特性以及信息不完整等特性使得贝叶斯网络在汽车故障预测中具有极大的优势[8]。
通过SVM分类器已经得到汽车当前状态在不同故障类型上的概率,首先构建好整个推理网络结构,并将这些概率作为故障预测推理网络父节点的先验概率,同时完成条件概率表设计,即可完成整个汽车故障预测推理系统的构建。如图2所示:
随着汽车逐渐接近故障状态,如发动机出现异常,温度逐步走高,那么从数据中提取出的特征值中发动机水温值必然越来越大,SVM分类器得到相关概率值也会增大,那么贝叶斯网络就会将新的证据加载到网络中。然后,证据就会在整个网络中传播,进而更新整个网络。实测数据中,当发动机水温达到时,可以确定发动机过热概率为100%,利用贝叶斯网络的消息传播原理可以更新整个网络进而得到汽车发生故障的概率为87.64%,显然这是一个比较高的概率值,与阈值75%相比较即可判断汽车即将发生故障需要立刻维修,达到故障预测保证安全驾驶的目的。更新之后的推理网络如图3所示:
图2 汽车故障预测贝叶斯推理网络
图3 更新后的汽车故障预测贝叶斯推理网络
通过将不同的综合故障概率值与从经验中提取的阈值相比较,就可以得出汽车当前状态在未来发生故障的可能性和变化过程,进而完成对汽车故障的预测。
汽车故障预测系统实现主要包括以下几部分:实时接收数据、数据预处理、特征值提取、计算分类概率值、完成网络构建,输出故障预测报告。 利用 MFC(Microsoft Foundation Class)编写汽车故障预测系统软件,最终从实时性和准确性两个方面对软件进行性能测试。
汽车故障预测系统主要分为三大部分:数据接收与结果显示、分类器和推理机,其中推理机为整个预测系统的核心,完成故障预测的主要工作。功能框架图如图4所示:
图4 汽车故障预测系统功能框架图
图5 汽车故障预测系统流程图
汽车故障预测系统的工作流程即是通过逐步实现功能框图中各个功能模块,进而完成故障预测。通过接口实时接收各个传感器数据,通过滤波去除噪声干扰,进而利用界面显示当前汽车状态。从大量数据中提取相关特征值,构成特征向量,输入到分类器中进行训练,得到状态在不同故障类型上的概率值,再作为输入传入贝叶斯网络推理机,从更新后的网络中提取感兴趣的概率值,再和数据库中相关阈值进行比较,便能得出当前状态下的汽车在未来发生故障的分析报告[9][10]。系统流程图如图5所示:
基于Visual C++6.0平台,利用MFC完成汽车故障预测系统设计,主要完成两部分工作:
①界面设计:汽车状态显示和故障预测报告显示,同时还提供读取离线数据和同步实时数据的功能;
②算法实现:完成数据预处理、提取特征值、实现分类器以及完成推理。在利用贝叶斯网络进行推理时,最重要的即可输入证据信息完成推理网络更新,核心代码如下:
界面如图6所示:
图6 汽车故障预测系统显示界面
随着汽车产业的蓬勃发展,汽车安全越来越成为人们关注的焦点,这为汽车故障预测技术提供了广阔的舞台。本文基于对大量汽车故障状态前20分钟的数据的分析,通过支持向量机提取在不同故障类型上的概率值,输入贝叶斯网络进行推理,进而实现对汽车综合故障的预测,输出分析报告。这不仅大大提高了汽车的安全性,而且也为汽车的高度智能化提供了新的思路。最后编写软件实现汽车故障预测系统,同时对系统的实时性和准确性进行了分析,证明了基于支持向量机的汽车故障预测贝叶斯网络推理系统在实际环境中实用性和适应性[11]。
[1]高小焕.基于神经网络的汽车故障诊断研究[D].西安:西北大学,2013:36-43.
[2]余梓唐.基于粒子群算法优化支持向量机汽车故障诊断研究[J].计算机应用研究,2012,(2):572-574.
[3]杨天社,杨开忠,李怀祖.基于粗糙集理论的卫星故障诊断方法[J].空间科学学报,2003,(4).
[4]周志才,刘东风,石新发.故障预测与健康管理在舰用柴油机中的应用[J].兵工自动化,2014,(1):29-31.
[5]赵体兵,董贺.采煤机故障诊断与故障预测研究[J].中国机械,2014,(11).
[6]Christopher M.Bishop.Pattern Recognition and Machine Learning[M].Springer,2006:95-129.
[7]李航.统计学习方法[M].北京:清华大学出版社,2013:37-53.
[8]肖秦琨,高嵩,高晓光.动态贝叶斯网络推理学习理论及应用[M].北京:国防工业出版社,2007:78-112.
[9]潘明清.基于支持向量机的机械故障模式分类研究[D].杭州:浙江大学,2005:29-80.
[10]刘琦烽.基于支持向量机的汽车ABS系统故障诊断[D].长春:吉林大学,2011:37-49.
[11]杨婷,杨根科,潘常春.基于 BP 神经网络的汽车故障率预测[J].计算机仿真,2009,(1):267-270.