倒立摆系统--实验设计报告(共30页).doc
《倒立摆系统--实验设计报告(共30页).doc》由会员分享,可在线阅读,更多相关《倒立摆系统--实验设计报告(共30页).doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上学生实验报告课程名称: 倒立摆系统课程设计 组号: 7 姓名: 学号: 邮箱: 2010年 11 月 11 1日目录倒立摆系统的构成图1 倒立摆系统的组成框图如图1所示为倒立摆的结构图。系统包括计算机、运动控制卡、伺服机构、倒立摆本体和光电码盘几大部分,组成了一个闭环系统。光电码盘1将小车的位移、速度信号反馈给伺服驱动器和运动控制卡,摆杆的位置、速度信号由光电码盘2反馈回控制卡。计算机从运动控制卡中读取实时数据,确定控制决策(小车向哪个方向移动、移动速度、加速度等),并由运动控制卡来实现该控制决策,产生相应的控制量,使电机转动,带动小车运动,保持摆杆平衡。单级倒立摆数
2、学模型的建立在忽略了空气流动,各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图2所示图2 单级倒立摆模型示意图那我们在本实验中定义如下变量:M 小车质量 (本实验系统 0.5 Kg)m 摆杆质量 (本实验系统 0.2 Kg)b 小车摩擦系数 (本实验系统 0.1 N/m/sec)l 摆杆转动轴心到杆质心的长度(0.3 m)I 摆杆惯量 (0.006 kg*m*m)F 加在小车上的力 x 小车位置 摆杆与垂直向上方向的夹角 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)下面我们对这个系统作一下受力分析。下图3是系统中小车和摆杆的受力分析图。其中,和为小车与摆杆相互作用力
3、的水平和垂直方向的分量。注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。图3 倒立摆模型受力分析分析小车水平方向所受的合力,可以得到等式:应用Newton方法来建立系统的动力学方程过程如下:分析小车水平方向所受的合力,可以得到以下方程:由摆杆水平方向的受力进行分析可以得到下面等式:即 把这个等式代入上式中,就得到系统的第一个运动方程: (1)为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:力矩平衡方程如下:注意:此方程中力矩的方向,由于,故等式前面有负号。合并这两个方程,约去和,由得到第二个运动方程:
4、 (2)设(是摆杆与垂直向上方向之间的夹角),假设与1(单位是弧度)相比很小,即1,则可以进行近似处理:,。用来代表被控对象的输入力,线性化后两个运动方程如下: (3)传递函数对方程组(3)进行拉普拉斯变换,得到 (4)注意:推导传递函数时假设初始条件为0。由于输出为角度,求解方程组(4)的第一个方程,可以得到把上式代入方程组(4)的第二个方程,得到整理后得到传递函数:其中 状态空间方程系统状态空间方程为方程组(3)对解代数方程,得到解如下:整理后得到系统状态空间方程:系统Matlab 仿真和开环响应实际系统参数如下,求系统的传递函数、状态空间方程,并进行脉冲响应和阶跃响应的Matlab仿真。
5、M 小车质量 1.096 Kgm 摆杆质量 0.109 Kgb 小车摩擦系数 0 .1N/m/secl 摆杆转动轴心到杆质心的长度 0.2 5mI 摆杆惯量 0.0034 kg*m*mF 加在小车上的力 x 小车位置 摆杆与垂直方向的夹角T 采样频率0.005秒注意:在进行实际系统的Matlab仿真时,请将采样频率改为实际系统的采样频率。传递函数:在Matlab中,拉普拉斯变换后得到的传递函数可以通过计算并输入分子和分母矩阵来实现。求系统传递函数的m-文件内容如下:M = 1.096;m = 0.109;b = 0.1;I= 0.0034;g = 9.8;l = 0.25; q = (M+m)
6、*(I+m*l2)-(m*l)2; %simplifies inputnum = m*l/q 0den = 1 b*(I+m*l2)/q -(M+m)*m*g*l/q -b*m*g*l/qt = 0 : 0.01 : 5;impulse ( num , den , t )axis ( 0 1.1 0 70 )执行上面的文件,就可以求出系统传递函数的分子与分母多项式的Matlab 表示:num = 2.3566 0den = 1.0000 0.0883 -27.8285 -2.3094可以得到系统开环脉冲响应的曲线如下: 图4 系统开环脉冲响应曲线状态空间法:状态空间法可以进行单输入多输出系统设
7、计,(从实验二开始,我们将尝试同时对摆杆角度和小车位置进行控制)。为了更具挑战性,给小车一个阶跃输入信号,设计指标如下:l 小车位置x和摆杆角度的稳定时间小于5秒;l 位置x的上升时间小于0.5秒;l 摆杆角度的超调量小于20度(0.35弧度)。下面,我们用 Matlab 求出系统的状态空间方程各矩阵,并仿真系统的开环阶跃响应。在这里同样给出了一个m-文件,执行这个文件,Matlab将会给出系统状态空间方程的A,B,C和D矩阵,并可以绘出在给定输入为一个0.2 m的阶跃信号时系统的响应曲线。M = 1.096;m = 0.109;b = 0.1;I= 0.0034;g = 9.8;l = 0.
8、25; p = I*(M+m)+M*m*l2; %denominator for the A and B matriciesA = 0 1 0 0; 0 -(I+m*l2)*b/p (m2*g*l2)/p 0; 0 0 0 1; 0 -(m*l*b)/p m*g*l*(M+m)/p 0B = 0; (I+m*l2)/p; 0; m*l/pC = 1 0 0 0; 0 0 1 0D = 0; 0T=0:0.005:10;U=0.2*ones(size(T);Y,X=lsim(A,B,C,D,U,T);plot(T,Y)axis(0 2.5 0 100)执行该m文件,可以求出系统的状态空间A、B、
9、C、D矩阵,得到开环系统阶跃响应的曲线。A = 0 1.0000 0 0 0 -0.0883 0.6293 0 0 0 0 1.0000 0 -0.2357 27.8285 0B = 0 0.8832 0 2.3566C = 1 0 0 0 0 0 1 0D = 001图5 倒立摆状态空间开环系统阶跃响应曲线图中,实线是摆杆角度响应曲线,虚线是小车位置响应曲线。稳定性与可控性分析我们先看一看系统的稳定性,将数据代入状态方程中,利用matlab程序可以求出系统的零极点。源代码如下:M = 1.096;m = 0.109;b = 0.1;I= 0.0034;l = 0.25; a b c d=we
10、r_ss(M,m,b,l);%自己编写的函数,建立模型之用,具体程序见下面sysc=ss(a,b,c,d); sysd=c2d(sysc,0.005);da db dc dd=ssdata(sysd);z p gain=ss2zp(da,db,dc,dd,1)z = -0.9999 -0.9999 1.0275 1.0000 + 0.0000i 0.9733 1.0000 - 0.0000ip = 1.0000 0.9996 1.0285 0.9723gain = 1.0e-004 * 0.1113 0.3338wer_ss源程序:function a b c d=wer_ss(M,m,b,l
11、)a=0 1 0 0;0 -4*b/(4*M+m) 3*m*9.8/(4*M+m) 0;0 0 0 1;0 -3*b/(4*M+m)*l) 3*9.8*(M+m)/(4*M+m)*l) 0;b=0;4/(4*M+m);0;3/(4*M+m)*l);c=1 0 0 0;0 0 1 0;d=0;0由得到的p(极点)可知,有的极点在单位圆外,所以可知原系统是不稳定的。同样,我们可以利用matlab来得到系统的能控性,源代码如下:ud=ctrb(da,db);rank(ud)ans = 4由得到的rank(ud)的值可知,原系统的能控性矩阵为4,所以我们可知原系统是能控的。控制器设计 基于状态反馈的控
12、制算法设计与仿真LQR由理论分析知,可以设计基于最优控制的状态调节器,使系统闭环稳定。设状态反馈调节律的形式为通过使性能指标函数为最小,根据在附录1中我们所介绍的求得其中P由下列黎卡提方程获得其中,分别用来对状态向量x(k),控制向量u(k)引起的性能度量的相对重要性进行加权。在实际运算中我们运用Matlab控制系统工具箱中的“dlqr”函数直接进行运算。利用dlqr函数,我们需要提供两个权值矩阵:Q、R。通常我们取R=1,而对于Q我们只能通过不断的凑取来得到。源代码如下: R=1; Q=10 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0Q = 10 0 0 0 0 0 0 0
13、0 0 1 0 0 0 0 0 T=0.005; syse k=wer_lqr(da,db,dc,dd,Q,R,T);%wer_lqr是自己定义的函数,具体见下面程序 x0=0.05;0;0.0175;0; t=0:0.005:10; y x1=initial(syse,x0,t);plot(t,y(:,1),red,t,y(:,2),blue)wer_lqr源程序:function sysresult k=wer_lqr(da,db,dc,dd,Q,R,T);%sysresult k=wer_lqr(da,db,dc,dd,Q,R,T);k S e=dlqr(da,db,Q,R);G=da-
14、db*k;sysresult=ss(G,db,dc,dd,T);我们已开始的Q为:Q1=10 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0;结果得到的图为图6;Q2取为:Q=100 0 0 0;0 0 0 0;0 0 10 0;0 0 0 0;结果得到的图为图7;通过比较,我们发现当Q11、Q33比值一定时,取大的值时系统的响应速度加快,但是超调加大;反之则响应变慢但是超调减小。图6 Q1响应图图7 Q2响应图在左右权衡之间,我们最终选取了:Q=300 0 0 0;0 0 0 0;0 0 30 0;0 0 0 0此时的响应曲线如图8,而k值为:k = -16.6147 -12.4
15、226 56.5909 10.2444图8 最优的响应曲线此时的单位阶跃响应曲线为图9:图9 单位阶跃响应曲线从仿真效果来看,零状态响应和单位阶跃响应都符合要求。 极点配置法采用极点配置法设计多输出的倒立摆系统的控制方案。可以用完全状态反馈来解决,控制摆杆和小车的位置。 图10是控制系统的示意图。图10 控制系统框图 假定所有的状态变量都可以测量和反馈,可以证明:若所研究的系统是状态完全可控的,那么,利用状态反馈的方法,经过适当的状态反馈增益矩阵,就可以把闭环系统的极点配置到任何期望的位置。 设开环控制系统的离散状态方程为: x(k+1) = Gx(k) + Hu(k)其中,假设系统是状态完全
16、可控的x(k) 为在第k次采样时刻的状态矢量(n维矢量)u(k) 为在第k次采样时刻的控制信号(标量)G = nn矩阵H = n1矩阵设极点配置的控制律形式为式中是状态反馈增益矩阵(矩阵),于是该系统就成为一个闭环控制系统。其闭环状态方程为 注意,的特征值就是所要求的闭环极点。 我们希望利用状态反馈把闭环极点布置在,。即要求特征方程为: 根据Cayley_hamiton定理, 经过推导 (此略) 可以得到 其中上式给出所要求的状态反馈增益矩阵。矩阵的这种特殊表达式就是常说的阿克曼公式。状态反馈增益矩阵按这样的方法确定,即可使误差(由扰动所引起的)以足够快的速度降到零。注意,对于一个给定的系统,
17、矩阵并不是唯一的,而是取决于所期望的闭环极点位置(它决定响应速度)的选择。选择期望的闭环极点或期望的特征方程是在误差矢量响应的快速性与对扰动和测量噪声敏感型之间的一个折衷方案。也就是说,如果我们使误差响应的速度提高,那么扰动和测量噪声的有害影响往往也会增强。在确定给定系统的状态反馈增益矩阵时,通常是通过比较按不同的期望闭环极点或期望特征方程得到的矩阵,并从中选出使整个系统达到的特性最好的那个矩阵。在实际设计时, 我们运用Matlab控制系统工具箱中的“place”函数直接进行仿真和运算。先在连续域中进行计算,然后再转到离散域。根据系统的性能要求,我们可取,这时完全满足题中的性能要求。那么我们就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒立 系统 实验设计 报告 30
限制150内