资源描述:
《球棒系统建模附反馈控制.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本科生课程设计(报告)题目:球棒系统的建模及反馈控制设计姓名:学院:专业:班级:学号:指导教师:2013年6月15日南京农业大学教务处制球棒系统的建模及反馈控制设计由刚性球和连杆臂构成的球棒系统,如下图所示。连杆在驱动力矩τ作用下绕轴心点O做旋转运动。连杆的转角和刚性球在连杆上的位置分别用θ,γ表示,设刚性球的半径为R。当小球转动时,球的移动和棒的转动构成复合运动。球棒系统是一个典型的多变量的非线性系统。该系统通过操作驱动力矩的控制使刚性球稳定在连杆的中心位置。利用拉格朗日方程建立球棒系统的数学模型,并用状态反馈的方法设计球棒系统的控
2、制器,通过给出具体的数据并进行计算,再利用这些数据进行模拟仿真。仿真表明利用状态反馈法设计的控制器,可以实现球棒系统的稳定控制,即刚性球随动力臂一起转动时不发生滚动。刚性球与机械臂的动态方程由下式描述:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。①。。。。。。。。。。。。。。。。。。。。②选取刚性球的位移和其速度,以及机械臂的转角及其角速度作为状态变量,令,可得系统的状态空间表达式:设球棒系统各参数如下:.,,,1.将系统在平衡点x=0处线性化,求线性系统模型先求平衡点;令,解得:由题可知平衡点为处,故即。将球棒系统各参
3、数带入得:开环系统是不稳定的.2.利用状态反馈,将线性系统极点配置于求出状态反馈控制增益,并画出小球初始状态为横杆角度为和初始状态,横杆角度为时的仿真图像根据可控性的判别,此可控性矩阵,与向量的数目相等,该受控对象可控,可进行状态反馈。用给定特征根的方法,此研究对象是一个四阶系统,指定两组共轭复数为,特征根的实部都是负值,该系统是稳定的。采用状态反馈法,将比例系数乘以所有的状态变量,对系统进行反馈,可使系统稳定令,得:,由极点可知:Matlab编程如下:a=[0,1,0,0;0,0,-140.14,0;0,0,0,1;-24.52,0
4、,0,0];b=[0;0;0;49.995];c=[1,0,0,0;0,0,1,0];d=0;p=[-1+2j,-1-2j,-2+j,-2-j];K=acker(a,b,p)K=-0.4940-0.00430.36000.1200a-b*Kans=01.00000000-140.140000001.00000.17840.2141-18.0000-6.0000即所求的状态反馈增益。则状态反馈后系统的状态空间表达式为:(1)实现小球初始状态为,横杆角度的仿真图像Matlab编程,接上部分程序.g=ss(ans,b,c,d);>>x0=[
5、0.3,0,pi/6,0];>>[y,t,x]=initial(g,x0);>>plot(t,x)(2)实现小球初始状态为,横杆角度的仿真图像Matlab编程为:a=[0,1,0,0;0,0,-140.14,0;0,0,0,1;-24.52,0,0,0];b=[0;0;0;49.995];c=[1,0,0,0;0,0,1,0];d=0;p=[-1+2j,-1-2j,-2+j,-2-j];K=acker(a,b,p)K=-0.4940-0.00430.36000.1200a-b*Kans=01.00000000-140.14000000
6、1.00000.17840.2141-18.0000-6.0000g=ss(ans,b,c,d);>>x0=[-0.3,0,-pi/6,0];>>[y,t,x]=initial(g,x0);>>plot(t,x)(3)用simulink进行仿真.小球初始状态为,横杆角度的仿真图像小球初始状态为,横杆角度的仿真图像3.设计具有合适极点的全维观测器,实现状态反馈,给出状态反馈增益和观测器增益,并画出小球初始状态为,横杆角度为和初始状态,横杆角度为时的仿真图像,以及观测器输出与系统状态差值图像。(1)状态反馈的重新配置.设定系统的超调量为,
7、调整时间为。得到不等式解得:,取,依据典型二阶系统的传递函数可得:,系统为四阶因此,其他两个极点可以选取为5倍以上的的任意值,此处选取极点则,用Matlab编程求出反馈增益.a=[0,1,0,0;0,0,-140.14,0;0,0,0,1;-24.52,0,0,0];b=[0;0;0;49.995];c=[1,0,0,0;0,0,1,0];d=0;p=[-8+8.39j,-8-8.39j,-45+8.39j,-45-8.39j];>>k=acker(a,b,p)k=-40.6834-6.511573.40302.1202(2)求观测器
8、增益.首先判断能观性系统能观.根据观测器取特征值的原则,令,。在Matlab中求得和:Matlab编程为:a=[0,1,0,0;0,0,-140.1429,0;0,0,0,1;-24.52,0,0,0];b=[0;0;0