还剩2页未读,继续阅读
文本内容:
人工神经网络实验指导书实验目的应用神经网络实现非线性对象控制BP实验工具计算机,Matlab实验要求、建立被控对象模型;
1、实现被控对象的控制;2PID、实现被控对象的神经网络控制;3BP、对比控制与神经网络控制的效果4PID BP、撰写实验报告5实验原理、被控对象的数学模型为:1+
0.9%_+
0.01其中:yk—被控对象输出Uk—控制量A一采样时刻或当前时刻
2、控制方案图1神经网络控制方案采取的控制方案如图1所示在该控制方案中,神经网络控制器输入为当前时刻偏差/,输出为欣PID控制器输入为当前时刻偏差以,输出为沏公神经网络的学习目标为:其中以为最终输出的控制量,以=〃欣+%水结合上述两个公式可知E--u\k人2K神经网络控制器学习的目标是使PID的控制输出为0,从而达到最终用神经网络控制器取代PID控制器的目的实验内容
1、实现被控对象的PID控制,观察控制曲线;
2、基于实验程序框架,按照控制方案编制BP神经网络控制控制算法,实现被控对象的BP神经网络控制;
3、观察BP神经网络控制曲线,并对比PID控制与BP神经网络控制的效果
4、完成实验报告撰写⑴实验程序框架说明clear;%PID及被控对象参数设置,实验时不需要修改P=
0.1;TI=10;TD=0;T=
0.l;%采样周期,与延迟时间相同q0=P*1+T/TI+TD/T;ql=-P*1+2*TD/T;q2=P*TD/T;yk=O;yk_l=0;yk_2=0;ek=0;ek_l=0;ek_2=0;rk=2;u_pid=0;u_t=0;%在下面进行BP神经网络参数设置INPUTDIM=1;OUTPUTDIM=1;HIDDENDIM=1;WlH=
0.5*randHlDDENDIM,lNPUTDIM-
0.5;WHO=
0.5*randOUTPUTDIM,HIDDENDIM-
0.5;h=animatedline;k=0;%在循环体内调用各个模块while1%调用被控对象[yk,yk_l,yk_2]=Controled_Objectu_t,yk,yk_l,yk_2;%计算偏差ek=rk-yk;%执行PID控制算法,获得u_pid[u_pid,ek,ek_l,ek_2]=PIDu_t,ek,ek_l,ek_2,q0,q1,q2;%计算Eke_nn=u_pid;%执行NN控制算法,获得u_nnlu_nn,WIH,WHOJ=NN_controlWIH,WHO,e_nn,ek;%计算总控制量u_t=u_nn+u_pid;%控制量限幅,不需要修改if u_t2u_t=2;elseif u_t-2u_t=-2;end%绘图addpointsh,k,yk;k=k+T;drawnowpauseO.l;%延时T秒,T为采样周期end%在下面编写神经网络控制器function[u_nn,WIH,WHO]=NN_controlWIH,WHO,e_nn,ekH_out=tanhWIH*ek;WIH=WIH+
0.005*e_nn*WHO.*1-H_out.A2*ek;WHO=WHQ+
0.005*e_nn*H_ouf;H_out=tanhWIH*ek;u_nn=WHO*H_out;end%被控对象模型,实验时不需要修改function[yk,yk_l,yk_2]=Controled_Objectuk,yk,yk_l,yk_2yk=
0.2*uk*uk*yk_l/1+2*yk_l+
0.9*yk_2+
0.01;yk_2=yk_l;yk」=yk;end%PID算法,实验时不需要修改function[uk,ek,ek_l,ek_2]=PIDuk,ek,ek_l,ek_2,qO,ql,q2uk=uk+ql*ek+ql*ek_l+q2*ek_2;ek_2=ek_l;ek_l=ek;end实验曲线对比2红色曲线为未用BP神经网络的控制曲线,黑色曲线为使用BP神经网络的曲线可以清楚的看到加入BP神经网络后控制性能参数有一定的提高。