欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    人工神经网络作业MATLAB仿真完整版.doc

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

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

    人工神经网络作业MATLAB仿真完整版.doc

    1、中科院2005-2006第一学期神经网络三级倒立摆的神经网络控制摘要:建立了基于人工神经网络改进BP算法的三级倒立摆的数学模型,并给出了BP网络结构,利用Matlab软件进行训练仿真,结果表明,改进的BP算法控制倒立摆精度高、收敛快,在非线性控制、鲁棒控制等领域具有良好的应用前景。1.引言倒立摆系统的研究开始于19世纪50年代,它是一个典型的非线性、高阶次、多变量、强耦合和绝对不稳定系统.许多抽象的控制概念,如系统的稳定性、可控性、系统的收敛速度和抗干扰能力都可以通过倒立摆直观地表现出来。随着现代控制理论的发展,倒立摆的研究对于火箭飞行控制和机器人控制等现代高科技的研究具有重要的实践意义。目前

    2、比较常见的倒立摆稳定控制方法有线性控制,如LQR,LQY等;智能控制,如变论域自适应模糊控制,遗传算法,预测控制等。2.系统的数学模型2.1三级倒立摆的模型及参数三级倒立摆主要由小车,摆1、摆2、摆3组成,它们之间自由链接。小车可以在水平导轨上左右平移,摆杆可以在铅垂平面内运动,将其置于坐标系后如图1 所示:规定顺时针方向的转角和力矩均为正。此外,约定以下记号:为外界作用力,为小车位移,(=1,2,3)为摆与铅垂线方向的夹角, 分别为摆的链接点位置。其它的系统参数说明如下:- 小车系统等效质量; - 二摆质心至旋转轴之间的距离;- 一摆质量; - 三摆质心至旋转轴之间的距离;- 二摆质量; -

    3、 一、二摆之间的距离;- 三摆质量; - 二、三摆之间的距离;- 一摆对其质心处转动惯量; - 小车系统的摩擦系数;- 二摆对其质心处转动惯量; - 一摆转轴处的摩擦阻力矩系数;- 三摆对其质心处转动惯量; - 二摆转轴处的摩擦阻力矩系数;- 一摆质心至旋转轴之间的距离; - 三摆转轴处的摩擦阻力矩系数。2.2三级倒立摆的非线性模型为:其中 , 3.神经网络控制器的设计3.1 BP神经网络人工神经网络(ANN)由于具有信息的分布存储、并行处理以及自学习能力等优点,在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。近年来,已有多种ANN模型被提出并得以深入研究。其中,80%90

    4、%的人工神经网络模型是采用BP网络或它的改进形式,它是前向网络的核心部分,体现了网络最精华的部分。标准的BP网络是根据WidrowHoff规则,采用梯度下降算法,主要由信息信号的正向传播和误差信号的反向传播两部分组成。BP神经网络在未经任何训练的情况下,不能作为系统控制器使用。训练样本数的多少对训练结果有很大影响。样本数越多,网络训练结果越精确,但运行时间加长,计算成本也增加,所以合理选择样本数据非常重要。在实际仿真过程中,经过试探训练样本数为5000时结果较为合理,此时样本数据能够反映系统的基本特征,可以得到预期的仿真结果。3.2控制程序整个的程序设计如下:p=x3_1;x3_2;x3_3;

    5、x3_4;x3_5;x3_6;x3_7;x3_8;u=x_u;%初始化训练数据net=newff(minmax(p),8,1,tansig,purelin,trainlm);%生成一个两层的神经网络,第一层的传递函数为,第二层的传递函数为net.trainParam.goal=0.0000001;%设置与网络训练相关的数据,包括训练精度和最大训练次数net.trainParam.epochs=5000;net=init(net);%初始化网络net=train(net,p,u);%根据前面的数据和设置的参数对网络进行训练y=sim(net,p)%对已经训练好的网络进行仿真,检查所得的网络是否符

    6、合要求plot(u,r)hold on;plot(y,*)%将训练所用数据和神经网络仿真的数据画在同一张图上,进行对比gensim(net,-1)%如果所得到的网络符合要求,则将得到的网络生成一个simulink模块,替代原来的反馈矩阵对倒立摆模型进行控制采用LQR方法对系统进行建模生成系统传递函数程序如下所示:clc clear m0= 1.32822; m1= 0.2200; m2= 0.2200; m3= 0.1870; J1= 0.0049626; J2= 0.0049626; J3 = 0.0048235; d1= 0.304; d2= 0.304; d3= 0.226; D1= 0

    7、.49; D2= 0.49; f0= 22.9147; f1= 0.007056; f2= 0.002646; f3= 0.002646; g= 9.81; M=m0+m1+m2+m3 m1*d1+m2*D1+m3*D1 m2*d2+m3*D2 m3*d3; m1*d1+m2*D1+m3*D1 J1+m1*d1*d1+m2*D1*D1+m3*D1*D1 m2*d2*D1+m3*D1*D2 m3*d3*D1; m2*d2+m3*D2 m2*d2*D1+m3*D1*D2 J2+m2*d2*d2+m3*D2*D2 m3*d3*D2; m3*d3 m3*d3*D1 m3*d3*D2 J3+m3*d3*

    8、d3M=1.95522 0.26631 0.15851 0.042262; 0.26631 0.12301522 0.0776699 0.02070838; 0.15851 0.0776699 0.07019322 0.02070838; 0.042262 0.02070838 0.02070838 0.014375212F=-f0 0 0 0; 0 -f1-f2 f2 0; 0 f2 -f2-f3 f3; 0 0 f3 -f3F= -22.9147 0 0 0; 0 -0.009702 0.002646 0; 0 0.002646 -0.005292 0.002646; 0 0 0.0026

    9、46 -0.002646 G=11.88;0;0;0;Nb=0 0 0 0; 0 m1*d1+m2*D1+m3*D1 0 0; 0 0 m2*d2*g+m3*D2*g 0; 0 0 0 m3*d3*gNb= 0 0 0 0; 0 0.26631 0 0; 0 0 1.553398 0; 0 0 0 0.4141676 A22=inv(M)*FA21=inv(M)*NbB2=inv(M)*GA21=inv(M)*NbA22=inv(M)*FB2=inv(M)*GT0=1 0 0 0 ; 0 1 0 0; 0 -1 1 0; 0 0 -1 1;%T0=eye(4,4)A21=T0*A21*inv(

    10、T0);A22=T0*A22*inv(T0);B2=T0*B2;A=zeros(4,4) eye(4,4); A21 A22B= zeros(4,1); B2 C = eye(4,4) zeros(4,4) D = zeros(4,1) %LQR%Q=diag(100 1 1 1 1 1 1 1);R = 0.01;K = lqr(A,B,Q,R)Ac = (A-B*K);Bc = B;Cc = C;Dc = D;T = 0:0.01:10;U = ones(size(T);sys_c=ss(Ac,Bc,Cc,Dc);Y,T,X=lsim(sys_c,U,T);figure(1)plot(T,

    11、Y)gridxlabel(time(s);legend(Cart,PendulumDown,PendulumMiddle,PendulumUp)Nbar= K(1);Cn = 1 0 0 0 0 0 0 0; %sys = ss(A,B,Cn,0);sys_cl = ss(Ac,Bc*Nbar,Cc,Dc);Y,T,X = lsim(sys_cl,U,T);figure(2)plot(T,Y)gridxlabel(time(s);legend(Cart,PendulumDown,PendulumMiddle,PendulumUp)%全维观测器P = -40 -41 -42 -43 -44 -4

    12、5 -46 -47;L = place(A,C,P)Ace = A-B*K B*K; zeros(size(A) (A-L*C); eig(Ace)Bce = B*Nbar; zeros(size(B);Cce = Cc zeros(size(Cc);Dce = 0;0;0;0;est_cl = ss(Ace,Bce,Cce,Dce);Y,T,X = lsim(est_cl,U,T);figure(3)plot(T,Y)gridxlabel(time(s);legend(Cart,PendulumDown,PendulumMiddle,PendulumUp)采用Simulink和S函数进行控制

    13、系统的设计,系统仿真程序如下所示:图2 Simulink仿真图functionsys,x0,str,ts=dot2(t,x,u,flag)switch flag case 0, sys,x0,str,ts=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 2,9 sys=; otherwise error(Unhandled flag = ,num2str(flag); endfunction sys,x0,str,ts=mdlInitializeSizes si

    14、zes = simsizes;sizes.NumContStates = 8;sizes.NumDiscStates = 0;sizes.NumOutputs = 8;sizes.NumInputs = 1;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 1;sys = simsizes(sizes);%x0=0.05,0.08,0.008,0.009,0,0,0,0;x0=0.05,0.08,0.001,0.008,0,0,0,0;str=;ts=0 0;function sys=mdlDerivatives(t,x,u)tao=-11.88*

    15、u;0;0;0;D=-1.95522 -0.26631*cos(x(2) -0.15851*cos(x(3) -0.042262*cos(x(4); -0.26631*cos(x(2) -0.12301522 -0.0776699*cos(x(3)-x(2) -0.02070838*cos(x(4)-x(2); -0.15851*cos(x(3) -0.0776699*cos(x(3)-x(2) -0.07019322 -0.02070838*cos(x(4)-x(3); -0.042262*cos(x(4) -0.02070838*cos(x(4)-x(2) -0.02070838*cos(

    16、x(4)-x(3) -0.014375212;H=-22.947*x(5)+0.26631*sin(x(2)*x(6)2+0.15851*sin(x(3)*x(7)2+0.042262*sin(x(4)*x(8)2; -0.009702*x(6)+0.002646*x(7)+0.0776699*sin(x(3)-x(2)*x(7)2+0.02070838*sin(x(4)-x(2)*x(8)2+2.609838*sin(x(2); 0.002646*x(6)-0.0776699*sin(x(3)-x(2)*x(6)2-0.005292*x(7)+0.002646*x(8)+0.02070838

    17、*sin(x(4)-x(3)*x(8)2+1.553398*sin(x(3); -0.02070838*sin(x(4)-x(2)*x(6)2+0.002646*x(7)-0.02070838*sin(x(4)-x(3)*x(7)2-0.002646*x(8)+0.4141676*sin(x(4);sys=x(5); x(6); x(7); x(8); -inv(D)*H+inv(D)*tao;function sys=mdlOutputs(t,x,u)E=1 0 0 0 0 0 0 0; 0 1 0 0 0 0 0 0; 0 -1 1 0 0 0 0 0; 0 0 -1 1 0 0 0 0; 0 0 0 0 1 0 0 0; 0 0 0 0 0 1 0 0; 0 0 0 0 0 -1 1 0; 0 0 0 0 0 0 -1 1;sys=E*x;图3结果仿真图4.小结通过对一级倒立摆数学模型分析,进行了倒立摆小车改进BP算法的控制系统仿真实验。仿真表明该BP算法收敛性好、计算量小, BP神经网络从理论上可以逼近任意非线性函数,所以它特别适合控制像倒立摆这样的严重非线性、多变量系统。


    注意事项

    本文(人工神经网络作业MATLAB仿真完整版.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922