智能控制(神经网络)-作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能控制作业
学生姓名: 学 号: 专业班级:
7-2 采用BP 网路、RBF 网路、DRNN 网路逼近线性对象
2)
1(1)1(9.0)1()(-+-⨯--=k y k y k u k y ,分别进行matlab 仿真。 (一)采用BP 网络仿真
网络结构为2-6-1。采样时间1ms ,输入信号)6sin(5.0)(t k u ⨯=π,权值21,W W 的初值随机取值,05.0,05.0==αη。
仿真m 文件程序为:
%BP simulation
clear all;
clear all;
xite=0.5;
alfa=0.5;
w1=rands(1996,6); % value of w1,initially by random w1_1=w1;w1_2=w1;
w2=rands(6,1996); % value of w2,initially by random w2_1=w2;w2_2=w2_1;
dw1=0*w1;
I=[0,0,0,0,0,0]'; % input of yinhanceng cell
Iout=[0,0,0,0,0,0]'; % output of yinhanceng cell
FI=[0,0,0,0,0,0]';
OUT=2;
K=0;
E=1.0;
NS=3;
While E>=le-020
k=k+1;
times(k)=k;
for s=1:1;NS
x=xs(s,:);
for j=1:1:6
I(j)=x*w1(:,j);
Iout(j)=1/(1+exp(-I(j)));
end
y1=w2’*Iout;
y1=y1’;
e1=0;
y=ys(s,:);
for l=1:1:OUT
e1=e1+0.5*(y(1)-y1(1))^2;
end
es(s)=el;
E=0;
If s==NS
For s=1:1:NS
E=E+es(s);
end
end
ey=y-y1;
w2=w2_1+xite*Iout*ey+alfa*(w2_1-w2_2);
for j=1:1:6
S=1/(1+exp(-I(j)));
FI(j)=S*(1-S);
end
for i=1:1;1996
forj=1:1:6
dw1(i,j)=xite*FI(j)*x(i)*(ey(1)*w2(j,1)+ey(2)*w2(j,2));
end
end
w1=w1_1+dw1+alfa*(w1_1-w1_2);
w1_2=w1_1;w1_1=w1;
w2_2=w2_1;w2_1=w2;
end
Ek(k)=E;
End
Figure(1);
plot(times,EK,’r ’);
xlabel('k');ylabel('E');
save wfile w1 w2;
(二)DRNN 网路仿真
采样时间1ms ,输入信号)4sin(5.0)(t k u ⨯=π,权值I O D W W W ,,的初值随机取值,取35.0,35.0,35.0===I D O ηηη。
仿真m 文件程序为:
%DRNN simulation
clear all;
clear all;
wd=rands(7,1);
wo=rands(7,1);
wi=rands(3,7);
xj=zeros(7,1);
xj_1=xj;
u_1=0;y_1=0;
xitei=0.35;
xited=0.35;
xiteo=0.35;
ts=0.001;
for k=1:1:1000
time(k)=k*ts;
u(k)=0.5*sin(4*pi*k*ts);
y(k)=(u_1-0.9*y_1)/(1+y_1^2);
Ini=[u_1,y_1,1]';
for j=1:1:7
sj(j)=Ini'*wi(:,j)+wd(j)*xj(j);
end
for j=1:1:7
xj(j)=(1-exp(-sj(j)))/(1+exp(-sj(j)));
end
Pj=0*xj;
for j=1:1:7
Pj=wo(j)*(1+xj(j))*(1-xj(j))*xj_1(j);
end
Qij=0*wi;
for j=1:1:7
for i=1:1:3
Qij(i,j)=wo(j)*(1+xj(j))*(1-xj(j))*Ini(i); end
end
ymk=0;
for j=1:1:7
ymk=ymk+xj(j)*wo(j);
end
ym(k)=ymk;
e(k)=y(k)-ym(k);
wo=wo+xiteo*e(k)*xj;
wd=wd+xited*e(k)*Pj;
wi=wi+xitei*e(k)*Qij;
xj_1=xj;
u_1=u(k);
y_1=y(k);
end
figure(1);
plot(time,y,'r',time,ym,'b');
xlabel('time/s');ylabel('y and ym'); figure(2);
plot(time,y-ym,'r');
xlabel('time/s');ylabel('error');
仿真结果为: