一阶系统的滑膜控制器设计及仿真

一阶系统用比例积分滑膜函数

一阶系统的滑膜控制器设计及仿真_第1张图片

仿真结果

一阶系统的滑膜控制器设计及仿真_第2张图片

 一阶系统的滑膜控制器设计及仿真_第3张图片

 一阶系统的滑膜控制器设计及仿真_第4张图片

                                             图3相轨迹

图3横坐标为积分误差纵坐标为比例误差,一阶系统的滑膜控制器设计及仿真_第5张图片

滑膜面为s=0,时,e与ef的坐标构成的面。

上述仿真结果和刘金琨智能控制书中仿真结果一致。


clear all;
close all;
clc;

t=10;
ts=0.01;%ts代表时间间隔
%控制器参数
c=5;
k1=3;%%%参数符号和循环结构里循环符号要区分开来。
D=0.5;
%控制对象初始状态
x(1)=1;
dx(1)=0;

%系统参数
b=10;

for k=1:1:t/ts+1
  if k==1
    K=(k-1);
    times(k)=K*ts;%序号k代表K*ts时刻
    
    
    xd(k)=sin(K*ts);
    dxd(k)=cos(K*ts);
    e(k)=x(k)-xd(k);
    ef(k)=0;
    else 
            K=(k-1);
    times(k)=K*ts;%序号k代表K*ts时刻
    
    
    xd(k)=sin(K*ts);
    dxd(k)=cos(K*ts);
    
    e(k)=x(k)-xd(k);
    ef(k)=ef(k-1)+(e(k)+e(k-1))*ts/2;
   end
    
    s(k)=e(k)+c*ef(k);
    
    ut(k)=1/b*(-c*e(k)+dxd(k)-k1*s(k)-D*sign(s(k)));
    
    dt(k)=0.5*sin(K*ts);%状态干扰
    dx(k)=(b*ut(k)+dt(k));
    x(k+1)=x(k)+dx(k)*ts;
    
    
    
    
end
x(:,end)=[];
figure(1)
plot(times,x,times,xd);
figure(2)
plot(times,ut);
figure(3)

plot(ef,e,ef,-c*ef);

 

 

你可能感兴趣的:(matlab,matlab)