田 维,崔博文
(集美大学轮机工程学院,福建 厦门 361021)
随着新能源技术的发展,逆变器应用日趋广泛,功率开关元件作为逆变器核心元件之一,其工作的稳定性十分重要,因此对功率开关元件故障诊断的研究显得尤为必要。文献[1-2]提出输出三相电流转换到d-q坐标,并进行帕克变换的开路故障诊断方法,这种方法主要是对比正常情况下的电流和逆变器瞬时输出电流。采用帕克变换进行故障诊断比较简单而且及时,但这种方法对测量和观察设备要求很高,加大了故障诊断的成本。文献[3-4]采用了基于主成分析法的开路故障诊断方法,能快速发现逆变器是否出现故障,但当出现两个故障元件时,难以准确定位故障。文献[5-6],采用单个多分类支持向量机的分类方法,能比较准确的对故障进行定位,但在故障种类较多时,会出现分类次数多,故障诊断时间长的问题。
本文提出了基于小波包分解的多个多分类支持向量机故障定位方法。通过获取逆变器三相离散电流波形,再利用最小描述长度准则(MDL)[7],选取适合的小波包函数,对获得的电流波形进行三维小波包分解,获得多种故障特征值,不同的故障特征值用于训练不同多分类支持向量机(SVM),再结合每个多分类SVM的分类结果,共同定位故障。本文方法对比于单个多分类支持向量机的方法,SVM的训练数据具有更高区分度,寻优时间更短,分类次数更少。
以功率开关元件为基础的(PWM)三相逆变系统为模型进行讨论。电路按文献[8]设计,逆变器驱动的电动机变频调速系统如图1所示。其中:Vd为电压;a,b,c为三相绕组与逆变桥联结点。由于功率开关元件技术的发展,其故障存在如下几种类型:一只功率开关元件断路故障;两只功率开关元件同时断路故障;为了更全面的分类,本文将无故障也设为一类。
为方便分类,将元件状态分为以下5类:
1)无故障,故障编码设为F0。
2)同一桥臂两个功率开关元件同时开路故障,有3种故障,即VT1和VT2、VT3和VT4、VT5和VT6开路故障,故障编码分别设为F1、F2、F3。
3)一个功率开关元件开路故障,有6种故障,即VT1、VT2、VT3、VT4、VT5、VT6开路故障,故障编码分别设为F4、F5、F6、F7、F8、F9。
4)上、下两组元件各一只功率开关元件开路故障,有6种故障,即VT1和VT3、VT1和VT5、VT3和VT5、VT2和VT4、VT2和VT6、VT4和VT6开路故障,故障编码分别设为F10、F11、F12、F13、F14、F15。
5)交叉两只功率开关元件开路故障,有6种故障,即VT1和VT4、VT2和VT3、VT1和VT6、VT2和VT5、VT3和VT6、VT4和VT5开路故障,故障编码分别设为F16、F17、F18、F19、F20、F21。
一共21种故障状态和一种正常状态,本文以这22种状态为研究对象。
逆变器输出电流信号由各种频率的电流组成,其中高频和低频部分都含有重要信息,可以进一步分解。选取小波包变换有利于故障定位,小波包分解结构如图2所示。为了更好地选择小波包分解函数,用最小描述长度(MDL)数据准则来选择最佳小波滤波器和保留用于信号重建的最佳小波系数。MDL函数定义为:
(1)
然后把采集的a、b、c三相离散电流信号,作为小波包函数的3组输入信号,进行3层小波包分解。其中:a相电流为第一维;b、c分别对应二、三维。VT2故障信号分解如图3所示。图3是对VT2故障的第一维的3层小波分解,得到S30~S378个子频带。其他故障状态也是以同样方式进行分解。
利用小波包对三相电流进行3层分解,得到8个频带成分系数,用系数构成矩阵,表示为,S3j=(s3jas3jbs3jc),其中j=0,1,…,7。本文提取了3组故障特征值,分别作为分类器的输入量,其步骤如下。
1)计算局部能量向量组:E3j=(e3jae3jbe3jc),其中j=0,…,7。根据正交小波包性质,分解后信号可以表示为:
(2)
因此其中一维某一个子频带能量计算式可表示为:
(3)
按式(3)求得能量矩阵E3j,再求每一列的矩阵元素和,令其为Esum=(esumaesumbesumc),然后对各频带能量进行归一化处理,即Enoj=(e3ja/esumae3jb/esumbe3jc/esumc),j=0,…,7。部分故障小波包分解后能量归一化处理后如图4所示,根据数据分析,其中当j=0,4时,Eno0,Eno4能作为故障特征值。
2)根据文献[11-12],直流偏移量可以作为故障特征值,其矩阵表达式为:
(4)
(5)
式中:N为分解层数,j=1,…,2N;n为采样总数。结合式(4),式(5),取N=3,j=0时,可得偏移量矩阵F30=(S30aS30bS30c)。
图5为VT1和VT4发生故障时低频的三维偏移图,可以看到,一维和二维都发生了相应的偏移。
支持向量机是基于二分类的分类器,其算法的关键在于,“支持向量”x(i)和输入空间抽取的向量x之间的内积和,用于寻找最优分割面。该算法在理论上比较完善,设计比较简单,在模式分类问题上有较好的泛化性能,具有通用性和鲁棒性,适合解决分类问题。SVM模型训练流程如图6所示。
SVM的训练[13-14]最终可以转化为拉格朗日凸函数二次寻优问题,其函数w(α)表达式如下:
(6)
式中:K(xi,xj)为核函数;αi为拉格朗日因子;yi为分类标签;n为分类数据个数。
式(6)要满足αi大于零,所有拉格朗日因子与其标签的乘积和为零。
从式(6)可以看出,当n取值较大,也就是分类数据量大时,计算量会增大,计算时间因此增多,导致了部分样本数据互相交叉存在和分类边界不明确的现象,会带来两方面问题:
1)SVM的核函数以及参数选择要求较高,不容易找到最优超平面引起的分类失败或错误,特别在扰动较多的场合中,更易导致分类失败;
2)分组多,数据区分小,使得寻优和测试阶段时间加长。
实践中,采用单个多类SVM对22种状态进行分类时[15],在特征值相同的情况下,分类模式越多,训练多分类的SVM时间变长,分类错误和失败率更高。为优化上述问题,本文提出用多组特征值分别训练多分类SVM,每个多分类SVM以不同数据训练并分类,最后结合编程定位故障,以达到提高准确率和减少整个运行时间的目的,其模型如7所示。
以图1所示的电机系统为例,具体参数为:频率f=50 Hz;载波比R=18;调制深度M=0.85;磁极对数P=2;Rs=1.49 Ω;Ls=0.005 839 H;V=440 V。
为实现减少分类次数的目标,根据系统的性质和桥臂与电力的关联性,首先对逆变器功率开关进行分类:1)VT1、VT2对应a组,VT3、VT4对应b组,VT5、VT6对应c组;2)VT1、VT3、VT5对应上组,VT2、VT4、VT6对应下组,如图8所示。
SVM训练步骤如下。
1)训练集和测试集准备:小波包分解得到的数据Eno0,Eno4,F30作为多个多分类SVM的输入量,为方便表示,分别用U、V、W按前后顺序代替,用来分别训练4个多分类SVM。各多分类SVM命名、输入参数、分类标签等如表1所示。同时SVM3(W)和SVM4(W)虽然是同一组数据,但它们的训练集是不同的。作为对比,本文按文献[16]方法进行单个多分类SVM故障定位,训练集是W组数据。
表1 各多分类SVM简要说明
输入参数(说明)Input parameters(explanation)部分元件Partial element一维TheFir-D二维Thesec-D三维TheThir-D分类标签ClassifyLabelSVM1(U)U(同一相)(The same phase)VT1,VT20.380.990.99VT3,VT40.990.400.9930-33SVM2(V)V(a、b、c组)(a、b、c group)VT1(a组)(a group)0.960.310.29VT2(a组)(a group)0.970.330.29VT2,VT5(a、c组)(a、c group)0.970.390.9140-46SVM3(W)W(上、下组)(Upper and lower group)VT1-0.81 0.210.29VT1,VT5-0.83 0.22-0.79 VT1,VT6-0.81 0.220.7950-52SVM4(W)W(上组)(Upper group)VT1,VT4-0.82 0.830.10VT2,VT30.83-0.830.0960-62
2)归一化:本文应用了映射f:x→y=(x-xmin)/(xmax-xmin)作为归一化方式。
3)训练、寻优:5个多分类SVM都采用径向基函数作为核函数,每一个多分类SVM的每一种分类都是20组训练集数据,这样利用本文方法有340组训练集,文献[16]的方法有440组训练集。为了在同样的数据量下对比正确率,两种方法的测试集都设为340组。由于惩罚参数c和核函数参数g对训练集准确率影响大,所以为了提高判断的正确率,本文通过交叉验证进行了两个参数的寻优。
4)测试:输入测试集,获得测试的正确率和程序判断时间。限于篇幅,仅列出SVM4(W)的测试图,如图9所示。
4个多分类SVM的训练模式如图10所示。其中:a,b,c分别表示a组、b组及c组中有开关元件发生开路故障,ab表示a组和b组中各有一个元件发生故障,ac表示a组和c组中各有一个元件发生故障;bc表示b组和c组中各有一个元件发生故障。根据这个模式再结合表2,编写MATLAB程序,进而定位故障点,并统计程序运行时间和判断正确率。
表2中:√代表SVM分出该标签;×代表SVM没有分出该标签;空格代表该SVM分出的标签不影响故障定位。以F15为例:SVM1(U)分出的标签为33,SVM2(V)分出的标签为46, SVM3(W)分出的标签为51,共同定位故障F15,SVM4(W)因程序设置原因,分类结果不影响定位。
经过MATLAB模拟实验,得到了如下实验结果:
1)SVM1(U)、SVM3(W)、SVM4(W)分类正确率为100%,SVM2(U)140个测试集中,错误判断有5个,分类正确率为96.4%。而相对于整个程序的340组测试集,本文方法的正确率为98.5%。用文献[16]方法错误判断有21个,分类正确率为93.8%;
2)在执行时间上,采用本文方法在训练和寻优阶段所用时间一共为2.67 s,而采用文献[16]方法的分类训练和寻优共用时5.33 s。采用4个多分类SVM一共分类17次,而采用单个多分类SVM,少则分类22次,多则分类44次。
表2 故障定位参考表格
故障FaultSVM1(U)30313233SVM2(V)40414243444546SVM3(W)505152SVM4(W)606162F0×××√√×××××××××F1√×××××××××××××F2×√××××××××××××F3××√×××××××××××F4×××√×√×××××√××F5×××√×√××××××√×F6×××√××√××××√××F7×××√××√×××××√×F8×××√×××√×××√××F9×××√×××√××××√×F10×××√××××√××√××F11×××√×××××√×√××F12×××√××××××√√××F13×××√××××√×××√×F14×××√×××××√××√×F15×××√××××××√×√×F16×××√××××√××××√√××F17×××√××××√××××√×√×F18×××√×××××√×××√√××F19×××√×××××√×××√××√F20×××√××××××√××√×√×F21×××√××××××√××√×××
本文研究了基于小波包分解的多个多分类SVM故障诊断方法。利用小波包分解三相电流值,得到E30、E34和S30的偏移量作为输入量,分别训练多个多分类SVM。再把每一个多分类SVM分类的结果结合程序,最终定位故障点。通过模拟实验证明,采用本文方法,数据有更大的分辨率,分类次数得到减少,故障诊断时间得到减少,正确率得到了提高,适合有扰动的场合。