状态反馈的倒立摆PID控制.docx

上传人:b****3 文档编号:2293816 上传时间:2022-10-28 格式:DOCX 页数:11 大小:223.79KB
下载 相关 举报
状态反馈的倒立摆PID控制.docx_第1页
第1页 / 共11页
状态反馈的倒立摆PID控制.docx_第2页
第2页 / 共11页
状态反馈的倒立摆PID控制.docx_第3页
第3页 / 共11页
状态反馈的倒立摆PID控制.docx_第4页
第4页 / 共11页
状态反馈的倒立摆PID控制.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

状态反馈的倒立摆PID控制.docx

《状态反馈的倒立摆PID控制.docx》由会员分享,可在线阅读,更多相关《状态反馈的倒立摆PID控制.docx(11页珍藏版)》请在冰豆网上搜索。

状态反馈的倒立摆PID控制.docx

状态反馈的倒立摆PID控制

基于LMI的单级倒立摆的状态反馈PID控制

摘要

本文以单级倒立摆为研究对象,通过物理规律得到系统的传递函数和状态方程,并结合状态反馈的概念,将约束条件转化为线性矩阵不等式求解反馈矩阵并得到PID控制器,最后进行MATLAB仿真得到仿真曲线进行对比分析指出该方法的优缺点。

关键字单级倒立摆PIDMATLABLMI状态反馈

前言

倒立摆系统是一种典型的非线性的,不稳定的复杂系统。

是控制理论教学与科研中研究诸如鲁棒问题、非线性系统的控制等问题的良好实验对象。

同时,倒立摆系统作为机器人行走中平衡控制、火箭垂直姿态控制和卫星飞行中姿态控制的最简单模型在航空航天以及军工等领域有着广泛的用处。

倒立摆可以根据摆杆数量的不同分为一级、二级和三级等,多级摆杆间采用自由连接。

一级倒立摆的仿真与控制已广泛应用于教学科研,而二级倒立摆也已在大部分实验室中实现,至于三级倒立摆的控制问题则是国际上公认的难题。

然而我国学者李洪兴教授在2002年实现了国际上首次四级倒立摆实物系统的控制,这是我国学者采用自己提出的理论完成世界性难题的重大科学成就。

本文中以单级倒立摆为研究对象,根据物理定律进行建模得到数学模型,在此基础上进行PID控制,并通过MATLAB仿真对比加入PID控制器前后的响应曲线进行分析。

数学模型的建立

直线一级倒立摆是由小车、摆杆等部件构成。

现假设有一个一级倒立摆系统,其中摆杆的长度为,,质量为,小车质量为,为作用在小车上的外力,为摆杆与垂直向上方向的夹角,为小车的水平位移。

若不考虑小车与导轨,摆杆与小车之间的摩擦并且不计各种空气阻力,则倒立摆系统的受力分析如图1所示。

Figure1

规定摆杆重心的坐标为,则

采用隔离法,对小车有

(1)

其中为摆杆所受沿水平方向的力。

对于摆杆,在水平方向上有

(2)

在竖直方向上有

(3)

其中为摆杆所受沿垂直方向的力。

以摆杆质心为旋转中心建立动力学方程有

(4)

其中为摆杆绕其质心的转动惯量。

此时,发现

(2)(3)(4)均为非线性方程,为了简化计算并且便于进行控制器设计,要对上述方程进行近似线性化处理。

由于控制目标是使摆杆处于垂直稳定状态,即尽可能的小,甚至接近于,因此可以认为、、、。

这里需要注意

因此方程

(2)(3)(4)化为

(5)

(6)

(7)

消去中间变量、,由

(1)(5)式得到

(8)

由(6)(7)式得到

(9)

由(8)(9)得到单级倒立摆方程

(10)

(11)

设小车的质量为,摆长为,摆杆质量为,重力加速度取带入上述方程,可以得到角度与外力之间的传递函数,

(12)

由于系统有位于复平面右半平面的极点显然其不稳定,在阶跃函数作用下的响应的响应曲线如下图所示,同样说明系统是不稳定的,因此需要加入PID控制来改变系统的性能。

Figure2

状态反馈PID设计

令,,,建立状态方程,则由(10)(11)可得倒立摆系统的状态方程为

(13)

其中,,,

接下来我们要用状态反馈的方法设计此倒立摆系统的PID控制器。

采用文献[4]的方法,在控制输入点之前引入一个积分环节,其中给定。

,,

因此得到增广系统的状态方程

(14)

设状态反馈

(14)

(16)

因为,则可逆,从而可以将控制输入用状态及状态的导数表示,即

(17)

将上式代入(16)式中,得到

(18)

记为,为,在零初始条件下对上式积分得到

(19)

可以看出这是状态反馈加状态积分反馈的形式。

如果能够找到一组状态变量,使得状态反馈就是比例积分加微分,那么该状态反馈策略就是PID控制。

对于阶系统,微分部分包括了系统从阶到阶的微分;若是二阶系统,该部分就是一个工程中常用的PID控制器。

现在讨论反馈增益矩阵,使得增广系统满足稳定的指标。

即设计反馈矩阵使得闭环系统稳定。

此时闭环系统的状态方程为

(20)

根据Lyapunov理论可得,存在对称正定矩阵使得

(21)

在上式左右两边左乘,右乘,并令则得到

(22)

这是关于与的线性矩阵不等式,又由于正定则正定,因此上述LMI可以改写为

(23)

通过MATLAB可以求得与,由此可以解出对称正定矩阵与反馈增益。

下面通过MATLAB进行仿真和计算。

仍然采用之前仿真时使用的小车质量与摆杆质量等数据,可以得到增广系统的状态方程的系数为

通过MATLAB计算可得反馈增益为,因此

,,代入控制器的表达式中得到,仿真曲线图如下所示。

Figure3

Figure4

Figure5

Figure6

Figure7

结论

由图2可知系统在没有控制其作用下是不稳定的,通过状态反馈PID控制之后的系统状态的响应曲线分别为图3~6,可以看出,只在稳定的约束下,系统的四个状态可以在18秒左右达到稳定,证明方法的可行性。

同时也发现了只对稳定性约束时的不足,即系统达到稳定所需的时间过长,为此可以在考虑稳定性的条件下加入其他指标进行约束以达到预期的效果,例如极点指标、方差指标、指标等,甚至可以进行多指标约束,例如极点指标加方差指标等。

求解时需要将这些指标化为线性矩阵不等式组,运用MATLAB求解满足需求的解。

讨论与体会

在我之前的认识中,对于PID只理解到自动控制原理中通过对超调量等指标的约束画出伯德图进行求解参数的阶段。

后来学习了状态空间描述系统时,就思考如何在状态方程的基础上进行PID控制器设计,因此借此计控作业的机会查找资料学习了一下。

在这个作业中我还用到了一些这学期学到知识,例如线性矩阵不等式的求解和系统稳定性分析。

在学习了线性矩阵不等式后也借此机会实践了一下其中的变量替换和MATLAB求解,同时也是第一次听到满意控制这个概念。

因此可以说这次作业不仅仅是计算机控制的作业也从一定程度上说是对这学期的小小总结,同时在这之中也发现还有很多需要学习的地方。

参考文献

1.张嗣瀛,高立群.现代控制理论[M].北京:

清华大学出版社,2006

2.关守平,尤富强.计算机控制理论与设计[M].北京:

机械工业出版社,2012

3.张庆灵,张雪峰,翟丁.控制理论基础[M].北京:

高等教育出版社,2008

4.马建伟,李银伢.满意PID控制设计理论与方法[M].北京:

科学出版社,2007

5.周俊.PID控制在单级倒立摆系统中的分析与应用[J].硅谷,2010,6:

20-21

6.王慧萍,孔庆忠.基于MATLAB的直线一级倒立摆的PID控制研究[J].机械工程与自动化,2015,5:

179-182

7.薛定宇.控制系统计算机辅助设计[M].北京:

清华大学出版社,2015

8.王建辉,顾树生.自动控制原理[M].北京:

清华大学出版社,2013

附录:

代码

clearall

num=[-0.74];

den=[10-15.56];

G=tf(num,den);

t=[0:

0.1:

20];

[y,x,t]=step(num,den,t);

figure

(1);

plot(t,y);

grid;

xlabel('t');

ylabel('y');

title('单位阶跃响应曲线')

%角度对输入的传递函数的阶跃响应曲线

a=[0,1,0,0,0;15.56,0,0,0,-0.74;0,0,0,1,0;-0.37,0,0,0,0.49;0,0,0,0,0];

b=[0;0;0;0;1];

setlmis([])

%开启LMI求解

Q=lmivar(1,[5,1]);

L=lmivar(2,[1,5]);

%定义矩阵变量

lmiterm([111Q],a,1,'s');

lmiterm([111L],b,1,'s');

lmiterm([122Q],-1,1);

%描述线性矩阵不等式

lmisys=getlmis;

[tmin,xfeas]=feasp(lmisys);

QQ=dec2mat(lmisys,xfeas,Q);

LL=dec2mat(lmisys,xfeas,L);

K=LL*inv(QQ)

%解出反馈矩阵K

%状态方程

c=[0,0,0,0,0];

d=[0];

g=ss((a+b*K),b,c,d);

t=[0:

0.1:

20];

x0=[0,0,1,0,0];

[y,t,x]=initial(g,x0,t);

figure

(2)

plot(t,x);

holdon

gridon

%得到增广系统的状态响应曲线

figure(3)

plot(t,x(:

1)),grid;

xlabel('t'),ylabel('角度'),title('摆角随时间变化的曲线');

figure(4)

plot(t,x(:

2)),grid;

xlabel('t'),ylabel('角速度'),title('角速度随时间变化的曲线');

figure(5)

plot(t,x(:

3)),grid;

xlabel('t'),ylabel('位移'),title('小车位移随时间变化的曲线');

figure(6)

plot(t,x(:

4)),grid;

xlabel('t'),ylabel('速度'),title('小车速度随时间变化的曲线');

figure(7)

plot(t,x(:

5)),grid;

xlabel('t'),title('控制器变化曲线');

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1