




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 一级倒立摆神经网络控制1. 实验要求:利用LQR将模型线性化,通过调制神经网络层数和神经元个数设计 BP 神经网络控制器,以达到对倒立摆的良好控制效果。2.控制器设计根据牛顿力学对倒立摆建立数学模型:其中m = 0.1kg ,是摆干的质量,M =1kg,是小车的质量,L =1米是摆干的长度,x是小车的位移, 是摆干的偏角, f = 50N / s为摩擦系数,u为控制律。对于神经网络控制器,最重要的是获得理想的训练样本,为了获得理想的训练样本,需要先设计出能够取得理想控制效果的线性控制器,然后将线性控制器的输出和输入进行采样,这样就得到了理想的训练样本。为设计线性控制器,首先要对原先的非线
2、性系统进行线性化处理。因为 在稳定的时候会很小,所以将它的高阶项略去,sin =, cos =1,可得线性化状态方程。经验算该系统可控,可以为此系统设计线性控制器。应用Matlab 中的求解工具lqr(A,B,Q,R)可以求出最优反馈系数矩阵K的值,需要选择Q,R这两个参数是用来平衡输入量和状态量的权重,其中Q 11表示小车位置的权重,Q 33表示摆干角度的权重。在实验中要优先考虑角度,所以Q,R选择为Q=8000 0 0 0;0 0 0 0;0 0 1000 0;0 0 0 0,R=1。得到反馈系数矩阵K,在原先的系统模型中用一个函数的模块作为线性控制器模块,输入为原系统的状态量,控制律f(
3、u)=K*U。将输入输出量导入到工作空间即得样本。系统控制结构图图1 系统simulink仿真图LQR控制器设计 将一级倒立摆的模型进行线性化后得到模型A,B,C,D。利用matlab函数lqr()设计线性二次型最优控制反馈阵K,输出量u=-K*X。因此可得输入输出的导师样本。A=0 1 0 0;0 -4.9725 -0.7178 0;0 0 0 1;0 3.7294 7.8959 0;B=0 0.9756 0 -0.7317;C=1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1;D=0;0;0;0;Q=8000 0 0 0;0 0 0 0;0 0 1000 0;0 0 0 0;
4、R=1;K=lqr(A,B,Q,R);Ac=(A-B*K);Bc=B;Cc=C;Dc=D;t=0:0.005:20;U=ones(size(t);x0=0.05 0 0.08 0;Y,X=lsim(Ac,Bc,Cc,Dc,U,t,x0);plot(t,Y);xlabel('t');ylabel('Y');u=-K*X'图2 LQR控制器曲线神经网络控制器设计由LQR得到输入输出导师样本X(:,1)'X(:,2)'X(:,3)'X(:,4)'和u。经过神经网络训练即可得到逼近LQR控制效果的神经网络控制器,神经网络代码如下所
5、示:P=X(:,1)'X(:,2)'X(:,3)'X(:,4)'t=u;Q=-1 1;-1 1;-1 1;-1 1;net=newff(Q,4 8 1,'tansig' 'tansig' 'purelin');net.trainparam.epochs=2000;net.trainparam.goal=0.000001;net=train(net,P,t);gensim(net);图3 神经网络训练性能3.控制器仿真图4 一级倒立摆神经网络控制曲线由仿真结果可知,小车的位移稳定,摆杆的角度很快到达零,且超调量比较小
6、,符合实验要求。因为电脑打不开远程倒立摆仿真应用程序并没有询问到其它同学联系信息所以用的是matlab仿真曲线观察控制效果。二、 二级倒立摆神经网络控制1. 实验要求:用LQR线性化模型设计神经网络控制器,实现对二级倒立摆的良好控制效果。2.控制器设计系统控制结构图图5 系统simulink仿真图LQR控制器设计将二级倒立摆的模型进行线性化后得到模型A,B,C,D。利用matlab函数lqr()设计线性二次型最优控制反馈阵K,输出量u=-K*X。因此可得输入输出的导师样本。A=0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1; 0 -2.6865 1.0204 -16.8
7、458 0.0168 -0.0128; 0 31.8459 -29.3235 42.9296 -0.2776 0.2912; 0 -40.9835 97.4089 -55.2473 0.6280 -0.8572;B=0;0;0;8.7213;-22.2253;28.6023;C=1 0 0 0 0 0;0 1 0 0 0 0;0 0 1 0 0 0;0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1;D=0;0;0;0;0;0;Q=diag(100 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
8、:0.005:20;U=ones(1),zeros(1,4000);x0=0.05,0.08,0.01,0,0,0;Y X=lsim(Ac,Bc,Cc,Dc,U,t,x0);plot(t,Y);xlabel('t');ylabel('Y');u=-K*X'图6 LQR控制器曲线神经网络控制器设计由LQR得到输入输出导师样本X(:,1)',X(:,2)',X(:,3)',X(:,4)',X(:,5)',X(:,6)和u。经过神经网络训练即可得到逼近LQR控制效果的神经网络控制器。代码如下所示:P=X(:,1)'
9、;X(:,2)'X(:,3)'X(:,4)'X(:,5)'X(:,6)'t=u;Q=-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;net=newff(Q, 6 8 1,'tansig' 'tansig' 'purelin');net.trainparam.epochs=2000;net.trainparam.goal=0.000001;net=train(net,P,t);gensim(net);图7 神经网络训练性能3.控制器仿真图8 二级倒立摆神经网络控制曲线由仿真结果可知,小车的位移稳定
10、,摆杆的角度很快到达零,且超调量比较小,符合实验要求。三、 三级倒立摆神经网络控制1.实验要求:利用LQR线性化模型设计神经网络控制器,以实现对三级倒立摆的良好控制效果。2.控制器设计系统控制结构图图9 系统simulink仿真图LQR控制器设计将三级倒立摆的模型进行线性化后得到模型A,B,C,D。利用matlab函数lqr()设计线性二次型最优控制反馈阵K,输出量u=-K*X。因此可得输入输出的导师样本。A=0 0 0 0 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 0 1; 0 0.0502 0.5267 -0.0336 -16.
11、6748 0.0126 -0.0057 0.0012; 0 -40.2597 -48.7310 3.1121 41.0042 -0.2245 0.1725 -0.1082; 0 111.5608 128.9199 -21.5015 -49.2699 0.4599 -0.4287 0.3936; 0 -87.3543 -98.2432 69.3076 10.1268 -0.2885 0.3936 -0.7282;B=0;0;0;0;8.6450;-21.2584;25.5437;-5.2502;C=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
12、 0 0 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 0 1 0;0 0 0 0 0 0 0 1;D=0;0;0;0;0;0;0;0;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.005:20;U=ones(size(t);x0=0.05 0.08 0.001 0.008 0 0 0 0;Y X=lsim(Ac,Bc,Cc,Dc,U,t,x0);plot(t,Y);xlabel('t');ylabel(&
13、#39;Y');u=-K*X'图10 LQR控制器曲线神经网络控制器设计由LQR得到输入输出导师样本X(:,1)',X(:,2)',X(:,3)',X(:,4)',X(:,5)',X(:,6) ,X(:,7)',X(:,8)'和u。经过神经网络训练即可得到逼近LQR控制效果的神经网络控制器。P=X(:,1)'X(:,2)'X(:,3)'X(:,4)'X(:,5)'X(:,6)'X(:,7)'X(:,8)'t=u;Q=-1 1;-1 1;-1 1;-1 1;-1
14、 1;-1 1;-1 1;-1 1;net=newff(Q,2 8 4 1,'tansig' 'tansig' 'tansig' 'purelin');net.trainparam.epochs=2000;net.trainparam.goal=0.000001;net=train(net,P,t);gensim(net);图11 神经网络训练性能3.控制器仿真图12 三级倒立摆神经网络控制曲线由仿真结果可知,小车的位移稳定,摆杆的角度很快到达零,且超调量比较小,符合实验要求。神经网络层数和每层节点个数对神经网络控制效果影响很大,
15、下面是选择三层网络8 10 1和四层网络4 8 2 1 ,1 2 8 1仿真效果。增加网络的层数可以提高网络性能,减小误差,提高精度,同时使网络结构复杂化,增加训练的时间。实验中三层神经网络训练性能很差。图13 8 10 1神经网络性能若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。图为节点个数不同的仿真结果。图14 4 8 2 1神经网络仿真结果图15 1 2 8 1神经网络仿真结果 通过对比,得出神经网络层数和节点对系统影响很大
16、,因此合理选择神经网络的参数十分重要。四、 一级倒立摆模糊控制1.实验要求:利用matlab设计基于模糊控制的一级倒立摆,在simulink下进行仿真并得到良好的控制效果。2. 模糊控制器设计倒立摆是一种多变量系统,经典的模糊控制是由系统的误差以及误差的导数作为输入,所以对于倒立摆的模糊控制有相当的难度。参照信息融合思想,将多变量化为2变量设计模糊控制器,取得了很好的控制效果。一级倒立摆系统的控制目标以稳定摆杆为主、小车次之,故选取倒立摆角度及其角速度为主元,小车位移和速度为副元,分别归并到前面两主元中去。物理意义表示将位移信息转化为角度信号的干扰信号,作为角度控制的辅助。在matlab命令窗
17、口输入fuzzy弹出模糊工具箱,输入变量e和ec及输出变量范围设置为-6 6,选择e,ec和u的模糊集合为负大,负中,负小,零,正小,正中正大即NB,NM,NS,ZE,PS,PM,PB。添加模糊控制规则配置好后将文件输出到matlab工作空间命名为FUZZY1。 然后在simulink模糊框图中输入FUYY1,并按下图绘制模糊控制器系统图,将其封装成为一个模糊控制器子系统添加到一级倒立摆控制系统中即得到一级倒立摆的模糊控制系统。一级倒立摆模糊控制结构图图16 一级倒立摆子系统图图17 一级倒立摆模糊控制系统图模糊控制器子系统结构图图18 模糊控制器系统图3. 参数调整模糊控制中,两个输入(误差与误差导数)前要加入量化因子,将连续论域转化为离散论域,误差量化因子Ke=nxe,误差导数量化因子Kec=mxec,输出量u的比例因子Ku=ul 。量化因子Ke和Kec对控制系统的动态性能影响很大。Ke大时,系统超调较大,过渡时间较长;Kec选择越大系统超调越小,但系统的响应速度变慢,Kec对超调的抑制作用十分明显。输出比例因子Ku作为模糊控制的总增益,它的大小影响控制器的输出,也影响着模糊控制系统的特性。Ku选择过小会使系统动态响应过程变长,且会有负的稳态误差;而Ku选择过大会导致系统振荡加剧,且产生正的稳态误差。这里选择参数:x=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论