多层前向(BP)神经网络倒立摆控制器设计.[共10页]

上传人:哈**** 文档编号:136998922 上传时间:2020-07-04 格式:DOCX 页数:10 大小:99.21KB
返回 下载 相关 举报
多层前向(BP)神经网络倒立摆控制器设计.[共10页]_第1页
第1页 / 共10页
多层前向(BP)神经网络倒立摆控制器设计.[共10页]_第2页
第2页 / 共10页
多层前向(BP)神经网络倒立摆控制器设计.[共10页]_第3页
第3页 / 共10页
多层前向(BP)神经网络倒立摆控制器设计.[共10页]_第4页
第4页 / 共10页
多层前向(BP)神经网络倒立摆控制器设计.[共10页]_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《多层前向(BP)神经网络倒立摆控制器设计.[共10页]》由会员分享,可在线阅读,更多相关《多层前向(BP)神经网络倒立摆控制器设计.[共10页](10页珍藏版)》请在金锄头文库上搜索。

1、控制理论与控制工程研究中心提供:多层前向神经(BP)网络倒立摆控制器设计1 设计要求完成两个控制器设计:(1) 起杆控制器设计(2) 杆稳定控制器设计:稳定任意给定一个初始摆角和小车初始位置,对小 车施加作用力是小车运动到期望位置,并使摆角尽量为0,且不能超过-5。、5。的 范围。(3) 己知:小车质量:1.096kg摆杆质量:0. 109kg摆杆转动轴心到杆质心的长度:0. 25m摆杆的转动惯量:0. 0034 kgm22.模型分析质量为m的小球固结于长度为L的细杆(可忽略杆的质量)上,细杆又和质量 为M的小车狡接相连。由经验知:通过控制施加在小车上的力F (包括大小和方向) 能够使细杆处于

2、=0的稳定倒立状态。在忽略其他零件的质量以及各种摩擦和阻 尼的条件下,推导小车倒立摆系统的数学模型如下:在不考虑摩擦时倒立摆的运动方程可以由如下非线性微风方程描述:(/ + 畅一= mix(A7 + rn)x + bx ml(f)= u当状态变量在小的范围内变动时,可将其局部线性化,因为sin & u 0 - , cos 0 1- 3!2!所以当e很小时,由cose、sine的幕级数展开式可知,忽略高次项后, 可得 cos0-i, sin60, &=0。故线性化后运动方程组简化为:xi,=e,=x2少吩FX3 二x二x4X41化为状态空间表达式:xV(M + m)g000xTx2Mlx2xy0

3、001x3x4mg000x4_0001+MMl0xxx3+ OxFx2x3x4综上所属,可将倒立摆进行动力学建模,写出动力学方程,并当状态变量在小 范围内变化时,可局部线性化,写出该模型的状态空间方程。由此我们可以进行控 制器的设计。3 设计思路1、起摆控制器设计。首先假定初始状态向量为pi 0 0 0,开始对模型施以正弦 信号的力。当采集到的状态向量abs ( 9 ) 二0. l*pi的时候,进入稳定控制控制器 控制。2、稳定控制器设计。进行多层前向BP网络控制器设计的时,首先因采集数据 集,该数据集应完整且不冗余(不具有相关性)。以保证训练的快速和准确。采集到 数据后,将其进行分类,分为训

4、练用数据、检验用数据、测试用数据。当把数据分 好后,便可新建网络,训练网络。最后用训练好的网络对模型进行控制,观察控制 效果。首先,建立对象模型。在MATLAB的simulink中有车棒系统模型,用“slcp” 命令打开,直接拷贝过來,加上输入输出,存为模型newmodle.mdl文件。如下图所 示:X图2倒立摆模型接着,利用LQR最优控制进行数据采集。此处选的最优控制参数R和Q阵为:Q=10 0 0 0;0 5 0 0; 0 0 100 0; 0 0 0 5 ;R=1首先,将输入数据域进行分割,再在线性状态方程下,计算当前系统输出。共 分割625个点,即采集625组数据。再将这625组数据分

5、为四组,用二分之一的数据训练网络。用newff新建该神 经网络。该神经网络为二层网络。其中输入层为4个节点,隐含层有16个神经元, 输出层有1个神经元。为提高训练速度,采用trainlm训练方法进行训练。训练冃标 为 0.001 o训练好网络后,在给定输入的情况下,测试其对模型的控制效果。4. 仿真结果图3网络训练谋普分析图4在阶跃输入下的控制曲线5. 结果分析建立了一级倒立摆的数学模型,通过LQR最优控制方法得到数据集,建立多层 前向反馈神经网络,用MATLAB实现了控制系统的仿真,得到了一级倒立摆各状 态量及控制量的响应曲线。通过进行神经网络控制器设计,可以看出该神经网络可以可以在较短的时

6、间内 使倒立摆稳定。实现了对倒立摆的控制。控制程序见附录。6. 附录%生成数据采集点1# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* kJ# 1* 、V、V、V、V、V、V、V、V、V、V、V、V、V、function h=order(x)l=length(x);ll=prod(x,2);h=;for i=l:la=ll/prod(x(l:i),2);b=ll/x(i)/a;c 二;m=;for k=l:x(i)c=c;k*ones(a,l);endfor j=l:b;m=m;c;endh=h

7、,m;endreturnfunction h=genstate();nl=5;n2=5;n3=5;n4=5;data=order(n 1 ,n2,n3,n4);a 1 =linspace(-O.3,O.3,n 1);a2=linspace( 1,1 ,n2);a3=linspace(-3,3,n3);a4=li nspace(-3,3,n4); for i=l:length(data);data(i,l )=a l(data(i,l);data(i,2)=a2(data(i,2);data(i,3)=a3(data(i,3);data(i,4)=a4(data(i,4);endh=data;%

8、产生数据b 丄 丄 丄 丄 丄 丄 丄 丄 丄 丄 丄% LQR控制Q 二10 0 0 0;0 5 00;00 100 0;000 5;n=();0;0;0;k=genstate();lk=size(k);lk=lk(l);data=;for i=l:lkR=l;A,B ,C,D=linmod(newmoder,k(i,:);K 二 lqr(A,B,Q,R,n);X=k(i,:)*K:R=k(i,:),-X;data=data;R;T(l,i)二卜 X;endX=k*;%列向量为(),(),x,xR,Ql=size(X)%将原始数据分成几个部分作为 不同用途四分一用于确证,%四分一用于测试,二

9、分一用于训 练网络iitst=2:4:Q;iival=4:4:Q;iitr=l:4:Q 3:4:Q;%vv是确证向量,.P是输入,.T 是输出,vt是测试向量VV.P 二 X(:,iival);VV.T=T(:,iival);VT.P=X(:,iitst);VT.T=T(:,iitst);trX=X(:,iitr);trT=T(:,iitr);%新建及初始化网络 net=newff(minmax(X),20 l,rtansig urelin ,trainlm);netayers 1 J.initFcn = initwb;net.inputWeights 1,1 J.initFcn = rand

10、s;net.biases 1,1 J.initFcn = rands; net.biases2,l .initFcn = bands; net= init(net);w=net.LW2,l;bl=net.b 1 ;b2=net.b2;yl=sim(net,trX);%训练网络net.performFcn=rsser; net.trainParam.goal=0.001; net.trainParam.epochs=5000;net.trainParam.show=20;net.trainParam.mc=0.95; fnet,trl=train(net,trX,trTJ,VV,VT);%检验网

11、络plot(tr.epoch5tr.perf/rt 匚 epoch,tr.vp erf/:gtr.epoch,trtperf/-.b,);legend(训练丁确证丁测试;1); ylabel(平方误差);xlabef 时间);%模拟控制goal 二0.005;ess=l;max=500;for i=l:maxA,B,C,D=linmod(newmoder,XX);U=sim(net,XX);XXI 二 A*XX+B*(U); ess=abs(XXl(lJ)-XX(l,l); if ess=goalbreak;endXX=XX1;M=l;end%模拟控制%初始化倒立摆M二1.096;%小车质量m

12、二009;%摆杆质量b二0.1;%小车摩擦系数I = 0.0034%摆杆惯量;g = 9.8;%重力加速度1二0.25;%转动轴心到杆质心的长 度goal=0.005;ess=l;X=0.23;0;0;0;max=500;for i=l :maxA,B,C,D=linmod(*newmoder,X); U=sim(net,X);XI 二 A*X+B*(U);ess=abs(X 1(1,1 )-X(l,l);if ess=goalbreak;endX=X1;endG l(S)=num 1/den 1clcclear%计算倒立摆状态方程并显示p = I*(M+m)+M*m*l 八 2;A 二010

13、0;0 -(I+m*lA2)*b/p(mA2*g*lA2)/p0;0 0 01;0(m*l*b)/pm*g*i*(M+m)/p0B = 0;(I+m*22)/p;0;m*l/pC = l 0 0 0;0 0 10D = 0;0%求开环系统的阶跃响应并显示p二eig(A);%求向量 Kx=5()()();y=l()();Q=fx 0 0 0;0000;00 y0;0000;R=l;K=lqr(A,B,Q,R)Ac=(A-B*K);Bc=B;Cc=C;Dc=D;T = 0:0.005:5;U = 0.2*ones(size(T);Y.X = lsim(Ac,Bc,Cc,Dc,U,T);%F=KX;

14、plot(T,Y(:,l), 丫工 Y(:,2),) legend(*Cart positionVPendulum angle*)grid7w7w7w7w7w7w7w7w%起摆控制M= 1.096;%小车质量m=0.109;%摆杆质量b = 0.1;%小车摩擦系数I = 0.0034;%摆杆惯量;g = 9.8;%重力加速度1 = 0.25;%转动轴心到杆质心的长 度X=1;O;O;OJ;for i= 1:5000U二sin(X(l,l)*pi);fA,B,C,Dl=linmod(newmoder,X);XI 二A*X+B*U;X=X1;ifX(l,l)=0.1nncontrol(X);breakendend

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号