潘俊朋+桑运晓+吕国娜+任保飞+刘树骏
摘 要::本文首先通过分析单级倒立摆系统建立相应的状态空间数学模型,然后对倒立摆系统进行LQR 控制器设计,最后使用Matlab 进行仿真,结果表明在本文加权矩阵Q、R 的取值下,LQR 控制器可使系统达到有效的控制,小车位置跟着摆杆的角度动作,系统具有较短的调整时间、较小的超调量和较好的动静态性能。
关键词:倒立摆 Matlab LQR 控制
一、前言
单级倒立摆系统是一种不稳定、多变量且具有强耦合的非线性系统。如果把它当做一个单输出系统来处理将无法到达控制要求,所以对于这样的多输出系统,我们需要用到状态空间数学模型来对其进行分析。
二、建立系统的状态空间数学模型
为了方便而又不失精确的对单级倒立摆系统建立数学模型,实际中忽略一些次要的因素后的一级倒立摆系统简图如图1所示,系统受力分析如图2所示。
定义各参数:作用在小車的外力用F表示;摆杆与垂直向上方向的夹角用φ表示;摆杆与垂直向下方向的夹角用θ表示;采样时间为T=0.005s;摆杆的质量为m=0.2kg;摆杆的惯量为I=0.006kg*m*m;摆杆转动轴心到摆杆质心的距离为l=0.3m;小车的摩擦系数为b=0.1N/m/sec;小车的质量为M=0.5kg;小车的位置用x表示。
应用Newton方法来建立系统的动力学方程并经过整理后得到系统状态空间方程:
三、LQR控制器设计及其Matlab仿真
为了同时对小车的位置和摆杆的角度都进行有效控制,我们使用线性二次性最优控制算法(LQR)。这种控制算法在现代控制理论中占有举足轻重的地位,通过多年的研究,使最优控制算法得到越来越广泛的工程应用。
LQR控制系统框图如图3所示。其中R是作用于小车的阶跃信号,四个状态量 和 分别代表小车的位移和速度、摆杆的位置和角速度。设计这个控制器的目的就是要达到以下效果:当给系统作用一个阶跃信号输入时,摆杆晃动后会重新回到垂直位置,小车会重新处于一个命令位置。
通过Matlab仿真程序求出状态方程系数矩阵如下:
系统是能控的是最优控制的前提条件,需要先判断系统的能控能观性:
系统的能控矩阵的秩:rank[B AB A2B A3B]=4;
系统的能观矩阵的秩:rank[C CA CA2 CA3]=4。所以,系统是能控能观的。
在使用LQR算法进行控制器设计时,主要是求得反馈向量K的值。为了使问题简化及加权矩阵具有比较明确的物理意义,将Q取为对角阵。经过实验取
编写LQR的m文件,使用Matlab控制系统工具箱中的lqr函数进行运算,得到反馈控制向量:K=[-70.7107 -37.8345 105.5298 20.9238]。
运行得到仿真曲线,即LQR控制阶跃响应曲线如图4所示。
从系统阶跃响应曲线图中可以看出,在本文加权矩阵Q、R的取值下,LQR控制器可使系统达到有效的控制,小车位置跟着摆杆的角度动作,系统具有较短的调整时间、较小的超调量,符合设计要求。
参考文献:
[1] 张静. MATLAB在控制系统中的应用[M].北京:电子工业出版社,2007.
[2] 李俊芳,牛文兴,张振东.基于状态空间法的倒摆系统稳定控制[J].天津理工学院学报,2003(2):34 -36.
[3] 王小侃,冯冬青.基于MATLAB的LQR控制器设计方法研究