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]; %s=C*x=cx1+x2
para = [c];
[t,x] = ode45('chap2_4eq',TimeSet,[0.50 0.50],[],para); %x为n行2列
x1=x(:,1)'; %取x1的第一列 x 为列向量
x2=x(:,2)'; %取x1的第二列 x的导数
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); %趋近律(设计的)
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