• 【水质预测】基于matlab模糊神经网络水质预测【含Matlab源码 1923期】


    一、模糊神经网络水质预测简介

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    三、运行结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、matlab版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1]康彩丽.模糊神经网络在水质评价中的应用研究[J].忻州师范学院学报. 2019,35(02)

    3 备注
    简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 相关阅读:
    Mathcad的使用与设计
    【面试八股】IP协议八股
    基于Spring-AOP的自定义分片工具
    使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略
    springboot大学新生小助手小程序毕业设计-附源码060917
    基于SpringBoot的社区团购系统
    一致性hash的奥妙
    应广单片机使用IHRC校准ILRC--附带产物随机数产生器
    jenkins创建用户
    云计算要学习哪些技术?
  • 原文地址:https://blog.csdn.net/TIQCmatlab/article/details/125587441