声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1606|回复: 0

[振动控制] [求助]神经网络权值成了NAN怎么解决

[复制链接]
发表于 2008-10-23 12:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
%程序为BP神经网络PID,
clear all;
close all;
ts=20;
sys=tf([1],[60,1],'inputdelay',80);
dsys=c2d(sys,ts ,'zoh');
[num,den]=tfdata(dsys,'v'); %将传递函数G(s)=e-80s/60s+1离散化
xite=0.25;
alfa=0.05;
in=4;h=5;out=3;
wi=rands(h,in);
wi1=wi;wi2=wi;wi3=wi;
wi
wo=rands(out,h);
wo1=wo;wo2=wo;wo3=wo;
wo
x=[0,0,0];
u1=0;u2=0;u3=0;u4=0;u5=0;
y1=0;y2=0;y3=0;
oh=zeros(h,1);I=oh;
e1=0;e2=0;
for k=1:1:200
time(k)=k*ts;
r(k)=40;
y(k)=-den(2)*y1+num(2)*u5;
e(k)=r(k)-y(k);
xi=[r(k),y(k),e(k),1];
x1=e(k)-e1;
x2=e(k);
x3=e(k)-2*e1+e2;
epid=[x1,x2,x3];
I=xi*wi';
for j=1:1:h
oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));
end
KI=wo*oh;
for t=1:1:out
  hy(t)=exp(KI(t))/(exp(KI(t))+exp(-KI(t)));
end
kp=hy(1);ki=hy(2);kd=hy(3);
kpid=[kp,ki,kd];
du(k)=epid*kpid';
u(k)=u1+du(k);
if(u(k)>=110)
  u(k)=110;
end
if(u(k)<=-110)
  u(k)=-110;
end
dyu(k)=sign((y(k)-y1)/(u(k)-u1+0.00001));
for j=1:1:out
   dk(j)=2/(exp(hy(j))+exp(-hy(j)))^2;
end
for t=1:1:out
  delta3(t)=e(k)*dyu(k)*epid(t)*dk(t);
end
for j=1:1:out
for i=1:1:h
  dwo=xite*delta3(j)*oh(i)+alfa*(wo1-wo2);
end
end
wo=wo1+dwo+alfa*(wo1-wo2);
wo
for(i=1:1:h)
do(i)=4/(exp(I(i))+exp(-I(i)))^2;
end
segma=delta3*wo;
for(i=1:1:h)
  delta2(i)=do(i)*segma(i);
end
dwi=xite*delta2'*xi;
wi=wi1+dwi+alfa*(wi1-wi2);
wi
u5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);
y3=y2;y2=y1;y1=y(k);
wo3=wo2;
wo2=wo1;
wo1=wo;
wi3=wi2;
wi2=wi1;
wi1=wi;
e2=e1;
e1=e(k);
end

plot(time, r,'r',time,y,'b');
xlabel('time(s)');ylabel('rin,yout');


这是程序,运行后的得到的图像就只有一部分,输出权值全是NAN,
当把输入信号改为r(k)=1,输出的U限制在[-10  10]之间,就可以出来完整的图像
请高手给看一下,问题到底出在哪里,怎么解决。

[ 本帖最后由 xmwhit 于 2008-10-27 17:04 编辑 ]
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 20:18 , Processed in 0.065695 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表