当前位置:文档之家› (完整word版)模糊神经网络的预测算法在嘉陵江水质评测中的应用2

(完整word版)模糊神经网络的预测算法在嘉陵江水质评测中的应用2

模糊神经网络的预测算法——嘉陵江水质评价一、案例背景1、模糊数学简介模糊数学是用来描述、研究和处理事物所具有的模糊特征的数学,“模糊”是指他的研究对象,而“数学”是指他的研究方法。

模糊数学中最基本的概念是隶属度和模糊隶属度函数。

其中,隶属度是指元素μ属于模糊子集f的隶属程度,用μf(u)表示,他是一个在[0,1]之间的数。

μf(u)越接近于0,表示μ属于模糊子集f的程度越小;越接近于1,表示μ属于f的程度越大。

模糊隶属度函数是用于定量计算元素隶属度的函数,模糊隶属度函数一般包括三角函数、梯形函数和正态函数。

2、T-S模糊模型T-S模糊系统是一种自适应能力很强的模糊系统,该模型不仅能自动更新,还能不断修正模糊子集的隶属函数。

T-S模糊系统用如下的“if-then”规则形式来定义,在规则为R i 的情况下,模糊推理如下:R i:If x i isA1i,x2isA2i,…x k isA k i then y i =p0i+p1i x+…+p k i x k其中,A i j为模糊系统的模糊集;P i j(j=1,2,…,k)为模糊参数;y i为根据模糊规则得到的输出,输出部分(即if部分)是模糊的,输出部分(即then部分)是确定的,该模糊推理表示输出为输入的线性组合。

假设对于输入量x=[x1,x2,…,x k],首先根据模糊规则计算各输入变量Xj的隶属度。

μA i j=exp(-(x j-c i j)/b i j)j=1,2,…,k;i=1,2,…,n式中,C i j,b i j分别为隶属度函数的中心和宽度;k为输入参数数;n为模糊子集数。

将各隶属度进行模糊计算,采用模糊算子为连乘算子。

ωi=μA1j(x1)*μA2j(x2)*…*μA k j i=1,2,…,n根据模糊计算结果计算模糊型的输出值y i。

Y I=∑n i=1ωi(P i0+P i1x1+…+P i k xk)/ ∑n i=1ωi3、T-S模糊神经网络模型T-S模糊神经网络分为输入层、模糊化层、模糊规则计划层和输出层四层。

输入层与输入向量X I连接,节点数与输入向量的维数相同。

模糊化层采用隶属度函数对输入值进行模糊化得到模糊隶属度值μ。

模糊规则计算层采用模糊连乘公式计算得到ω。

输出层采用公式计算模糊神经网络的输出。

模糊神经网络的学习算法如下(1)误差计算E=2/1(d y-e y)2式中,d y是网络期望输出;e y是网络实际输出;e魏期望输出和实际输出的误差。

(2)系数修正式中,为神经网络系数;a为网络学习率;j x为网络输入参数;w’为输入参数隶属度连乘积。

(3)参数修正式中,分别为隶属度函数的中心和宽度。

4、嘉陵江水质评价水质评测是根据水质评测标准和采样水样本各项指标值,通过一定的数学模型计算确定采样水样本的水质等级。

水质评测的目的是能够准确判断出采样水样本的污染等级,为污染防治和水源保护提供依据。

水体水质的分析主要包括氨氮、溶解氧、化学需氧量、高锰酸盐指数、总磷和总氮六项指标。

其中氨氮是有机物有氧分解的产物,可导致水富营养化现象产生,是水体富营养化的指标。

化学需氧量是采用强氧化剂络酸钾处理水样,消耗的氧化剂量是水中还原性物质多少的指标。

高锰酸钾是反映有机污染的指标。

溶解氧是溶解在水中的氧。

总磷是水体中的含磷量,是衡量水体富营养化的指标。

总氮是水体中氮的含量,也是衡量水体富营养化的指标。

(各项数据在附件的数据库中。

)地表水环境质量标准如下图所示:地表水环境质量标准二、模型建立基于T-S模糊神经网络的嘉陵江水质评测算法流程图如下所示。

其中,模糊神经网络构建根据训练样本维数确定模糊神经网络输入/输出节点数、模糊隶属度函数个数,由于输入数据为6维,输出数据为1维,所以有12个隶属度函数,选择7组系数P0~P6,模糊隶属度函数中心和宽度c和b随机得到。

图示:模糊神经网络水质评价算法流程模糊神将网络训练用训练数据模糊神经网络,由于水质评价真实数据比较难找,所以采用了等隔均匀分布方式内插水质指标标准数据生成样本的方式来生成训练样本,采用的水质指标哦数据来自本文的上表,网络反腐训练100次。

模糊神经网络预测用训练好的模糊神经网络评价嘉陵采样水水质等级。

三、编程实现根据模糊神经网络原理,在MATLAB中编程实现基于模糊神经网络的水质评价算法。

1、网络初始化根据训练输入/输出数据确定网络结构,初始化模糊神经网络隶属度函数参数和系数,归一化训练数据。

从数据文件datal.mat中下载训练数据,其中input_train和output_train为模糊神经网络训练数据,input_train和output_train为模糊神经网络测试数据。

%下载数据Load datal input_train output_train input_test output_test%网络结构I=6; %输入节点数M=12; %隐含节点数O=1; %输出节点数Maxgem=100; %迭代次数%初始化模糊神经网络参数p0=0.3*ones(M,1);p0_1=p0;p0_2=p0_1;p1=0.3*ones(M,1);p1_1=p1;p1_2=p1_1;p2=0.3*ones(M,1);p2_1=p2;p2_2=p2_1;p3=0.3*ones(M,1);p3_1=p3;p3_2=p3_1;p4=0.3*ones(M,1);p4_1=p4;p4_2=p4_1;p5=0.3*ones(M,1);p5_1=p5;p5_2=p5_1;p6=0.3*ones(M,1);p6_1=p6;p6_2=p6_1;%初始化模糊隶属度参数c=1+rands(M,I);c_1=c;c_2=c_1;b=1+rands(M,I);b_1=b;b_2=b_1;maxgen=100; %进化次数%调练数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);2、模糊神经网络训练用训练样本训练模糊神经网络[n,m]=size(input_train);%开始迭代for i=1:maxgen %maxgem 最大迭代次数for k=1:m %m个样本%提取训练样本x=inputn(:,k);%输入参数模糊化for i=1:Ifor j=1:Mu(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));endend%模糊隶属度计算for i=1:Mw(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);endaddw=sum(w);%输出计算for i=1:Myi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+ p6_1(i)*x(6);endaddyw=0;addyw=yi*w';yn(k)=addyw/addw;e(k)=outputn(k)-yn(k);%系数p修正值计算d_p=zeros(M,1);for i=1:Md_p(i)=xite*e(k)*w(i)/addw;end%b的修正值计算d_b=0*b_1;for i=1:Mfor j=1:Id_b(i,j)=xite*e(k)*(yi(i)*addw-addyw)*(x(j)-c(i,j))^2*w(i)/(b(i,j)^2*addw^2);endend%c的修正值计算for i=1:Mfor j=1:Id_c(i,j)=xite*e(k)*(yi(i)*addw-addyw)*2*(x(j)-c(i,j))*w(i)/(b(i,j)*addw^2);endend%系数修正p0=p0_1+ d_p;p1=p1_1+ d_p*x(1);p2=p2_1+ d_p*x(2);p3=p3_1+ d_p*x(3);p4=p4_1+ d_p*x(4);p5=p5_1+ d_p*x(5);p6=p6_1+ d_p*x(6);% 隶属度参数修正b=b_1+d_b;c=c_1+d_c;endend3、模糊神经网络水质评价用训练好的模糊神将网络评价嘉陵江水质,各采样口水样指标值存储在data2.mat文件中,根据网络预测值得到水质等级指标。

预测值小于1.5时水质登记为1级,预测值在1.5——2.5时水质等级为2级,预测值在2.5——3.5时水质等级为3级,预测值在3.5——4.5时水质等级为4级,预测值大于4.5时水质等级为5级。

% 下载数据,hgsc为红工厂水质指标,gjhy为高级花园水质指标,dxg为大溪沟水质指标zzsz=hgsc;%输入数据归一化inputn_test =mapminmax('apply',zssz,inputps);[n,m]=size(zssz);%网络预测for k=1:1:mx=inputn_test(:,k);%输入参数模糊化for i=1:Ifor j=1:Mu(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));endendfor i=1:Mw(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);endaddw=0;for i=1:Maddw=addw+w(i);end%计算输出for i=1:Myi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+ p6_1(i)*x(6);endaddyw=0;for i=1:Maddyw=addyw+yi(i)*w(i);end%网络预测值szzb(k)=addyw/addw;end%预测值反归一化szzbz2=mapminmax('reverse',szzb,outputps);%根据预测值确定本质等级for i=1:mif szzbz1(i)<=1.5szpj1(i)=1;elseif szzbz1(i)>1.5&&szzbz1(i)<=2.5szpj1(i)=2;elseif szzbz1(i)>2.5&&szzbz1(i)<=3.5szpj2(i)=3;elseif szzbz1(i)>3.5&&szzbz1(i)<=4.5szpj1(i)=4;elseszpj1(i)=5;endend4、结果分析用训练好的模糊神经网络评价嘉陵江各取水口2003年到2008年每季度采样水水质等级,网络评测结果如下所示:时间2003.1 2003.2 2003.3 2003.4 2004.1 2004.2 2004.3 2004.4 2005.1 2005.2 2005.3 2005.4 红水工厂 3 3 3 3 3 4 3 2 2 3 2 2 葛家花园水厂 4 4 3 3 3 3 2 3 3 2 2 3 大溪沟水厂 4 4 3 3 4 3 2 2 4 2 2 3时间2006.1 2006.2 2006.3 2006.4 2007.1 2007.2 2007.3 2007.4 2008.1 2008.2 2008.3 2008.4 红水工厂 3 2 2 3 3 2 2 3 3 2 2 3 葛家花园水厂 3 2 2 3 3 3 3 3 3 3 2 3 大溪沟水厂 3 2 2 3 3 3 2 2 3 3 3 3从水质量评价等级可以看出嘉陵汇上、中、下游三个取水口水样质量在2003年到2004你爱你间有一定改善,近几年变化不大,基本维持在2、3级左右。

相关主题