王欣 梁辉 秦斌
摘要:针对无刷直流电机转子位置检测问题,提出基于在线贯序极限学习机(OSELM)的无刷直流电机无位置传感器控制方法。该方法构建了一个单隐层前馈神经网络,经分析将定子端电压和电流作为OSELM网络的输入信号,逆变电路的逻辑换相信号作为OSELM网络的输出,将电流速度双闭环控制得到的PWM波形与OSELM网络输出进行逻辑处理得到功率开关管的控制信号,由此实现无刷直流电机的无位置传感器控制。网络参数通过离线训练得到,将训练好的网络模型应用到电机中进行在线测试。将该方法与传统反向传播(BP)神经网络方法进行比较,实验结果表明该方法避免了BP神经网络参数难以选取的问题,且在保证高精度的前提下,比传统的控制算法速度更快,验证了该方法的可行性和优越性。
关键词:无刷直流电机;转子位置检测;极限学习机;前馈神经网络;PWM波形
DOI:10.15938/j.emc.2018.11.000
中图分类号:TM 301.2
文献标志码:A
文章编号:1007-449X(2018)11-0000-00
0引言
无刷直流电机无法自动换向,因此需要获取转子位置信息来控制逆变电路导通与关断[1],以此来实现无刷直流电机的换向工作。为获取转子位置信息,传统的方式是直接利用位置传感器检测,但位置传感器的存在使得电机体积增大,成本增高,难以适应对此高要求以及恶劣的环境,如航天航空用无刷直流电机、家用电器等领域,并且传感器接线复杂,容易引入干扰[2],对电机运行的稳定性造成一定影响。因此转子的无位置传感器检测就变得极其重要。
目前转子的无位置传感器检测方式主要有反电势法、电流法、磁链估计法以及智能检测法等。其中反电势过零检测法最为成熟,但因反电势与电机转速有关,故在转速极低甚至为零的情况下不能通过检测反电势来获取过零信号[3];电流法主要是通过相电流检测电路来获取转子位置信号,但该方法主要依赖电流测量的精度,转速运行范围较小[4];磁链估计法需要知道电机运行时的电感参数,但电感值与转子位置有关,其值很难精确测量[3];目前运用的智能检测法主要是神经网络检测法,文献[5]采用了反向传播(backpropagation, BP)神经网络检测法,该方法具有较高的控制精度和鲁棒性,但算法训练时间较长,且网络参数难以选取。
针对上述问题,提出了一种基于在线贯续极限学习机的转子位置检测的新方法,首先分析能够反映转子位置信息的因素,从而确定极限学习机网络的输入和输出,经分析可知,网络的输入为定子端电压和电流,输出则为逆变电路的逻辑换相信号。控制部分采用电流速度双闭环控制,将控制部分得到的PWM信号与逻辑换相信号进行与运算得到最终控制功率开关管的控制信号。该方法不仅具有较高的控制精度和鲁棒性,而且算法训练速度快、实现简单。
1极限学习机原理
极限学习机(extreme learning machine, ELM)是由南洋理工大学黄广斌教授等[6]提出的一种神经网络算法,ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。相对于传统的神经网络算法,该算法在保证学习精度的前提下加快了算法的学习速度,并且不需要人为的设置大量的网络参数,只需要确定隐含层节点个数就能产生唯一最优解。
图1为一单隐层神经网络,设有N个不同的随机样本(Xi,Yi),其中Xi=[xi1,xi2,…,xin]T∈Rn,Yi=[yi1,yi2,…,yim]T∈Rm。则对于图1所示的单隐层神经网络模型可表示为
∑Fi=1βig(ωi·Xj+bi)=Oj,j=1,2,…,N。(1)
式中:F为隐含层节点个数;βi为第i个隐层节点的输出权重;ωi为第i个隐层节点的输入权重;g(x)表示激励函数;bi是第i个隐含层偏置。
为了使神经网络的输出误差达到最小,即理想状态下以零误差逼近训练样本,则要满足:
∑Nj=1‖Oj-Yj‖=0。(2)
由此可知存在bi、ωi和βi使得:
∑Fi=1βig(ωi·Xj+bi)=Yj,j=1,2,…,N。(3)
式(3)用矩阵可以表示为
Hβ=Y。(4)
式中:H为隐含层输出矩阵;β为输出权重矩阵;Y则为期望输出。H、β、Y可表示为:
H=g(ω1·x1+b1)…g(ωF·x1+bF)………g(ω1·xN+b1)…g(ωF·xN+bF),(5)
β=βT1βTFF×m,Y=YT1YTNN×m。(6)
综上所述极限学习机的训练目的就是寻求最优的β,使得‖Hβ-Y‖=minβ‖Hβ-Y‖。传统的神经网络算法中需要调整输入权重ωi和隐含层偏置bi,而在ELM算法中,若隐含层传递函数g(x)无限可微时,输入权重ωi和隐含层偏置bi可以随机选取[6],且一旦ωi和bi被确定后在整个训练过程中保持不变,而一旦ωi、bi、隐含层神经元个数F以及激励函数g(x)被确定,β也就被唯一确定了,因此ELM算法的训练过程便可以等价为求解一个线性系统Hβ=Y,其解为
β^=H+Y。(7)
其中H+是矩阵H的MoorePenrose广义逆。
ELM算法的基本步骤:
1)随机选取训练样本数据,并进行归一化处理;
2)确定隐含层节点个数F和传递函数g(x);
3)计算隐含层输出矩阵和输出权重β。
2在线贯续极限学习机原理
由于学习效果受到初始数据样本的限制,对于电机运行中出现的新数据不能自适应学习,由此提出了在线贯序极限学习机算法(online sequential extreme learning machine, OSELM),提高其泛化能力及其精度。OSELM是一種在线增量式的快速学习算法,该算法步骤可分为2个阶段。
1)初始化阶段。随机选取初始训练数据z0={(xi,ti)}N0i=1,并给定激活函数g(x)和隐层节点数目F,随机选取输入权重向量ωi和隐含层偏置bi,设k为送到网络的数据段个数,令k=0,求得初始隐层输出矩阵H0和输出权重向量为
β(0)=P0HT0T0。(8)
其中:P0=(HT0H0)-1;T0=[t1,t2,…,tN0]T。
2)在线学习阶段。给定第k+1组数据段,计算隐层输出矩阵为Hk+1,输出权重向量为
β(k+1)=β(k)+Pk+1HTk+1(Tk+1-Hk+1β(k))。(9)
其中Pk+1=Pk-PkHTk+1(I+Hk+1PkHTk+1)-1Hk+1Pk。
令k=k+1,返回到在线学习阶段,不断更新隐含层输出矩阵H和输出权重向量β,直到数据学习完毕。
在线贯序极限学习机包含2个阶段:初始化段,对小部分数据进行学习,并将训练得到的参数H和β保存在网络中;在线学习阶段,通过变化数据实时更新参数H和β,从而强化网络的分类和泛化能力,提高精度。
3转子位置检测分析
由于无法直接通过传感器测量转子位置信息,因此需要通过分析与转子位置有关的变量来确定转子位置。设ua、ub、uc为A、B、C三相的端电压,ia、ib、ic为A、B、C三相的电流,R为定子电阻,L为定子电感,M为定子互感,λa(θ)、λb(θ)、λc(θ)分别为A、B、C三相绕组感应磁链,θ为电角度,则根据电压平衡方程有:
ua=Ria+(L-M)diadt+dλa(θ)dt,
ub=Rib+(L-M)dibdt+dλb(θ)dt,
uc=Ric+(L-M)dicdt+dλc(θ)dt。(10)
式中λa(θ)、λb(θ)、λc(θ)是随转子位置变化而变化的周期函数[8],因此若知道λ(θ)的值就能知道到转子位置。
將式(10)进行离散化可得
λx(k)=Tux(k)-(TR+L-M)ix(k)+
λx(k-1)+(L-M)ix(k-1)。(11)
其中:dλx(θ)dt=λx(k)-λx(k-1)T,dixdt=ix(k)-ix(k-1)T;T为采样时间;x代表a,b,c。
根据式(11)可知,转子位置信息可由电机端电压和电流映射得到,可表示为
gi(k)=f[(ua(k),ub(k),ia(k),
ib(k),ia(k-1),ib(k-1)]。(12)
其中:i=1,2,…,6;g1(k)~g6(k)表示六路换相信号。
由于测试的电机采用的是六相无刷直流电机,即其定子绕组是由两套三相绕组组成,其绕组分别为A、B、C、R、S、T六相,因此式(12)改为
gi(k)=f[(ua(k),ub(k),ur(k),us(k),
ia(k),ib(k),ia(k-1),ib(k-1),
ir(k),is(k),ir(k-1),is(k-1)]。(13)
其中:i=1,2,…,12;g1(k)~g12(k)表示十二路换相信号。
4基于在线贯续极限学习机的控制模型
4.1基于在线贯序极限学习模型的参数选定
4.1.1在线贯续极限学习机数据样本的选取
根据以上分析可知,可以通过定子绕组电压和电流映射出转子位置,因此训练的数据样本的输入为ua(k)、ub(k)、ia(k)、ib(k)、ia(k-1)、ib(k-1)、ur(k)、us(k)、ir(k)、is(k)、ir(k-1)、is(k-1),输出则为十二路换相信号g1(k)~g12(k)。随机选取5 000组不同的数据作为训练样本,选取3 000组不同于训练样本的数据作为测试数据。
4.1.2OSELM传递函数的确定
ELM常用的传递函数有sigmoid、hardlim和sine3种函数[9],为提高ELM测试结果的精度,需要选取合适的传递函数。通过分析3种函数对测试结果精度的影响来确定传递函数。初始训练数据个数取3 000,每个数据段训练数据个数取50,初始化隐含层个数为5,且不断增加隐含层神经元个数,各传递函数误差结果如图2所示。由图可知hardlim函数的误差相对较大,sine函数的误差随着隐含层节点个数不断减小,但隐层节点个数越多运算时间越长,且在中间阶段sine函数的误差比sigmoid函数的误差大,综合考虑选取sigmoid函数作为OSELM的传递函数。
4.1.3隐含层神经元个数的确定
极限学习机中最重要的一步就是确定隐含神经元个数,相对其他的神经网络算法,只有确定了隐含层神经元个数,才能求出准确的输出权重。由以上可知该OSELM模型的传递函数为sigmoid,由此接下来可确定隐含层神经元个数,初始训练数据个数取3 000,每个数据段训练数据个数取50,初始化隐含层神经元个数为5,不断增加隐含神经元个数,在sigmoid函数下测试误差和训练误差结果如图3所示。可知,训练误差随神经元个数的增大而减小,测试误差则是随神经元个数的先增大后减小,且隐含层神经元个数越多训练时间越长,综合考虑最终选取神经元个数为300。
4.1.4初始训练数据个数的确定
由于初始训练数据个数对训练精度有一定的影响,因此在建立该神经网络模型时需要确定初始训练个数,由前述可知传递函数为sigmoid函数,隐含层个数为300,取每个数据段训练数据个数为50,初始训练数据个数为1,不断增大初始训练数据个数,其测试结果如图4所示。可知,在训练数据个数与隐含层个数相等时,其误差最大,且当初始训练数据个数小于隐含层个数时的测试误差和训练误差较大,在初始数据大于400时测试误差和训练误差都较小,因此初始训练数据个数要大于400。
4.1.5数据段训练数据个数对精度的影响
为了尽可能减少参数方面带来的误差,需要研究数据段的训练数据个数对网络带来的影响,即要确定数据段的训练数据个数,取传递函数为sigmoid函数,隐含层神经元个数为300,初始训练数据个数为2 000,初始化数据段数据个数为1,并不断增大,其结果如图5所示。可知,数据段数据个数对该网络的精度影响很小。
4.2在线测试
经过离线训练后网络模型和各参数都已确定,为了验证该方法的可行性,将建立好的OSELM模型运用到电机中。但OSELM网络的输出并不是严格的按照0和1来输出,一般是在0和1上下波动[10],而功率开关管只有导通和关断2个状态即0和1,因此需要对ELM的输出进行整定,整定过程为
为避免由误差引起的功率开关管的误导通,需要对信号进行相关逻辑处理,功率开关管应遵循以下原则:
1)g1、g3、g5,g2、g4、g6,g7、g9、g11和g8、g10、g12四组开关管任何时刻各组分别只有一个为1;
2)g1与g2、g3与g4、g5与g6、g7与g8、g9与g10、g11与g12六组各不能同时为1;
3)当不能满足1)和2)中任何一个原则时,所有功率开关管控制信号取前一次的值。
由于所提方法省去了位置传感器,而在电机启动时,需要知道转子的起始位置,所以采用同步启动方式,这种方法类似于同步电机的变频启动,它由DSP本身自带的事件管理器产生PWM波形控制逆变器,在一开始就将电机拉到同步,当电机开始旋转之后便可以测量到定子端电压和电流,此时就可利用极限学习机求得转子位置进而顺利切换到基于贯序极限学习机的无刷直流电机位置传感器控制的运行状态。
5实验结果分析
5.1基于OSELM无刷直流电机无位置传感器控制的仿真结果
在Matlab/SIMULINK仿真平台上进行在线测试,电机模型参数选用实际的电机参数:R1=0.069 Ω,R2=0.16 Ω,L1=0.38 mH,L2=0.91 mH,P=4,J=0.124 kg·m2,Ke1=6.02 V·r/min,Ke2=9.27 V·r/min,額定转矩TL=70 N·m,直流电源电压Ud=440 V。仿真结果如图7所示。
由图7可以看出,OSELM网络输出与实际信号相比误差较小,且OSELM网络的输出值总是在0和1上下波动,并不是严格按照0和1来输出,因此ELM输出不能用来实现功率开关管的导通与关断。整定后的OSELM网络输出与实际信号对比如图8所示。
由图8可以看出,经过整定后的OSELM网络输出信号虽与实际信号仍存在一定误差,但误差极小,且能严格的按照0和1来输出,能较好的跟踪实际信号,可以很好的实现功率开关管的导通与关断。
将整定后的OSELM网络输出信号与电流速度双闭环控制得到的PWM信号进行逻辑处理得到最终的功率开关管控制信号,从而使得电机正常运行,电机运行时的电流和反电势如图9和图10所示。两者的波形都较为理想,从而也验证了基于在线贯续极限学习的无刷直流电机无位置传感器控制方法的正确性。
5.2OSELM与ELM以及传统BP神经网络方法比较
为了验证OSELM模型的优越性,将OSELM模型与ELM模型、BP神经网络模型进行比较,其中ELM模型和OSELM模型中的隐含层神经元个数,激励函数等参数相同,并用相同的数据样本分别对OSELM模型、ELM模型和BP神经网络模型进行30次训练测试,记录各算法的训练时间和测试精度,取30次训练结果的平均值,结果如表1所示。
从表1中可以看出,虽然BP神经网络模型、ELM模型以及OSELM模型的精度相差很小,ELM算法速度与OSELM算法速度相当,但OSELM算法的速度大约是BP算法的60倍。且在网络模型训练过程中BP网络需要确定隐含层神经元个数、传递函数、学习速率、动量因子等多个参数,且参数都难以选定,因此与ELM、OSELM模型相比,BP神经网络模型较难确定。ELM与OSELM相比较,OSELM能不断更新权值β,提高其泛化能力及其精度。
6结论
在分析极限学习原理的基础上构建基于在线贯续极限学习极的无刷直流无位置传感器模型,通过离线学习确定OSELM网络模型和参数,将训练好的模型和参数运用到六相无刷直流电机模型中进行在线测试。测试结果验证了该方法的可行性和正确性,OSELM网络输出能很好的实现逆变电路各桥臂的导通与关断,该方法实现过程中只需要设置隐含层个数,相对于传统的BP神经网络而言,大大减少了网络参数的选定,且该方法在保证网络输出精度的前提下,提高了控制算法速度。
参 考 文 献:
[HT6SS]
[1]刘长征,叶瑰昀,陈德运,等.无传感器无刷直流电机变频调速系统设计与实现[J].电机与控制学报,2008,12(6):729.
LIU Changzheng,YE Guiyun, CHEN Deyun, et al. Design and realization of variable frequency tuning velocity system of sensorless BLDCM[J].Electric Machines and Control,2008,12(6):729.
[2]王强.无刷直流电机无位置传感器起动控制与逆变器故障诊断研究[D].南京:南京航空航天大学,2015.
[3]杨影,阮毅,陶生桂.一种新型无刷直流电机转子位置检测方法[J]. 电机与控制学报,2010,14(2):60.
YANG Ying, RUAN Yi,TAO Shenggui. Research on novel approach to rotor position detection of brushless DC motors[J].Electric Machines and Control,2010, 14(2):60.
[4]董富红,沈艳霞,纪志成.永磁无刷直流电机无位置传感器估计方法综述[J].微电机,2003,36(5):39.
DONG Fuhong, SHEN Yanxia, JI Zhicheng. Review on position estimation methods of brushless DC motor sensorless control[J].Micromotors,2003,36(5):39.
[5]劉彦荣.基于BP网络的无刷直流电机无位置传感器控制[D].天津:天津大学,2009.
[6]HUANG Guangbin, ZHU Qinyu, SIEW C K. Extreme learning machine:A new learning scheme of feedforward neural networks[C]//Proceedings of the International Joint Conference on Neural Networks, July 25-29, 2004, Budapest,Hungary.2004:985-990.
[7]高相铭,刘付斌, 杨世凤. 基于极限学习机的供水管网故障智能诊断方法[J].计算机工程与设计,2013,34(8):2887.
GAO Xiangming, LIU Fubin, YANG Shifeng. Intelligent fault diagnosis of water supply network based on ELM[J]. Computer Engineering and Design,2013,34(8):2887.
[8]王磊.基于神经网络的无刷直流电机无位置传感器控制[D].沈阳:东北大学,2013.
[9]韩越,李志华.基于ELM网络的模拟电路故障诊断[J]. 电子设计工程,2014,22(19):93.
HAN Yue, LI Zhihua. The study of fault diagnosis in analog circuit based on ELM network[J].Electronic Design Engineering,2014,22(19):93.
[10]夏长亮, 王娟, 史婷娜,等. 基于自适应径向基函数神经网络的无刷直流电机直接电流控制[J]. 中国电机工程学报,2003,23(6):123.
XIA Changliang, WANG Juan, SHI Tingna, et al. Direct control of currents based on adaptive RBF neural network for brushless DC motors[J].Proceedings of the CSEE,2003,23(6):123.
(编辑:邱赫男)