📄 u7_3.m
字号:
clear
clc
c=0.5*ones(2,4);
b=1.5*ones(4,1);
xite=0.5;
alfa=0.05;
x=[0,0]';
w=rands(4,1);
w_1=w;w_2=w;
w_1=w;w_2=w_1;
c_1=c;c_2=c_1;
b_1=b;b_2=b_1;
d_w=0*w;
d_b=0*b;
y_1=0;
ts=0.001;
for l=1:1:1000
for k=1:1:1000
time(k)=k*ts;
u(k)=rand();
y(k)=u(k)^3+y_1/(1+y_1^2);
x(1)=u(k);
x(2)=y(k);
for j=1:1:4
h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j)));
%h(j)=(norm(x-c(:,j))^2+2*b(j)*b(j))^-1/2;
end
ym(k)=w'*h';
em(k)=y(k)-ym(k);
for j=1:1:4
d_w(j)=xite*em(k)*h(j);
d_b(j)=xite*em(k)*w(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2;
for i=1:1:2
d_c(i,j)=xite*em(k)*w(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2);
end
end
w=w_1+d_w+alfa*(w_1-w_2);
b=b_1+d_b+alfa*(b_1-b_2);
c=c_1+d_c+alfa*(c_1-c_2);
yu=0;
for j=1:1:4
yu=yu+w(j)*h(j)*(c(1,j)-x(1))/b(j)^2;
end
dyu(k)=yu;
y_1=y(k);
w_2=w_1;
w_1=w;
c_2=c_1;
c_1=c;
b_2=b_1;
b_1=b;
end
end
figure(1);
plot(time,y,time,ym);
xlabel('time(s)');
ylabel('y and ym');
figure(2);
plot(y-ym,'r');
xlabel('time(s)');
ylabel('identification error');
figure(3);
plot(dyu,'r');
xlabel('time(s)');
ylabel('dyu');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -