1、基于字典相干性优化的稀疏分类在发动机空燃比故障识别中的应用 吴士力 唐振民 刘奇 南京理工大学计算机科学与工程学院 南京交通职业技术学院长安福特汽车有限公司联合实验室 摘 要: 稀疏分类直接把故障样本作为原子会造成分类字典相干性较高, 进而影响稀疏分类精度, 为此提出一种通过有效降低分类字典相干性来提高稀疏分类效果的优化算法。该方法首先通过传播聚类算法获取分类子字典的代表原子, 然后基于极分解和子空间旋转法对子字典进行相干性优化。在某型发动机上的实验结果表明, 该算法在低相干性字典上能够对怠速和 2000r/min 工况下的 5 种常见空燃比故障进行高精度识别。关键词: 稀疏分类; 字典相干性
2、; 汽油发动机; 空燃比故障识别; 作者简介:吴士力, 男, 1980 年生。南京理工大学计算机科学与工程学院博士研究生。主要研究方向为智能故障诊断技术、智能控制系统等。发表论文 6 篇。E-mail:wsl_。作者简介:唐振民, 男, 1961 年生。南京理工大学计算机科学与工程学院教授、博士研究生导师。作者简介:刘奇, 男, 1983 年生。南京交通职业技术学院智能交通实验室实验师。收稿日期:2016-11-28基金:国家自然科学基金资助项目 (61305134) Recognition Applications for Air Fuel Ratio Faults of Gasoline
3、Engines Using Sparse Representation Classification Based on Optimization of Dictionary CoherenceWU Shili TANG Zhenmin LIU Qi School of Computer Science and Engineering, Nanjing University of Science and Technology; Nanjing Vocational Institute of Transport Technology-Changan Ford Joint Research Labo
4、ratory; Abstract: Sparse representation classification directly took fault samples as atoms which would result in higher coherence of classification dictionary.Thus, accuracy of sparse classification would be affected.A new optimization algorithm was proposed to improve effectiveness of sparse class
5、ification by effectively reducing the coherence of classification dictionary herein.Firstly, the representative atom of each sub-dictionary was obtained by affinity propagation clustering algorithm.Secondly, all the sub dictionaries consisted of representative atoms were optimized based on polar dec
6、omposition and subspace rotation methods.The experimental results of an engine show that, the novelty classification algorithm achieves high accuracy of recognition for five common faults in idle and 2000 r/min operating conditions using the dictionary with lower coherence.Keyword: sparse representa
7、tion classification; coherence of dictionary; gasoline engine; air-fuel ratio fault recognition; Received: 2016-11-280 引言近年来, 基于数据驱动的汽油机故障识别算法得到越来越多的关注。稀疏分类 (sparse representations classification, SRC) 是由 WRIGHT 等1提出的一种有别于神经网络、支持向量机等传统分类的数据驱动方法。稀疏分类在人脸识别、图像和信号处理等领域的应用取得了较好的效果2-7。在汽油机机故障识别与诊断领域, 直接使用
8、故障样本构建字典的方法虽然简单直观, 但是其应用效果存在一定的局限性。这是因为很多发动机故障的特征往往存在一定的相似性, 从而导致分类字典具有较大的相干性。相干性的存在对稀疏分类的精度造成了负面影响8。文献9明确指出, 低的相干性有利于减小字典的冗余度, 从而获得更好的稀疏信号重构效果和更高的分类精度。目前, 低相干性字典的求解思路主要有两种:一种是在现有的字典学习算法上增加额外的相干性优化步骤;另一种是通过迭代方法直接求解低相干性字典10-11。MAILHE 等12提出的 INK-SVD 算法通过对字典中高相干性的原子进行聚类, 然后在其基础上进行迭代解耦来降低相干性。BARCHIESI 等
9、13提出的 IPR 算法采用交替投影法优化字典的 Gram 矩阵并构造 Grassmannian 框架, 获得低相干性的字典后再进行旋转优化, 从而提高稀疏表示精度。CRISTIAN14提出的IDCO 算法先优化字典原子间的最大内积, 根据凸优化方法对相干性高的原子进行迭代解耦, 以此最小化字典的相干性。汤红忠等15提出对字典进行极分解的 PDIDL 算法, 在降低字典相干性的同时具有较小的稀疏表示误差。上述方法主要用于稀疏表示字典的优化, 如果应用于分类字典, 会改变子字典的内部结构, 导致稀疏分类的准确率下降。目前, 针对如何降低分类字典的相干性的研究还非常少。本文在 PDIDL 算法的基
10、础上, 根据分类字典的结构特征对分类字典进行优化。首先对由各个子字典的代表原子组成的字典进行相干性优化, 再对各个子字典中其他原子进行处理, 最后通过子空间旋转法对字典进行整体优化。通过趋势分析获得汽油发动机的故障样本后, 在优化后的分类字典上对故障样本进行稀疏分类, 实现对汽油机故障类型的识别。1 SRC 算法SRC 算法认为待分类样本只能由同类别样本来线性表示。设包含 C 个类别的训练样本集生成的矩阵 , 子矩阵 Ai是第 i 个类的训练样本子集。SRC 将 A 作为分类字典 D, 其分类过程如下:(1) 将任意测试样本 tm1在字典 D 上进行稀疏分解, 即求解优化问题:式中, y 为测
11、试样本 t 的表示系数向量; 为惩罚因子。(2) 用向量 y 重构样本 t, 然后根据最小重构误差进行分类:其中, y i是 y 中第 i 种分类的稀疏系数。根据所求得的 i 即可得到样本 t 所属的分类。2 字典学习的目标由 SRC 算法的原理可知, 字典对信号的稀疏分解和重构有着至关重要的影响。D ON OHO 等16指出, 低相干性的字典是获得稀疏最优解的重要条件之一。字典相干性用字典原子 (归一化后) 间内积的最大绝对值进行度量, 该值反映了原子间最相似的程度, 具体定义如下:其中, d i、d j是字典 D 中的两个原子, ij。汽油发动机的故障样本之间往往都存在一定的相似性, 如喷
12、油器无法全部开启和进气系统漏气故障发生时都会出现空燃比过稀、怠速抖动等现象, 因此如果直接用故障样本来构建分类字典, 会对稀疏分类的分类效果产生较大影响。此外, 当故障样本数量很大时, 会导致字典冗余度增加, 进而影响分类效率。因此有必要从发动机故障样本中学习优化分类字典, 使其具有较好的稀疏表达能力和低相干性。设包含 C 个类别的字典 D 的学习模型为其中, D i是第 i 个类的子字典。T=T 1 T2TC是训练用的故障样本集, T i是第i 个类的故障样本子集。X= (X 1, X2, , XC) 是训练样本 T 在字典 D 上的投影系数向量。X i是 Ti在 D 上的投影系数向量, X
13、 i= (Xi1, Xi2, , XiC) , 其中, Xij是 Ti在 Dj上的投影系数向量。根据稀疏分类思想, 相同类别的训练样本 Ti只能够用 Di进行稀疏表示, 而不能用 Dj (ij) 来表示, 即 Xij=0。为了进一步提高稀疏分类精度, 还需要字典 D 中不同类原子间的相干性尽可能的低。综上所述, 本文提出分类字典优化的目标函数为其中, X 1是稀疏约束项。显然, 式 (5) 是一个双变量的非凸优化问题, 一般通过反复迭代法来获取最优解, 其求解步骤如下: (1) 初始化随机字典 D (已归一化) ; (2) 固定字典 D, 求稀疏表示系数 X; (3) 固定 X, 求解低相干性
14、字典 D; (4) 反复运行步骤 (2) 、步骤 (3) 直到满足停止条件。3 字典学习算法由上述分析可知, 分类字典的优化效果主要取决于稀疏系数和低相干性字典的求解结果。3.1 求解稀疏系数在字典已知的情况下, 一般采用匹配追踪法对投影向量进行稀疏求解, 其具体过程如下。(1) 首先初始化残差 e0=Tij, Tij是第 i 个类的第 j 个故障样本;(2) 从分类字典 DM中找到与 e0的内积绝对值最大的原子 ;(3) e0减去其在 d1 所张成空间上的正交投影, 得到残差 e1, 即(4) 迭代执行步骤 (2) 、步骤 (3) 直到满足停止条件:3.2 相干性优化3.2.1 稀疏字典的相
15、干性优化字典的相干性在理论上具有边界值。TR OPP 等17根据等角紧框架理论, 得出对于归一化的过完备稀疏字典 Dmn, nm (m+1) /2, 其相干性满足:直接求解字典 D 的等角紧框架很困难。PDIDL 算法通过对字典 Dmn进行极分解, 得到 D=PmmQmn。令 , r=n/m, 则 是 D 最近的 r 紧框架, 且等于 D 的相干性下界, 则字典 D 的相干性优化目标函数为采用梯度下降法对式 (9) 进行求解, 可得字典 D 的更新公式:其中, I 为单位矩阵; s为迭代步长。3.2.2 分类字典的相干性优化本文需要降低的是分类字典 D 中异类原子间的相干性, 而不是所有原子间
16、的相干性, 从而在降低相干性的同时, 保持各类子字典的内部结构, 进一步提高稀疏分类精度。如果以原子为单位进行求解较为困难, 且计算量较大。因此, 把优化问题 mDMin (D) 的求解分成 4 个步骤:(1) 先求出子字典 Di的代表原子 dei, 获得代表字典 De= (de1, de2, , deC) ;(2) 求解问题 min De (D e) , 获得 D e= (d e1, de 2, , de C) ;(3) 更新 di, 获得低相干性的分类字典 D;(4) 通过子空间旋转法对 D进行优化;整个分类字典的相干性优化过程如图 1 所示。本文中, 各分类字典代表原子的求取通过近邻传播
17、聚类 (affinity propagation, AP) 算法来实现, 以提高整个算法的鲁棒性。AP 算法18基于相似度矩阵进行聚类, 并获得聚类结果和类代表点。由于分类字典原子的类别是已知的, 所以可以加入先验约束信息来提高聚类的精度和效率。获取 DM中各个子字典代表原子的算法如下。图 1 分类字典相干性优化过程 Fig.1 Optimization process for the coherence of dictionary 下载原图用相似度矩阵s (d i, dj) 刻画 DM中原子 di和 dj间的距离, 其元素 s (di, dj) =-d idj。由于不同类别的原子不可能分在一
18、组, 所以在相似度矩阵s (d i, dj) 中加入强制约束 s (di, dj) =-。构建代表矩阵r (d i, dj) 和适选矩阵a (d i, dj) , 其中, 元素 r (di, dj) 描述原子 dj适合作为 di所属类代表原子的代表程度。元素 a (di, dj) 用于描述原子 di选择 dj作为其所属类代表原子的合理程度, 默认为 0。通过以下步骤不断更新矩阵r (d i, dj) 和a (di, dj) :上述迭代结束后, 若满足 , 则 dj为 di所属类的代表原子。构建一个由所有代表原子组成的 KC 维的字典 De, 其中, K 为原子的维数。则De的相干性 (D e)
19、 =max|d eidej|。由式 (9) 可得, (D e) 的优化问题:其中, 是 De最近的 r 紧框架, r=C/K。代表原子字典 De的更新公式为迭代结束后得到更新后的字典 D e, 并可获得上述优化过程在 dei上产生的偏移量:将分类子字典 Di中其余原子 dxi (dxid xe, x=1, 2, , Li) 都加上偏移 i, 其中, L i为 Di中的原子数, 即可得到一个新的分类字典 D。该字典既保持了子字典的内部结构, 也降低了各子字典之间的相关程度。在进行上述相干性优化时, 没有考虑字典的稀疏表达精度。因此, 本文直接采用文献19提出的子空间旋转法来实现, 即把式 (5)
20、 转换成 进行求解, 其中, B 为任意的正交矩阵。该算法可以在不改变子字典内部结构和不降低字典相干性的前提下对分类字典进一步优化调整。4 故障识别算法汽油发动机发生空燃比故障后, 闭环控制系统会在一定范围内对发动机状态进行修正, 因此, 及时获取发动机故障发生时的数据流对下一步的分析来说很重要。本文通过监控短期燃油修正值 (short term fuel trim, STFT) 的趋势变换来捕捉空燃比故障的发生时刻。发动机在无故障状态下, STFT 基本保持稳定 (急加速或废气再循环系统会导致 STFT 出现小幅度短时间的波动) 。一旦空燃比故障发生后, STFT 值会出现明显的趋势变化异常
21、, 闭环系统难以在短时间内进行快速修复。这为获取故障状态下的发动机数据流提供了空间。本文采用文献20提出的方法来获取 STFT 趋势发生异常变化的时间段, 然后开始记录发动机在该时间段内的数据流。提取相应特征后由训练好的分类字典进行稀疏分类, 最终实现故障识别。本文提出的 LC-SRC 算法的流程如图 2 所示。图 2 LC-SRC 算法流程示意图 Fig.2 Process of LC-SRC algorithm 下载原图5 实验5.1 实验环境目前, 汽油发动机控制系统都通过车载自诊断 (on-board diagnostic, OBD) 系统对电气故障进行监控和诊断, 但一般难以捕获一些
22、轻微的机械故障或电气故障, 如进气系统漏气、进气流量信号偏低等。该类故障如果不能及时处理, 往往会对发动机寿命甚至行车安全造成威胁。在这种背景下, 同时考虑到实验的可操作性和安全性, 本文针对发动机在运行过程中出现的曲轴箱强制通风阀漏气 (EL) 、喷油器卡滞 (IS) 、进气总管漏气 (IL) 、进气流量信号偏低 (IFL) 和节气门位置信号偏低 (TPL) 共 5 种会引起空燃比失衡的常见故障进行识别。实验车辆采用长安福特的 2013 款福克斯手动基本型, 发动机型号为1.8LDuratec 型自然吸气式。故障设置方法如下: (1) 在曲轴箱强制通风阀与进气歧管的连接软管上开一个直径约为
23、3mm 的孔; (2) 由汽修单位直接提供一个因卡滞无法全开的喷油器, 替换实验车辆上的无故障喷油器; (3) 松开进气总管和节气门体的紧固螺母; (4) 堵住空气流量计计量孔 1/3 的面积; (5) 在节气门位置传感器 TP1 信号线中串联 30 电阻。通过诊断仪从 OBD 接口读取发动机在正常工况和故障状态下的相应工况数据流。根据待识别故障的特点, 每组数据流包括发动机转速发动机转速、负荷、加速踏板位置、节气门位置、进气流量、点火提前角和 STFT 值。在发动机怠速工况下, 采集了无故障状态和 5 种故障状态下 (EL、IS、IL、IFL 和 TPL) 的数据流各 120 组;在发动机
24、2000r/min 工况下, 采集了上述 6 种状态下的数据流各 100组。每条数据流都包含 200 个样本点。图 3 所示的是发动机在喷油器卡滞故障状态下所采集的某一组原始数据流样本。车辆在行驶过程中, 发动机工况随着驾驶行为的变化而变化, 即使没有发生故障, 发动机的工况参数也会因为运行环境的变化、自然老化、磨损等发生缓慢的漂移。因此直接把原始数据流作为故障样本很难获得满意的故障识别效果, 一般都需要对原始数据流进行特征提取。根据待识别故障的特点, 所提取的特征包括发动机转速、负荷、节气门位置和点火提前角信号的振幅, 节气门位置、加速踏板位置、进气流量、点火提前角和短期燃油修正信号的均值,
25、 发动机转速和负荷的相关系数、发动机转速和进气流量的相关系数、发动机转速和节气门位置的相关系数。因此, 对表 1 中的原始数据流样本进行特征抽取后可分别获得维度为 12720 的怠速工况故障特征样本集和维度为 12600 的2000r/min 工况故障特征样本集。5.2 实验结果与分析根据式 (8) 对字典行列数的约束, 用随机向量初始化 2 个 1284 的分类字典:图 3 喷油器卡滞故障时的数据流样本 Fig.3 Data stream sample of injector clamping fault 下载原图D=D1 D2D6其中, 每个子字典的原子数都相同。进行归一化后分别用于怠速工
26、况和2000r/min 工况下的发动机故障识别。由式 (9) 可得这 2 个字典的相干性边界值均为 0.2689。故障识别算法的参数如下:字典学习算法的终止条件为迭代 50次, 匹配追踪法的终止条件为误差变化小于 10 或迭代 100 次, = s=0.1。从特征样本集中随机选取 70%的样本作为训练样本集, 其余 30%作为测试样本集, 共进行 10 次交叉验证。为了验证 LC-SRC 算法的性能, 分别使用 INK-SVD、IDCO、IRP 和 PDIDL 算法求解相应的低相干性分类字典 DM, 并利用所得字典进行稀疏分类, 将所得结果和 LC-SRC 算法以及传统 SRC 算法的分类结果
27、进行比较。图 4 所示为怠速工况和 2000r/min 工况下各算法对字典相干性进行优化的过程。由图 4 可知, IDCO、IRP、PDIDL 和 LC-SRC 算法分类字典的相干性都随着迭代次数的增加明显下降。其中, PDIDL 算法训练的字典在两种工况下的相干性最小, 分别达到 0.2772 和 0.2721, 已经非常接近理论下界值。LC-SRC 算法字典的最小相干性分别为 0.3172 和 0.3121, 略高于 IDCO 和 PDIDL 算法。这是因为LC-SRC 算法并没有对字典整体的相干性进行最小化, 而只是优化分类子字典间的相干性。INK-SVD 算法对字典相干性的优化不明显,
28、 两种工况下字典的相干性分别为 0.5230 和 0.5310。因为 SRC 没有对字典进行迭代优化, 其字典相干性分别为 0.582 和 0.564。图 4 故障字典相干性的优化过程 Fig.4 Optimization process for the coherence of faults dictionary 下载原图表 1 所示为各算法对 5 种故障和无故障状态共 6 种模式进行识别的平均准确率。表 1 故障识别正确率 Tab.1 Accuracy of faults recognition 下载原表 可以看到, 虽然 LC-SRC 训练的字典相干性不是最低, 但其获得的平均识别准确率
29、却优于具有更低相干性的 IDOC 和 PDIDL 算法。这是因为 IDOC 和 PDIDL 算法只以获得低相干性为目标, 并没有考虑分类子字典的内部结构和稀疏表达意义, 这在一定程度上制约了分类精度的进一步提高。对于其他三种具有较高相干性字典的算法来说, 其分类精度也明显较高。这表明分类字典较低的相干性对提高稀疏分类精度是有明显意义的。此外, 由于不同工况下的故障特征会发生变化 (比如怠速工况下 EL 的故障症状会比 2000r/min 工况下明显) , 所以同一种故障的识别率在怠速工况下和 2000r/min 工况下是不同的。6 结语本文提出了一种基于分类字典相干性优化的汽油发动机故障识别算
30、法 (LC-SRC) 。该算法根据短期燃油修正值 STFT 趋势的异常变化来获取有效的故障样本, 从中提取特征后交给稀疏分类器进行识别。由于直接使用故障样本作为原子的字典相干性较高, 且字典体积容易过大, 因此本文先使用近邻传播算法来获取每个分类子字典的代表原子, 然后对由所有代表原子组成的字典进行相干性优化, 接着根据代表原子的优化结果对分类字典中每个原子进行调整, 在最小化分类字典相干性的同时保持子字典的内部结构, 最后使用子空间旋转完成字典的学习和稀疏分类器的训练。在长安福特福克斯发动机上的实验结果表明, LC-SRC算法在所获得的低相干性字典上, 能够以较高的准确率对怠速和 2000r/min 工况下 5 种空燃比故障进行识别。参考文献