3 预测管网水质参数的BP网络
BP网络可以用于模式识别,即用一个特定的输出矢量将其与输入矢量联系起来。我们所建立的模型是在有大量实测数据基础之上的,数据库中每天都有对PH值、硫酸盐、硝酸盐氮、氨氮、总硬度、永久硬度、氯化物、总碱度、耗氧量这九个水质参数的实测记录。我们选择常用的3层BP神经网络来预测未来某一天的九个水质参数。
为了使网络预测值能够达到与实测值无限的接近我们要对所建立的网络进行训练以获得我们设定的误差范围内的神经网络预测模型的每层的权值和阈值。然后通过访问数据库WaterQualityRecords读出已有的实测数据并赋给输入变量Variable;将最新一天的实测数据赋给TrueValue来检测我们的预测值是否达到要求的依据。下面是读取数据的m语言实现。
connA=database(’WaterQualityRecords’,’’,’’);
%连接到数据库
cursorA=exec(connA,’SELECT*FROMWaterPlant’);%执行SQL语句和打开游标
cursorA=fetch(cursorA);
%读数据到MATLAB单元数组
WaterDataBase=cursorA.Data;
%读数据到WaterDataBase
fori=1:600
%前600天的数据赋给Variable
Variable=WaterDataBase(i,:)
end
TrueValue=WaterDataBase(601,:);
%第601天的数据赋给TrueValue