您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于遗传算法BP网络优化
班级:控制5班学号:2111504213姓名:张睿设计一个BP神经网络监督控制系统,被控对象为:321000()s87.35s10470Gss采样时间1ms,输入信号为方波信号,幅值0.5,频率2hz。设计一个BP神经网络监督控制系统,并采用遗传算法进行BP神经网络参数及权值的优化设计,并进行matlab仿真。需要说明控制系统结构,遗传算法优化BP网络的具体步骤,并对仿真结果做出分析。解决过程及思路如下:1BP网络算法以第p个样本为例,用于训练的BP网络结构如图1所示。图1具有一个隐含层和输出层的BP神经网络结构网络的学习算法如下:(1)信息的正向传播隐含层神经元的输入为所有输入加权之和,jijiixwx隐层神经元的输出'jx采用S函数激发jx,则'1()1jjjxxfxe'''(1)jjjjxxxx…...…...…..……ijk输入层隐含层输出层………ijwjkwxkjx'jx输出层的神经元输出为'kjkjjxwx网络输出与理想输出误差为0()kkekxx误差性能指标函数为211()2NpkEek上式的N表示网络输出层的个数。(2)利用梯度下降法调整各层间权值的反向传播对从第j个输入到第k个输出的权值有:'11()NNpkjkkjkkjkjkExweekxww其中,为学习速率,0,1。K+1时刻网络权值为(1)()jkjkjkwkwkw对从第i个输入到第j个输出的权值有:1NpkijkkijijExweww式中,''''(1)jjkkjkjjiijjjijxxxxwxxxwxxwt+1时刻网络权值为(1)()ijijijwkwkw2.BP网络的监督控制系统结构设计的BP网络监督控制系统结构如图2所示。图2BP神经网络监督控制在BP网络结构中,取网络的输入为r(k),实际输出为y(k),PID控制输出为up(k),隐层神经元的输出采用S函数激发,'1()1jjjxxfxe网络的权向量为W1,W2BP的网络输出为控制律为u(k)=up(k)+yn(k)采用梯度下降法调整网络的权值为神经网络权值的调整过程为3.遗传算法对BP网络权值的优化过程(1)取逼近总步骤为:N=100(2)终止代数:G=80(3)样本个数:Size=30(4)交叉概率:Pc=0.70(5)二进制编码长度:Godel=10(6)变异概率:Pm=0.001-[1:1:Size]*0.001/Size(7)用于优化的BP网络结构为:1-4-1i=1j=1,2,3,4(8)网络权值W1的取值范围为:[-1,+1](9)网络权值W2的取值范围为:[-0.5,+0.5](10)取BP网络误差绝对值为参数选择的最小目标函数:jjjxw'2kyn)('222)()(jjkjjxkewxkewEwijnijijwykewEw)())1()(()()1(22222kwkwwkwkwjjjjj))1()(()()1(kwkwwkwkwijijijijij式中,N为逼近的总步骤,ee(i)为第i步BP网络逼近误差。(11)需要优化参数为:],,,,,,,,,,,[p232221201716151413121110j4遗传算法优化BP网络权值的步骤(1)初始化种群;(2)计算其适应值,保留最优个体,判断是否达到最优解;(3)交叉、变异产生新个体;(4)重新计算种群中每个个体的适应值并保留最优个体;(5)交叉、变异前后的种群放在一起进行二人竞赛选择法,直到填满新的种群;(6)转2)直到找到最优解BestJ。5MATLAB仿真结果BP监督网络遗传算法优化程序包括3部分,即遗传算法优化程序ga_bp.m,BP网络逼近函数程序bp_a和BP网络逼近测试程序bp_test。输入信号为r(t)=0.5*sign(sin(2*2*pi*k*ts)采样时间ts=0.001s,η=0.30,a=0.05,kp=1,kd=1.经遗传算法优化后,对象p的值为P=[-0.2160,0.7576,0.5230,0.9863,-0.0714,0.2551,0.6911,-0.3627,0.2146,0.3338,-0.0875,-0.0582]仿真结果图:01020304050607080790800810820830840850860870880890TimesBestJ图3代价函数J的优化过程00.10.20.30.40.50.60.70.80.91-0.8-0.6-0.4-0.200.20.40.6time(s)randy图4方波位置跟踪00.10.20.30.40.50.60.70.80.91-10010time(s)yn00.10.20.30.40.50.60.70.80.91-50050time(s)up00.10.20.30.40.50.60.70.80.91-10010time(s)u00.10.20.30.40.50.60.70.80.91-101time(s)error图5BP网络,PD及总控制器输出的比较以及误差曲线结论:采用遗专算法可以实现BP网络参数初始值的优化,节约计算量。并由仿真结果可知,其误差大部分趋于0,但局部有三个地区的误差比较大,产生原因可能与遗传算法的运行参数有关。代码:1、bp_a.mfunction[p,BsJ]=rbf_gaf(p,BsJ)ts=0.001;alfa=0.05;xite=0.30;sys=tf(1000,[1,87.35,10470]);dsys=c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');y_1=0;y_2=0;u_1=0;u_2=0;e_1=0;xi=0;x=[0,0]';I=[0,0,0,0]';Iout=[0,0,0,0]';FI=[0,0,0,0]';kp=25;kd=0.3;w1=[p(1),p(2),p(3),p(4);p(5),p(6),p(7),p(8)];w1_1=w1;w1_2=w1;w2=[p(9);p(10);p(11);p(12)];w2_1=w2;w2_2=w2_1;fork=1:1:1000timef(k)=k*ts;Y=1;ifY==1r(k)=0.5*sign(sin(2*2*pi*k*ts));%SquareSignalelseifY==2r(k)=0.5*(sin(3*2*pi*k*ts));%SquareSignalendy(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;e(k)=r(k)-y(k);xi=r(k);forj=1:1:4I(j)=x'*w1(:,j);Iout(j)=1/(1+exp(-I(j)));endyn(k)=w2'*Iout;%OutputofNNInetworks%PDControllerup(k)=kp*x(1)+kd*x(2);M=2;ifM==1%OnlyUsingPIDControlu(k)=up(k);elseifM==2%Totalcontroloutputu(k)=up(k)+yn(k);endifu(k)=10u(k)=10;endifu(k)=-10u(k)=-10;endifk==400u(k)=u(k)+5.0;end%UpdateNNWeightee(k)=u(k)-yn(k);w2=w2_1+(xite*ee(k))*Iout+alfa*(w2_1-w2_2);forj=1:1:4FI(j)=exp(-I(j))/(1+exp(-I(j)))^2;enddw1=0*w1;fori=1:1:2forj=1:1:4dw1(i,j)=ee(k)*xite*FI(j)*w2(j)*x(i);endendw1=w1_1+dw1+alfa*(w1_1-w1_2);w1_2=w1_1;w1_1=w1;w2_2=w2_1;w2_1=w2;u_2=u_1;u_1=u(k);y_2=y_1;y_1=y(k);x(1)=e(k);%CalculatingPx(2)=(e(k)-e_1)/0.05;%CalculatingDe_1=e(k);endB=0;fori=1:1:100Ji(i)=abs(ee(i));B=B+50*Ji(i);endBsJ=B;2、bp_test.mclearall;closeall;loadpfile;ts=0.001;alfa=0.05;xite=0.30;kp=25;kd=0.3;sys=tf(1000,[1,87.35,10470]);dsys=c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');N=1;ifN==1w1=[p(1),p(2),p(3),p(4);p(5),p(6),p(7),p(8)];w2=[p(9);p(10);p(11);p(12)];elseifN==2w1=rand(2,4);w2=rand(1,4);endendw1_1=w1;w1_2=w1;w2_1=w2;w2_2=w2_1;y_1=0;y_2=0;u_1=0;u_2=0;e_1=0;x=[0,0]';I=[0,0,0,0]';Iout=[0,0,0,0]';FI=[0,0,0,0]';ts=0.001;fork=1:1:1000time(k)=k*ts;Y=1;ifY==1r(k)=0.5*sign(sin(2*2*pi*k*ts));%SquareSignalelseifY==2r(k)=0.5*(sin(3*2*pi*k*ts));%SquareSignalendy(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;e(k)=r(k)-y(k);forj=1:1:4I(j)=x'*w1(:,j);Iout(j)=1/(1+exp(-I(j)));endyn(k)=w2'*Iout;%OutputofNNInetworks%PDControllerup(k)=kp*x(1)+kd*x(2);M=2;ifM==1%OnlyUsingPIDControlu(k)=up(k);elseifM==2%Totalcontroloutputu(k)=up(k)+yn(k);endifu(k)=10u(k)=10;endifu(k)=-10u(k)=-10;endifk==400u(k)=u(k)+6.0;end%UpdateNNWeightee(k)=u(k)-yn(k);w2=w2_1+(xite*ee(k))*Iout+alfa*(w2_1-w2_2);forj=1:1:4FI(j)=exp(-I(j))/(1+exp(-I(j)))^2;enddw1=0*w1;fori=1:1:2forj=1:1:4dw1(i,j)=ee(k)*xite*FI(j)*w2(j)*x(i);endendw1=w1_1+dw1+alfa*(w1_1-w1_2);w1_2=w1_1;w1_1=w1;w2_2=w2_1;w2_1=w2;u_2=u_1;u_1=u(k);y_2=y_1;y_1=y(k);x(1)=e(k);%CalculatingPx(2)=(e(k)-e_1)/0.05;%CalculatingDe_1=e(k);endfigure(1);plot(time,r,'r',time,y,'b');xlabel('time(s)');ylabel('randy');figure(2);subplot(411);plot(time,yn,'b');xlabel('time(s)');ylabel('yn');subplot(412);plot(time,up,'k');xlabel('time(s)
本文标题:基于遗传算法BP网络优化
链接地址:https://www.777doc.com/doc-2537410 .html