台式倒立摆的滑模控制实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

倒立摆的滑模控制
摘要:倒立摆系统的控制问题一直是控制研究中的典型问题,由于控制系统是非线性的,不能运用传统线性理论的方法来对其进行控制,本文运用了两种方式设计了滑模控制器对台式倒立摆进行控制,并进行了仿真实验,结果显示运用此方法的倒立摆系统具有更好的稳定性以及抗干扰能力。

1 引言
滑模控制(sliding mode control, SMC) 也叫变结构控制,本质上是一类特殊的非线性控制,且非线性表现为控制的不连续性。

这种控制策略与其他控制的不同之处在于系统的“结构”并不固定,而是可以在动态过程中,根据系统当前的状态 (如偏差及其各阶导数等)有目的地不断变化,迫使系统按照预定“滑动模态” 的状态轨迹运动。

由于滑动模态可以进行设计且与对象参数及扰动无关,这就使得滑模控制具有快速响应、对应参数变化及扰动不灵敏、无需系统在线辨识、物理实现简单等优点。

变结构控制是前苏联学者Emeleyanov、UtItkin 在20 世纪50 年代初提出的一种控制概念。

滑模变结构式变结构控制的一种控制策略。

这种策略与常规控制的根本不同在于控制的不连续性,即一种使系统“结构” 随着时间的变化的开关特性。

该控制特性可以迫使系统在一定特性下沿着规定的轨迹状态做小幅度高频率的上下浮动,即所谓的“滑模”状态。

滑模控制的优点是能够克服系统的不确定性, 对干扰和未建模动态具有很强的鲁棒性,尤其是对非线性系统的控制具有良好的控制效果。

近年来,滑模变结构方法因其所具有的优良特性而受到越来越多的重视.该方法通过自行设计所需的滑模面和等效控制律,能快速响应输入
的变换,而对参数变换和扰动不敏感,具有很好的鲁棒性,且物理制作简单.但大多数采用滑模变结构方法的控制系统没采用联合滑模观测和滑模控制的思想进行鲁棒方案的设计。

滑模变结构控制逐渐引起了学者们的重视,其最大优点是滑
动模态对加在系统上的干扰和系统的摄动具有完全的自适应性,而且系统状态一
旦进入滑模运动,便快速地收敛到控制目标,为时滞系统、不确定性系统的鲁棒性设计提供了一种有效途径,但其最大的问题是系统控制器的输出具有抖动
本文运用常值切换控制以及比例切换控制两种方式设计滑膜控制器对一级台
车式倒立摆模型进行分析和建立数学模型, 对小车的位置控制问题、摆角度控制 问题和控制器的输出进行分析。

在 Matlab 仿真环境下进行仿真实验。

2台车式倒立摆模型
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教 学及开展各种控制实验的理想实验平台。

对倒立摆系统的研究能有效的反映控制 中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪 问题等倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,
并且使之没有大
的振荡和过大的角度和速度。

当摆杆到达期望的位置后,系统能克服随机扰动而 保持稳定的位置。

图1为一级倒立摆的示意图,小车质量为 M ,小车位置为x ,
x = Ax B(u f (t))
其中
「0〕 0 B = b 3
血一
a 32 二 -3 (C i - m g a)/(a (4 M m))
2
a 42 - -3 (M m) (C 〔 -m g a) /(a m (4* M m))
b 3 = 4/(4 M m) b 4 =3/(4 M m)
其中C i 为弹性硬度,g =9.8m/s 2, u 和f(t)分别为控制输入和干扰力,且
-
0 0 1
01
0 0 0 1 A =
0 a 32 0 0 - 0 a 42 0 0
一 (1)
倒立摆的状态方程为:
f(t)乞f o , f o为常数3滑模控制器设计
设计滑膜控制器的基本步骤主要包括两个相对独立的部分;
1 •设计切换函数s(x),使它所确定的滑动模态渐进稳定且具有良好的动态品质,
2 •设计滑模动态控制率u=(x),使得条件得到满足,从而在切换面上形成滑动模
态区。

可以采用两种变结构控制方法实现对台式倒立摆小车和摆角的控制。

在该控制律中,采用Ackermann公式设计滑模控制律中的C值:
s = C X , C = e p(A) (2) Ackerma nn公式描述为:
-〔0, ,0 R b, Ab, , A n」b ' (3)
P( ' ) = ( ' - '1)( ' - ' 2)( ' - ' n」)(’-'n) ( 4) (1 )常值切换控制
控制律取
u - -M°sgn(s) (5) 其中M。

f。

(2)比例切换控制
n 比例切换控制律的输出包括sgn函数的一个乘积。

由于因子送ax』的作用,
n n
其输出变为卜乞k i X i ,+ E k i X i ]区间上的连续函数,而不再是离散的,这样的连
i =1 i=1
续控制的输出可以削弱滑膜控制器调节时候发生的抖振。

控制律取
u =-P (x+|dx+|da|)sg n(s) (6) 4仿真实例
倒立摆的参数为取:g = 9.8m s'(重力加速度),M =5-0kg(小车质量),
m
"kg (杆的质量),a =0.5叫杆的半长),G J, f(t) =0.5s in (3t).
作图采样时间为T 二。

02 ,仿真时间为30.初始条件取x (°)= °5
,
c ((0) = 0.3 dx(0) = 0.0 da (0) = 0.0 期 望 状 态 为.x( 0 ) 0 cc (0) = 0
dx(O) =0 ,d 〉(0) =0.其中摆动角度单位为弧度。

仿真程序取
F=1,控制律采用式
(5),其中M 0 *0,仿真结果如图2,3所示;取F=2,控制律采用式 ⑹,其中一一30
在控制系统中,由于n=4,故取X1 =-1, 2i=-2, 3i=-3,根据Ackermann 公式 设计滑模控制律中C 值,即根据式(2),可得
C T - 147673 48.3564 -8.7401 18.6534〕。

5仿真研究
图2常值切换控制
O
3
O
O.
JW O
賀靶
Bfbl

D150
百 0-
15 20 25 30
2 Umefe)
15 20 3 truiet&l

1iQ 15 >
25 30
1 time (町
n

o
M0
卅十 ■
s

ar
10
30
图3比例切换控制
从仿真结果可以看出,常值切换控制所设计的滑模控制器相比于比例切换控 制在位置控制与角度控制的过程之中具有较高的稳定性,但是控制器的输出值方 面不如比例切换控制器稳定,比例控制器对于消除滑膜变结构控制所固有的高频 颤动现象有抑制作用,对模型不确定性外部干扰具有较强的鲁棒性,
同时保证了
系统在整个状态空间内具有较好的运动品质,使系统快速到达滑模面。

本文用两种方法设计的滑模控制器应到台车式倒立摆中,从仿真结果可以得 出:比例切换控制设计的滑模控制器不仅缩短了过渡时间,减少了常规滑模变结 构控制所固有的高频颤动现象,而且改善了系统的控制性能,提高了系统的鲁棒 性。

6结论
本文针对倒立摆系统的控制需求,运用了两种方式设计滑膜控制器,并运用 matlab 对两种算法进行仿真,从仿真结果可以看出,相比于常规的常值切换控制 器所设计的滑模控制器,比例切换控制设计的滑模不仅缩短了控制所需的时间, 而且部分消除了常规滑模变结构控制所固有的高频颤动现象,而且改善了控制系 统的性能,提高了鲁棒性。

7参考文献
[1]张昌凡,王耀南•滑模变结构的智能控制及其应用[J].中国电机工程学报
2001,21(3): 27-29.
[2] 穆效江,陈阳舟.滑模变结构控制理论研究综述
[J][J].控制工程,2007,1
14(1): 1-5.
■D.B
-0.4
0 110 115 20 25 30 1
EU 4 DO.
.2

.2
O
-0D5
41.1 ■0.15
5 10 15 .20 25 a] 2 園
.2 Q .
■30
-4D
ID 15 2a 25 30
3 Nile (础
4
:2O1D
[3] 刘金琨.滑模变结构控制MATLAB仿真[M].清华大学出版社,2005.
[4] 邹伟全,姚锡凡.滑模变结构控制的抖振问题研究[J].组合机床与自动化加工技
术,2006, 1: 53-55.
[5] 张晓宇,苏宏业.滑模变结构控制理论进展综述[J].化工自动化及仪表, 2006,
33(2): 1-8.
[6] 张昌凡.滑模变结构控制研究综述[J].株洲工学院学报,2004, 18(2): 1-5.
[7] 姚胜兴,彭楚武.基于比例切换变结构控制的倒立摆系统研究[J].武汉理
工大学学报,2007, 29(4): 114-117.
附录:程序如下所示:
claar all
close all
global C MO F
ts=0.2;
T=3D;
TimeSet= ro:ts:T];
para= [J ;
aptioms=odeset C KeLTol , le^3j J Abslol' a [le—3 Le-3 le-3 le—3]):
% opt ions= [];
x0= [U” 5j〔1” 3』Oj 0];
[t t xwt]二ode45 C subO t Time Set, x0, options; para);
K l=KOUt (: j l):
x2=Kuut (:』2> :
x3=xout (:f3),
^4=xout ?4);
s^C (1) 1弋⑵(3) *x3-K: (4) *K4.
if F==l
M0=4Q:
(s):
elseif F==2
betapSD;
de It a=0:
for k=1:h I/t s+1
U(k)=-bert a*(abs(K1 (k) )+abs(K2(k) )+abs(x3 (k) +abs (K4 (k) )+delta)) *sign(s (k)):
end
end
subplot (1, 3, 1) plot (t,xl, * r*): xlabelC 1 time(s)*); ylabel ('小车位置’):
subplot (1, 3, 2) plot (t,x2, * r*);
xlabel (* 2 tune(s)*): ylabel
('倒立摆角度’):
subplot (1, 3, 3) plot r‘);
xlabel (' 3 tune(s)>): ylabel (' u* ):
funct ion dx=DxnajnicModel (t, x, flag, para) global C MO F
M=5;in=l;a=l;Cl=l;g=9.81; a32=-3»(Cl-m*g*a)/(a*(4*M+m));a42=-3*(M+m)♦(Cl-m*g*a)/(a A2*m*(4*M+m)) b3=4/ (4*M+m):
A= *0, 0, 1, 0; 0j 0, 05 1; 0$ a32, 0, 0:0, a42, 0, 0]: b=:0;0;b3;b4];|
nl=-l:
n2=-2:
n3=-3;
C= *0, 0, 0, 1] *inv([b, A»b, A"2*b, A A3*b])♦(A-nl*eye (4))* (A-n2*eye (4))♦(A-n3*eye ( X
4));
x=[0.5;0.3;0;0]:
s=C*x;
F=2:
if F==l
M0=40;
u=-M0*sign(s):
else if F==2
beta=30;
delta=0;
u=-bet a* (abs (x(l)) +abs (x (2)) +abs (x (3) +abs (x ⑷)+delt a)) *sign (s)
end
end
dx=zeros(4, 1);
f0=0.5:
ft=f0*sin(3*t):
dx=A*x+b*(u+ft):。

相关文档
最新文档