欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于BP神经网络的自整定PID控制仿真.docx

    • 资源ID:35926342       资源大小:136.59KB        全文页数:8页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于BP神经网络的自整定PID控制仿真.docx

    基于BP神经网络的自整定PID控制仿真一、实验目的1.熟悉神经网络的特征、结构及学习算法。2.通过实验掌握神经网络自整定PID的工作原理。3.了解神经网络的结构对控制效果的影响。4. 掌握用Matlab实现神经网络控制系统仿真的方法。二、实验设备及条件1.计算机系统2.Matlab仿真软件三、实验原理在工业控制中,PID控制是工业控制中最常用的方法。这是因为PID控制器结构简单,实现简单,控制效果良好,已得到广泛应用。但是,PID具有一定的局限性:被控制对象参数随时间变化时,控制器的参数难以自动调整以适应外界环境的变化。为了使控制器具有较好的自适应性,实现控制器参数的自动调整,可以采用神经网络控制的方法。利用神经网络的自学习这一特性,并结合传统的PID控制理论,构造神经网络PID控制器,实现控制器参数的自动调整。基于BP神经网络的PID控制器结构如图4所示。控制器由两部分组成:一是常规PID控制器,用以直接对对象进行闭环控制,且3个参数在线整定;二是神经网络NN,根据系统的运行状态,学习调整权系数,从而调整PID参数,达到某种性能指标的最优化。图4中神经网络采用结构为4-5-3型的BP网络。BP网络是一种单向传播的多层前向网络。输入节点对应系统的运行状态量,如系统的偏差与偏差变化率,必要时要进行归一化处理。输入变量的个数取决于被控系统的复杂程度,输出节点对应的是PID的3个可调参数。由于输出不能为负,所以输出层活化函数取非负的Sigmoid函数,隐含层取正负对称的Sigmoid函数。本系统选取的BP网络结构如图5所示。网络的学习过程由正向与反向传播两部分组成。如果输出层不能得到期望输出,那么转入反向传播过程,通过修改各层神经元的权值,使得误差信号最小。输出层节点分别对应3个可调参数Kp、Ki、Kd。取性能指标函数为按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度方向搜索调整,并附加一使快速收敛全局极小的惯性项式中,为学习速率;为惯性系数。又其中,u(k)为控制器在k时刻的输出;为输出层各节点的输出,;为输出层各节点的输入。若采用增量式数字PID控制算法,则有四、实验步骤(1) 被控对象为一时变非线性对象,数学模型可表示为式中系数a(k)是慢时变的,。(2) 如图5所示确定BP网络的结构,选4-5-3型的BP网络,各层加权系数的初值取区间-0.5,0.5上的随机数,选定学习速率=0.25与惯性系数=0.05。(3) 在Matlab下依据整定原理编写仿真程序并调试。(4) 给定输入为阶跃信号,运行程序,记录实验数据与控制曲线。(5) 修改神经网络参数,如学习速率、隐含层神经元个数等,重复步骤(4)。(6) 分析数据与控制曲线。五、实验结果1.实验代码xite = 0.25;alfa = 0.02;IN = 4;H =10;Out = 3;wi = 0.4634 -0.4173 0.3190 0.4563 0.1839 0.3201 0.1112 0.3395 -0.3182 0.0470 0.0850 -0.0722 -0.6266 0.0846 0.3751 -0.6900 -0.3224 0.1440 -0.2783 -0.0193 -0.0232 -0.0992 0.2636 0.2011 -0.4502 -0.2928 0.0062 -0.5640 -0.1975 -0.1332 0.1981 0.0422 0.0521 0.0673 -0.5546 -0.4830 -0.6016 -0.4097 0.0338 -0.1503; wi_1 = wi; wi_2 = wi; wi_3 = wi; wo = -0.1620 0.3674 0.1959 -0.0337 -0.1563 -0.1454 0.0898 0.7239 0.7605 0.3349 0.7683 0.4714 0.0215 0.5896 0.7143 -0.0914 0.4666 0.0771 0.4270 0.2436 0.7026 0.0215 0.4400 0.1121 0.2566 0.2486 0.4857 0.0198 0.4970 0.6450' wo_1 = wo; wo_2 = wo; wo_3 = wo; x = 0,0,0; u_1 = 0;u_2 = 0;u_3 = 0;u_4 = 0;u_5 = 0; y_1 = 0;y_2 = 0;y_3 = 0; oh = zeros(H,1); I = oh; error_2 = 0; error_1 = 0; ts = 0.001; for k=1:1:6000 time(k) = k * ts; rin(k) = 1; a(k) = 1.2*(1-0.8*exp(-0.1*k); yout(k) = a(k) *y_1/(1+y_12) + u_1; error(k) = rin(k)-yout(k); xi = rin(k),yout(k),error(k),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:H oh(j) = (exp(I(j)-exp(-I(j)/(exp(I(j)+exp(-I(j); end K = wo * oh; for l = 1:Out; K(l) = exp(K(l)/(exp(I(j)+exp(-I(j); end Kp(k) = K(1);Ki(k) = K(2);Kd(k) = K(3); Kpid = Kp(k),Ki(k),Kd(k); du(k) = Kpid * epid; u(k) = u_1 +du(k); if u(k)>=10; u(k) = 10; end if u(k) <= -10 u(k) = -10; end dyu(k) = sign(yout(k) - y_1)/(u(k) - u_1 + 0.0000001); for j = 1:Out; dk(j) = 2/(exp(K(j)+exp(-K(j)2; end for l = 1:Out delta3(l) = error(k) * dyu(k) * epid(l) * dk(l); end for l = 1:Out for i = 1:H d_wo = xite * delta3(l) * oh(i) + alfa * (wo_1 - wo_2); end end wo = wo_1 + d_wo; for i = 1:H d0(i) = 4/(exp(I(i) + exp(-I(i)2; end segma = delta3 *wo; for i =1:H delta2(i) = d0(i) * segma(i); end d_wi = xite * delta2' * xi + alfa *(wi_1 - wi_2); wi = wi_1 +d_wi; u_5 = u_4;u_4 = u_3;u_3 = u_2;u_2 = u_1;u_1 = u(k); 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); end figure(1) plot(time,rin,'r',time,yout,'b'); xlabel('time'); ylabel('rin,yout'); figure(2) plot(time,error,'r'); xlabel('time(s)'); ylabel('error'); figure(3) plot(time,u,'r'); xlabel('time(s)'); ylabel('u'); figure(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');2.实验结果第 8 页

    注意事项

    本文(基于BP神经网络的自整定PID控制仿真.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开