《武汉工程大学学报》 2010年05期
91-93
出版日期:2010-05-31
ISSN:1674-2869
CN:42-1779/TQ
BP网络在感应电机逆系统中的模拟与仿真
引言对于复杂的非线性系统,逆系统方法能够起到反馈线性化和多变量解耦的作用,其思路简单易于理解.但是要想得到逆系统的解析实现形式,不仅要依赖于精确的数学模型的解析表达式,还要依赖具体的系统参数,而在具体情况中,许多被控系统耦合性很强,具有很强的非线性特征,难以用精确的解析表达式表示出来,只能用近似的模型来代替.而要创建它的精确数学模型并求解逆系统解析表达式,必须利用许多求解技巧,有时仍然难以实现,而且许多非线性被控系统的内部状态与具体参数是部分可测的,有时甚至是难以获取的[12].另外,在实际过程中系统参数还要受到周围环境变化的影响,这样会引起很大的波动,致使得到的逆系统不能完全确定.由于神经网络具有多输入多输出的特点,且具有自学习能力,能够以任意精度逼近复杂非线性函数,因此,本文引入神经网络来创建非解析实现形式的逆系统,对于感应电机经检验,方法十分有效.1BP网络与神经网络逆系统实现静态神经网络是由静态神经元构成的网络,其输入与输出是静态非线性映射的关系.静态神经网络有很多种,其中,多层前向网络最为常用.图1为一种典型的静态神经网络(三层前向网络).BP(Back Propagation)网络,是一种单向传播的多层前向网络.其学习算法的基本原理是梯度下降法,这是一种快速有效的学习算法,其基本思想是引用梯度搜索技术,期望通过调整权值减小输出层的实际值与期望值的误差均方值[3].在其网络学习过程中,误差一边向后传播一边修正权系数.实际上,BP学习算法包括了两个过程,当它正向传播时,输入信息从隐含层开始逐层处理,最后传到输出层,每一层节点的状态只对一层有影响.假如输出层的输出不尽人意,那么它将会改变各层节点的权值,将误差信号反向传播,逐渐使误差信号最小.只要有充足的隐层与隐层节点,BP网络就能够逼近任意的非线性函数,然而怎样按照具体的问题来确认网络的结构,至今还没比较好的方法,只能根据经验来试凑,由于BP网络的学习算法是通过全局逼近的方式实现的,所以其泛化能力很强,在多层前向网络中,各连接权系数都储存着输入输出关联信息,且连接权的数目不少,一旦个别的节点受到损害,对输入输出关系影响不大,所以BP网络具有很好的容错性[4].图1典型的静态神经网络
Fig.1Typical static neural network静态神经网络只能替代静态非线性运算,如果要逼近动态非线性运算就必须引用动态神经网络.而静态神经网络加上若干积分器就能够组成动态神经网络.图2给出了动态神经网络的一般形式,其中,V1,Vq为输入量,u1,uq为神经网络的输出量;系统的动态特性是通过积分器来表示的.动态神经网络不仅具有自我学习和自适应未知系统的特性,而且还有很强的鲁棒性,可以用来逼近动态非线性映射,代表了神经网络动态辨识与控制的发展方向.显然,由动态神经元构成的动态神经网络存在的问题能够被这种各尽其责的结构解决,还有利于神经网络结构的简化,从而使工程实现变得更容易.从表面上看,神经网络逆系统的构造形式很容易实现,仅仅是用静态神经网络来逼近解析逆系统中的非线性静态映射部分.但也不能简单地认为任意选取一个静态神经网络就可以满足要求,实际上在神经网络逆控制方法中,逆系统的构造有着至关重要的作用,它包括两个方面,其一是神经网络的确定并生成逆系统,其二是训练神经网络逆系统,而后者是关键,训练逆系统在本质上就是训练静态神经网络,使其能够实现逼近非线性系统的效用,而当这一功能被实现时,动态神经
图2静态神经网络加积分器构成的动态神经网络
Fig.2Dynamic neural network formed by static neural network with added integrators网络就完成了对逆系统的辨识过程,实现的逆系统就真正成为被控系统的逆系统.
第5期熊大为,等:BP网络在感应电机逆系统中的模拟与仿真
武汉工程大学学报第32卷
2基于感应电机模型的MATLAB仿真研究交流感应电机具有多变量、非线性、强耦合的特性,它的动静态特性与直流电机相比要复杂很多.如果采用神经网络逆方法对非线性系统进行控制,前提是要求受控系统可逆,当然,也并不是一定要求解出其解析逆.事实上,对于感应电机由Interactor算法可以得知其逆系统是存在的.由于解析逆系统方法很依赖于电动机的参数,实际应用中,对负载扰动十分敏感,电动机运行时,复合系统的解耦线性化由于工况的变化很难达到要求,最终使系统控制的性能也受到影响.将神经网络引入到逆系统控制方法中,可以解决解析逆系统方法中的以上难题,增强控制系统对未建模动态和参数变化的鲁棒性,提高逆解耦控制系统的抗负载扰动能力.将神经网络与若干积分器构成的逆系统与感应电动机串接成复合系统,可使感应电机这一多变量、强耦合的非线性系统完全线性化为一个输入输出系统[6].如图3所示,给感应电机一个正的输入机械转矩5 N.m,则电机工作于电动机状态,异步电机模型选用MATLAB里的NO.16型号(10HP(75 KW),400 V,50 Hz,1 440 RPM),通过模型的m端得到感应电机的参量:在d、q轴上的转子电流值id、iq,d轴上的定子磁链ψ,ω转速.利用MATLAB的newff ( )命令建立对应的BP神经网络,命名为net.
图3感应电机神经网络逆系统模型
Fig.3Neural network inverse system model of induction motor
使用MATLAB软件构造静态神经网络,选择神经网络的类型为前向网络(BP网络),隐层节点的数量也对网络有一定的影响,数目太多会造成网络的过适性,而太少又会引起网络的不适性.将前向网络设计为3层,设置4个输入节点和2个输出节点.训练神经网络的代码为:strain2=[f; df;s;ds];
ttrain2=[d;q];
zz=minmax(strain2); net=newff(zz,[8,9,2],{’tansig’,’tansig’,’purelin’},’trainbfg’);
net.trainParam.epochs=5000;
net.trainParam.goal=0.005;
net=train(net,strain2,ttrain2);
gensim(net,-1);
y = sim(net,strain2)其中,f为定子磁链值,df为定子磁链一阶导数值,s转子角速值,ds转子角速度一阶导数值,d和q分别为转子电流在d、q轴上的值,此神经网络模型有4个输入参数,第一层由10个神经元构成,传输函数为tansig,输出层由两个神经元构成,传输函数为purelin,对神经网络逆系统进行学习与训练,理想的方式是先离线训练再在线调整.但在大多数过程中,一是由于在线调整异常困难,另外就是对在线调整的收敛性比较难以把握.这里采用神经网络逆系统的离线训练方式.3结果应用函数train( )对网络进行训练,训练精度设为0.005,最大训练次数设为5 000,训练后得到的电机逆系统静态神经网络图如图4所示,感应电机q轴与d轴上的转子电流分别如图5和图6所示.图7和图8分别为神经网络逆系统得出的感应电机d、q轴上的转子电流i′q和i′d,通过与图5与图6进行比较可知,神经网络逆系统的输出值的误差极小,且稳定性也相当好.图4生成的电机逆系统静态神经网络图
Fig.4Static neural network diagram of motor inverse system图5感应电机q轴上的转子电流
Fig.5The qaxis rotor current of induction motor图6感应电机d轴上的转子电流
Fig.6The daxis rotor current of induction motor图7由神经网络逆系统得出的q轴上的转子电流
Fig.7The qaxis rotor current derived from the neural network inverse system图8由神经网络逆系统得出的d轴上的转子电流
Fig.8The daxis rotor current derived from the neural network inverse system4结语BP网络具有很多的优良特性,与积分器一起组成动态神经网络,可以逼近复杂的非线性控制系统,突破了传统的解析逆系统思维,以非解析形式可使逆系统方法得到更广泛的使用.