基于趋近律的滑模控制matlab仿真实例.docx
《基于趋近律的滑模控制matlab仿真实例.docx》由会员分享,可在线阅读,更多相关《基于趋近律的滑模控制matlab仿真实例.docx(13页珍藏版)》请在冰点文库上搜索。
基于趋近律的滑模控制matlab仿真实例
一、基于趋近律的滑模控制
1、控制器的设计
针对状态方程
(1)
采用趋近律的控制方式,控制律推导如下:
(2)
(3)
其中slaw为趋近律。
将状态方程式
(1)代人
(2)得
(4)
可见,控制器的抖振程度取决于趋近律
表达式中的切换项。
2、仿真实例
对象为二阶传递函数:
其中a=25,b=133。
可表示为如下状态方程:
其中
,
。
在仿真程序中,M=1为等速趋近律,M=2为指数趋近律,M=3为幂次趋近律,M=4为一般趋近律。
取M=2,采用指数趋近律,其中C=[15,1],ε=5,k=10,作图取样时间为0.001,仿真程序如下。
二、程序
主程序chap2_4.m
clearall;
closeall;
globalMABCeqk
ts=0.001;
T=2;
TimeSet=[0:
ts:
T];
c=15;
C=[c,1];
para=[c];
[t,x]=ode45('chap2_4eq',TimeSet,[0.500.50],[],para);
x1=x(:
1);
x2=x(:
2);
s=c*x(:
1)+x(:
2);
ifM==2
forkk=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);%Exponentialtrendinglaw
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');
ifM==2
figure(5);
plot(t,u,'r');
xlabel('time(s)');ylabel('u');
end
子程序chap2_4eq.m
functiondx=DynamicModel(t,x,flag,para)
globalMABCeqk
a=25;b=133;
c=para
(1);
s=c*x
(1)+x
(2);
A=[01;0-a];
B=[0;b];
M=2;
eq=5.0;
ifM==2%M=1为等速趋近律,M=2为指数趋近律,M=3为幂次趋近律,M=4为一般趋近律
slaw=-eq*sign(s);%Equalvelocitytrendinglaw
elseifM==2
k=10;
slaw=-eq*sign(s)-k*s;%Exponentialvelocitytrendinglaw
elseifM==3
k=10;
alfa=0.50;
slaw=-k*abs(s)^alfa*sign(s);%Powertrendinglaw
elseifM==4
k=1;
slaw=-eq*sign(s)-k*s^3;%Generaltrendinglaw
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时,指数趋近律
图1滑模运动的相轨迹
图2x1的收敛过程
图3x2的收敛过程
图4切换函数s
图5控制器输出
(2)M=1时,等速趋近律
图1滑模运动的相轨迹
图2x1的收敛过程
图3x2的收敛过程
图4切换函数s
(3)M=3时,幂次趋近律
图1滑模运动的相轨迹
图2x1的收敛过程
图3x2的收敛过程
图4切换函数s
(4)M=4时,一般趋近律
图1滑模运动的相轨迹
图2x1的收敛过程
图3x2的收敛过程
图4切换函数s