一级倒立摆系统最优控制.docx
《一级倒立摆系统最优控制.docx》由会员分享,可在线阅读,更多相关《一级倒立摆系统最优控制.docx(19页珍藏版)》请在冰豆网上搜索。
![一级倒立摆系统最优控制.docx](https://file1.bdocx.com/fileroot1/2022-10/29/ec190345-f1d0-429a-90af-5cea65bb3c84/ec190345-f1d0-429a-90af-5cea65bb3c841.gif)
一级倒立摆系统最优控制
摘要
倒立摆系统是一个典型的快速、多变量、非线性、不稳定系统,许多抽象的控制理论概念都可以通过倒立摆实验直观的表现出来。
因此,倒立摆系统经常被用来检验控制策略的实际效果。
应用上,倒立摆广泛应用于航空航天控制、机器人,朵项顶杆表演等领域,研究倒立摆的精确控制对工业复杂对象的控制也有着重要的工程应用价值。
本文以固高公司生产的GIP-100-L型一阶倒立摆系统为研究对象,对直线一级倒立摆模型进行了建模,控制算法的仿真对比,并得出了相应的结论。
文中介绍了倒立摆的分类、特性、控制訂标、控制方法等以及倒立摆控制研究的发展及其现状。
利用牛顿力学方法推到了直线以及倒立摆的动力学模型,求出其传递函数及其状态空间方程。
在建立了系统模型的基础下,本文还研究了倒立摆系统的线性二次型最优控制问题,并且使用了MATLAB软件进行仿真,通过改变LQR模块及状态空间模块中的参数,在仿真中取得了不同的控制效果,最终得到了最好的控制效果。
关键字:
一级倒立摆线性系统、数学建模、最优控制、LQR、仿真
1一阶倒立摆的概述0
1」倒立摆的起源与国内外发展现状0
1.2倒立摆系统的组成0
1.3倒立摆的分类:
0
1.4倒立摆的控制方法:
1
2.一阶倒立摆数学模型的建立2
2.1概述2
2.2数学模型的建立3
2.4实际参数代入:
4
3・定量、定性分析系统的性能6
3」对系统的稳定性进行分析6
3.2对系统的能空性和能观测性进行分析:
7
4.线性二次型最优控制设计8
4」线性二次最优控制简介8
4.2直线一级倒立摆LQR控制算法9
4.3最优控制MATLAB仿真17
总结20
参考文献21
1一阶倒立摆的概述1.1倒立摆的起源与国内外发展现状
倒立摆的最初研究开始于二十世纪五十年代,麻省理工学院的控制理论专家根据火箭助推器原理设讣出来一级倒立摆实验设备。
倒立摆作为一个典型的不稳定,严重非线性例证被正式提出于二十世纪六十年代后期。
国内,在倒立摆系统实验平台先后出现了多种控制算法。
用状态空间法设计的比例微分控制器来实现单机倒立摆的稳定控制;利用最优状态调节器实现双电机三集倒立摆实物控制;用变结构方法实现倒立摆的控制。
用神经网络的自学习模糊控制器的输入输出的对比,引起其他学者的关注,之后不断出现实时学习神经网络的方法来控制倒立摆。
图1一级倒立摆
1・2倒立摆系统的组成
倒立摆系统III计算机,运动控制卡,伺服机构,传感器和倒立摆本体五部分构成。
1・3倒立摆的分类:
1,根据摆杆数LI的不同,可以把倒立摆分为一级,二级和三级倒立摆等
2,根据摆杆间连接形式不同,可以把倒立摆系统分为并联式倒立摆和串联式倒立摆;
3根据运动轨道的不同,可以把倒立摆系统分为倾斜轨道倒立摆和水平轨道倒立摆;
4根据控制电机的不同,可以把倒立摆分为多电机倒立摆和单电机倒立摆
5根据摆杆与小车的连接方式不同,可以把倒立摆分为刚性摆和柔性摆
6根据运动方式不同,可以把倒立摆分为平面倒立摆,直线倒立摆和旋转倒立摆。
1・4倒立摆的控制方法:
1)PID控制:
该方法出现的最早,首先是对倒立摆系统进行力学分析,并在牛顿定律基础上得到运动方程,然后在平衡点附近对其进行线性化求出传递函数,最后在要求系统的特征方程应有全部左半平面的根的条件下,设计闭环系统控制器。
2)状态反馈控制:
极点配置法是在动态特性和稳态特性都满足的条件下,将多变量闭环倒立摆系统极点配置在期望的位置上,来设计状态反馈控制器
3)线性二次型最优控制(LQR)
LQR最优控制是通过寻找最佳状态反馈控制规律使期望的性能指标达到最小。
2.一阶倒立摆数学模型的建立2.1概述
倒立摆系统其本身是自不稳定系统,实验建模存在一些问题和困难,在忽略掉一些次要的因素后,倒立摆系统是一个典型的运动的刚体系统,可以再惯性坐标系中运用经典力学对它进行分析,来建立系统动力学方程。
在忽略掉了空气阻力和各种摩擦力之后,可以讲一阶倒立摆系统抽象成小车和均匀杆组成的系统,一阶倒立摆系统的结构示意图如下:
图2一阶倒立摆系统的结构示意图
定义的参数为:
M小车质量
m摆杆质量
b小车摩擦系数
/摆杆惯量
u加在小车上的力
X小车位置
I摆杆转动轴心到杆质心的长度
0摆杆与垂直向下方向的夹角(摆杆初始位置为竖直向下)
得到小车和摆杆的受力图:
图3小车和摆杆的受力图
2.2数学模型的建立
根据牛顿第二定律对系统进行分析可以得岀
求导可得
u-bx=(M+m)x+ml6cos0-ml6~sin0
整理可得
u-bx+(M+m)x+ml0cos0-mlQ,sin&
乂对系统的力矩进行分析,由力矩平衡可得
lcos0+I0
mglsm0=
求导整理可得
gsin0=上COS0+/0COS,0-10~sinQcosQ
因为方程为非线性方程,需做线性化处理。
山于控制的LI的是保持倒摆直立,因此在施加合适u的条件下,可认为&均接近零,此sin&a&、cos&al,且可忽略毋和&项,于是可得
选取小车的位移尤及速度上、倒摆的角位置&及其角速度&作为状态变量,
2・4实际参数代入:
GIP-100-L型一阶倒立摆系统,系统内部各相关参数为:
M小车质量0.5Kg;
m摆杆质量0.2Kg;
b小车摩擦系数0.1N/m/sec;
/摆杆转动轴心到杆质心的长度0.3m;
I摆杆惯量0.006kg*m*m;
T采样时间0.005秒;
G=9.8N/mo
将上述参数代入得实际模型:
X
0
1
0
0
X
0
X
0
0
-0.1818
2.6727
0
X
+
1.818
0
0
0
1
e
0
e
0
・0.4545
31.1818
0
0
_4.545_
u
1000
x
0010
3.定量、定性分析系统的性能3.1对系统的稳定性进行分析
根据零极点在复平面的分布情况可以判断系统的稳定性,若系统的零极点在
右办平面存在,则系统是不稳定的。
在MATLAB中运行以下程序:
A=[0100;0-0.18182.67270;0001;0-0.454531.18180];
B=[01.818204.5455]';
C=[l000;0010];
D=[00]';
[zpk]二ss2zp(A,B°C,D)
impulse(ABCQ)
-4.94980.0000
4.94980.0000
-5.6041
-0.1428
5.5651k=
1.8182
4.5455
图四、系统位移的角度脉冲响应
山图可得,系统在单位脉冲的输入作用下,小车的位移和摆杆的角度都是发
散的,同时,由以上程序的零极点得极点有一个大于零,因此系统不稳定。
3.2对系统的能空性和能观测性进行分析:
A=[0100;0-0.18182.67270;0001;0-0.454531.18180];
B=[01.818204.5455]';
C=[l000;0010];
D=0;
Qc=ctrb(A,B);
Qo=obsv(A,C);
rank(Qc)
rank(Qo)
ans=
4
ans=
4
因此系统为完全能观测和完全能控的。
4线性二次型最优控制设计4.1线性二次最优控制简介
最优控制理论是现代控制理论中的重要内容,近儿十年的研究与应用使最优控制理论成为现代控制中的一大分支。
山于计算机的发展已使过去认为不能实现的讣算成为很容易的事情,所以最优控制的思想和方法已在工程技术实践中得到越来越广泛的应用。
应用最优控制理论和方法可以在严密的数学基础上找出满足一定性能优化要求的系统最优控制规律。
现代控制理论最突出的特点是将控制对象用状态时间表达式的形式表示出来,这样便于对多输入多输出系统进行分析和设计。
最优控制主要是通过对性能指标的优化寻找可以使LI标极小的控制器。
如果系统是线性的,性能泛函是状态变量或控制量的二次型函数的积分,则这样的最优控制问题称为线性二次型最优控制问题。
线性二次型最优控制算法是现代控制理论中的一种重要的、基本的方法。
线性二次型性能指标易于分析。
处理和讣算,而且通过线性二次型最优设计方法得到的系统控制方法,具有较好的鲁棒性与动态特性以及能够获得线性反馈结构等优点,因此在实际的控制系统设计中得到了广泛的应用。
LQR算法的口的是在一定性能指标下,使系统的控制效果最佳,即利用最少的控制能量来达到最小的状态误差。
被控系统的状态方程为:
x=Ax+Bu
式(10)
Y=Cx+Du
寻找一个状态反馈控制率/=-KX,使得如下指标达到最小值
式(11)
式中Q和R分别是X和u的加权矩阵,用来平衡状态向量和输入向量的权重,确定了误差和能量损耗的相对重要性;Q为半正定阵,R为正定阵。
假设控制向量/是无约束的,根据最优控制理论,可以得到最优控制率为:
式中,K为最优反馈增益矩阵,P为常数正定矩阵,且P必须满足黎卡提代数方程:
pa+a「p—pbr7b「p+q=o式(13)
因此,系统的设计归结于对黎卡提方程的求解,获得P,进而求出最有反馈增益矩阵K。
4.2直线一级倒立摆LQR控制算法
Q,R分别用来对状态向量x,控制向量u引起的性能度量的相对重要性进行加权。
在实际运算中我们运用Matlab控制系统工具箱中的“lqr”函数直接进行运算。
利用lqr函数,我们需要提供两个权值矩阵:
Q、Ro通常我们取R=l,而对于Q我们只能通过不断的凑取来得到。
Q的第一次取值
Q=diag([l,0,l,0])
源代码如下:
A=[0100;0-0.18182.67270;0001;0-0.454531.18180];
B=[01.818204.5455]';
C二[1000;0010];
D二0;
Q=diag([l,0,l,0]);R=[l];
[K,P,e]=lqr(A,B,Q,R)
Ac二A-B*K;
Be二B;
Cc二C;
De二D;
grid;
legend(,cartJ,'pendulum')
K二
-1.0000
-1.6567
18.6852
3.4594
1.5567
1.2067
-3.4594
-0.7027
1.2067
1.4554
-4.6826
-0.9466
-3.4594
-4.6826
31.6315
5.9838
-0.7027
-0.9466
5.9838
1.1397
e=
-0.8494+0.8323i
-0.8494-0.8323i
-5.5978+0.4070i
-5.5978一0.4070i
0.2
Time(sec)
图5LQR选择试凑
因为此次取值调节时间为3.5秒过久,不满足性能要求。
因此不满意,再次
对Q取值:
Q=diag([100,0,100,01)
源代码如下:
A=[0100;0-0.18182.67270;0001;0-0.