倒立摆实验报告_第1页
倒立摆实验报告_第2页
倒立摆实验报告_第3页
倒立摆实验报告_第4页
倒立摆实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

倒立摆控制系统实验报告姓名学号实验台:3号指导老师:田杨2015年5月实验一建立一级倒立摆的模型1.实验目的建立一级倒立摆系统的数学模型,并进行Matlab仿真。2.实验内容写出系统的传递函数与状态空间方程,并用Matlab进行仿真。3.实验步骤实际系统参数如表1.1所示。表1.1:系统参数表实验步骤如下:(1)将数据代入公式,求出系统的传递函数;(2)将数据代入公式,求出系统的状态空间方程;(3)将实际系统的状态空间方程转化为传递函数,与1进行比较(4)求出传递函数的极点和状态方程A的特征值,进行比较;(5)进行系统开环脉冲响应和阶跃响应的Matlab仿真。4.实验代码系统传递函数gs(输出为摆杆角度)和gspo(输出为小车位置)构建:M=1.32;m=0.132;b=0.1;l=0.27;I=0.0032;g=9.8;T=0.02;q=(M+m)*(I+m*l^2)-(m*l)^2num=[m*l/q0];den=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q];gs=tf(num,den)numpo=[(I+m*l^2)/q0-m*g*l/q];dempo=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0];gspo=tf(numpo,dempo)相应的状态方程为:p=I*(M+m)+M*m*l^2;A=[0100;0-(I+m*l^2)*b/pm^2*g*l^2/p0;0001;0-m*b*l/pm*g*l*(M+m)/p0];B=[0;(I+m*l^2)/p;0;m*l/p];C=[1000;0010];D=0;sys=ss(A,B,C,D)实际系统仿真:1)由系统传递函数仿真系统开环脉冲响应:t=0:T:5;y1=impulse(gs,t);y2=impulse(gspo,t);figure(1);plot(t,y2,'b',t,y1,'r');xlabel('t/s');ylabel('Position/morAngle/rad');axis([02080]);legend('CarPosition','PendulumAngle');2)由状态方程求系统开环脉冲响应:t=0:T:5;y=impulse(sys,t);figure(2);plot(t,y(:,1),t,y(:,2),'r');xlabel('t/s');ylabel('Position/morAngle/rad');axis([02080]);legend('CarPosition','PendulumAngle');将状态方程转换为传递函数gs0:gs0=tf(sys);3)由传递函数求系统的开环阶跃响应:t=0:T:5;y1=step(gs,t);y2=step(gspo,t);figure(3);plot(t,y2,'b',t,y1,'r');axis([02.5080]);xlabel('t/s');ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');4)由状态空间方程求系统的开环阶跃响应:t=0:T:5;y=step(sys,t);figure(4);plot(t,y(:,1),t,y(:,2),'r');xlabel('t/s');ylabel('Position/morAngle/rad');axis([02.5080]);legend('CarPosition','PendulumAngle');5.系统的传递函数和状态方程5.1给出系统的传递函数和状态方程在Matlab的CommandWindow内运行上面的源程序,会得出系统的传递函数gs=gspo=以及状态方程sys(A,B,C,D):A=x1x2x3x4x10100x20-0.073910.71750x30001x40-0.205429.230B=u1x10x20.7391x30x42.054C=x1x2x3x4y11000y20010D=u1y10y205.2将实际系统的状态空间方程转化为传递函数:gsgspo可见,由实际系统的状态空间方程转化为的传递函数与仿真的传递函数相一致。5.3传递函数极点和系统状态矩阵A的特征值: 传递函数gspo的极点: Po= 0 5.4042 -5.4093 -0.0689系统状态矩阵A的特征值: E= 0-0.0689 -5.4093 5.4042可见A的特征值与传递函数gspo的极点一致。6.系统开环响应曲线6.1由系统传递函数所得系统开环脉冲响应和阶跃响应由系统传递函数求得开环脉冲响应曲线如下图1.1所示,开环阶跃响应曲线如下图1.2所示图1.1开环脉冲响应曲线 图1.2开环阶跃响应曲线6.2由系统状态方程所得系统开环脉冲响应和阶跃响应由系统状态方程所得开环脉冲响应曲线如下图1.3所示,开环阶跃响应曲线如下图1.4所示。图1.3开环脉冲响应曲线 图1.4开环阶跃响应曲线由图可看出系统不稳定,响应趋于无穷,二是由状态空间方程得到的响应曲线与由传递函数得到的响应曲线是相同的,也就是说,两者在描述系统特性上是等价的。那么由状态空间方程出发,设计控制方法也是可行的。7、思考题7.1由状态空间方程转化为传递函数,是否与直接计算传递函数相等?答:相等。由系统直接计算传递函数,得:gspo=由状态方程计算传递函数,得:gspo=7.2通过仿真表明开环系统是否稳定?请通过极点(特征值)理论来分析。 答:利用Matlab计算传递函数gspo极点以及状态方程的特征值如下,传递函数gspo的极点: Po= 0 5.4042 -5.4093 -0.0689系统状态矩阵A的特征值: E= 0-0.0689 -5.4093 5.4042 存在极点含有正实部,表明开环系统不稳定。7.3传递函数的极点和状态方程的特征值的个数、大小是否相等?如果不相等,请解释其原因。 答:传递函数的极点和状态方程的特征值的个数、大小是相等的传递函数gspo的极点: Po= 0 5.4042 -5.4093 -0.0689系统状态矩阵A的特征值: E= 0-0.0689 -5.4093 5.4042传递函数的极点和状态方程的特征值的个数相同、大小相等。实验二倒立摆系统控制算法的状态空间法设计1.实验目的学习如何使用极点配置方法和最优控制方法设计状态反馈控制器。2.实验内容使用极点配置方法和最优控制方法设计状态反馈控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为:(1)杆角度θ和小车位移x的稳定时间小于5秒(2)x的上升时间小于2(3)µ的超调量小于20度(0.35弧度)(4)稳态误差小于4%.3.Matlab源程序及程序执行结果3.1Matlab源程序:clearall;M=1.32;m=0.132;b=0.1;l=0.27;I=0.0032;g=9.8;T=0.02;p=I*(M+m)+M*m*l^2;A=[0100;0-(I+m*l^2)*b/pm^2*g*l^2/p0;0001;0-m*b*l/pm*g*l*(M+m)/p0];B=[0;(I+m*l^2)/p;0;m*l/p];C=[1000;0010];D=0;Zeta=0.7l;Wn=6;Pp=conv([12*zeta*wnwn^2],[12*zeta*wn*3wn^2*9]);P=root(pp);K=acker(A,B,P);R=1;Q1=200;Q3=100;Q=[Q1000;0000;00Q30;0000];K=lqr(A,B,Q,R);Ac=A-B*K;Bc=B*K(1);sysstate=ss(Ac,Bc,C,D)t=0:T:5;U=0.2*ones(size(t));y=lsim(sysstate,U,t);figure(1);holdon;plot(t,y(:,1),t,y(:,2),'r')boxon;xlabel('t/s');ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');3.2Matlab程序的执行结果和仿真图形3.2.1用最优控制方法求反馈向量K=[-14.1421-12.167363.584911.8418]系统的响应曲线如下图2.1所示:图2.1系统仿真的响应曲线3.2.2用Ackermann公式求反馈向量KK=[-579.3561-180.4741500.951181.2049]3.2.3状态反馈后的系统sysstatesysstate=ss(Ac,Bc,C,D)a=x1x2x3x4x10100x210.458.823-46.28-8.753x30001x429.0524.52-101.4-24.33b=u1x10x2-10.45x30x4-29.05c=x1x2x3x4y11000y20010d=u1y10y203.2.4对lqr控制系统进行仿真结果,小车位置从上图可以看出我们的系统的存在稳定误差.小车最后的平衡位置并不在0位置上而是在—0.08附近,从小车的平衡位置看出小车最后停止在平衡位置偏右的地方。小车的稳定位置P1=—0.084.思考题4.1计算Ac答: K=[-14.1421-12.167363.584911.8418]实际:[-10-8.447153.681710.0889]4.2结论:固定Q33,增大Q11时,系统的上升和设置时间变短,但超调增加;而固定Q11,增大Q33的效果相反,系统的上升和设置时间变长,但是超调减少了,且改变Q11对系统的影响更大。可以做以下推论:固定一个参数不变时,减小Q11和增大Q33有类似的效果,而减小Q33和增大Q11有类似的效果实验三研究倒立摆系统对信号的跟踪1.实验目的观察倒立摆对于不同输入信号的跟踪情况,加深对状态空间和状态反馈的理解。2.实验内容在平衡位置,分别设定下列三种信号,记录倒立摆的运动情况:方波信号:频率0.2Hz,幅值0.05m;正弦波信号:频率0.2Hz,幅值0.05m;锯齿波信号:频率0.2Hz,幅值0.05m。3.模型matlab仿真结果3.1matlab程序Clearall;M=1.32;m=0.132;b=0.1;l=0.27;I=0.0032;g=9.8;T=0.02;%求系统状态空间参数p=I*(M+m)+M*m*l^2;A=[0100;0-(I+m*l^2)*b/pm^2*g*l^2/p0;0001;0-m*b*l/pm*g*l*(M+m)/p0];B=[0;(I+m*l^2)/p;0;m*l/p];C=[1000;0010];D=0;%求反馈向量KR=1;Q1=400;Q3=400;Q=[Q1000;0000;00Q30;0000];K=lqr(A,B,Q,R);%求状态反馈后的系统sysstateAc=A-B*K;Bc=B*K(1);%输入变换使输入与反馈的量纲匹配sysstate=ss(Ac,Bc,C,D);%%%信号模拟发生器T=0.001;Tmax=5;%生成阶跃信号%t=[0:T:Tmax];%U=0.1*ones(size(t));%生成方波信号[U,t]=gensig(`square`,5,Tmax,T);U=0.1*U%生成正弦波信号%U=0.1*sin(2*pi*t);%或[U,t]=gensig(`sine`,5,Tmax,T);U=0.1*U%对lqr控制系统进行仿真y=lsim(sysstate,U,t);figure(1);holdon;plot(t,y(:,1),t,y(:,2),`r`);boxon;xlabel('t/s');ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');3.2Matlab的仿真图形(三种扰动下的响应曲线)和实际系统的响应曲线3.2.1方波3.2.2正弦波3.2.3锯齿波5.思考题(1)仿真曲线和实际响应曲线是否大致相同?答:因为仿真所用的输入信号频率与实际输入信号的频率不同,导致仿真去线不可能完全一致。但对于同一类型输入信号而言,仿真曲线和实际曲线本应该大致相同,但由于实验台误差较大,所以没有得到较为理想的曲线。(2)请说明原系统是否完全可控?答:系统状态空间模型为:其中:A=x1x2x3x4x10100x210.458.823-46.28-8.752x30001x429.0524.52-101.4-24.33B=u1x1

温馨提示

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

评论

0/150

提交评论