基于MATLAB的倒立摆系统控制

摘要

倒立摆系统是由导轨、小车和各级摆杆组成。小车依靠直流电机施加的控制力,可以在导轨上左右移动,位移和摆杆角度信息由传感器测得,目标是使倒立摆在有限长的导轨上竖立稳定, 达到动态平衡。由于倒立摆系统本身所具有的高阶次、不稳定、多变量、非线性和强耦合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方面获得了广阔的应用。

针对问题一,我们对系统的物理方程进行了处理,把它化成状态空间表达式标准型,然后利用MATLAB里面的函数ss2tf,c2dm分别计算出系统的连续传递函数和采样时间为0.001时的离散传递函数,并用bode函数画出了系统的波特图。

针对问题二,当模型参数不变化时,直接用step函数画出系统的阶跃响应图,当杆的长度随时间变化时,采用ODE方法画出系统的阶跃响应图,同时也用simulink仿真出系统的阶跃响应。

针对问题三,采用eig函数求出状态矩阵的特征根,根据根与0的大小关系判断系统的稳定性,发现,存在根大于0,所以系统不稳定;采用lyap函数通过李雅普洛夫方程计算Q矩阵,发现方程无解,所以系统不稳定;采用LMI工具箱的方法,计算得出tmin>0,不符合LMI方程,所以系统不稳定。

针对问题四,采用构造矩阵的方法,计算构造矩阵的秩,得出构造矩阵的秩均等于矩阵的维数,所以系统完全能控能观。

针对问题五,采用simulink仿真的方法,采用两个PID控制器对输入进行控制,当采用尝试法取得PID1的Kp=-2000,Ki=100.Kd=-100,PID2的Kp=1000,Ki=20,Kd=100时,系统稳定。

关键词:倒立摆、MATLAB、SIMULINK仿真、PID控制、系统稳定性

1、问题重述

倒立摆用铰链安装在伺服电动机驱动的小车上。在无外力作用时,倒立摆不能保持在垂直位置而会左右倾倒,为此需给小车在水平方向上施加适当的作用力u 。

基于MATLAB的倒立摆系统控制

对于该倒立摆系统,完成如下系统分析与设计问题:

1.建立其状态空间模型,采用MATLAB命令求出其传递函数的连续和离散形式(采样时间0.001秒),画出系统Bode图;

2.   ①不考虑模型参数变化时,画出系统的单位阶跃响应曲线;

      ②由于外界环境变化和测量仪器的误差,杆的长度随时间发生如下变化时,利用ODE方法或Simulink方法画出系统的单位阶跃响应曲线;

3.用三种方法(特征根、Lyapunov方程、LMI)分析该系统的稳定性;

4.分析系统的能控性和能观性;

5.用PID控制,实现系统的稳定,并画出闭环系统输出z的曲线。

2、符号说明与假设

表1:符号说明

符号

定义

 

摆杆偏离垂线的角度(rad)

 

小车水平方向的瞬时位置坐标

 

水平方向上施加给小车的作用力

 

小车通过铰链作用于摆杆的力的水平分量

 

小车通过铰链作用于摆杆的力的垂直分量

 

小车质量

 

杆质量

 

杆长度

 

重力加速度

表2:假设说明

假设

假设内容

假设一

忽略摆杆质量

假设二

假设摆杆偏离垂线的角度很小

假设三

忽略各种摩擦阻力的作用

3、问题分析

在无外力作用时,倒立摆不能保持在垂直位置而会左右倾倒,为此需给小车在水平方向上施加适当的作用力u,则摆杆重心的水平、垂直坐标分别为基于MATLAB的倒立摆系统控制 。忽略摆杆质量,则系统的重心近似位于摆锤重心,且系统围绕其重心的转动惯量 近似为0。

基于MATLAB的倒立摆系统控制

图2 受力图

此时倒立摆系统的运动可分解为重心的水平运动、重心的垂直运动及绕重心的转动这3个运动。根据牛顿动力学,可得:

基于MATLAB的倒立摆系统控制

小车的动力学方程为:

基于MATLAB的倒立摆系统控制

由以上各式可得:

基于MATLAB的倒立摆系统控制

又由于基于MATLAB的倒立摆系统控制极小,所以可化简为:

基于MATLAB的倒立摆系统控制

最终整理可得倒立摆的线性系统模型:

基于MATLAB的倒立摆系统控制

输出基于MATLAB的倒立摆系统控制

4、问题解决

4.1问题一

对于问题一,可以先建立系统的状态空间表达式,令基于MATLAB的倒立摆系统控制

基于MATLAB的倒立摆系统控制

又因为M=1,m=0.1,l=0.5,g=10,带入上式,可得

基于MATLAB的倒立摆系统控制

即:

基于MATLAB的倒立摆系统控制

通过MATLAB程序运算,可得连续传递函数为:

基于MATLAB的倒立摆系统控制

采样时间0.001秒时的离散形式为:

基于MATLAB的倒立摆系统控制

系统的波特图通过MATLAB画出为:

基于MATLAB的倒立摆系统控制

图3 波特图

由波特图可知,系统的相角裕度为0,截止频率为0.955rad/s,所以系统不稳定。

 

 

4.2问题二

1.不考虑模型参数变化时,系统的阶跃响应如图:

基于MATLAB的倒立摆系统控制

图4 系统阶跃响应图

2. 由于外界环境变化和测量仪器的误差,杆的长度随时间发生如下变化基于MATLAB的倒立摆系统控制 时,采用ODE方法的阶跃响应如图:

基于MATLAB的倒立摆系统控制

图5 ODE方法阶跃响应图

Simulink仿真原理图如下:

基于MATLAB的倒立摆系统控制

图6 仿真原理图

仿真结果如下:

基于MATLAB的倒立摆系统控制

图7 仿真结果图

 

4.3问题三

1.特征根法

计算结果如下:

w =

 

         0         0         0         0

         0         0         0         0

         0         0    4.6904         0

         0         0         0   -4.6904

可知,4.6904>0,所以系统不稳定。

2. Lyapunov方程方法

结果如下:

基于MATLAB的倒立摆系统控制

因为Lyapunov方程无解,所以不存在相对应的Q矩阵,所以系统不稳定。

3.LMI方法

结果如下:

基于MATLAB的倒立摆系统控制

因为tmin>0,所以表明 LMI 系统是不可行的,所以没有Q矩阵,即系统不稳定。

4.4问题四

对系统的能控性和能观性分析,可以运用构造矩阵的秩的大小来判断。能控性判据:对n维连续时间线性时不变系统,构成能控性判别矩阵:

基于MATLAB的倒立摆系统控制

则系统完全能控的充要条件是:

基于MATLAB的倒立摆系统控制

能观性判据为:对n维连续时间线性时不变系统,构成能观性判别矩阵:

基于MATLAB的倒立摆系统控制

则系统完全能观的充要条件为:

基于MATLAB的倒立摆系统控制

通过构造并用MATLAB计算,结果如下:

基于MATLAB的倒立摆系统控制

因为构造的为四阶矩阵,而秩均等于4,所以系统完全能控能观。

 

 

4.5问题五

运用simulink仿真系统的模型,并加入PID控制器,因为有两个输入,所以要加入两个PID控制器,仿真模型如下:

基于MATLAB的倒立摆系统控制

图8 PID控制

 

经过尝试法,调节两个PID的系数,当PID1的Kp=-2000,Ki=100.Kd=-100,PID2的Kp=1000,Ki=20,Kd=100时,系统稳定,仿真图如下:

基于MATLAB的倒立摆系统控制

图9 倒立摆角度控制仿真图

基于MATLAB的倒立摆系统控制

图10 小车位移仿真图

由图可知,倒立摆在运行之后,会出现一小会的不稳定,然后会一直处于稳定状态.