|
就可进行网络的自学习过程来训练出网络每层的权值与阈值。使用random阵列来产生网络的初始权值与阈值。为了避免神经网络过训练我们采用交互检验法:即将我们数据库中的实测数据分为训练集、检验集和测试集。首先用训练集训练网络,依照BP算法调整网络结构和参数;然后用检验集检验训练好的网络,进一步优化网络结构和参数,最终确定训练网络中最佳的一个;最后用测试集对未知样本进行测试并检验网络的计算精度。下面是学习及预测过程的m语言实现:
Matrix=zeros(30,width);
NeuralI=100;
InData=zeros(NeuralI,6);
GoalData=zeros(6,6);
Neuralo=6;
[R,Q]=size(InData);
[S2,Q]=size(GoalData);
S1=6;
[w1 b1]=rands(S1,R);
[w2 b2]=rands(S2,S1);
max_epoch =400; % 最大训练步数
err_goal =0.01; % 训练目标
lr=0.01; % 学习速率
NNTWARN OFF
for j=1:width
P=PingMeiWaterBase(j,1:end);
simdata=P(end-NeuralI+1-31+x:end-31+x)'';
for i=1:Neuralo
InData(:,i)=P(end-NeuralI-Neuralo-1+i:end-Neuralo-2+i)'';
GoalData(:,i)=P(end-2*Neuralo+i:end-Neuralo-1+i)'';
end
for i=1:max_epoch
A1=tansig(w1*Indata,b1);
A2=purelin(w2*A1,b2);
error= GoalData -A2;
D2=deltalin(A2,error);
D1=deltatan(A1,D2);
[dw1,db1]=learnbp(Indata,D1,lr);
[dw2,db2]=learnbp(A1,D2,lr);
undefined
undefined
if sumsqr(error)<goal
break;
end
end
temp=purelin(w2*tansig(w1*simdata+b1)+b2)'';
result(j)=temp(end);
end
4 预测值与实际值的比较

5 比较结果的分析和水质二次污染原因的寻求
从以上比较可以看出,预测值与实测值还是存在一定的误差,这就说明出厂水在管道的传输过程中存在着使水质变化的因素,下面是引起这种变化的原因:水在输水管网流动过程中,一方面其中的一些化合物分解后与管材发生化学作用,另一方面水中残存的细菌还可能再繁殖,形成管内腐蚀、沉淀及结垢等情况。
(1) 形成管道结垢的主要原因有:水对金属管道内壁的侵蚀,造成化学腐蚀和电化学腐蚀,产生氢氧化物沉积于管内,是管道表面形成凹凸不平的沉淀;水中的钙镁离子和碳酸根离子化和形成CaCO3和Mg(OH)2难溶于水而形成水垢沉渣;水中以重碳酸盐形式存在的铁,经水中溶解氧的作用,转为絮状沉淀的氢氧化铁而沉淀在管内底部;管道内的生物性堵塞,特别是铁细菌在生存过程中能吸收亚铁盐和排出氢氧化铁形成凸起物,硫酸盐还原菌将硫酸盐还原成硫化物,从而加快了管道的腐蚀结垢速度;水中悬浮物特别是直接向管网输水的井水,往往使井中的粉砂、细沙随水流带入管内,尤其是生物的聚积性黏附性能,使这些悬浮无机物很容易在管道内沉积。资料表明,这种管道结垢层的厚度会随时间的延续不断的增加,使管道有效截面积逐渐缩小;同时也提供了很好的细菌孽生场所,微生物附着生长从而形成“生物膜”(也 称“生长环”)。美国在管道生物膜中检出28种细菌[3]。因此管内结垢层既影响水质,又影响管道的输水能力。
(2) 管道及附属设备受到污染:管道在穿越已污染的地下水或污水的地段若出现管道穿孔、闸门渗漏、接口漏水等问题未得到及时修复,一旦施压或停水,污水就可能流入馆内,引起污染。管道上的冲洗排水闸接口低于河水位或接至下水管道中,若闸门关闭不严, |