1 / 16
文档名称:

单倒置摆控制系统的状态空间建模及MATLAB仿真.doc

格式:doc   大小:517KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单倒置摆控制系统的状态空间建模及MATLAB仿真.doc

上传人:changjinlai 2020/6/5 文件大小:517 KB

下载得到文件列表

单倒置摆控制系统的状态空间建模及MATLAB仿真.doc

文档介绍

文档介绍:单倒置摆控制系统的建模及MATLAB仿真背景:单倒置摆系统是一个不稳定系统,当给系统施加外力时,倒置摆向左或向右倾倒,影响系统稳定,同时单倒置摆系统典型的高阶次、多变量、严重不稳定和强耦合的非线性系统。本文通过建立单倒置摆系统的数学模型,应用状态反馈控制配置系统极点设计单倒置摆系统的控制器,实现其状态反馈,从而使单倒置摆系统稳定工作。再通过MATLAB软件中Simulink工具对单倒置摆的运动进行计算机仿真。首先分别用经典控制理论和现代控制理论的知识推导了单倒置摆系统的数学模型;其次分别使用模糊控制理论、状态空间法、模糊控制等方法对单级单倒置摆系统进行了实际系统实时控制效果的实验对比,从理论和实验方法上讨论了这类典型非线性自不稳定系统的线性控制器的设计方法及其实际控制效果的特点;最后提出了单倒置摆控制系统各部分选型及实现方案,设计了单倒置摆系统的机械构。问题:本文就当倒置摆无论出现向左或向右倾倒时,通过控制直流电动机,使小车在水平方向运动,倒置摆能否保持在垂直位置上为问题进行研究。以此问题为核心,就单倒置摆系统进行分析和研究,建立单倒置摆系统的数学模型,采用状态反馈极点配置的方法设计控制器,并应用MATLAB软件进行仿真。论述:一、,设摆的长度为L、质量为m,用铰链安装在质量为M的小车上。小车由一台直流电动机拖动,在水平方向对小车施加控制力f=u,相对参考系产生位移x=,则倒置摆会向左或向右倾倒。这样,整个单倒置摆系统就受到重力图1,水平控制力和摩擦力的3个外力的共同作用。 在系统数学模型中,忽略摆杆质量、执行电动机惯性以及摆轴、轮轴=轮与接触面之间的摩擦及风力。设小车瞬时位置为x=z,倒置摆出现的偏角为θ,则摆心瞬时位置为(z+lsin)。在控制力u作用下,小车及摆均产生加速运动。根据牛顿第二定律,在水平直线运动方向的惯性力应与控制力u平衡,求得系统的运动方程为:即(1)由于绕摆轴旋转运动的惯性力矩应与重力矩平衡,因而有即(2)方程(1),(2)是非线性方程,由于控制的目的是保持单倒置摆直立,因此,在施加合适u的条件下,可认为均接近零,此时,,且可忽略项,于是得到倒置摆系统的数学模型:(3)(4)联立求解式(3)、(4),可得(5)(6)消去中间变量θ,可得到输入量为u、输出量为z的微分方程为(7)、摆的角位置及其角速度作为状态变量,z为输出变量,并考虑,,以及式(5)、(6)、(7),则一级单倒置摆系统的状态方程为:(8a)(8b)式中为方便研究,假定系统的参数M=1kg,m=,l=1m,,则系统状态方程中参数矩阵为:,,(9)此时倒置摆的状态空间模型表达式为:(10)其系统的结构图如下:,并将式(9)的有关数据带入该判据,可得(11)因此,单倒置摆的运动状态是可控的。换句话说,这意味着总存在一控制作用u,将非零状态转移到零。仿真:代码:A=[0,1,0,0,;0,0,-1,0;0,0,0,1;0,0,11,0];b=[0;1;0;-1];c=[1,0,0,0];d=0;N=size(A);n=N(1);sys0=ss(A,b,c,d);S=ctrb(A,b);f=rank(S);iff==ndisp('系统能控')elsedisp('系统不能控')end结果截图:系统能控稳定性分析由单倒置摆系统的状态方程,可求的其特征方程为:(12)解得特征值为0,0,,-。四个特征值中存在一个正根,两个零根,这说明单倒置摆系统,即被控系统不稳定的。仿真:采用matlab对被控对象进行仿真,如下图所示为倒摆没有添加任何控制器下四个变量的单位阶跃响应。如图可知,系统不稳定,不能到达控制目的。代码:A=[0,1,0,0,;0,0,-1,0;0,0,0,1;0,0,11,0];b=[0;1;0;-1];c=[1,0,0,0];d=0;sys0=ss(A,b,c,d);>>t=0::5;>>[y,t,x]=step(sys0,t);>>subplot(2,2,1);>>plot(t,x(:,1));grid>>xlabel('t(s)');ylabel('x(t)');>>title('z');>>subplot(2,2,2);>>plot(t,x(:,2));grid;>>xlabel('t(s)');ylabel('x(t)');>>title('z的微分');>>subplot(2,2,3);>>plot(t,x(:,3));grid>>xlabel('t(s)');ylabel('x(t)');>>title('\th