- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
以BP+PID下控制器,若期望输出是单阶和余弦,那么仿真跟踪效果不错,但若期望输出rin(k)=1700,那么BP输出Kp,Ki,Kd都为NAN,这是什么原因啊?应该怎样改进,才能使实际输出yout(k)跟期望输出一致?以下为MATLAB仿真程序:clear all;xite=0.28; %学习速率alfa=0.05; %惯性系数IN=4;H=5;Out=3;%输入,隐层,输出层神经元个数wi=0.5*rands(H,IN);%输入层到隐层权值随机取值矩阵(5χ4)wi_1=wi;wi_2=wi;wi_3=wi;wo=0.5*rands(Out,H);%隐层到输出层权值随机取值矩阵(3χ5)wo_1=wo;wo_2=wo;wo_3=wo;x=[0 0 0];du_1=0;x1=0;u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;u_6=0;y_1=0;y_2=0;y_3=0;y_4=0;y_5=0;y_6=0;Oh=zeros(H,1);%隐层的输出值矩阵(5χ1)I=Oh;%隐层的输入值矩阵(5χ1)error_2=0;error_1=0;ts=0.001;%采样周期for k=1:1:3000%采样time(k)=k*ts;rin(k)=1700; a(k)=1.2*(1-0.8*exp(-0.1*k)); %Unlinear modelyout(k)=a(k)*y_1/(1+y_1^2)+u_1;error(k)=rin(k)-yout(k);%期望输出与实际输出的偏差值x(1)=error(k)-error_1;x(2)=error(k);x(3)=error(k)-2*error_1+error_2;xi=[rin(k),yout(k),error(k),1];%BP网络的输入值矩阵(1χ4)[xi,minxi,maxxi]=premnmx(xi);epid=[x(1);x(2);x(3)];wiI=xi*wi%隐层的输入值矩阵(1χ5)for j=1:1:HOh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))) %隐层的输出值矩阵(5χ1) end%Output layerK=wo*Oh; %输出层的输入值矩阵(3χ1) for l=1:1:OutQ(l)=exp(K(l))/(exp(K(l))+exp(-K(l))); %Getting Kp,Ki,Kd ;输出层的输出值矩阵(3χ1) endKp(k)=Q(1);Ki(k)=Q(2);Kd(k)=Q(3);Kpid=[Kp(k) Ki(k) Kd(k)];du(k)=Kpid*epid; %u(k)的值u(k)=u_1+du(k);%u(k)的值if u(k)=10 % Restricting the output of controlleru(k)=10;endif u(k)=-10u(k)=-10;enddyu(k)=sign((yout(k)-y_1)/(du(k)-du_1+0.0001));%sign()的值for j=1:1:OutdK(j)=Q(j)*(1-Q(j));endfor l=1:1:Outdelta3(l)=error(k)*dyu(k)*epid(l)*dK(l);%输出层局部梯度δ(3)的值(1χ3)endfor l=1:1:Outfor i=1:1:Hd_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);%wo,隐层到输出层之间权值的变化量矩阵(3χ5)endendwo=wo_1+d_wo;%wo,隐层到输出层之间权值改变后的权值矩阵(3χ5)%Hidden layerfor i=1:1:HdO(i)=(1-Oh(i)^2)/2;endsegma=delta3*wo;%Σδ(3)*wo的值矩阵(1χ5)for i=1:1:Hdelta2(i)=dO(i)*segma(i);%δ(2)的值矩阵(1χ5)endd_wi=xite*delta2*xi+alfa*(wi_1-wi_2);%△wi,输出层到隐层之间权值的变化量矩阵(5χ4)wi=wi_1+d_wi;%wi,输出层到隐层之间权值改变后的权值矩阵(5χ4)%Parameters Updatedu_1=du(k);u_6=u_5; u_5=u_4; u_4=u_3; u_3=u_2; u_2=u_1; u_1=u(k);y_6=y_5; y_5=y_4; y_4=y_3; y_3=y_2; y_2=y_1; y
文档评论(0)