以BP+PID下控制器,若期望输出是单阶与余弦,那么仿真.doc

以BP+PID下控制器,若期望输出是单阶与余弦,那么仿真.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
以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 model yout(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)]; wi I=xi*wi%隐层的输入值矩阵(1χ5) for j=1:1:H Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))) %隐层的输出值矩阵(5χ1) end %Output layer K=wo*Oh; %输出层的输入值矩阵(3χ1) for l=1:1:Out Q(l)=exp(K(l))/(exp(K(l))+exp(-K(l))); %Getting Kp,Ki,Kd ;输出层的输出值矩阵(3χ1) end Kp(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 controller u(k)=10; end if u(k)=-10 u(k)=-10; end dyu(k)=sign((yout(k)-y_1)/(du(k)-du_1+0.0001));%sign()的值 for j=1:1:Out dK(j)=Q(j)*(1-Q(j)); end for l=1:1:Out delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);%输出层局部梯度δ(3)的值(1χ3) end for l=1:1:Out for i=1:1:H d_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);%wo,隐层到输出层之间权值的变化量矩阵(3χ5) end end wo=wo_1+d_wo;%wo,隐层到输出层之间权值改变后的权值矩阵(3χ5) %Hidden layer for i=1:1:H dO(i)=(1-Oh(i)^2)/2; end segma=delta3*wo;%Σδ(3)*wo的值矩阵(1χ5) for i=1:1:H delta2(i)=dO(i)*segma(i);%δ(2)的值矩阵(1χ5) end d_wi=xite*delta2*xi+alfa*(wi_1-wi_2);%△wi,输出层到隐层之间权值的变化量矩阵(5χ4) wi=wi_1+d_wi;%wi,输出层到隐层之间权值改变后的权值矩阵(5χ4) %Parameters Update du_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)

00625 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档