一、模糊神经网络水质预测简介
1 模糊神经网络 从整体结构框架上看, 两个输入一个输出, 它像一个神经网络;从功能上讲, 是一个模糊系统。模糊神经网络结构如图1所示, 此网络结构共分为5个层次, 它是一个由神经网络构造实现的模糊推理系统, 以模糊系统的工作过程为依据来设计的。首先, 输入层输入两个信号;其次模糊化层, 模糊化输入的信号;再次是模糊规则计算层;然后是模糊决策层, 将满足条件的量分类并且将模糊的量转化为清晰结果;最后第五层作为输出层, 输出最后的运算结果。
2 水质评价问题 目前为止水质监控评测的方法有很多, 可是都存在局限性。我国一直以营养物、无机物、微生物和重金属离子作为主要水质参数。传统的生物或者化学水质评价方法, 只能得出是否污染以及污水主要的成分, 不能将水质真正所存在的潜在问题反映出来。在线自动连续监测的水质污染综合系统, 与连续自动监测大气污染的系统相比, 水质监测要困难得多。当然, 这些问题都是可以解决的, 但是找到合适的水质评价方法尤为重要。 图2 模糊神经网络水质评价的一般步骤 2.1 水质评价的主要参数 水质评价中常用的参数有六种: (1) 常规水质参数; (2) 氧平衡参数; (3) 重金属参数; (4) 有机污染物参数; (5) 无机污染物参数, ; (6) 生物参数。
2.2 水质评价的一般步骤 模糊神经网络水质评价算法实验的主要步骤如图2所示, 主要分为六个步骤。
3 基于T-S模糊神经网络建模 3.1 T-S模糊模型 T-S模糊系统不仅能够自动更新模糊子集的隶属函数, 而且能不断更新隶属度函数。属于一种不断成长的自学习系统。该模型, T-S模糊系统定义在下面的“if-then”规则中。根据规则Ri中, 模糊推理如下: 其中, Aij为模糊系统的模糊集;pij (j=1, 2, …, k) 为模糊系统参数;yi为根据模糊规则得到的输出, 输入部分 (即if部分) 是模糊的, 输出部分 (即then部分) 是确定的, 该模糊推理表示输出为输入的线性组合。
假设输入量x=[x1, x2, …xk], 首先依照模糊规则计算每个输入变量, xj的隶属度。 其中, cji, bji分别为隶属度函数的中心和宽度;k为输入参数;n为模糊子集数。将各个隶属度进行模糊计算, 应用模糊算子作为连乘算子。 根据模糊计算结果计算模糊模型的输出值yi。
3.2 T-S模糊神经网络 T-S模糊神经网络包括四层结构:输入层、模糊化层、模糊规则计算层和输出层。模糊神经网络的学习算法如下:
(1) 误差计算 式中, yd是网络预期输出;yc网络实际输出;e预期输出和实际输出的误差。
(2) 系数修正 式中, pji为神经网络系数, α为网络学习效率, xj为网络输入参数;ωi为输入参数隶属度连乘积。
(3) 参数修正 式中, cji, bji分别为隶属度函数的中心和宽度。
3.3 模型的建立 模糊神经网络将训练样本的维数作为基础前提, 构建模糊神经网络基础要素:输入、输出节点数、模糊隶属度函数个数。最后选定输入数据为6个 (包括氨氮含量、溶解氧含量、化学需氧量、高锰酸盐指数、总磷和总氮六项指标) , 将水质等级划分为五类, 用数字1—5表示水质等级I—V类, 所以输出的节点数字为1, 形成了6-12-1的网络结构。
二、部分源代码
%---------------------------------------------%
%
%---------------------------------------------%
%% 清空环境变量
clc
clear
%% 参数初始化
xite=0.001;
alfa=0.05;
%网络节点
I=6; %输入节点数
M=12; %隐含节点数
O=1; %输出节点数
%系数初始化
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; %进化次数
%网络测试数据,并对数据归一化
load data1 input_train output_train input_test output_test
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
[n,m]=size(input_train);
%% 网络训练
%循环开始,进化网络
for iii=1:maxgen
iii
for k=1:m
x=inputn(:,k);
%输出层结算
for i=1:I
for j=1:M
u(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));
end
end
三、运行结果
四、matlab版本及参考文献
1 matlab版本 2014a
2 参考文献 [1]康彩丽.模糊神经网络在水质评价中的应用研究[J].忻州师范学院学报. 2019,35(02)
3 备注 简介此部分摘自互联网,仅供参考,若侵权,联系删除
|