准滑动模态控制matlab仿真实例(3)

2019-04-14 09:42

elseif M==2 kk=1/delta;

for i=1:1:T/ts+1; if s(i)>delta sats(i)=1;

elseif abs(s(i))<=delta sats(i)=kk*s(i); elseif s(i)<-delta sats(i)=-1; end

slaw(i)=-ep*sats(i)-k*s(i);

u(i)=1/b*(c*(dr(i)-x2(i))+ddr(i)-slaw(i)+a*x2(i)); end elseif M==3

for i=1:1:T/ts+1;

ths(i)=s(i)/(abs(s(i))+delta); slaw(i)=-ep*ths(i)-k*s(i);

u(i)=1/b*(c*(dr(i)-x2(i))+ddr(i)-slaw(i)+a*x2(i)); end end

figure(1);

plot(t,r,'r',t,x(:,1),'b');

xlabel('time(s)'); ylabel('r,yout'); figure(2);

plot(t,r-x(:,1),'r');

xlabel('time(s)'); ylabel('error'); figure(3);

plot(r-x(:,1),dr-x(:,2),'r',r-x(:,1),-c*(r-x(:,1)),'b'); %draw line (s=0) xlabel('e'); ylabel('de'); figure(4); plot(t,s,'r');

xlabel('time(s)'); ylabel('s'); figure(5); plot(t,u,'r');

xlabel('time(s)'); ylabel('u'); (2)控制子程序:figure2_8eq.m

function dx=DynamicModel(t,x,flag,para) global a b c A F M ep k delta

a=25;b=133;

A=0.50;F=1.0;

r=A*sin(2*pi*F*t);

dr=A*2*pi*F*cos(2*pi*F*t);

ddr=-A*(2*pi*F)^2*sin(2*pi*F*t);

s=c*(r-x(1))+dr-x(2);

k=30;ep=15;

M=3; if M==1

slaw=-ep*sign(s)-k*s; %Exponential velocity trending law elseif M==2 %Saturated function delta=0.05; kk=1/delta; if s>delta sats=1;

elseif abs(s)<=delta sats=kk*s; elseif s<-delta sats=-1; end

slaw=-ep*sats-k*s; elseif M==3

delta=0.05;

ths=s/(abs(s)+delta); slaw=-ep*ths-k*s; end

u=1/b*(c*(dr-x(2))+ddr-slaw+a*x(2));

% State Equation dx=zeros(2,1); dx(1)=x(2);

dx(2)=-a*x(2)+b*u;


准滑动模态控制matlab仿真实例(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑公司安全生产教育培训制度(五)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: