基于MATLAB的单级倒立摆控制系统设计.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB的单级倒立摆控制系统设计.docx

基于MATLAB的单级倒立摆控制系统设计——控制系统计算机仿真班级:自动化133班姓名:杨晓生 学号:201321724308 指导教师: 付根平 一、倒立摆的系统模型系统模型如图1所示,摆杆长度为L,质量为m的单级倒立摆,质量为M的小车在水平方受到作用力u,小车位移为y,重力加速度为g,通过移动小车使带有小球的摆杆始终处于垂直的位置。为了简化问题并且保证其实质不变,忽略执行电动机的惯性以及摆轴、轮轴、轮与接触面之间的摩擦力及风力。图1单级倒立摆系统模型 在水平方向上应用牛顿第二定律得以下方程:(1) 在垂直于摆杆的方向运用牛顿第二定律:(2) 又因为(3) (4) (5) (6) 当和较小时,有sinθ≈θ cosθ≈1 ,联立式(1)~(6)化简后得:(7) (8) (9) 求解得: (10) 二、倒立摆的控制系统设计选取倒立摆的参数如下:摆杆长度为L=0.8m,则L/2=0.3摆杆质量线密度为0.1kg/m,则m=0.8*0.1kg=0.08kg小车质量为M=5kg重力加速度为g=9.8ms 1、首先判断系统的能控性和能观性,输入以下代码:A = [ 0 1 0 0; (M+m)*g/M/L 0 0 0; 0 0 0 1; -m*g/M 0 0 0]; B = [ 0; -1/M/L; 0; 1/M]; C = [ 1 0 0 0; 0 0 1 0];rc=rank(ctrb(A,B))ro=rank(obsv(A,C))得到运行结果为以上结果表明系统的能控性矩阵满秩,系统能控,可以进行状态反馈极点配置;能观性矩阵满秩,系统能观,可以设计状态观测器。因此,可以设计有状态观测器的状态反馈控制系统。2、配置极点可以配置控制系统的极点为:-5、-5.2、-5.6、-6,并且可设计状态观测器的极点为:-20、-21、-22、-23。输入并且运行以下代码:P=[-5 -5.2 -5.6 -6];K=place(A,B,P);P1=[-20 -21 -22 -23]; G1=place(A',C',P1); G=G1';得到运行结果为结果表明状态反馈矩阵为K,状态观测器矩阵为G。3、建立Simulink仿真模型在倒立摆系统仿真模型设置状态反馈结构和状态观测器,在Gain中设置u * B,通过积分integrator后输出为x,再与反馈回来的A*x相加这输出x’,通过积分器则输出x,通过Gain1后即C*x输出y,根据公式x^’=G(y-y^)+B*u+A*x^输出x^’再通过积分integrator1输出x’,经过增益Gain4得到C*x^输出。系统的Simulink仿真模型如图2所示。图2倒立摆Simulink仿真模型4、设置初值在积分环节integrator设置初值参数为[1 -1 1 -2],表示初始角度为57.296゜,初始角速度为-57.296゜/s,初始位移为1m,初始速度为-1m/s。四、仿真实验及分析系统状态矩阵X变化曲线如图5所示,单击倒立摆动画仿真结果如图4所示。图4具有状态观测器的状态反馈控制系统仿真结果图5倒立摆小车模型图4表示的是状态空间变量X的4个变量变化曲线,其中x1表示角度,x2表示角速度,x3表示位移,x4表示速度。图5中的四幅图分布表示0.1s、0.25s、0.8s、3s四个时刻的小车状态,由图4可知,角度从初值57.296゜下降,在0.25s左右达到最低值后再次上升,在0.8s左右开始下降并趋于0;位移从初值的1m开始增加,在0.25s左右开始下降并趋于0。四、设计总结从仿真结果可以看出,经过状态反馈和状态观测器调节后,系统稳定。当系统能控时,可以引入状态反馈,任意配置状态反馈系统的特征值;当系统是能观的,则可以构造状态观测器,得到系统状态变量的估计值,其特征值也可任意配置,设计状态观测器的特征值大约是状态反馈系统特征值的4倍,从而保证系统的快速性。在绘制动画程序中,应当注意在画小车时要加入代码:hold on; 画完小车加入代码hold off; ,利用for循环,可以绘制出每一个时刻的小车形状,从而不断刷新画面形成动画,为了使刷新不至于过快,应加入代码pause(0.02); ,另外还应加入代码axis([-3,6,0,6.00]); ,设置一定的固定坐标宽度使小车在画面内运动而不会因为自动调节坐标宽度使小车变形。附录:M文件代码clear;clf;close allM=5;m=0.5;g=9.8;L=2;car_length=2;car_heigh=1;wheel_R=0.2;top_R=0.2;globule_R=0.1;A = [ 0

文档评论(0)

dreamclb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档