基于趋近律的滑模控制matlab仿真实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于趋近律的滑模控制
一、基于趋近律的滑模控制 1、控制器的设计 针对状态方程
Bu Ax x
+= (1) 采用趋近律的控制方式,控制律推导如下:
Cx s = (2)
slaw x C s == (3) 其中slaw 为趋近律。
将状态方程式(1)代人(2)得
)()(1s
CAx CB u +-=- (4) 可见,控制器的抖振程度取决于趋近律s 表达式中的切换项。 2、仿真实例
对象为二阶传递函数: as
s b
s G p +=2
)( 其中a=25, b=133。
)(s Gp 可表示为如下状态方程:
Bu Ax x
+= 其中⎢⎣
⎡=00A ⎥⎦⎤
-251 , ⎥⎦⎤⎢⎣⎡=1330B 。 在仿真程序中,M=1为等速趋近律,M=2为指数趋近律,M=3为幂次趋近律,M=4为一般趋近律。取M=2,采用指数趋近律,其中C=[15,1] , ε=5,k=10,作图取样时间为0.001,仿真程序如下。 二、程序 主程序chap2_4.m clear all; close all;
global M A B C eq k
ts=0.001;
T=2;
TimeSet=[0:ts:T];
c=15;
C=[c,1];
para=[c];
[t,x]=ode45('chap2_4eq',TimeSet,[0.50 0.50],[],para);
x1=x(:,1);
x2=x(:,2);
s=c*x(:,1)+x(:,2);
if M==2
for kk=1:1:T/ts+1
xk=[x1(kk);x2(kk)];
sk(kk)=c*x1(kk)+x2(kk);
slaw(kk)=-eq*sign(sk(kk))-k*sk(kk); %Exponential trending law
u(kk)=inv(C*B)*(-C*A*xk+slaw(kk));
end
end
figure(1);
plot(x(:,1),x(:,2),'r',x(:,1),-c*x(:,1),'b');
xlabel('x1');ylabel('x2');
figure(2);
plot(t,x(:,1),'r');
xlabel('time(s)');ylabel('x1');
figure(3);
plot(t,x(:,2),'r');
xlabel('time(s)');ylabel('x2');
figure(4);
plot(t,s,'r');
xlabel('time(s)');ylabel('s');
if M==2
figure(5);
plot(t,u,'r');
xlabel('time(s)');ylabel('u');
end
子程序chap2_4eq.m
function dx=DynamicModel(t,x,flag,para)
global M A B C eq k
a=25;b=133;
c=para(1);
s=c*x(1)+x(2);
A=[0 1;0 -a];
B=[0;b];
M=2;
eq=5.0;
if M==2 % M=1为等速趋近律,M=2为指数趋近律,
M=3为幂次趋近律,M=4为一般趋近律slaw=-eq*sign(s); %Equal velocity trending law
elseif M==2
k=10;
slaw=-eq*sign(s)-k*s; %Exponential velocity trending law
elseif M==3
k=10;
alfa=0.50;
slaw=-k*abs(s)^alfa*sign(s); %Power trending law
elseif M==4
k=1;
slaw=-eq*sign(s)-k*s^3; %General trending law
end
u=inv(C*B)*(-C*A*x+slaw); dx=zeros(2,1); dx(1)=x(2); dx(2)=-a*x(2)+b*u;
三、仿真结果
(1)M=2时,指数趋近律
x1
x 2
图1 滑模运动的相轨迹
0.20.40.60.8
1 1.
2 1.4 1.6 1.82
time(s)
x 1
图2 x 1 的收敛过程
00.20.40.60.8
1 1.
2 1.4 1.6 1.8
2
-2.5
-2
-1.5
-1
-0.5
0.5
time(s)
x 2
图3 x 2 的收敛过程
s
00.20.40.60.81 1.2 1.4 1.6 1.82
time(s)
图4 切换函数s Array
u
00.20.40.60.81 1.2 1.4 1.6 1.82
time(s)
图5 控制器输出
(2)M=1时,等速趋近律