|
- p=[25 25 25; 12.5 12.5 12.5;;2 2 2;3 3 3;375 375 375;835 835 835;1000 1000 1000;3.2 3.2 3.2;0.8 0.8 0.8;600 546 628;127 81 104;26.3 25 22.2]
- t=[0.35 0.38 0.42;15.7 18.8; 20;3.8 4 4.5]
- p1=[25;12.5;2;3;375;835;1000;3.2;0.8;592;95;20.5]
- [pc,minp,maxp]=premnmx(pl) % p1为选取的一组测试数据
- [pn,minp,maxp]=premnmx(p) % 输入数据归一化处理
- [tn,mint,maxt]=premnmx(t) % 目标数据归一化处理
- net=newff([minmax(pn)], [ 13,3 ], {'tansig','purelin' },'trainlm','learngdm') %建立一个前向的BP 网络,其中隐含层数为13层,输出层为3层
- net.trainparam.epochs=10000 % 设定训练次数
- net.trainparam.goal=0.0001 % 网络的训练目标误差
- net.trainparam.lr=0.01 % 设定学习速率
- net.trainparam.max_fail=5 % 最大验证失败次数
- net.trainparam.mu=0.005 % Marquart调整参数
- net.trainparam.mu_dec=0.1 % mu的下降因子
- net.trainparam.mu_inc=10 % mu的上升因子
- net.trainparam.mu_max= 1e+10 % mu的最大值
- net.trainparam.mem_reduc=2 % 权衡计算可比矩阵时占用的内存和计算速度
- net.trainparam.min_grad=1 e-2 % 性能函数的最小梯度
- net.trainparam.show=25 % 两次显示时间的间隔
- net.trainparam.time=inf % 最长训练时间
- an=train(net,pn,tn) % 训练网络模型
- save filename net % 选择误差小的保存网络
- load filename net % 调用
- an=sim(net,pc) % 测试
- a=postmnmx(an,mint,maxt) % 反归一化
复制代码 参考:基于神经网络_PID的水泥回转窑温度控制研究_楚万文,2009年,P88页
|
|