发动机-传动电机的转速控制(bp+pid)_第1页
发动机-传动电机的转速控制(bp+pid)_第2页
发动机-传动电机的转速控制(bp+pid)_第3页
发动机-传动电机的转速控制(bp+pid)_第4页
发动机-传动电机的转速控制(bp+pid)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录一、设计题目 1二、系统的工作原理 2三、BP 神经网络 33.1 BP 神经网络结构 33.2 BP 网络学习算法 4四、基于 BP 神经网络的 PID 控制器 64.1 PID 控制器 64.2 基于 BP 神经网络的 PID 控制器 7五、程序代码及结果分析 105.1 程序代码 105.2 仿真结果 13六、结论 151一、设计题目柴油-电力机车传动电机的转速控制柴油机有着十分广泛的用途,它可用来驱动内燃机车的传动电机,从而保证重型列车的正常运行。但是柴油机的工作效率对转速非常敏感,因此为了提高其工作效率,应该控制传动电机的转速。图中给出了柴油内燃机车的电力传动模型。柴油机wrvrv0vd 常量放大器 if Lf Rfia La Ra发电机 电机 测速机负载w0,J , bvfVg图 1-1 转速控制模型移动输入电位计的游标,可设置控制阀的位置,从而设定传动电机的预期转速 wr。负载转速 w0是受控变量,其实际值由测速机测量。测速机由电机轴上的皮带驱动,其输出电压 v0是系统的反馈变量。由于输入电位计提供了预期参考电压,由此可求得参考电压与反馈电压间的偏差为( vr - v0 )。放大器将偏差电压放大后,生成电压信号 vf,并用作直流发电机的线圈磁场电压。在电力传动系统中,柴油机的输出转速恒为 wq,直流发电机由柴油机驱动,其输出电压 Vg是 电枢控制 直流电机的驱动电压。此外电枢控制直流电机的励磁磁场电流 i 也保持恒定不变。在上述条件下,由于 VR的作用,直流电机将产生力矩 T,并使负载转速 w0逐渐趋近于预期转速 wr。已知: 电机的反电动势系数为 Kb31/50; 与电机有关的参数为 J=1,b=1,La=0.2,Ra=1; 发电机有关的参数为励磁电阻 Rf=1,励磁电感Lf=0.1,Lg=0.1,Rg=1;2 测速机增益 Kt=1; 发电机常数 Kg,电机常数 Km 自定;二、系统的工作原理本系统利用移动输入电位计的游标,可设置控制阀的位置,从而设定传动电机的预期转速 wr,在移动输入电位计两端加有电源,每当游标移动一定距离,电位计上输出电压也跟随变化,该变化的电压(由输入电位计提供的的预期参考电压)与电动机反馈回来的电压值 v0进行比较,得到一个电压差 vr - v0。电压差 V1输入运算放大器 K,根据放大器“虚短”与“虚亏”方法,放大器 K的放大系数为 540,电压差 V1经过放大器 K 放大后输出电压信号 V2,并用作直流发电机的线圈磁场电压。在电力传动系统中,柴油机的输出转速恒为 wq,直流发电机由柴油机驱动,其输出电压 Vg是 电枢控制 直流电机的驱动电压,直流电机带动负载转动并由测速机测量其实际转速 w0。测速机由电机轴上的皮带驱动,其输出电压 v0是系统的反馈变量。此外电枢控制直流电机的励磁磁场电流i 也保持恒定不变。其中,控制系统的被控对象是电动机,发电机;被控量是电压;系统的输入量为转速 wr,输出量为转速 w0;给定量是移动输入电位计,功率放大器 K,测速发电机。系统模型及结构图如下:功率放大器 直流发电机 电枢控制电路传感器r(t)期望转速负载转速 0(t)+图 2-1 系统模型540 10.KgRs1.S10.2KmS111()Gs2()3()Gs4()s()Gs()rVs图 2-2 系统结构图 系统传递函数求解:3由上述框架结构图可以看出该系统为一个四阶系统,为求解方便将其化简成一个二阶系统(除去不大的极点) ,其结构框图如下图 2.3:540 0.1KgS1m10.620V图 2-3 化简后的系统传递函数结构图简化思路如下:由于励磁电感远小于励磁电阻,故励磁电感可以忽略。建立系统的数学模型和传递函数一般表达式:比较电路 V1=Vr-V0;(Vr 输入电压,V1 为偏差电压)回馈电路 电机的反电动势系数为 Kb31/50;放大电路 V 10=1.5(正常工作点) ;V 2=2e3v1发电机电路: 0.1KgS电机电路: m测速电路:测速机增益 Kt=1;所以系统的开环传递函数为: 540*(1).62)KgmGs系统的闭环传递函数为: ()0)(.)540*csgK三、BP 神经网络3.1 BP 神经网络结构大脑是一部不寻常的智能机,它能以惊人的高速度解释感觉器官传来的含糊不清的信息。它能觉察到喧闹房间内的窃窃私语,能够识别出光线暗淡的胡同中的一张面孔,更能通过不断地学习而产生伟大的创造力。所谓神经网路系统是利用工程技术手段模拟人脑神经网络的结构和功能的一种技术系统,它是一种大规模并行的非线性动力学系统。严格地讲神经网络应该称为人工神经网4络,为了简化起见,一般省略人工二字直接称神经网络,可简记为 NN(Neural Network) 。由于神经网络具有信息的分布存储、并行处理以及自学习等优点,所以它在信息处理、模式识别,智能控制等领域有着广阔的应用前景。人工神经网络的着眼点不是利用物理器件来完整的复制生物体中细胞网络,而是采纳其可利用的部分来解决目前计算机或其它系统不能解决的问题,如学习、识别、控制和专家系统等。随着生物和认知科学的发展,人们对人脑的结构和认知过程的了解越来越深入,促进了人工神经网络技术的发展,越来越多的生物特性将被利用到工程中去。X 1X 3X 2Y 1Y 2Y 3图 3-1 BP 神经网络结构图BP 神经网络结构如图 3-1 所示。由图可见,BP 网络是一种具有三层或三层以上神经元的神经网络,包括输入层、中间层和输出层。上下层之间实现全连接,而每层神经元之间无连接。当一对学习样本提供给网络后神经元的激活值从输入层经中间层向输出层传播,在输出层的各神经元获得网络的输入响应。接下来,按照减少目标输出与实际输出之间误差的方向,从输出层反向经过各中间层回到输入层,从而逐层修正各连接权值,这种算法称为“误差反向传播算法”,即 BP 算法。随着这种误差逆向的传播修正不断进行,网络对输入模式响应的正确率也不断上升。与感知器不同的是,由于误差反向传播中会对传递函数进行求导计算,BP 网络的传递函数要求必须是可微的,所以不能使用感知器网络中的硬闭值传递函数,常用的有 sigmoid 型对数、正切函数或线性函数。由于传递函数是处处可微的,所以对 BP 网络来说,一方面,所划分的区域不再是一个线性划分,而是由一个非线性超平面组成的区域,它是比较平滑的曲面,因而它的分类比线性划分更加精确,容错性也比线性划分更好;另一方面,网络可以严格采用梯度下降法进行学习,权值修正的解析式十分明确。3.2 BP 网络学习算法设有 n 个输入节点 , ;q 个输出节点 , ;网络层的隐含1x2nx1yn节点有 p 个神经元。输入层第 i 个单元至隐含层第 j 个单元连接权 。隐含层jiw,第 j 个单元至输出层第 t 个单元连接权 。隐含层各单元的阈值为 ,输出层tjv, j各个单元的阈值为 ,在训练该网络的学习阶段,设有 N 组训练样本,先假定t用其中的某一固定样本 k 输入输出模式对网络进行训练。5输入层:n 个输入 , ;也就是输入样本。1x2nx中间层: (1jniijjxws,);j=1,2p (jjsSb2)输出层: ;t=1,2,q ttC(3)(4tjpjttbvL1,)为了模拟生物神经元的非线性特性,激励函数常选用 s 函数(5)xeS-1S 函数不但具有可微分性,而且具有饱和非线性特性,这又增强了网络的非线性映射能力。S 函数的微分函数为 := (6xS。 xS-)单元输出闭值是为模拟神经元的闭值电位而设置的,在网络的学习过程中,它和各连接权一样不断的被修正。阂值的作用反应在 S 函数的输出曲线上,使曲线向左平移了阂值大小的单位,它起到了调节神经元兴奋水平的作用。定义第 N 个标准模式的误差函数为: (7)qttkcyE12-学习过程按使误差 Ek 减少最快的方向调整权值系数,直到获得满意的权值为止。根据梯度下降原则使连接权 的调整量与 的负值称比例,连接权的修正tjv, tjkv,公式如下: tjktjEv,-式中 t=l,2, .q;j=l,2,p;0 1(8jtttjtktjktj bLSCdvEv-, )6相应的闭值公式为:(9)ttttktk LSCdE-t 若连接权值不直接作用于输出层神经元,情况就有所不同了,但仍按梯度下降法 (10)jijjkjiji wsbEw, -(11)jjsSb(12)tjtjttqttkjk vLSCdbLCEb ,q1t1 -于是(13ijtjqitji xsvw,1, -)同理(14)jtjqitj sSvLCd,1-BP 网络学习算法计算步骤如下:(l)初始化,置所有的连接权值 jiw,, tjv,, j, t为随机数(2)提供训练集,即给出顺序赋值的输入向量 和期望的输出向量 。kXkd(3)计算中间层和输出层的各神经元实际输出。(4)计算期望输出与实际输出的偏差 。kE(5)计算 和 ,调整中间层至输出层的连接权和闭值。tjv,t(6)计算 和 ,调整输入层至中间层的连接权和闭值。jiw,j(7)返回 2,直至误差满意为止。四、基于 BP 神经网络的 PID 控制器4.1 PID 控制器PID 控制器是一个在工业控制应用中常见的反馈回路部件。这个控制器把7收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。和其他简单的控制运算不同,PID 控制器可以根据历史数据和差别的出现率来调整输入值,这样可以使系统更加准确,更加稳定。可以通过数学的方法证明,在其他控制方法导致系统有稳定误差或过程反复的情况下,一个 PID 反馈回路却可以保持系统的稳定。4.2 基于 BP 神经网络的 PID 控制器BP 神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明了。通过神经网络自学习的能力,可以找到某一最优控制规律下的 P、I、D 参数。基于 BP 神经网络的 PID 控制系统结构如图 3-1 所示。控制器有两部分组成:(1)经典的 PID 控制器,直接对被控对象过程闭环控制,并且三个参数Kp,Ki,Kd 为在线整定式;(2)神经网络 NN:根据系统的运行状态,调节 PID 控制的参数,以期望达到某种性能指标的最优化。即使输出层神经元的输出状态对应于 PID 控制器的三个参数 Kp,Ki,Kd,通过神经网络的自身学习、加权系数调整,从而使其稳定状态对应于某种最优控制规律下的 PID 控制参数。图 4- 1 基于 BP 神经网络的 PID 控制系统结构图增量式 PID 控制算法描述如下:(15)2-12- kekeKkeKkudip 在上式中 Kp、Ki、Kd 分别为比例、积分和微分系数;e(k)为系统实际输出和期望值之间的误差;u(k) 为控制器的输出。BP 神经网络的输入变量个数取决于被控系统的复杂程度,输出节点对应的是 PID 的三个可调参数。由于输出不能为负,所以输出层激活函数取非负的sigmoid 函数( )隐含层取正负对称的 Sigmoid 函xexxg-tanh12数( ) 。由此,我们构造一个三层 BP 网络的结构为 3-8-xef -tanh83所设计出的三层 BP 神经网络结构如图 4-2 所示:K iK pK dX 1X 2X 3J = 4i = 5L = 3()ijwk()liwkX 4图 4-2 三层 BP 神经网络结构图图 4-2 中,网络输入层的输入、输出为:(16)jjx(1)O其中,将网络的输入变量作为控制器的输入,即(17)2-12-ke321x网络隐含层的输入、输出为:(18)knetfOwketi iMjjj(2)i(2) (1)0,()式中,可,为隐含层加权系数;i=l,2,8;上角标 (l)、(2)、(3) 分别代表输入层、隐含层、输出层。网络输出层的输入、输出为:(19)d(3)i2p(3)1(3)(2)0(3)KkgOknetwtll iQill式中,输出层输出节点分别对应三个可调参数 Kp、Ki、Kd 。9取性能指标函数为:(20)2-21kyrkE一般地,按照梯度下降法修正网络的权系数,即按 E(k)对加权系数的负梯度方向搜索调整,并附加一使搜索快速收敛全局极小的惯性项(21)1-(3)(3)(3)li kwEkwlili式中,叮为学习速率,a 为惯性系数。(22)kuyEk lili (3)(3)l(3)l(3) nettOk) 又有(23)kwli(2)i(3)net则有(24)3(3)2()2 1(3)1 -1ke-exkOuxku由于 未知,可以用一个 BP 网络建立一个被控对象的辨识模型,再用kuy此模型去训练 BP 网络控制器,以解决权值修正时导数项 的计算。本文近kuy似用符号函数 取代,从而简化计算。由此带来计算不精kuysgn确的影响可以通过调整学习速率来补偿。上述分析可得网络输出层加权系数的学习算法为:(25)knetgOkuykewli ilili (3)(3)l(3) 2(3)(3)()sgn1-同理可得到隐含层加权系数的学习方法10(26)31(3)l(2)i(2)i (1)2()()-ijiijli kwknetf Ow式中, , 。xgg- 2-ffx该控制器控制算法归纳如下:(l)确定 BP 网络的结构,即确定输入层节点数 M 和隐含层节点数 Q,并给出各层加权系数的初值 和 ,选定学习速率 和惯性系数 ,此0(2)ijw(3)li 时 k=1。(2)采样得到 和 ,计算该时刻误差 。krinyout kyoutrinke-(3)计算神经网络 NN 各层神经元的输入、输出,NN 输出层的输出即为PID 控制器的三个可调参数 KP,Ki,Kd。(4)根据式 4 一 17 计算 PID 控制器的输出 u(l)。(5)进行神经网络学习,在线调整加权系数 和 ,实现 PID 控制kwij(2)li(3)参数的自适应调整。(6)置 k=k+l,返回到(2)。五、程序代码及结果分析5.1 程序代码clear all;close all;% 系统参数赋初值%xite=0.000001; %学习速率alfa=0.15; %惯性系数IN=4;H=5;Out=3;%wi=0.50*rands(H,IN); %神经网络权值初始化wi=-0.6534 -0.2842 -0.3906 -0.7250;-0.8085 -0.1476 -0.4470 -0.1870;-1.0428 0.5876 -1.6474 -0.4955;-0.2832 0.0095 -0.5620 -0.1779;0.4151 0.3087 -0.2521 -0.4145;wi_1=wi;wi_2=wi;wi_3=wi;%wo=0.50*rands(Out,H);wo= 0.7588 0.2628 0.5832 -0.1404 -0.1313;-0.1134 0.2961 0.8364 0.2217 0.4520;110.7213 0.4578 0.7684 0.4974 0.3644;wo_1=wo;wo_2=wo;wo_3=wo;x=0,0,0;u_1=0.0;u_2=0.0;u_3=0.0;u_4=0;u_5=0; %PID 输出赋初值,为方便后面的y_1=0.0;y_2=0.0;y_3=0.0;y_4=0;y_5=0; %输出给 0 值error_1=0;error_2=0;Oh=zeros(H,1);I=Oh; %隐含层输入赋初值% 计算%ts=0.09for k=1:1:500time(k)=k*ts;rin(k)=200;Kg=6;Km=4;num=5400*Kg*Km; %Unlinear modelden=1,11+0.62*Km,10+(6.2+5400*Kg)*Km;sys=tf(num,den); %传递函数 G(s)离散化dsys=c2d(sys,ts,z);num,den=tfdata(dsys,v);yout(k)=-den(3)*y_2-den(2)*y_1+num(3)*u_2+num(2)*u_1; %输出 y 离散化error(k)=rin(k)-yout(k);xi=error(k),error_1,error_2,1; %输入层给值x(1)=error(k)-error_1;x(2)=error(k);x(3)=error(k)-2*error_1+error_2;epid=x(1);x(2);x(3);I=xi*wi; %隐含层节点输入for j=1:1:HOh(j)=(exp(I(j)-exp(-I(j)/(exp(I(j)+exp(-I(j);end %隐含层活化函数 tanhx 变成了欧拉形式K=wo*Oh; %输出层节点输入for l=1:1:OutK(l)=exp(K(l)/(exp(K(l)+exp(-K(l); %输出层活化函数变成了欧拉氏求解endkp(k)=K(1);ki(k)=K(2);kd(k)=K(3); %得到 kp,ki,kd 参数值Kpid=kp(k),ki(k),kd(k);du(k)=Kpid*epid; %计算 U(k)u(k)=u_1+du(k);% 反向修正% 输出层dyu(k)=sign(yout(k)-y_1)/(u(k)-u_1+0.0000001);for j=1:1:Out12dK(j)=2/(exp(K(j)+exp(-K(j)2;endfor l=1:1:Outdelta3(l)=error(k)*dyu(k)*epid(l)*dK(l); % dJ/dWoendfor l=1:1:Outfor i=1:1:Hd_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);endendwo=wo_1+d_wo+alfa*(wo_1-wo_2);%隐含层for i=1:1:HdO(i)=4/(exp(I(i)+exp(-I(i)2;endsegma=delta3*wo;for i=1:1:Hdelta2(i)=dO(i)*segma(i);endd_wi=xite*delta2*xi;wi=wi_1+d_wi+alfa*(wi_1-wi_2);%数据更新,循环修正u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_5=y_4;y_4=y_3;y_3=y_2;y_2=y_1;y_1=yout(k);wo_3=wo_2;wo_2=wo_1;wo_1=wo;wi_3=wi_2;wi_2=wi_1;wi_1=wi;error_2=error_1;error_1=error(k);endwi %找到较为合适的权值,缩小调整范围wo% % 绘图%figure(1);plot(time,rin,r,time,yout,b);xlabel(time(s);ylabel(rin,yout); %被控对象 yfigure(2);plot(time,error,r);xlabel(time(s);ylabel(error); %误差figure(3);13plot(time,u,r);xlabel(time(s);ylabel(u); %pid 输出 ufigure(4);subplot(311);plot(time,kp,r);xlabel(time(s);ylabel(kp); %,值subplot(312);plot(time,ki,g);xlabel(time(s);ylabel(ki);subplot(313);plot(time,kd,b);xlabel(time(s);ylabel(kd);5.2 仿真结果0 5 10 15 20 25 30 35 40406080100120140160180200time(s)rin,yout14图 5-1图 5-2图 5-30 5 10 15 20 25 30 35020406080100120140160time(s)error0 5 10 15 20 25 30 356080100120140160180200220time(s)u15图 5-4由上面几幅图可以看到,BP 神经网络 PID 控制系统在 5s 时刻期望输出与实际输出基本吻合,误差也接近于 0,在性能上要优于常规 PID 控制系统。它能使控制系统各输出值较好的跟踪给定值,从而保证高精度、高品质的控制输出。当受到外界环境干扰时,基于传统 PID

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论