⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap3_7.m

📁 滑模变结构控制MATLAB仿真书籍的源码
💻 M
字号:
clear all;
close all;

a=25;b=133;
ts=0.001;
A1=[0,1;0,-a];
B1=[0;b];
C1=[1,0];
D1=0;
[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');

x=[-0.8;-0.5];
r_1=0;r_2=0;

c=20;
eq=5;
q=30;
Ce=[c,1];
for k=1:1:2000
	time(k)=k*ts;
   r(k)=1.0;
   
   %Using Waitui method   
   dr(k)=(r(k)-r_1)/ts;
   dr_1=(r_1-r_2)/ts;
   r1(k)=2*r(k)-r_1;
   dr1(k)=2*dr(k)-dr_1;
  
   R=[r(k);dr(k)];
   R1=[r1(k);dr1(k)];
   
   E=R-x;
   e(k)=E(1);
   de(k)=E(2);
   
   s(k)=Ce*E;
   
   X1=abs(e(k))+abs(de(k));
   
M=2;   
if M==1             %EXP reaching law
   ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
elseif M==2         %Variable rate reachine law
   ds(k)=-eq*ts*X1*sign(s(k));
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
elseif M==3         %Coposite reaching law
   k0=0.60;
   if X1>k0          %EXP reachine law
	   ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
	   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
   elseif X1<=k0     %Variable rate reachine law
   ds(k)=-eq*ts*X1*sign(s(k));
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
   end
end

if u(k)>=10
   u(k)=10;
end
if u(k)<=-10
   u(k)=-10;
end

x=A*x+B*u(k);
y(k)=x(1);

%Update Parameters
r_2=r_1;
r_1=r(k);
end
figure(1)
plot(time,r,'r',time,y,'b');
xlabel('Time(second)');ylabel('Position tracking');
figure(2)
plot(time,s,'r');
xlabel('Time(second)');ylabel('Switch function s');
figure(3)
plot(e,de,'r',e,-c*e,'b');
xlabel('e');ylabel('de');
figure(4)
plot(time,u,'r');
xlabel('Time(second)');ylabel('u');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -