资源描述:
《基于神经网络的模糊控制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于神经网络的仿真实验一、实验目的1.熟悉神经网络的结构、特征及学习算法2.通过实验掌握利用祌经网络进行样本学习与训练的方法。3.通过实验了解神经网络的结构、权值、学习速率、动量因子对控制效果的影响。4.通过实验掌握用Matlab实现祌经W络控制系统仿真的方法二、实验内容1.给出仿真系统的设计过程和程序淸单。2.记录实验数据和曲线三、实验步骤1.在Matlab下依据原理编写仿真程序并调试。2.给定输入信号,或训练样本,运行程序,记录实验数据和控制曲线3.修改神经网络结构参数,如权值、学习速率、动量因子、隐含层神经元个数等,重复
2、步骤(2)四、实验要求1.使用BP网络逼近对象:咐-1)l+y(々-l)2t<0.55采样时间取2ms,输入信号为u(k)=2Sin(10irt),神经网络为3-10-2结构,权值Wl,W2的初始取值取[-1,+1]之间的随机值,取n=0.80,a=0.06。2.取标准样本为3输入2输出样本,如表所示。输入输出101101100111100100100010101000神经网络为3-12-2结构,权值的初始取值取[_1,+1]之间的随机值,取n=0.70,a=0.05,训练最绛
3、杨-为。3.被控对象为y(k)=0.368),(
4、々一1)+0.26y(k—2)+0.1⑽一1)+0.63W-2)输入指令为一方波信号:rin(k)=0.8sgn(sin(4;rz)),采样吋间为1ms,=0.60,采用有监督Ilebb学习实现权值的学习,初始权值取W=[wlw2w3]=[0.150.150.15],/C=0.2五、实验程序1.clearall;closeall;xite=0.80;alfa=0.06;w2=rands(6,l);清除所有文件;关闭所有己开文件;惯性系数为0.8;学习速率为0.06;初始化隐含层与输出层6行1列的权值矩阵;初始化输入层与隐含层;
5、给神经元的输入层的节点赋值;初始化;采样时间为2ms;第k个采样时间;第k个采样吋间输入信号;w2_l=w2;w2_2=w2一1;wl=rands(2,6);wl_l=wl;wl_2=wl;dwl=O*wl;x=[0,0]’;u_l=O;y_i=O;i=[o,o,o,o,o,or;lout=[0,0,0,0,0,0]’;FI=[0,0,0,0,0,0]*;ts=0.002;fork=1:1:1000time(k)=k*ts;u(k)=2*sin(10*pi*ts);y(k)=u_P3+y_l/(l+y_lA2);第k个采样时间
6、输入信号;forj=l:l:6I(j)=x,*wl(:,j);Iout(j)=1/(1+exp(-I(j)));隐含层输出;endyn(k)=w2'*Iout;输出层输出=隐含层与输出层之间连接数*隐含层输出;e(k)=y(k)-yn(k);w2=w2_l+(xite*e(k))*Iout+alfa*(w2_1-w2_2);隐含层与输出层之间的权值调整公式;forj=1:l:6FI(j)=exp(-I(j))/(l+exp(-ia)))A2;endfori=1:1:2forj=l:l:6dwl(i,j)=e(k)*xite*F
7、l(j)*w2(j)*x(i);输入层与隐含层之间的权值变化公式;endendw1=w1_1+dw1+alfa*(w1_1-w1_2);输入层与隐含层之间的权值调整公式;yu=0;forj=l:l:6yu=yu+w2(j)*w1(1,j)*FI(j);enddyu(k)=yu;x⑴=u(k);x(2)=y⑻;wl_2=wl_l;wl_l+wl;w2_2=w2_l;w2_l=w2;u_l=u(k);y_l=y(k);endfigure(l);plot(time,y,’r’,time,yn,'b’);両图;xlabel(’time
8、s’);ylabel(’yandyn’);figure(2);plot(time,y-yn/r’);xlabel('times,);ylabel(,error,);figure(3);plot(time,dyu);xlabel(’times’);ylabel(’dyu’);0.350.30.250.20.150.10.050O0.10.20.30.40.50.60.70.80.9times-0.050.60.40.20-0.2-0.4-0.600.10.20.30.40.50.60.70.80.912.clearall;clo
9、seall;xite=0.50;alfa=0.05;w2=rands(6,2);w2_l=w2;w2_2=w2_l;wl=rands(3,6);wl_l=wl;wl_2=wl;dwl=0*wl;i=[o,o,o,o,o,or;lout=[0,0,0,0,0,0r;fi=[o,