双摆能控性分析控制系统数字仿真与CAD学习总结报告_第1页
双摆能控性分析控制系统数字仿真与CAD学习总结报告_第2页
双摆能控性分析控制系统数字仿真与CAD学习总结报告_第3页
双摆能控性分析控制系统数字仿真与CAD学习总结报告_第4页
双摆能控性分析控制系统数字仿真与CAD学习总结报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、控制系统数字仿真与cad学习总结报告题目:双摆系统的建模与仿真院 系: 电气工程及其自动化 专 业: 工业自动化 授课教师: 张晓华 本 科 生: 郑剑飞 班 级: 0006512学 号: 100061082完成时间: 2004.5.4摘 要本文利用牛顿运动定律建立了双摆系统的数学模型,并在摆角很小时的近似条件下对其进行了线性化;利用matlab仿真确定了以上模型的可信程度并指出其适用范围;最后研究了该系统的能控性和参数间的关系。关键词双摆系统建模 线性化 matlab仿真 能控性1. 前言1.1 课题的背景倒立摆的模型有着广泛的工程背景,像杂技演员独轮车表演、火箭发射助推器等,经过近似简化处

2、理都可以抽象为一阶倒立摆。二阶倒立摆与双足机器人控制有关,三阶倒立摆应当说由一、二阶倒立摆演绎而来,背景相当复杂。一阶倒立摆控制可以使用pid双闭环控制、最优控制、模糊控制等手段。二阶倒立摆的控制难度更大些。三阶倒立摆的仿真或实物系统实现是世界公认的难题,不过1993年以来国内外有人陆续发表了三阶倒立摆控制的仿真实验结果和实物实验结果,这些结果一般都使用了模糊控制或近似推理或某种拟人推理。至于四阶倒立摆的控制问题在世界范围内还是个空白。1.2 研究双摆系统的目的和意义倒立摆是很理想的自动控制教学试验设备,许多抽象的控制概念,如稳定性、能控性、收敛速度和鲁棒性等都可以通过倒立摆直观的表现出来。同

3、时由于其高阶次、不稳定、多变量、非线性和强耦合的特性,许多现代控制理论的研究人员也一直将它视为研究对象,并不断从中发掘出新的控制理论和控制方法,相关的成果在航天科技、机器人学等方面获得了广泛的应用。双摆系统,即一个小车上立有两个一阶倒立摆的系统,相对于一阶倒立摆系统而言,其参数更多,耦合更加强烈,其建模和控制的难度要大得多。通过对双摆系统建模,利用 matlab仿真来验证模型的准确性,并讨论其性能,我们不仅可以验证所学的经典控制理论、现代控制理论,加深对课程的理解,还能培养独立分析和解决实际问题的能力,积累经验。相信本文得到的一些结论对工程设计人员也会具有一定的参考价值。2 双摆系统数学模型的

4、建立2.1双摆系统数学模型的推导为了简化系统分析,在模型的建立过程中,忽略空气流动阻力以及各种次要的摩擦力。这样,可将双摆系统抽象成小车和两个匀质刚性杆组成的系统,如图2-1所示。图2-1 简化后的双摆系统本系统内部各相关参数定义如下:m 小车的质量 x 小车的位置 f 加在小车上的力, 左右两个摆杆的质量 2,2左右两个摆杆的长度 ,左右两个摆杆的转动惯量 ,左右两个摆杆与竖直向上方向的夹角对小车和摆杆分别进行受力分析,应用牛顿定律建立系统的动力学方程。小车的受力情况见图2-2。其中,和分别为左右两个摆杆对小车作用力的水平分量。 图2-2 小车的受力情况 图2-3 摆杆的受力情况(以左杆为例

5、)根据牛顿第二定律有: (2-1)左右两个摆杆的受力情况大致相同,下面以左边的摆杆为例进行分析(用下标1、2来区分左、右摆杆),其受力情况如图2-3所示。其中,、分别是小车对摆杆作用力在x轴方向的分量和y轴方向的分量。摆杆的质心b点相对于a点转动,相对线速度的大小为,而a点本身随小车以速度运动,所以b点相对于地面的速度在x轴方向的分量为:, 由此可得b点在x轴方向的加速度为 , 因此有方程: (2-2)b点相对于地面的速度在y轴方向的分量为:,所以b点在y轴方向的加速度为 ,因此有方程: (2-3)摆杆的惯量= 。在、的作用下摆杆绕b点转动,有方程: (2-4) 同理,对于右边的摆杆可得方程组

6、: (2-5) (2-6) (2-7)对上述7个方程进行整理,消去中间变量,整理成只含有和f以及、x及其导数的形式。把式(2-2)和(2-5)带入(2-1)得: (2-8)把(2-2)式代入(2-4)解出,再代入(2-3)得方程 (2-9)把(2-5)式代入(2-7)解出,再代入(2-6)得方程 (2-10) 以上(2-8)、(2-9)、(2-10)式便是双摆系统的精确的数学模型。若使用matlab 中的simulink对其进行仿真,我们需要对其进行适当的变形,使每个等式只含有一个最高阶导数项(这里二阶导数是最高阶导数),并且放到等号左面,右面不再含最高阶导数。这样处理是为了避免仿真时出现代数

7、环错误。关于代数环,我们在后面3.1节中有较详细的说明。2.2双摆系统数学模型的线性化为了便于分析和计算,当、10度时,可以作近似处理: ,将上述条件代入方程组(2-8)、(2-9)、(2-10),进行线性化处理之后的微分方程组为: (2-11) (2-12) (2-13)由(2-12)和(2-13)式分别解出 和 代入(2-11)式得 (2-14)从中解得 (2-15)将其分别代入式(2-12)和(2-13)得: (2-16) (2-17)可以设状态变量为:、,由(2-15)、(2-16)、(2-17)式易得状态空间表达式为:其中3.matlab仿真试验结果以上推导过程中,用了很多近似条件,

8、因此,上一节所建立的模型是否可信还有待我们去验证。这里采用matlab对其进行软件仿真,除了用它验证数学模型之外,还可以研究系统的一些性质,例如稳定性、能控性等。3.1 精确模型的验证首先对线性化之前的模型即(2-8)、(2-9)、(2-10)式进行验证。我们仅忽略了空气阻力,即使在外力作用下摆角变化很大,该模型也应该较精确。下面,我们采用matlab中的simulink工具箱以及模块封装技术对其进行仿真,步骤如下:1 在命令窗口中输入simulink后回车,或单击matlab工具栏中的 simulink图标则可打开simulink模型库窗口。在file菜单中选择new/model,打开一个新

9、的空白窗口,命名为“shuangbai.mdl”。 2 按图3-1编辑双摆系统的模型。图3-1 在simulink下编辑的双摆系统的精确模型其中,integrator是积分器模块。双击该模块,可以在弹出的对话框中对积分的初始值进行修改,缺省值为0。设第一行最左边的节点表示的变量为,则经过积分后变为和,同理可以得到、以及、和。由于在simulink下显示特殊符号很困难,这里用“theta”来注释,这不会影响仿真结果 。我们用输入点模块(in)表示该系统的输入变量f,用3个输出点模块(out)表示输出变量、和。fcn是函数计算模块,能够实现大部分初等函数运算。但它只有一个输入端和一个输出端,若要实

10、现形如的运算,必须和聚合模块(mux)配合使用,聚合模块包含在signal routing模块库中,可以把多路信号按照向量的形式混合成一路信号。例如,fcn1描述的是(2-9)式的函数关系,它的输入端就接有一个聚合模块,双击它之后弹出一个对话框,可以设置输入变量的个数。由(2-9)式易得 = (3-1)我们把和作为聚合模块的输入,fcn1的输出接,双击fcn1模块,弹出对话框,见图3-2。fcn栏提示了输入表达式的格式。可见,只能用u来表示输入的变量,例如u1表示输入向量的第一个分量,即聚合模块上数第一个输入量,而u2表示,所以在parameters的expression中输入的表达式应为(g

11、*sin(u2)-cos(u2)*u1)/(l1*4/3) 。同理,我们用fcn3描述(2-10)式的函数关系,但输入的表达式同上。图3-2 双击fcn模块后弹出对话框用fcn2描述(2-8)式的函数关系,由(2-8)式易得: = (3-2)那么,能否按上述方法,把、f作为输入量,作为输出量,再把(3-2)式按照所要求的格式输入到fcn2中呢?注意:对于(3-2)式,这样做可能导致仿真时出错。若点击菜单栏simulation/parameters,在出现的对话框中把代数环(algebraic loop)作为错误检查的内容,见图3-3,那么在第4步仿真时就会提示出现代数环错误。代数环,简单的说就

12、是在求取某一个输出量的过程中又需要已知该输出量,其实质是一种隐式迭代。当表达式简单时,如(3-1)式,系统采取默认的算法可以解决这类问题,但当表达式很复杂时,如(3-2)式,包含大量非线性运算并且右边出现很多高阶导数,仿真就会出错。避免代数环错误的方法之一是对(3-2)式进行恒等变形,使表达式只含有一个最高阶导数项,并且放到等号左面(这里选择),右面不再含其它最高阶导数。例如,把(3-1)代入(3-2)式就可消去,同理消去,解出得:= (3-3)输入变量为、f,再把(3-3)式按照所要求的格式输入到fcn2中即可避免代数环。图3-3 simulation parameters对话框中设置错误检

13、查的内容3 采用模块封装技术把双摆的精确模型封装成一个标准模块模块封装是复杂系统建模和仿真时常用的方法之一。这样做有很多好处:首先,它使系统的结构更加清晰、简洁。其次,模型的通用性提高了。它可以存入自己的模块库里,使用时和simulink中其它的标准模块一样,只需双击,并在弹出的对话框中输入具体的参数值即可,而不必考虑它是如何实现的。由于内部结构被封装了起来,可以避免一些误操作,使用起来更方便。我们把双摆系统封装起来作为一个整体,在设计控制器时就可以直接调用了,作为自动控制系统的被控对象。选中图3-1所示系统的所有模块,在菜单栏选择edit/create subsystem,即可建立一个子系统

14、。用鼠标选中该子系统,再选择edit/mask subsystem,弹出如图3-4、3-5所示的模块封装设计界面。 图3-4 模块封装设计界面icon选项卡图3-5 模块封装设计界面parameters选项卡icon选项卡按图3-4设置,parameters选项卡按图3-5设置,表dialog parameters中填入需要外部输入的参数名(variable)、参数描述(prompt)、类型(type)等。其它选项按缺省值设置。注意:这里的参数名必须和步骤2中表达式里的参数名相同,另外,simulink对参数名不区分大小写。封装好之后的模块见图3-6。此时,双击该模块,显示参数输入对话框,见图

15、3-7,可以输入所有参数值。 图3-6 封装好后的模块图3-7 模块参数输入对话框如果要修改其内部结构,可以右键点击该模块,在快捷菜单中选择look under mask菜单项,便出现图3-1所示的结构框图,并可以对其进行修改。4对系统进行仿真按照图3-8,添加阶跃信号作为输入(正负两个方向的阶跃信号叠加还可以构成脉冲信号),添加示波器,利用聚合模块可以同时观测几路信号的仿真结果。这里又利用了输出点模块(out),它把仿真结果通过矩阵tout传递到工作空间(workspace),再利用plot等绘图命令就可以方便的做出曲线。图3-8 精确模型的仿真框图我们在模块参数输入对话框中输入参数:m=1

16、,=0.5,=0.6,g=9.8,f=5(阶跃信号),两个摆角的初始值为180度(3.14弧度),即竖直向下, 位移x的初始值设为0。仿真的结果见图3-9。图3-9 精确模型的阶跃响应曲线(初始摆角为180度) 可见,位移曲线加速增长,而两个摆角的响应曲线重合,在某个大于180度的角度附近作等幅振荡。这是两个摆杆的参数相同,而又不计空气阻力所造成的结果(相当于两个相同的一阶倒立摆)。在考虑空气阻力的情况下,摆角应该做减幅振荡,最终稳定在某个大于180度(3.14弧度)的角度。从图中可以读出摆角的最大值和最小值分别为约3.64弧度和3.14弧度,平均值为3.39弧度,而利用牛顿定律可以求出在这一

17、特殊条件下,稳态时摆杆的摆角约为3.391367弧度,这说明前面所建立的精确模型是可信的。3.2 线性化之后的模型的验证下面分别用精确模型和线性化之后的模型分别求系统的阶跃响应(摆角的初始值为0度(竖直向上),见图3-10、3-11。其中,m=1,=0.5,=0.6,f=0.2(阶跃信号)。图3-10 精确模型的阶跃响应曲线(初始摆角为0度)图3-11 线性化之后的模型的阶跃响应曲线(初始摆角为0度) 从中可知在摆角变化不大(摆角10度时),精确模型和线性化之后的模型的阶跃响应基本相同,但角度越大,后者的误差就越大。但是,两者都反映出当初始摆角为0度时,该系统是不稳定的。后者的仿真结果是通过建

18、立m文件(state.m)求得的,程序如下:% state.m % 双摆系统状态方程及开环阶跃响应 % 输入相关参数m =1; m1 = 0.5; m2 =0.5; g = 9.8; l1=0.6; l2=0.6;q = 4*m+m1+m2;% 输入状态方程并显示a = 0 1 0 0 0 0; 0 0 -3*m1*g/q 0 -3*m2*g/q 0; 0 0 0 1 0 0; 0 0 3*g/(4*l1)+9*m1*g/(4*l1*q) 0 9*m2*g/(4*l1*q) 0; 0 0 0 0 0 1; 0 0 9*m1*g/(4*l2*q) 0 3*g/(4*l2)+9*m2*g/(4*l

19、2*q) 0 b = 0; 4/q; 0; -3/(l1*q); 0; -3/(l2*q) c = 1 0 0 0 0 ; 0 0 1 0 0 0; 0 0 0 0 1 0d = 0; 0; 0 p=eig(a) %求开环系统的极点 f=rank(b a*b a2*b a3*b a4*b a5*b ) % 求系统的能控矩阵的秩 % 求开环系统的阶跃响应并显示t = 0:0.005:5;u = 0.2*ones(size(t);y,x = lsim(a,b,c,d,u,t);plot(t,y(:,1),:,t,y(:,2),-)hold on h=plot(t,y(:,3),-);set(h,l

20、inewidth,4*get(h,linewidth);axis(0 3 -10 10)% end 当然,这完全可以用simulink仿真,但是利用程序还可以精确的求出系统的极点和系统的能控矩阵的秩,程序的执行结果如下: 系统的极点为p =0,0,4.4272,3.5000,-4.4272,-3.5000,可见有两个不稳定的极点。系统的能控矩阵的秩f = 46,说明此系统状态不完全能控。利用该程序可以方便的修改参数并求取线性化之后的系统的阶跃响应曲线。3.3利用线性化之后的模型讨论系统的能控性当m=1,=0.5,=0.7,=0.6,f=0.2(阶跃信号)时,执行程序,对线性化之后的模型的仿真结果如下。图3-12为阶跃响应曲线。图3-12 时的仿真结果系统的极点p = 0, 0, 4.2866,3.3466,-4.2866, -3.3466。系统的能控矩阵的秩f = 6,说明此系统状态完全能控。改变和的值,通过大量仿真试验,发现只要,系统的能控矩阵的秩f = 6,系统状态完全能控;而=时,f = 4 6 ,系统状态不

温馨提示

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

评论

0/150

提交评论