Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析.doc_第1页
Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析.doc_第2页
Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析.doc_第3页
Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析.doc_第4页
Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统辨识与MATLAB仿真附录第二部分程序注释及运行结果读者须知: 为了便于读者理解,现将光盘上第一部分可直接在MATLAB6.I下运行的MATLAB程序的编号和书本上的内容对应如下,每个程序题目括号内的file.m是对应书本上的内容在光盘上第一部分的程序编号。第二章的随机序列产生程序例2.1 用乘同余法产生随机数 (见光盘 FLch2sjxleg1.m)编程如下:A=6; N=100; %初始化;x0=1; M=255;for k=1:N %乘同余法递推100次; x2=A*x0; %x2和x0分别表示xi和xi-1; x1=mod (x2,M); %将x2存储器的数除以M,取余数放x1(xi)中; v1=x1/256; %将x1存储器的数除以256得到小于1的随机数放v1中; v(:,k)=v1; % 将v1中的数()存放在矩阵存储器v的第k列中,v(:,k)%表示行不变、列随递推循环次数变化; x0=x1; %xi-1= xi; v0=v1;end %递推100次结束;v2=v %该语句末无;,实现矩阵存储器v中随机数放在v2中,%且可直接显示在MATLAB的window中;k1=k;%grapher %以下是绘图程序;k=1:k1;plot(k,v,k,v,r);xlabel(k), ylabel(v);tktle(0-1)均匀分布的随机序列) 程序运行结果如图2.5所示。图2.5 采用MATLAB产生的(0,1)均匀分布的随机序列图 产生的(0-1)均匀分布的随机序列在程序运行结束后,产生的(0,1)均匀分布的随机序列,直接从MATLAB的window界面中copy出来如下(v2中每行存6个随机数): v2 = 0.0234 0.1406 0.8438 0.0820 0.4922 0.9609 0.7852 0.7266 0.3750 0.2578 0.5508 0.3164 0.9023 0.4336 0.6094 0.6680 0.0234 0.1406 0.8438 0.0820 0.4922 0.9609 0.7852 0.7266 0.3750 0.2578 0.5508 0.3164 0.9023 0.4336 0.6094 0.6680 0.0234 0.1406 0.8438 0.0820 0.4922 0.9609 0.7852 0.7266 0.3750 0.25780.5508 0.3164 0.9023 0.4336 0.6094 0.66800.0234 0.1406 0.8438 0.0820 0.4922 0.9609 0.7852 0.7266 0.3750 0.2578 0.5508 0.31640.9023 0.4336 0.6094 0.6680 0.0234 0.14060.8438 0.0820 0.4922 0.9609 0.7852 0.7266 0.3750 0.2578 0.5508 0.3164 0.9023 0.4336 0.6094 0.6680 0.0234 0.1406 0.8438 0.08200.4922 0.9609 0.7852 0.7266 0.3750 0.25780.5508 0.3164 0.9023 0.4336 0.6094 0.66800.0234 0.1406 0.8438 0.0820第二章的白噪声产生程序例2.2 用乘同余法产生(见光盘 FLch2bzsheg2.m) 编程如下:A=6; x0=1; M=255; f=2; N=100; %初始化;x0=1; M=255;for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示xi+1和xi-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(xi)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; v(:,k)=(v1-0.5 )*f; %将v1中的数()减去0.5再乘以存储器f中的系数,存放在矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环次数变化; x0=x1; % xi-1= xi; v0=v1;end %递推100次结束;v2=v %该语句后无;,实现矩阵存储器v中随机数放在v2中,且可直接显示在MATLAB的window中;k1=k;%grapher %以下是绘图程序;k=1:k1;plot(k,v,k,v,r);xlabel(k), ylabel(v);tktle( (-1,+1)均匀分布的白噪声) 程序运行结果如图2.6所示。图2.6 采用MATLAB产生的(-1,+1)均匀分布的白噪声序列 产生的(-1,1)均匀分布的白噪声序列在程序运行结束后,产生的(-1,1)均匀分布的白噪声序列,直接从MATLAB的window界面中copy出来如下(v2中每行存6个随机数):v2 = -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359*另外,书中图2.3白噪声的产生如下:显然,只要在例2.2程序的初始化部分中给N=300,f=6,运行程序就可以得到如图2.3所示的(-3,3)的白噪声过程.编程如下: A=6; x0=1; M=255; f=6; N=300; %初始化;x0=1; M=255;for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示xi+1和xi-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(xi)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; v(:,k)=(v1-0.5 )*f; %将v1中的数()减去0.5再乘以存储器f中的系数,存放在矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环次数变化; x0=x1; % xi-1= xi; v0=v1;end %递推100次结束;v2=v %该语句后无;,实现矩阵存储器v中随机数放在v2中,且可直接显示在MATLAB的window中;k1=k;%grapher %以下是绘图程序;k=1:k1;plot(k,v,k,v,r);xlabel(k), ylabel(v);tktle( (-1,+1)均匀分布的白噪声) 程序运行结果如图2.3所示。图2.3 白噪声过程第二章的M序列产生程序例2.3 用移位寄存器产生M序列的MATLAB软件实现(见光盘 FLch2bzsheg3.m) 编程如下: X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输出m=60; %置M序列总长度for i=1:m %1# Y4=X4; Y3=X3; Y2=X2; Y1=X1; X4=Y3; X3=Y2; X2=Y1; X1=xor(Y3,Y4); %异或运算 if Y4=0 U(i)=-1; else U(i)=Y4;end endM=U%绘图i1=ik=1:1:i1;plot(k,U,k,U,rx)xlabel(k)ylabel(M序列)title(移位寄存器产生的M序列) 程序运行结果如图2.8 所示。图2.8 软件实现的移位寄存器产生的M序列图. 四级移位寄存器产生的M序列M = Columns 1 through 10 -1 1 -1 1 1 1 1 -1 -1 -1 Columns 11 through 20 1 -1 -1 1 1 -1 1 -1 1 1 Columns 21 through 30 1 1 -1 -1 -1 1 -1 -1 1 1 Columns 31 through 40 -1 1 -1 1 1 1 1 -1 -1 -1 Columns 41 through 50 1 -1 -1 1 1 -1 1 -1 1 1 Columns 51 through 60 1 1 -1 -1 -1 1 -1 -1 1 1i1 = 60第五章的递推的极大似然法辨识程序例5.2系统模型如图5.5所示。试用递推的极大似然法对系统辨识的参数集 图5.5 例5.2系统模型u(k)+ e(k)y(k)+ z(k)v(k) u v(k)随机信号,输入信号为幅值为的M序列或随机信号,要求画出程序流程图,打印出程序(程序中带有注释)和辨识中的参数、误差曲线。解: 首先解释编程所用的部分字母:由于在MATLAB语言中无法用希腊字母描述、无法用上标及下标,故用 o和o1表示;令;产生M序列时,a(i),b(i),c(i),d(i)表示四级移位寄存器的第1,2,3,4级寄存器的输出; 编程如下(光盘上该程序:FLch5RMLeg2.m,可在MATLAB6.I下直接运行):编程如下:clear %清零a(1)=1;b(1)=0;c(1)=1;d(1)=0;u(1)=d(1);z(1)=0;z(2)=0; %初始化for i=2:1200 %产生m序列u(i) a(i)=xor(c(i-1),d(i-1); b(i)=a(i-1); c(i)=b(i-1); d(i)=c(i-1); u(i)=d(i);endu; %若取去;可以在程序运行中观测到m序列v=randn(1200,1); %产生正态分布随机数V=0; %计算噪声方差for i=1:1200 V=V+v(i)*v(i);endV1=V/1200; for k=3:1200 %根据v和u计算z z(k)=1.2*z(k-1)-0.6*z(k-2)+u(k-1)+0.5*u(k-2)+v(k)-v(k-1)+0.2*v(k-2);endo1=0.001*ones(6,1);p0=eye(6,6); %赋初值 zf(1)=0.1;zf(2)=0.1;vf(2)=0.1;vf(1)=0.1;uf(2)=0.1;uf(1)=0.1; %迭代计算参数值和误差值for k=3:1200 h=-z(k-1);-z(k-2);u(k-1);u(k-2);v(k-1);v(k-2); hf=h; K=p0*hf*inv(hf*p0*hf+1); p=eye(6,6)-K*hf*p0; v(k)=z(k)-h*o1; o=o1+K*v(k) ; p0=p; o1=o; a1(k)=o(1); a2(k)=o(2); b1(k)=o(3); b2(k)=o(4); d1(k)=o(5); d2(k)=o(6); e1(k)=abs(a1(k)+1.2); e2(k)=abs(a2(k)-0.6); e3(k)=abs(b1(k)-1.0); e4(k)=abs(b2(k)-0.5); e5(k)=abs(d1(k)+1.0); e6(k)=abs(d2(k)-0.2); zf(k)=z(k)-d1(k)*zf(k-1)-d2(k)*zf(k-2); uf(k)=u(k)-d1(k)*uf(k-1)-d2(k)*uf(k-2); vf(k)=v(k)-d1(k)*vf(k-1)-d2(k)*vf(k-2); hf=-zf(k-1);-zf(k-2);uf(k-1);uf(k-2);vf(k-1);vf(k-2); end o1 %若取去;可以在程序运行中观测到参数 V1 %绘图 subplot(4,1,1)k=1:1200;plot(k,a1,k:,k,a2,b,k,b1,r,k,b2,m:,k,d1,g,k,d2,k);xlabel(k)ylabel(parameter)legend(a1=-1.2,a2=0.6,b1=1.0,b2=0.5,d1=-1.0,d2=0.2); %图标炷title(The parameter idendification of the RML);endsubplot(4,1,2)k=1:1200;plot(k,e1,k,k,e2,b,k,e3,r,k,e4,m,k,e5,g,k,e6,k);xlabel(k)ylabel(error)%title(误差曲线)endsubplot(4,1,3)k=1:1200;plot(k,u);xlabel(k)ylabel(input)%title(系统输入信号)endsubplot(4,1,4)k=1:1200;plot(k,v);xlabel(k)ylabel(random noise)%title(系统所加的随机噪声)end 程序运行结果如图5.7 所示图5.7 RML辨识参数曲线第七章的用改进的神经网络MBP算法辨识 例7.1 对具有随机噪声的二阶系统的模型辨识(光盘上编号:FLch7NNeg1)对具有随机噪声的二阶系统的模型辨识,进行标幺化以后系统的参考模型差分方程为 (7.90)式中,为随机噪声。由于神经网络的输出最大为1,所以,被辨识的系统应先标幺化,这里标幺化系数为5。利用图7.5正向建模(并联辨识)结构,神经网络选用3-9-9-1型,即输入层i,隐层j包括2级,输出层k的节点个数分别为3、9、9、1个;由于神经网络的最大输出为1,因此在辨识前应对原系统参考模型标么化处理,辨识结束后再乘以标么化系数才是被辨识系统的辨识结果。1) 编程如下:%w10ij表示第一隐层权值,w11ij表示;w120ij表示第二隐层权值%, w121ij表示;w20j表示输出层权值,w21j表示%;q表示隐层阈值;p表示输出层阈值;置标幺化系数f1=5等w10ij=.01 .01 .02; .1 .11 .02; .01 0 .1; .11 .01 .02;.1 .1 .02; .11 .1 .1;.1 .1 .1;0 .1 .1;.1 0 .1; w11ij=.1 .2 .11; .02 .13 .04; .09 .08 .08; .09 .1 .06; .1 .11 .02; .06 0 .1;.1 .1 .1;0 .1 0;.1 .1 .1; w20j=.01;.02;.1;.2;.1;.1;.1;.1;.1; w21j=0; 0.1; .1; .02;0;.1;.1;.1;.1;q0j=.9 .8 .7 .6 .1 .2 .1 .1 .1; q120j=q0j;q11j=.5 .2 .3 .4 .1 .2 .1 .1 .1;q12j=q11j;w121ij=w20j*q0j;w120ij=w20j*q11j; f1=5;q2j=0; % threshold valuep0=.2;k1=1;p1=.3;w=0;xj=1 1 1; % inputs error=0.0001;a1=1 1 1 1;n=1;e1=0;e0=0;e2=0;e3=0;e4=0;yo=0;ya=0;yb=0;y0=0;y1=0;y2=0;y3=0;u=0;u1=0;u2=0.68;u3=.780;u4=u3-u2;k1=1;kn=28;e3=.055; z1=0;z12=0; q123j=0; t2j=0; o12j=0;r=0;r1=0; s=0.1;d2j=0;%+% calculating output of the hidden layer v1=randn(40,1);for m=1:40 s1=0.1*v1(m) yn=.3366*y2+.6634*u1+s*s1;y1=y2;y2=yn; yp=yn;u0=u1;u1=u2; ya(m)=yn; for k=1:100% calculating output of the hidden layer(1) for i=1:9 x1=w11ij(i,1)*xj(:,1)+w11ij(i,2)*xj(:,2)+w11ij(i,3)*xj(:,3); x=x1+q11j(:,i); o=1/1+exp(-x); o11j(i)=o; end% calculating output of the hidden layer(2) for i=1:9 for j=1:9 z1=z1+w121ij(i,j)*o11j(:,j); end z=z1+q12j(:,i); o=1/1+exp(-x); o12j(i)=o; end % calculating output of the output layer for i=1:9 yb=yb+w21j(i,:)*o12j(:,i); end yi=yb+p1; y=1/1+exp(-yi); % calculating error value between aim and practice value e0=e1; e1=e2; e2=(yp-y).2/2; e(k)=e2; xj1=e2; xj2=e1; xj3=e0; xj=xj1 xj2 xj3; % revising right value (1) for i=1:9 d1=o11j(:,i)*1-o11j(:,i)*d2j*w21j(i,:);%计算第1隐层误差反传信号 do=o11j(:,i)*d1; qw=q11j(:,i)-q0j(:,i); q2j=q11j(:,i)+.8*do+.4*qw; q3j(:,i)=q2j; for j=1:3 dw=w11ij(i,j)-w10ij(i,j); w12ij=w11ij(i,j)+.8*do*xj(j)+.6*dw; w13ij(i,j)=w12ij; end end w10ij=w11ij; w11ij=w13ij; q0j=q11j; q11j=q3j;% revising right value (2) for i=1:9 d1=o12j(:,i)*1-o12j(:,i)*d2j*w21j(i,:);%计算第2隐层误差反传信号 do=o12j(:,i)*d1; qw=q12j(:,i)-q120j(:,i); t2j=q12j(:,i)+.8*do+.4*qw; q123j(:,i)=t2j; for j=1:9 dw=w121ij(i,j)-w120ij(i,j); w122ij=w121ij(i,j)+.8*do*o11j(j)+.6*dw; w123ij(i,j)=w122ij; end end w120ij=w121ij; w121ij=w123ij; q120j=q12j; q12j=q123j;% revising right value (3) if m4, r=0.2; r1=0.0001 ;elser=0.14; r1=0.005;end for i=1:9 d2j=y*(1-y)*(yp-y);%计算输出误差反传信号 dw=w21j(i,:)-w20j(i,:); w22j=w21j(i,:)+r*d2j*o12j(i)+.4*dw+r1*e2; w23j(i,:)=w22j; end w20j=w21j; w21j=w23j; ph=p1-p0; p2=p1+.96*(yp-y)+.58*ph+r1*e2; p0=p1; p1=p2; u=y; % k=k+1;if e2=.005 break;else end end ya(m)=yp*f1; e3(m)=e2; ym(m)=y*f1; v(m)=s1;% m=m+1m6=mend w11ij=w13ij w121ij=w123ij w21j=w23jm1=m; % grapher subplot(3,1,1) m=1:m6; plot(m,ya,m,ym,rx), title(Identified model by MBP algorithm),xlabel(k),ylabel(ya and ym) legend(ya is system,ym is identified model); %图标炷 end subplot(3,1,2) m=1:m6; plot(m,e3),xlabel(k),ylabel(error)end subplot(3,1,3) m=1:m6;plot(m,v),xlabel(k),ylabel(random noise)end2) 辨识结果图7.12 MBP算法对具有随机噪声的二阶系统辨识结果3) 各层权值w11ij = w21j = 0.2352 0.4855 0.2456 -0.0589 -0.1009 0.1585 0.0690 0.1011 0.2093 0.1989 0.0494 0.0478 0.0607 0.2364 0.1214 -0.1522 0.1005 0.1261 0.0211 -0.1189 -0.0157 -0.1511 0.0994 0.0478 0.0993 0.0989 0.0994 0.0478 -0.0007 0.0989 -0.1506 0.0478 0.0993 0.2489 0.0994 0.0478w121ij = 0.0165 0.0182 0.0143 0.0104 0.0023 0.0033 0.0023 0.0023 0.0023 0.0248 0.0298 0.0213 0.0129 -0.0026 -0.0008 -0.0026 -0.0026 -0.0027 0.1466 0.1672 0.1269 0.0866 0.0069 0.0168 0.0069 0.0070 0.0069 0.3043 0.3434 0.2638 0.1842 0.0238 0.0439 0.0238 0.0237 0.0238 0.1535 0.1728 0.1331 0.0934 0.0131 0.0231 0.0131 0.0130 0.0131 0.1466 0.1672 0.1269 0.0866 0.0069 0.0168 0.0069 0.0070 0.0069 0.1466 0.1672 0.1269 0.0866 0.0069 0.0168 0.0069 0.0070 0.0069 0.1466 0.1672 0.1269 0.0866 0.0069 0.0168 0.0069 0.0070 0.0069 0.1466 0.1672 0.1269 0.0866 0.0069 0.0168 0.0069 0.0070 0.0069第七章的多维非线性辨识的MATLAB程序例7.2用神经网络学习二维非线性函数(光盘上编号:FLch7NNeg2)%初始化:w10ij表示wij(k-2);w11ij表示wij(k-1);w20j表示wjk(k-2); w21j表示 wjk(k-1);q和p为阈值w10ij=.01 .01 .02; .01 .01 .02; .01 0 .01; .001 .001 .002;.001 0 .002; .0011 .001 .001 ; w11ij=-.1 -.02 .11; -.21 .10 -.19; -.14 .15 -.16; .14 -.13 .17; -.13 .12 .21; -.16 -.23 .13; w20j=.01;.02;.1;.2;.1;.1; w21j=.18;.9;.9;.7;.8;.9; q0j=.5 .8 .4 .6 .1 .2 ; q1j=-.1 .02 .12 .14 -.02 .02; q2j=0; % threshold valuep0=.2;k1=1;p1=.1;w23j=0;0;0;0;0;0;w22j=0;w=0;xj=0.5 0.3 0.2; % inputs ya=0 0 0; yp=0; yy=0; m1=0;yam=0;yp1=0; qw=0; yo=0 0 0; ya1=0;error=0.0001;n=1; q=0;e1=0;e0=0;e2=0;e3=0;e4=0;yo=0;ya=0;yb=0;y0=0;y1=0;y2=0;y3=0;u=0;u1=0;u2=0;k1=1;w0=1;kn=28;dj2=0.01;e3=.0055; a1=0.036; a2=0.036; a3=0.08;w0=1;dj2=0.01;%+初始化结束for m=1:36 for n=1:36 q=pi*0.05*m;p=pi*0.02*n;yn=cos(2*q+2*p)*sin(2*p); yzs=0.1*yn; %xj=0.4+yzs 0.3 0.2; %协调器使网络的输入随样本动态变化 yp=yn; for k=1:6 % calculating output of the hidden layer for i=1:6 x1=w11ij(i,1)*xj(:,1)+w11ij(i,2)*xj(:,2)+w11ij(i,3)*xj(:,3); x=x1+q1j(:,i); o=tanh(x); o1j(i)=o; end % calculating output of the output layer for i=1:3 yb=yb+w21j(i,:)*o1j(:,i); end yi=yb+p1; y=tanh(yi); % calculating error value between aim and practice value e0=e1; e1=e2; e2=(yp-y).2/2; % revising right value for i=1:6 d1=1-o1j(:,i)*dj2*w23j(i,:);%计算隐层误差反传信号 do=o1j(:,i)*d1; q3j(:,i)=q1j(i); for j=1:3 dw=w11ij(i,j)-w10ij(i,j); if e20.004, a1=0;a2=0;a3=0; else, a1=0.022; a2=0.03;a3=0.003;end; w12ij=w11ij(i,j)+a1*do*xj(j)+a2*dw+a3*w; w13ij(i,j)=w12ij; end end w10ij=w11ij; w11ij=w13ij; q0j=q1j; q1j=q3j; w=yp-y; w0=w; w=0.36*w0+(yp-y); %计算积累误差w if e20.004, w=0.78*w; end for i=1:6 d2j=y*(1-y)*(yp-y);%计算输出层误差反传信号 dw=w21j(i,:)-w20j(i,:); w22j=w21j(i,:)+0.132*d2j*o1j(i)+0.26*dw;+0.026*w; w23j(i,:)=w22j; end w20j=w21j; w21j=w23j; ph=p1-p0; p2=p1+.3*(yp-y)+.102*ph; p0=p1; p1=p2; if e2=0.005 break; else end % 判断误差end %对样本的一次采样值训练k次结束ypp(m,n)=yn; %存储二维非线性样本yom(m,n)=y; %存储神经网络辨识结果e3(m,n)=e2; %存储训练误差end %变量n训练结束m2=mend %变量m训练结束w11ij=w13ij %句末无“;”,可直接在MATLAB主界面下观察隐层权值w21j=w23j %可直接在MATLAB主界面下观察输出层权值%graphersubplot(2,2,1);%plot3(m,n,ypp); %也可用此语句绘制样本的三维图mesh(ypp) %绘制样本的三维图xlabel(m),ylabel(n),zlabel(ypp), %三维坐标title(Identified model by inp. algorithm), %图题subplot(2,2,2); mesh(yom)xlabel(m),ylabel(n),zlabel(yom);subplot(2,1,2); mesh(e3)xlabel(m),ylabel(n),zlabel(e3);3) 辨识结果图7.13 对二维非线性函数的辨识结果3)结论在程序设计和调试过程中,注意以下技巧:只要在程序中增加类似m或n的循环语句,便可用神经网对三维或三维以上的非线形函数训练,也可以用在复杂系统二个以上独立变量、任意维非线性动态参数的辨识。程序中除了for,end,else和mesh语句外,一般应在语句末加分号。程序在m2=m,w11ij=w13ij和 w21j=w23j不要加分号,目的有二个,一是用m2=m动态的显示程序执行的状态及程序每次循环所花的时间;二是在程序运行结束显示隐层和输出层的权值:w11ij = w21j = -0.0091 0.0758 0.2083 0.8293 -0.1206 0.1949 -0.0924 1.5274 -0.0159 0.2657 -0.0485 0.3184 0.2347 -0.0319 0.2698 -0.9167 -0.0142 0.2308 0.3182 0.6995 -0.0755 -0.1381 0.2257 1.5786调整修正因子和 ,直到方差最小,收敛时间最短为止。一旦修正因子、循环次数m和n确定,调整第三层内循环k的次数,可以明显地改变训练精度和程序运行速度,k=20,最大方差e3max=0.01,程序运行时间ts=14s; k=6,e3max=0.032,ts=12s; k=3,e3max=0.08,ts=10s; k=2,e3=0.22,ts=9s. 程序中,语句: “if e20.05, a1=0;a2=0;a3=0; else, a1=0.02; a2=0.05; a3=0.005; end;” %协调器根据训练误差动态变化学习因子,如果在这条语句前加“%”(即不要这条语句),训练误差将参加一倍多。这种改进BP网络比一般的BP网络在m,n,k相同的情况下平均收敛速度约提高两秒,且训练精度明显提高。第七章的模糊神经网络解耦MATLAB程序例7.3 用隶属函数型神经网与模糊控制融合的解耦程序(FLch7FNNeg3.m)具有耦合的两个相邻子系统的差分方程为 (7.122)式中,随机噪声;为两个相邻子系统之间的耦合;采用隶属函数型神经网与模糊控制融合的解耦方法(DMFFCNN)方法实现解耦控制。1) 开发的程序p1=0.5;q1=0.5;p2=0.5;q2=0.5;p3=0.5;q3=0.5;p4=0.95;q4=0.5;p5=0.95;q5=0.5;p6=0.95;q6=0.5;p7=0.5;q7=0.5;p8=0.95;q8=0.5;p9=0.5;q9=0.5;p10=0.95;q10=0.5;p11=0.95;q11=0.5;p12=0.95;q12=0.5;p13=0.65;q13=0.05;%隶属函数型神经网的中心值、尺度因子和权向量初始化部分a10=-2 0 2;a11=-2 0 2;a20=-2 0 2;a21=-2 0 2;b10=1.5 1.5 1.5;b11=1.5 1.5 1.5;b20=1.5 1.5 1.5;b21=1.5 1.5 1.5;v0=-1 -0.5 -0.5;-0.5 0 0.5;0.5 0.5 1;v1=-1 -0.5 -0.5;-0.5 0 0.5;0.5 0.5 1;%系统部分的初值yp0=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论