一级倒立摆控制方法比较摘要:倒立摆系统是一个典型的多变量、非线性、强耦合和快速运动的自然不稳定系统。
针对一级倒立摆系统,首先利用牛顿力学的知识建立了数学模型,然后利用Simulink 及其封装功能建立倒立摆的仿真模型,使模型更具灵活性,给仿真带来很大方便。
根据状态方程判断系统的能控、能观性。
通过LQR控制算法和极点配置设计控制器使系统达到稳定状态,分析两种方法的优缺点,并利用Matlab仿真加以证实。
关键词:倒立摆; LQR ;极点配置 ;MatlabDISCUSSION ON CONTROLOF INVERTED PENDULUM Abstract:the inverted pendulum system is a typical multi-variable, nonlinear, strong coupling and rapid movement of the natural unstable system. According to the level of inverted pendulum system, firstI make use of Newtonian mechanics knowledge to establishthe mathematical model, and use the Simulink and packaging function to establish inverted pendulum simulation model.The model is more flexibility, bringing a lot of convenience for simulation. By the equation of state, controllability and observablityof system can be sure. Designing the LQR control algorithm and pole-place makes the system stable state, analyzes the advantages and disadvantages of two methods confirmed through the simulation of MATLAB.Key words:Inverted pendulum ;LQR ;pole-place ;Matlab0引言倒立摆系统作为研究控制理论的一种典型的实验装置,具有成本低廉,结构简单,物理参数和结构易于调整的优点。
研究倒立摆系统具有很强的理论意义,同时也具有深远的实践意义。
许多抽象的控制概念如稳定性、能控性和能观性,都可以通过倒立摆系统直观地表现出来。
希望对倒立摆的研究能够加深对控制理论的了解,为后面学习奠定坚实的基础。
倒立摆[1]的稳定控制主要可分为线性控制和智能控制两大类,下面分别对其归纳介绍。
1)线性理论控制方法应用线性控制方法的基本前提是倒立摆处在平衡点附近,偏移很小时,系统可以用线性模型来描述。
线性控制的典型代表有:PID 控制、状态反馈控制、LQR控制算法等。
2)智能控制方法智能控制融合了计算机科学、物理学、数学、脑科学、心理学、认知学、生物学等学科的思想,是自然学科与社会学科交叉渗透的方法。
它源自于人的实践经验,不需要精确的数学模型,是目前应用较广的控制方法。
在倒立摆的控制中用到的智能控制方法主要有神经网络控制、模糊控制、仿人智能控制、拟人智能控制、云模型控制和泛逻辑控制等[2-3]。
本论文采用LQR控制器和极点配置方法对一级倒立摆系统进行控制,主要工作如下:1、利用指导书中推导的模型和实际的参数,建立一级倒立摆的数学模型,并进行线性化;2、通过simulink建立仿真模型并进行封装;3、通过在matlab 编程中求取合适的反馈变量K,然后与仿真模型结合构成最优控制的一级倒立摆,通过图形分析是否满足系统的性能参数;4、选取合适的极点并通过图形分析是否满足系统的性能参数;5、最后比较这两种方法优缺点。
1一级倒立摆数学模型1.1数学模型推导对系统建立数学模型是系统分析、设计的前提,而一个准确有简练的数学模型将大大简化后期工作。
对于忽略空气阻力和各种摩擦之后,直线一级倒立摆系统抽象为小车和匀质杆组成的系统[4]。
图1 所示为一级倒立摆模型。
图1倒立摆小车和摆杆的受力分析应用Newton方法来建立系统的动力学方程如下:(1)分析小车水平方向受力情况M=F-b-N (1)(2)分析摆杆水平方向受力情况N=m22(sin)d yx ldxθ+(2)N=m+ml-ml sin(3)(3)把这式子(3)带入到(1),就得到(m+M)+b+ml-ml=F(4)(4)对摆杆垂直向上的力进行分析P-mg=ml(5)力矩平衡方程如下-Plsin(6) 将(6)与(5)合并消去P和N ,所得((7)根据文献[5],系统状态空间方程为:()()()()() ()()()()2222222222x xI ml b I mlm glx x uI M m Mml I M m Mml I M m Mmlmgl M mmlb mlx uI M m Mml I M m Mml I M m Mmlφφφφφ=-++ =++++++++ =+-=++++++++⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩表格 1本系统参数定义参数意义参数值M 小车质量0.5kgm 摆杆质量0.2kgb 小车摩擦系统0.1N/m/sl 摆杆转动轴心到杆质心的长度0.3mI 摆杆惯量0.006kg*m*mF 加在小车上的力x 小车位置Φ摆杆与垂直向上方向的夹角θ摆杆与垂直向下方向的夹角1.2系统仿真模型建立Simulink 是Matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,可以构造出复杂的仿真模型,下文根据倒立摆的数学模型,利用Simulink 的封装功能,构建了倒立摆系统仿真模型子系统[5]。
根据倒立摆的状态空间模型,在Matlab 中,用Simulink 构建一级倒立摆模块daolibai,具体步骤如下:(1)双击Matlab图标,启动Matlab,在工具栏中双击Simulink 图标启动Simulink 模块库浏览器窗口,然后再单击其工具栏中的新建(creat a new mode)图标,新建一个Simulink 模型窗口。
(2)从Simulink 模块库浏览器的菜单Simulink 的子菜单端口和子系统模块(Port & Subsystems)下选中子系统Subsystem,并用左键拖入到新建的Simulink 模型窗口中。
左击系统框图下字符串“Subsystem ”,删除后输入“daolibai”,实现子系统的重新命名。
(3)双击中的daolibai模块,从Port &Subsystems 下在拖出三个输出模块out,把一个输入模块和四个输出模块分别重新命名为:u和x、x '、a、a ' ,分别代表系统的输入向量u 和输出向量x、x’、ϕ、ϕ’。
(4)双击daolibai模块,然后从Simulink 下子菜单“用户自定义函数模块”(User-Defined Functions)中拖出Fcn子模块,单击Fcn子模块下的Fcn,删除Fcn重新命名为K1;再双击Fcn子模块并将对话框中的“Expression”中的内容修改为:[ −4 * b /( 4 * M + m1) ]*u,然后按OK,这就定义好了K1。
(5)重复步骤4)依次定义K2,K3,K4,K5,K6。
(6) 在窗口中再加入四个积分模块和两个加法模块,双击四个积分模块,把“Initial condition”下的内容分别修改为“init_cond(1)、init_cond(2)、init_cond(3)、init_cond(4)”。
它们表示倒立摆的系统的初始条件。
(7) 利用Simulink 的Mask 功能进行封装,封装后的模型如图3。
右击daolibai模块,选择Mask Subsystem(封装子系统)菜单,弹出子系统封装对话框,点击Parmeters标签,在参数对话框中,依次添加init_ cond、M、M 1、l、b 、g 等各参数变量(8)双击封装后的子系统,弹出模块的参数对话框,分别输入上述各参数变量的值,完成后如图2。
图2 倒立摆模型封装1.3系统性能分析1、稳定性分析①根据李雅普诺夫第一法线性定常系统Σ:(A,b,c)y=cx平衡状态Xe=0渐进稳定的充要条件是矩阵A的所有特征值均具有负实数。
%实际参数M=0.5;m=0.2;b=0.1;l=0.3;I=0.6;g=9.8;q=I*(M+m)+M*m*l^2;A=[0 1 0 0;0 -(I+m*l^2)*b/q m^2*g*l^2/q 0;0 001;0 -1*m*l*b/q-1*m*l*b m*g*l*(M+m)/q 0];b=[0(I+m*l^2)/qm*l/q0]';c=diag([1 1 1 1]);d=[0 0 0 0]';[V,t]=eig(A) %求A的特征值V =1.0000 -1.0000 -0.0613 0.06080 0.0044 0.0600 0.05950 0.0001 -0.7115 0.71200 -0.0000 0.6974 0.6970t =0 0 0 00 -0.0044 0 00 0 -0.9801 00 0 0 0.9789从t可知,A的特征值有非负值,因此系统不稳定2、能控性系统完全能控取决于状态方程(A,B)矩阵,因此对于完全能控的系统,通常称之为(A,B)完全能控。
通过构造Tc=[B,AB,..A n-1B] (n是系统的阶数),如果rank(Tc)=n,则称系统完全能控Tc=ctrb(A,b)Tc =0 0.0559 -0.0003 0.01150.0559 -0.0003 0.0115 -0.00010 0.1399 -0.0008 0.13420.1399 -0.0008 0.1342 -0.0009rank(Tc)ans = 4可见,因为Tc矩阵的秩为4,等于系统的阶数,所以系统完全可控。
3、能观性系统完全能观取决于状态方程(A,C)矩阵,因此对于完全能控的系统,通常称之为(A,C)完全能控。
通过构造To=[C,AC,..An-1C] T(n是系统的阶数),如果rank(To)=n,则称系统完全能观To=obsv(A,c)To =1.0000 0 0 00 1.0000 0 00 0 1.0000 00 0 0 1.00000 1.0000 0 00 -0.0056 0.0822 00 0 0 1.00000 -0.0140 0.9594 00 -0.0056 0.0822 00 0.0000 -0.0005 0.08220 -0.0140 0.9594 00 0.0001 -0.0012 0.95940 0.0000 -0.0005 0.08220 -0.0012 0.0789 -0.00050 0.0001 -0.0012 0.95940 -0.0134 0.9205 -0.0012rank(To)ans =4可见,因为To矩阵的秩为4,等于系统的阶数,所以系统完全可观。