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

📄 samp.m

📁 自适应控制的例程 文件samp.m使用matlab6.5通过
💻 M
字号:
clear;

y=0;
ysp=0;
u=0;
v1=0;
ysp1=0;
y1=0;
u1=0;
t=0;

p=[100,0,0,0;0,100,0,0;0,0,100,0;0,0,0,100];
n=zeros(4,4);
nf=zeros(4,1);
pf=zeros(4,1);
k=zeros(4,1);
f=zeros(4,1);
nth=zeros(4,1);
th=[-2;1;0.01;0.01];
lambda=1;
to=200;
z=0.7;
w=1;
h=1;
ulim=1;
cancel=1;

a=exp(-z*w*h);
am1=-2*a*cos(w*h*(1-z*z)^0.5);
am2=a*a;
if w*to>100
    aop=0
else
    aop=-exp(-h/to)
end
if cancel>0.5
    ao=0
else
    ao=-aop
end

pf=p*f;
denom=lambda+pf.'*f;
k=pf/denom;

eps=y-th.'*f;
nth=th+k*eps;
n=(p-pf*k.')/lambda;

nf=[-y;f(1);u;f(3)];

a1=nth(1);
a2=nth(2);
b0=nth(3);
b1=nth(4);

nn=b1*b1-a1*b0*b1+a2*b0*b0;
r10=(ao*am2*b0^2+(a2-am2-ao*am1)*b0*b1+(ao+am1-a1)*b1^2)/nn;
w1=(a2*am1+a2*ao-a1*a2-am2*ao)*b0;
s00=(w1+(-a1*am1-a1*ao-a2+a1^2+am2+am1*ao)*b1)/nn;
w2=(-a1*am2*ao+a2*am2+a2*am1*ao-a2^2)*b0;
s10=(w2+(-a2*am1-a2*ao+a1*a2+am2*ao)*b1)/nn;

bs=b0+b1;
as=1+am1+am2;
bm0=as/bs;

if cancel>0,5
    r1=b1/b0
else
    r1=r10
end
if cancel>0,5
    s0=(am1-a1)/b0
else
    s0=s00
end
if cancel>0,5
    s1=(am2-a2)/b0
else
    s1=s10
end
if cancel>0,5
    t0=as/b0
else
    t0=bm0
end
if cancel>0,5
    t1=0
else
    t1=bm0*ao
end

v=-ao*v1+t0*ysp+t1*ysp1-s0*y-s1*y1+(ao-r1)*u1;
if v<-ulim
    u=-ulim
elseif v<ulim
    u=v
else
    u=ulim
end

ny1=y;
nu1=u;
nv1=v;
nysp1=ysp;

ts=t+h;

⌨️ 快捷键说明

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