循环流化床生活垃圾焚烧锅炉床温预测方法及系统与流程

文档序号:11173279阅读:919来源:国知局
循环流化床生活垃圾焚烧锅炉床温预测方法及系统与流程

本发明涉及能源工程领域,特别地,涉及一种循环流化床生活垃圾焚烧锅炉床温预测方法及系统。



背景技术:

垃圾焚烧由于能够良好实现垃圾处理技术的减容化、减量化、无害化和资源化,近十几年内,在国家相关产业政策的引导下,国内垃圾焚烧行业取得了蓬勃的发展。从上世纪90年代开始,国内多家科研结构对中国城市生活垃圾(Municipal Solid Waste,MSW)燃烧机理进行了大量深入研究,掌握了混合收集、水分高、成分复杂的城市生活垃圾的燃烧特性,根据我国对煤、煤矸石等劣质燃料循环流化床(Circulating Fluidized Bed,CFB)燃烧技术的开发经验的基础上,开发出了循环流化床垃圾焚烧锅炉,从1998年浙江大学开发的第一台流化床垃圾焚烧炉投入运行开始,表现出了适用于对国内高水分、热值偏低且波动性很大的生活垃圾进行大规模的焚烧处理的特点。目前,CFB垃圾焚烧技术已经在国内的多个城市进行了推广应用,截止2014年底,国内已建成垃圾焚烧锅炉70余台,日处理垃圾量6.4万吨,为我国的垃圾焚烧处理行业做出了重要的贡献。

床温是一个影响循环流化床垃圾焚烧锅炉安全、环保、经济运行的重要运行参数,一般要求流化床锅炉的床层运行温度控制在850-950℃之间,床层温度太低不利于垃圾的充分干燥以及挥发分的析出燃烧和残碳的燃烧,难以保证垃圾中有害物质被彻底分解,对锅炉燃烧稳定性造成不良影响,同时,也不利于锅炉蒸汽品质的提升;床层温度太高则会带来高温结渣、腐蚀和增加炉体负担等问题。另一方面,为了促进垃圾焚烧企业运行管理水平的发展,提升垃圾焚烧工艺的安全性、环保性和经济性,国家住建部颁发的《生活垃圾焚烧厂评价标准(CJJ/T 137–2010)》中,对生活垃圾焚烧系统设置了是否配套了自动燃烧控制系统(Automatic Combustion Control,ACC)的评分选项,而循环流化床生活垃圾焚烧锅炉ACC系统中有一个重要的子控制系统就是床温控制系统,而实施床温控制系统的一项重要前提就是构建足够精度的实时床温预测模型。因此,构建一个实用的床温特性模型具有十分重要的意义。

国内外的研究人员对循环流化床锅炉的床温特性建模进行了研究。目前,床温的特性建模主要有以下几种方法。一种是根据CFB锅炉燃烧动力学、流体力学、传热传质的特性,在经过合理的简化假设之后建立,通过数学描述的方式建立机理模型。这种方法能够反映床温的变化趋势,但由于假设模型和真实模型之间的偏差而无法达到足够的精确度;另一种方法是在大量的试验台试验或者现场试验的基础上,通过回归分析的方法建立关于床温变化特性的经验模型。这种方法需要耗费大量的人力物力,时间成本高,同时无法保证试验覆盖所有的工况,具有一定局限性;第三种方法利用计算流体力学、计算传热学和化学反应的简化机理模拟炉内燃烧过程,精确地求解床层温度场的分布情况,显示了良好的效果具有很大的发展潜力。但这种方法主要受限于流体力学模型和化学反应的简化机理与实际情况的差距,需要高端的计算机配置和很长的计算时间,因此采用这种方法仍处于初步发展阶段。此外,CFB垃圾焚烧锅炉的给料系统均匀性较差,入炉垃圾的热值波动性大、组分复杂、多边性强,是床温建模过程中的面临的主要困难之一,它要求所建立的床温特性模型具有良好的自适应能力,上述三种建模方法在这方面仍有所欠缺。

随着电子技术、计算机技术和信息技术的发展,集散控制系统(Distributed Control System,DCS)广泛的应用于CFB生活焚烧锅炉的运行过程,包含温度、压力、流量等参数在内的过程数据都被完善得保存下来,这些历史数据中包含丰富过程信息,是人们认识和了解生产过程的重要途径之一,具有很高的挖掘价值。自适应糊神经网络(Adaptive Neuro-Fuzzy Inference System,ANFIS)融合了神经网络并行计算、分布式信息存储、容错能力强、具备自适应学习功能等优点和模糊算法能够有效表达先验知识的能力,成为构建不确定性和非线性模型的有力工具。同时,ANFIS模型的训练所需的时间较短,无需配置高端的计算机即可完成训练任务,训练好的模型能够胜任在线预测工作。因此,基于ANFIS算法的床温预测模型可以满足实际生产过程对模型的实时性要求。然而,ANFIS床温预测模型在设计时面临着模型输入变量难以选择、模型的初始结构确认困难以及训练样本大小难以确定等问题。输入变量冗余过多,一方面会增加模型的复杂度,另一方面会引入数据噪声,甚至淹没了数据中的有效信息,使模型的性能退化;输入变量选择过少则无法构成完备床温表达模型,产生欠拟合。而要确认ANFIS模型的初始结构则需要在大量的训练样本中分析并提炼出模糊规则,这要求建模人员深入掌握CFB生活垃圾焚烧锅炉的运行机理,并且需要耗费大量的时间,大大增加了建模过程的复杂程度和难度。训练样本过多,会大幅度延长模型的训练时间,并且有可能会引入噪声数据,导致产生过拟合现象;训练样本过少,模型无法获取足够的信息支撑,是模型的泛化性能下降。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种循环流化床生活垃圾焚烧锅炉床温的预测方法及系统。本发明在分析CFB生活垃圾焚烧锅炉运行机理的基础上,初步选择床温预测模型的输入变量,并利用Gamma Test算法进一步确定选择模型的输入变量和训练样本的个数,之后利用减法聚类算法对训练样本数据进行特征提取,自适应的确定初始模糊规则和模糊神经网络的初始结构参数,再结合最小二乘估计法和误差反向传播算法对模糊神经网络的参数行学习训练,并在这个过程中利用粒子群优化算法对减法聚类算法的聚类半径进行寻优。

本发明的目的是通过以下技术方案来实现的:一种循环流化床生活垃圾焚烧锅炉床温预测方法,该方法包括以下步骤:

1)分析循环流化床生活垃圾焚烧锅炉的运行机理,初步选择垃圾的给料量、给煤量、一次风量、二次风量以及排渣量作为床温预测模型的输入变量。

2)采集训练样本。按设定的时间间隔从数据库中采集输入变量的历史数据,或者采集指定工况下的运行参数,组成床温预测模型输入变量的训练样本矩阵X(m×n),m表示样本个数,n表示变量的个数,同时采集与之对应的床层温度作为模型的输出变量,通常,床温有较多的测点,取它们的平均值作为模型最终的输出训练样本Y(m×1);

3)数据预处理。对X(m×n)进行粗大误差处理和随机误差处理,以摒除那些并不是反映锅炉正常运行工况的虚假信息,将锅炉停炉、压火、给料机堵塞等异常工况排除掉,为了避免预测模型的参数之间量纲和数量级的不同对模型性能造成的不良影响,训练样本输入变量均经过归一化处理后映射到[0,1]区间内,得到标准化后的输入变量的训练样本X*(m×n)和输出变量的训练样本Y*(m×1)。

4)智能算法集成建模。采用Gamma Test算法、粒子群优化算法(Particle Swarm Optimization,PSO)、减法聚类算法(Subtractive Clustering,SC)和模糊自适应神经网络(Adaptive Neuro-Fuzzy Inference System,ANFIS)算法集成建模,确定模型最终的输入变量的个数和训练样本的个数,并根据最终确定的训练样本进行参数寻优和学习,构建能够表征循环流化床生活垃圾焚烧锅炉床温特性的预测模型。该建模算法先利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸,然后采用减法聚类算法对样本数据进行特征提取,自适应的确定初始模糊规则和模糊神经网络的初始结构参数,再结合最小二乘估计法和误差反向传播算法对模糊神经网络的参数进行学习训练。其中,聚类半径是影响建模性能的关键参数,因此以预测精度为目标,利用PSO算法寻找聚类半径的最优值。算法步骤如下:

4.1)利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸。Gamma Test算法是对所有光滑函数均适用的非参数估计方法,该方法不关注输入输出数据之间的任何参数关系,只对输入输出数据进行计算即可得到模型的噪声方差,对于如下形式的数据集

{(Xi,Yi),1≤i≤m} (2)

式中,X∈Rn表示输入,对应的输出标量为y∈R。

Gamma Test假定的模型关系是:

y=f(x1,…,xn)+r (3)

式中,f是一个光滑函数,r是一个表示数据噪声的随机量。不失一般性,可假定r的均值为0(否则可在f中加入常数项),方差为Var(y)。Gamma Test就是计算一个统计量Γ,用它来评价输出量的方差,显然,如果数据的关系符合光滑模型,并且没有噪声,这个方差是0。Γ的计算过程如下:

4.1.1)计算输入数据的距离统计量。用xi表示第i个输入数据,xN[i,k]表示输入样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&delta;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>x</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

式中,|·|表示欧拉距离,p为最远邻近距离(nearest neighbor)。

4.1.2)计算输出数据的距离统计量。用yi表示第i个输出数据,yN[i,k]表示输出样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&gamma;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>y</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式中符号的意义同(4)式。

4.1.3)计算统计量Γ。为了计算Γ,分别计算邻近距离从1到p的统计量(δm(1),γm(1)),(δm(2),γm(2)),…,(δm(p),γm(p))。对这p个统计量构造一元线性回归模型,用最小二乘法进行拟合,得到的一次线性函数的截距就是Gamma Test统计量Γ,Γ值越小表示样本中的噪声越小。

定义另一个统计量Vratio

<mrow> <msub> <mi>V</mi> <mrow> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>&Gamma;</mi> <mrow> <msup> <mi>&delta;</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式中,δ2(y)表示输出y的方差。Vratio可以用来评价光滑模型对该数据的模拟能力,Vratio越接近0,表示该模型的预测性能越好。

首先,确定最优的训练样本尺寸。计算样本量逐渐增大时Γ值的变化情况,当Γ值趋于稳定时,得到的样本尺寸就是最优的训练样本尺寸。其次,确定最优的模型输入变量组合。需要计算所有输入变量组合时的Γ值和Vratio值,选择Γ值和Vratio值都很小的组合作为模型的最终输入变量。

4.2)利用PSO算法寻找最优的聚类半径。以聚类半径rα作为粒子,15个粒子作为一个种群,每个粒子随机赋予[0.2 0.9]区间内的随机值,其中第i个粒子的位置的向量标示为ri,i=1,2,…,15;

4.3)以ri为聚类半径,进行减法聚类分析。减法聚类算法用于对建模数据样本的空间进行初始划分以及模糊规则的确定,K-均值聚类算法和模糊C-均值聚类算法均需预设聚类中心的数目,没有充分利用样本空间的蕴含的对象特征信息。而减法聚类算法是一种基于山峰函数的聚类算法,它将每个数据点作为可能的聚类中心,并根据各个数据点周围的数据点密度来计算该点作为聚类中心的可能性。

每个数据点Xi作为聚类中心的可能性Pi由式(7)来定义:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式中m表示n维输入空间中全部的数据点数,Xi=[Xi1,Xi2,...,Xin]、Xj=[Xj1,Xj2,...,Xjn]是具体的数据点,ri是一个正数,定义了该点的邻域半径,||·||符号表示欧式距离。被选为聚类中心的点具有最高的数据点密度,同时该该数据点周围的点被排除作为聚类中心的可能性。第一个聚类中心为XC1,数据点密度为Pc1。选出第一个聚类中心后,继续采用类似的方法确定下一个聚类中心,但需消除已有聚类中心的影响,修改密度指标的山峰函数如下:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>P</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>&beta;</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

其中,rβ定义了一个密度指标显著减小的邻域,为了避免出现十分接近的聚类中心,rβ=1.5ri。循环重复上述过程直到所有剩余数据点作为聚类中心的可能性低于某一阈值δ,即Pck/Pc1<δ。

4.4)ANFIS模型训练。根据减法聚类算法得到的聚类中心,按照ANFIS模型结构训练床温预测模型;对于模糊神经网络模型的所有参数,采用混合最小二乘法的梯度下降算法进行学习。

4.5)计算适应度值。利用训练得到的预测模型计算垃圾热值将床温预测值与实际测量值y*进行比较,并以误差平方和作为粒子的适应度值MSE,适应度计算公式如下:

<mrow> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msup> <mrow> <mo>(</mo> <mover> <mi>y</mi> <mo>^</mo> </mover> <mo>-</mo> <msup> <mi>y</mi> <mo>*</mo> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>16</mn> <mo>)</mo> </mrow> </mrow>

4.6)更新极值。以适应度值为评价指标,比较当代粒子与上一代粒子之间的适应度值大小,如果当前粒子的适应度值优于上一代,则将当前粒子的位置设置为个体极值,否则个体极值保持不变。同时获取当代所有粒子适应度值最优的粒子,并与上一代最优粒子进行比较,如果当代最优粒子的适应度值优于上一代最优粒子的适应度值,则将当代粒子的最优适应度值设置为全局最优值,否则全局最优值保持不变。

4.7)更新粒子。根据最新的个体极值和全局极值,按照(17)式和(18)式更新粒子的速度vid(t)和位置xid(t)。

vid(t+1)=ωvid(t)+c1r1(pid-xid(t))+c2r2(pgd-xid(t)) (17)

xid(t+1)=xid(t)+vid(t+1) (18)

t是粒子群优化算法的寻优代数。更进一步,为了改善基本粒子群算法容易陷入局部极值和收敛速度慢的缺陷,在PSO算法的基础上引进了动态加速常数c1、c2和惯性权重ω:

<mrow> <mi>&omega;</mi> <mo>=</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </msub> </mrow> <msub> <mi>T</mi> <mi>max</mi> </msub> </mfrac> <mi>t</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>+</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>2</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>2</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>3</mn> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>4</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo> </mrow> </mrow>

其中,Tmax为最大寻优代数,ωmax为最大惯性权重,ωmin为最小惯性权重,R1、R2、R3、R4为常数。

4.8)算法停止条件算法判定。判断是否达到最大迭代次数或者到达预测精度的要求,如果没有达到则返回步骤4.3),利用更新的聚类半径继续搜索,否则退出搜索。

4.9)利用最终寻优得到的聚类半径,对样本进行聚类分析和ANFIS模型训练,得到满足训练终止条件的ANFIS模型,即床温预测模型。

5)预测床温。对指定的样本进行床温预测,或者对当前锅炉运行工况下的床温进行实时预测。

一种循环流化床生活垃圾焚烧锅炉床温预测系统。该系统与循环流化床锅炉的集散控制系统相连,包括数据通讯接口和上位机,所述上位机包括:

第一信号采集模块。利用该模型采集CFB生活垃圾焚烧锅炉在正常运行时的运行工况状态参数和操作变量,并组成床温预测模型输入变量的训练样本矩阵X(m×n),和输出训练样本矩阵Y(m×1),m表示样本个数,n表示变量的个数。

数据预处理模块。对训练样本进行粗大误差处理和随机误差处理,剔除训练样本中的野值,排除异常工况,将训练样本输入变量经归一化处理后映射到[0,1]区间内,得到标准化后的训练样本X*(m×n)和Y*(m×1)。

专家知识库模块。将X*和Y*共同组成床温预测模型的训练样本,并进行保存。

智能学习模块。智能学习模块是床温预测系统的核心部分,该模块先利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸,然后采用减法聚类算法对样本数据进行特征提取,自适应的确定初始模糊规则和模糊神经网络的初始结构参数,再结合最小二乘估计法和误差反向传播算法对模糊神经网络的参数进行学习训练。其中,聚类半径是影响建模性能的关键参数,因此以预测精度为目标,利用PSO算法寻找聚类半径的最优值。算法步骤如下:

2.1)利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸。Gamma Test算法是对所有光滑函数均适用的非参数估计方法,该方法不关注输入输出数据之间的任何参数关系,只对输入输出数据进行计算即可得到模型的噪声方差,对于如下形式的数据集

{(Xi,Yi),1≤i≤m} (2)

式中,X∈Rn表示输入,对应的输出标量为y∈R。

Gamma Test假定的模型关系是:

y=f(x1,…,xn)+r (3)

式中,f是一个光滑函数,r是一个表示数据噪声的随机量。不失一般性,可假定r的均值为0(否则可在f中加入常数项),方差为Var(y)。Gamma Test就是计算一个统计量Γ,用它来评价输出量的方差,显然,如果数据的关系符合光滑模型,并且没有噪声,这个方差是0。Γ的计算过程如下:

2.1.1)计算输入数据的距离统计量。用xi表示第i个输入数据,xN[i,k]表示输入样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&delta;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>x</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

式中,|·|表示欧拉距离,p为最远邻近距离(nearest neighbor)。

2.1.2)计算输出数据的距离统计量。用yi表示第i个输出数据,yN[i,k]表示输出样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&gamma;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>y</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式中符号的意义同(4)式。

2.1.3)计算统计量Γ。为了计算Γ,分别计算邻近距离从1到p的统计量(δm(1),γm(1)),(δm(2),γm(2)),…,(δm(p),γm(p))。对这p个统计量构造一元线性回归模型,用最小二乘法进行拟合,得到的一次线性函数的截距就是Gamma Test统计量Γ,Γ值越小表示样本中的噪声越小。

定义另一个统计量Vratio

<mrow> <msub> <mi>V</mi> <mrow> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>&Gamma;</mi> <mrow> <msup> <mi>&delta;</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式中,δ2(y)表示输出y的方差。Vratio可以用来评价光滑模型对该数据的模拟能力,Vratio越接近0,表示该模型的预测性能越好。

首先,确定最优的训练样本尺寸。计算样本量逐渐增大时Γ值的变化情况,当Γ值趋于稳定时,得到的样本尺寸就是最优的训练样本尺寸。其次,确定最优的模型输入变量组合。需要计算所有输入变量组合时的Γ值和Vratio值,选择Γ值和Vratio值都很小的组合作为模型的最终输入变量。

2.2)利用PSO算法寻找最优的聚类半径。以聚类半径rα作为粒子,15个粒子作为一个种群,每个粒子随机赋予[0.2 0.9]区间内的随机值,其中第i个粒子的位置的向量标示为ri,i=1,2,…,15;

2.3)以ri为聚类半径,进行减法聚类分析。减法聚类算法用于对建模数据样本的空间进行初始划分以及模糊规则的确定,K-均值聚类算法和模糊C-均值聚类算法均需预设聚类中心的数目,没有充分利用样本空间的蕴含的对象特征信息。而减法聚类算法是一种基于山峰函数的聚类算法,它将每个数据点作为可能的聚类中心,并根据各个数据点周围的数据点密度来计算该点作为聚类中心的可能性。

每个数据点Xi作为聚类中心的可能性Pi由式(7)来定义:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式中m表示n维输入空间中全部的数据点数,Xi=[Xi1,Xi2,...,Xin]、Xj=[Xj1,Xj2,...,Xjn]是具体的数据点,ri是一个正数,定义了该点的邻域半径,||·||符号表示欧式距离。被选为聚类中心的点具有最高的数据点密度,同时该该数据点周围的点被排除作为聚类中心的可能性。第一个聚类中心为XC1,数据点密度为Pc1。选出第一个聚类中心后,继续采用类似的方法确定下一个聚类中心,但需消除已有聚类中心的影响,修改密度指标的山峰函数如下:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>P</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>&beta;</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

其中,rβ定义了一个密度指标显著减小的邻域,为了避免出现十分接近的聚类中心,rβ=1.5ri。循环重复上述过程直到所有剩余数据点作为聚类中心的可能性低于某一阈值δ,即Pck/Pc1<δ。

2.4)ANFIS模型训练。根据减法聚类算法得到的聚类中心,按照ANFIS模型结构训练床温预测模型;对于模糊神经网络模型的所有参数,采用混合最小二乘法的梯度下降算法进行学习。

2.5)计算适应度值。利用训练得到的预测模型计算垃圾热值将床温预测值与实际测量值y*进行比较,并以误差平方和作为粒子的适应度值MSE,适应度计算公式如下:

<mrow> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msup> <mrow> <mo>(</mo> <mover> <mi>y</mi> <mo>^</mo> </mover> <mo>-</mo> <msup> <mi>y</mi> <mo>*</mo> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>16</mn> <mo>)</mo> </mrow> </mrow>

2.6)更新极值。以适应度值为评价指标,比较当代粒子与上一代粒子之间的适应度值大小,如果当前粒子的适应度值优于上一代,则将当前粒子的位置设置为个体极值,否则个体极值保持不变。同时获取当代所有粒子适应度值最优的粒子,并与上一代最优粒子进行比较,如果当代最优粒子的适应度值优于上一代最优粒子的适应度值,则将当代粒子的最优适应度值设置为全局最优值,否则全局最优值保持不变。

2.7)更新粒子。根据最新的个体极值和全局极值,按照(17)式和(18)式更新粒子的速度vid(t)和位置xid(t)。

vid(t+1)=ωvid(t)+c1r1(pid-xid(t))+c2r2(pgd-xid(t)) (17)

xid(t+1)=xid(t)+vid(t+1) (18)

t是粒子群优化算法的寻优代数。更进一步,为了改善基本粒子群算法容易陷入局部极值和收敛速度慢的缺陷,在PSO算法的基础上引进了动态加速常数c1、c2和惯性权重ω:

<mrow> <mi>&omega;</mi> <mo>=</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </msub> </mrow> <msub> <mi>T</mi> <mi>max</mi> </msub> </mfrac> <mi>t</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>+</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>2</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>2</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>3</mn> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>4</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo> </mrow> </mrow>

其中,Tmax为最大寻优代数,ωmax为最大惯性权重,ωmin为最小惯性权重,R1、R2、R3、R4为常数。

2.8)算法停止条件算法判定。判断是否达到最大迭代次数或者到达预测精度的要求,如果没有达到则返回步骤4.3),利用更新的聚类半径继续搜索,否则退出搜索。

2.9)利用最终寻优得到的聚类半径,对样本进行聚类分析和ANFIS模型训练,得到满足训练终止条件的ANFIS模型,即床温预测模型。

第二信号采集模块。用于从数据库中选择需要预测床温的运行工况,或者实时地采集当前锅炉的运行工况。

预测模块。该模块用于对指定的样本进行床温预测,或者对当前锅炉运行工况下的床温进行实时预测。

结果显示模块。显示床温的预测结果,或者对床温的预测结果进行统计分析。

本发明的有益效果是:在利用循环流化床生活垃圾焚烧锅炉的运行机理和运行历史数据中隐含的知识的基础上,采用Gamma Test算法、PSO算法、减法聚类算法和ANFIS算法集成建模的方法,构建了一种快速经济的方法和系统对锅炉床温进行实时预测,避开了繁琐复杂的机理建模工作。其中,利用ANFIS算法的自学习能力、非线性映射能力、泛化能力和实时预测能力来表征床温的动态变化特性,为运行人员和设计人员掌握了解床温的变化特新提供新的途径;利用减法聚类算法自适应的确定ANFIS模型的初始结构和参数,避免了复杂繁琐的人工设计工作;利用PSO算法寻找最优的聚类半径,保证获取最优的ANFIS模型结构;利用Gamma Test算法获取最优的训练样本,避免了模型的在训练的时候出现过拟合和欠拟合的状况。整个建模过程逻辑清晰,需要设置的参数较少,建模自动化程度高,易于掌握和推广。同时,训练良好的ANFIS床温预测模型可以服务那些基于模型的控制算法,为循环流化床生活垃圾焚烧锅炉的ACC系统实施提供帮助。

附图说明

图1是本发明所提出的系统的结构图。

图2是本发明所提出的上位机系统的结构图。

图3是本发明所采用ANFIS模型的系统结构图。

图4是本发明所提出的智能建模方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细说明。

实施例1

参照图1、图2、图3、图4,本发明提供的一种循环流化床生活垃圾焚烧锅炉床温预测方法,该方法包括以下步骤:

1)分析循环流化床锅炉的运行机理,初步选择床温预测模型的输入变量。国内的城市生活垃圾多为混合收集,导致入厂、入炉垃圾成分较为复杂,一般主要包括厨余垃圾、纸、塑料、橡胶、织物、木头、竹子以及无机物等主要成分,表现出低热值、高水分和波动性较大的特征。为了保证循环流化床垃圾焚烧锅炉的稳定燃烧,通常会添加煤作为辅助燃料。垃圾在循环流化床中的燃烧是一个十分复杂的剧烈物理化学变化过程,垃圾在进入炉膛之后会经历几个过程:干燥加热、挥发分析出及燃烧、焦炭燃烧。垃圾中质轻易碎的组分如纸纸张、塑料以及细颗粒等会在流化风的作用下进入炉膛上部,经历干燥、挥发分的析出及燃烧以及残炭的燃烧等一系列过程;而密度较大、含水率高以及颗粒尺寸较大的组分如木头、厨余垃圾等终端速度大于流化速度的组分会落入密相区,并在密相区中被床料加热、燃烧,与煤的热量释放规律不同,垃圾中高水分低热值的组分会在密相区中吸收大量的热,而大量的挥发分在悬浮段燃烧。CFB锅炉的床温是由几部分热量的平衡关系决定的:布风板上煤和垃圾燃烧释放的热量、煤和垃圾干燥吸收的热量、一次风形成烟气带走的热量、水冷壁吸收的热量、返料器返料带回的热量、炉膛排渣带走的热量以及炉膛散热,同时还受到锅炉设计参数的影响。但在实际运行过程当中,一般锅炉设计参数是不可调整的,在一定时间内炉膛散热也可以看成是不变的,所以,影响床温的主要是锅炉的运行参数,尤其是给煤机、垃圾给料机和送风机等执行机构的参数。

锅炉运行期间,给煤量增加初期,会因为自身的干燥加热而吸收部分热量,但随着燃烧过程的进行,挥发分的燃烧会释放出的热量,同时密相区的残碳积累量增加会逐渐增加,所以给煤量的增加会使床温先降后升。增加垃圾给料量对床温造成的影响比较复杂,由于垃圾的组分比较复杂,通常,含水量低且可燃成分高的生活垃圾,在进入炉膛之后,能够通过自身燃烧释放的热量弥补干燥加热吸收的热量,保证床温的稳定;而含水量高且可燃成分低的生活垃圾进入炉膛之后,由于自身释放的热量难以平衡干燥加热吸收的热量,会持续地降低床温。通常密相区为缺氧燃烧,一次风量增加能够使燃烧反应加剧,煤和垃圾中的可燃成分燃烧释放的热量增加,但一次风是冷风,且一次风量的增加会同使烟气和细床料带走的热量也增加,所以随着密相区中焦炭池的消耗,一次风量增加实际上起到降低炉温的作用。二次风主要为稀相区的燃烧反应提供氧量,当氧量充足的时候,由于二次风是冷风,增加二次风会降低烟气和流化物料的温度;当氧气含量不足的时候,增加二次风能够促进稀相区中挥发分和残碳的燃烧,从而提高烟气温度和流化床料的温度。而部分的烟气和流化物料会通过物料分离器回到密相区,所以改变二次风量能够间接地影响床温。由于CFB垃圾焚烧锅炉循环物料的温度与床温不同,通常返料量是通过物料分离器的分离效率来保证的,并通过返料风来维持料腿的高度,所以返料风量在一定程度上能够表征返料量的大小,但是在实际运行过程当中,返料风量通常保持恒定的值,难以体现出来对床温的影响。CFB垃圾焚烧锅炉的床料量主要通过垃圾中的泥土、石块、玻璃等不可燃的惰性物组成,并通过排渣机将最底层的床料排出炉膛,以此来维持炉膛中的床料的平衡,料层太薄,床料的蓄热量不够,不利于垃圾的干燥燃烧和床温的稳定控制,同时易造成布风不均匀,流化情况恶化,导致结焦情况的发生;料层太厚,大块的不可燃颗粒不能及时排出炉膛,同样会导致炉内流化情况的恶化,同时增加了风机的电耗。为了保证床温维持在较高的水平,促进垃圾的干燥燃尽,CFB垃圾焚烧锅炉会在密相区的水冷壁浇筑隔热层,所以,当外界扰动造成床温波动时,短时间内可以忽略密相区水冷壁吸热对床温造成的影响。

综上所述,初步选择垃圾的给料量、给煤量、一次风量、二次风量以及排渣量作为ANFIS床温预测模型的输入变量。

2)采集训练样本。按设定的时间间隔从数据库中采集相关变量的历史数据,或者采集指定工况下的运行参数,组成垃圾热值预测模型输入变量的训练样本矩阵X(m×n),m表示样本个数,n表示变量的个数,同时采集与之对应的床层温度作为模型的输出变量,通常,床温有较多的测点,取它们的平均值作为模型最终的输出训练样本Y(m×1);

3)数据预处理。对X(m×n)进行粗大误差处理和随机误差处理,以摒除那些并不是反映锅炉正常运行工况的虚假信息,将锅炉停炉、压火、给料机堵塞等异常工况排除掉,为了避免预测模型的参数之间量纲和数量级的不同对模型性能造成的不良影响,训练样本输入变量均经过归一化处理后映射到[0,1]区间内,得到标准化后的输入变量的训练样本X*(m×n)和输出变量的训练样本Y*(m×1)。预处理过程采用以下步骤进行:

3.1)根据拉伊达准则,剔除训练样本X(m×n)和Y(m×1)中的野值;

3.2)剔除锅炉停炉运行工况,锅炉停炉时炉膛给煤机和给料机的开度为零,并且炉膛中温度接近常温;

3.3)剔除炉膛压火运行状况,锅炉压火时一次风机、二次风机引风机炉膛给煤机和给料机的开度为零,但是炉膛密相区的温度维持在350℃~450℃;

3.4)剔除给料机堵塞工况,给料机堵塞需要运行人员通过给料口的摄像头拍摄的画面对给料情况进行判断,给料机堵塞时,运行人员会显著地调高给料机的开度,反映在运行数据上,即给料机的开度大于35%;

3.5)数据归一化处理。按照式(1)将数据变量映射到[0 1]的区间内。

<mrow> <msubsup> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mo>*</mo> </msubsup> <mo>=</mo> <mfrac> <mrow> <msub> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>J</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>J</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>J</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>m</mi> <mo>.</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>n</mi> <mo>.</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>Y</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mo>=</mo> <mfrac> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>max</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>min</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

式中XJ表示第J变量所组成的向量,min()表示最小值,max()表示最大值。

4)智能算法集成建模。采用Gamma Test算法、粒子群优化算法(Particle Swarm Optimization,PSO)、减法聚类算法(Subtractive Clustering,SC)和模糊自适应神经网络(Adaptive Neuro-Fuzzy Inference System,ANFIS)算法集成建模,确定模型最终的输入变量的个数和训练样本的个数,并根据最终确定的训练样本进行参数寻优和学习,构建能够表征循环流化床生活垃圾焚烧锅炉床温特性的预测模型。

该建模算法先利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸,然后采用减法聚类算法对样本数据进行特征提取,自适应的确定初始模糊规则和模糊神经网络的初始结构参数,再结合最小二乘估计法和误差反向传播算法对模糊神经网络的参数进行学习训练。其中,聚类半径是影响建模性能的关键参数,因此以预测精度为目标,利用PSO算法寻找聚类半径的最优值。算法步骤如下:

4.1)利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸。Gamma Test算法是对所有光滑函数均适用的非参数估计方法,该方法不关注输入输出数据之间的任何参数关系,只对输入输出数据进行计算即可得到模型的噪声方差,对于如下形式的数据集

{(Xi,Yi),1≤i≤m} (2)

式中,X∈Rn表示输入,对应的输出标量为y∈R。

Gamma Test假定的模型关系是:

y=f(x1,…,xn)+r (3)

式中,f是一个光滑函数,r是一个表示数据噪声的随机量。不失一般性,可假定r的均值为0(否则可在f中加入常数项),方差为Var(y)。Gamma Test就是计算一个统计量Γ,用它来评价输出量的方差,显然,如果数据的关系符合光滑模型,并且没有噪声,这个方差是0。Γ的计算过程如下:

4.1.1)计算输入数据的距离统计量。用xi表示第i个输入数据,xN[i,k]表示输入样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&delta;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>x</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

式中,|·|表示欧拉距离,p为最远邻近距离(nearest neighbor)。

4.1.2)计算输出数据的距离统计量。用yi表示第i个输出数据,yN[i,k]表示输出样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&gamma;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>y</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式中符号的意义同(4)式。

4.1.3)计算统计量Γ。为了计算Γ,分别计算邻近距离从1到p的统计量(δm(1),γm(1)),(δm(2),γm(2)),…,(δm(p),γm(p))。对这p个统计量构造一元线性回归模型,用最小二乘法进行拟合,得到的一次线性函数的截距就是Gamma Test统计量Γ,Γ值越小表示样本中的噪声越小。

定义另一个统计量Vratio

<mrow> <msub> <mi>V</mi> <mrow> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>&Gamma;</mi> <mrow> <msup> <mi>&delta;</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式中,δ2(y)表示输出y的方差。Vratio可以用来评价光滑模型对该数据的模拟能力,Vratio越接近0,表示该模型的预测性能越好。

本实施例中将p设置为10,训练样本的初始个数为2000。首先,确定最优的训练样本尺寸。分别计算当样本尺寸分别是10~2000时,训练样本的Gamma Test统计量Γ,当Γ值趋于稳定时,得到的样本尺寸就是最优的训练样本尺寸。其次,确定最优的模型输入变量组合。需要计算所有输入变量组合时的Γ值和Vratio值,选择Γ值和Vratio值都很小的组合作为模型的最终输入变量。

4.2)利用PSO算法寻找最优的聚类半径。以聚类半径rα作为粒子,15个粒子作为一个种群,每个粒子随机赋予[0.20.9]区间内的随机值,其中第i个粒子的位置的向量标示为ri,i=1,2,…,15;

4.3)以ri为聚类半径,进行减法聚类分析。减法聚类算法用于对建模数据样本的空间进行初始划分以及模糊规则的确定,K-均值聚类算法和模糊C-均值聚类算法均需预设聚类中心的数目,没有充分利用样本空间的蕴含的对象特征信息。而减法聚类算法是一种基于山峰函数的聚类算法,它将每个数据点作为可能的聚类中心,并根据各个数据点周围的数据点密度来计算该点作为聚类中心的可能性。

每个数据点Xi作为聚类中心的可能性Pi由式(7)来定义:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式中m表示n维输入空间中全部的数据点数,Xi=[Xi1,Xi2,...,Xin]、Xj=[Xj1,Xj2,...,Xjn]是具体的数据点,ri是一个正数,定义了该点的邻域半径,||·||符号表示欧式距离。被选为聚类中心的点具有最高的数据点密度,同时该该数据点周围的点被排除作为聚类中心的可能性。第一个聚类中心为XC1,数据点密度为Pc1。选出第一个聚类中心后,继续采用类似的方法确定下一个聚类中心,但需消除已有聚类中心的影响,修改密度指标的山峰函数如下:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>P</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>&beta;</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

其中,rβ定义了一个密度指标显著减小的邻域,为了避免出现十分接近的聚类中心,rβ=1.5ri。循环重复上述过程直到所有剩余数据点作为聚类中心的可能性低于某一阈值δ,即Pck/Pc1<δ。

4.4)ANFIS模型训练。不失一般性,假定减法聚类算法得到两个聚类中心和得到两条模糊规则:

Rule 1:

Rule 2:

ANFIS系统的第一层为系统的输入层,由n个节点组成,它的作用是将输入向量按原值传递到下一层。

第二层为模糊化层,由2n个节点组成,它的作用是计算各输入分量属于各语言变量值模糊集合的隶属函数该层采用高斯函数进行模糊化处理,每个节点的输出:

<mrow> <msubsup> <mi>&mu;</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mi>&sigma;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> </mfrac> <mo>)</mo> </mrow> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mn>2</mn> <mi>n</mi> <mo>;</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mn>2</mn> <mi>n</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

式中,cij和σij分别表示隶属函数的中心和宽度。

第四层为归一化层,节点数与第三层一样,它所实现的是归一化计算,即

<mrow> <msub> <mover> <mi>w</mi> <mo>&OverBar;</mo> </mover> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <msub> <mi>w</mi> <mi>j</mi> </msub> <mrow> <msub> <mi>w</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> </mrow> </mfrac> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>

第五层为结论层,该层与第三层的节点数相同。其节点输出为

<mrow> <msub> <mi>O</mi> <mrow> <mn>4</mn> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mover> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>&OverBar;</mo> </mover> <msub> <mi>f</mi> <mi>i</mi> </msub> <mo>=</mo> <mover> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>&OverBar;</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>+</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mn>1</mn> </msubsup> <msup> <mi>X</mi> <mrow> <mn>1</mn> <mo>*</mo> </mrow> </msup> <mo>+</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mn>2</mn> </msubsup> <msup> <mi>X</mi> <mrow> <mn>1</mn> <mo>*</mo> </mrow> </msup> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mi>n</mi> </msubsup> <msup> <mi>X</mi> <mrow> <mi>n</mi> <mo>*</mo> </mrow> </msup> <mo>)</mo> </mrow> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

第六层为输出层及去模糊化层,只有一个节点,使用面积中心法进行解模糊,得到网络的最终输出为

<mrow> <msub> <mi>O</mi> <mn>5</mn> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>w</mi> <mn>1</mn> </msub> <msub> <mi>f</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> <msub> <mi>f</mi> <mn>2</mn> </msub> </mrow> <mrow> <msub> <mi>w</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>

对于模糊神经网络模型的所有参数,采用混合最小二乘法的梯度下降算法进行学习,步骤如下:

4.4.1)在固定高斯型隶属函数的中心和宽度的前提下,利用最小二乘法计算线性结论参数{r,p};

4.4.2)固定结论参数,采用误差反向传播算法对高斯函数的中心和宽度进行学习可得:

<mrow> <mi>S</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mi>S</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&eta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mfrac> <mrow> <mo>&part;</mo> <mi>E</mi> </mrow> <mrow> <mo>&part;</mo> <mi>S</mi> </mrow> </mfrac> <mo>+</mo> <mi>&alpha;</mi> <mi>&Delta;</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>

ΔS(t)=S(t+1)-S(t) (14)

<mrow> <mi>E</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <mi>f</mi> <mo>-</mo> <msub> <mi>f</mi> <mo>*</mo> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>

式中S为参数c和σ,ηs为学习率,α为动量项,f为预测输出,f*为实际输出,E为平方误差和,n为迭代步数。利用训练样本数据,重复上述步骤,直到满足误差指标或者达到最大训练次数。

4.5)计算适应度值。利用训练得到的预测模型计算垃圾热值将床温预测值与实际测量值y*进行比较,并以误差平方和作为粒子的适应度值MSE,适应度计算公式如下:

<mrow> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msup> <mrow> <mo>(</mo> <mover> <mi>y</mi> <mo>^</mo> </mover> <mo>-</mo> <msup> <mi>y</mi> <mo>*</mo> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>16</mn> <mo>)</mo> </mrow> </mrow>

4.6)更新极值。以适应度值为评价指标,比较当代粒子与上一代粒子之间的适应度值大小,如果当前粒子的适应度值优于上一代,则将当前粒子的位置设置为个体极值,否则个体极值保持不变。同时获取当代所有粒子适应度值最优的粒子,并与上一代最优粒子进行比较,如果当代最优粒子的适应度值优于上一代最优粒子的适应度值,则将当代粒子的最优适应度值设置为全局最优值,否则全局最优值保持不变。

4.7)更新粒子。根据最新的个体极值和全局极值,按照(17)式和(18)式更新粒子的速度vid(t)和位置xid(t)。

vid(t+1)=ωvid(t)+c1r1(pid-xid(t))+c2r2(pgd-xid(t)) (17)

xid(t+1)=xid(t)+vid(t+1) (18)

t是粒子群优化算法的寻优代数。更进一步,为了改善基本粒子群算法容易陷入局部极值和收敛速度慢的缺陷,在PSO算法的基础上引进了动态加速常数c1、c2和惯性权重ω:

<mrow> <mi>&omega;</mi> <mo>=</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </msub> </mrow> <msub> <mi>T</mi> <mi>max</mi> </msub> </mfrac> <mi>t</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>+</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>2</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>2</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>3</mn> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>4</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo> </mrow> </mrow>

其中,Tmax为最大寻优代数,ωmax为最大惯性权重,ωmin为最小惯性权重,R1、R2、R3、R4为常数。

4.8)算法停止条件算法判定。判断是否达到最大迭代次数或者到达预测精度的要求,如果没有达到则返回步骤4.3),利用更新的聚类半径继续搜索,否则退出搜索。

4.9)利用最终寻优得到的聚类半径,对样本进行聚类分析和ANFIS模型训练,得到满足训练终止条件的ANFIS模型,即床温预测模型。

5)预测床温。对指定的样本进行床温预测,或者对当前锅炉运行工况下的床温进行实时预测。

实施例2

参照图1、图2、图3、图4,本发明提供的一种循环流化床生活垃圾焚烧锅炉床温预测系统,包括循环流化床生活垃圾焚烧锅炉,用于该锅炉运行控制的集散控制系统,数据通讯接口,数据库以及上位机。数据库通过数据通讯接口从集散控制系统中读取数据,并用于上位机的训练学习和测试,上位机通过数据通讯接口与集散控制系统进行数据交换,所述的上位机包括离线学习、验证部分和在线床温预测部分。具体包括:

第一信号采集模块。利用该模型采集CFB生活垃圾焚烧锅炉在正常运行时的运行工况状态参数和操作变量,并组成ANIFS床温预测模型输入变量的训练样本矩阵X(m×n),和输出训练样本矩阵Y(m×1),m表示样本个数,n表示变量的个数。

数据预处理模块。对训练样本进行粗大误差处理和随机误差处理,剔除训练样本中的野值,排除异常工况,将训练样本输入变量经归一化处理后映射到[0,1]区间内,得到标准化后的训练样本X*(m×n)和Y*(m×1)。预处理过程采用以下步骤进行:

1.1)根据拉伊达准则,剔除训练样本X(m×n)和Y(m×1)中的野值;

1.2)剔除锅炉停炉运行工况,锅炉停炉时炉膛给煤机和给料机的开度为零,并且炉膛中温度接近常温;

1.3)剔除炉膛压火运行状况,锅炉压火时一次风机、二次风机引风机炉膛给煤机和给料机的开度为零,但是炉膛密相区的温度维持在350℃~450℃;

1.4)剔除给料机堵塞工况,给料机堵塞需要运行人员通过给料口的摄像头拍摄的画面对给料情况进行判断,给料机堵塞时,运行人员会显著地调高给料机的开度,反映在运行数据上,即给料机的开度大于35%;

1.5)数据归一化处理。按照式(1)将数据变量映射到[0 1]的区间内。

<mrow> <msubsup> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mo>*</mo> </msubsup> <mo>=</mo> <mfrac> <mrow> <msub> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>J</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>J</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>J</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>m</mi> <mo>.</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>n</mi> <mo>.</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>Y</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mo>=</mo> <mfrac> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>max</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>min</mi> <mrow> <mo>(</mo> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

式中XJ表示第J变量所组成的向量,min()表示最小值,max()表示最大值。

专家知识库模块。将X*和Y*共同组成ANFIS床温预测模型的训练样本,并进行保存。

智能学习模块。智能学习模块是床温预测系统的核心部分,该模块先利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸,然后采用减法聚类算法对样本数据进行特征提取,自适应的确定初始模糊规则和模糊神经网络的初始结构参数,再结合最小二乘估计法和误差反向传播算法对模糊神经网络的参数进行学习训练。其中,聚类半径是影响建模性能的关键参数,因此以预测精度为目标,利用PSO算法寻找聚类半径的最优值。算法步骤如下:

2.1)利用Gamma Test算法寻找最优的模型输入变量组合以及训练样本尺寸。Gamma Test算法是对所有光滑函数均适用的非参数估计方法,该方法不关注输入输出数据之间的任何参数关系,只对输入输出数据进行计算即可得到模型的噪声方差,对于如下形式的数据集

{(Xi,Yi),1≤i≤m} (2)

式中,X∈Rn表示输入,对应的输出标量为y∈R。

Gamma Test假定的模型关系是:

y=f(x1,…,xn)+r (3)

式中,f是一个光滑函数,r是一个表示数据噪声的随机量。不失一般性,可假定r的均值为0(否则可在f中加入常数项),方差为Var(y)。Gamma Test就是计算一个统计量Γ,用它来评价输出量的方差,显然,如果数据的关系符合光滑模型,并且没有噪声,这个方差是0。Γ的计算过程如下:

2.1.1)计算输入数据的距离统计量。用xi表示第i个输入数据,xN[i,k]表示输入样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&delta;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>x</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

式中,|·|表示欧拉距离,p为最远邻近距离(nearest neighbor)。

2.1.2)计算输出数据的距离统计量。用yi表示第i个输出数据,yN[i,k]表示输出样本的第k近邻域点,计算如下统计量:

<mrow> <msub> <mi>&gamma;</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>m</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mo>|</mo> <msub> <mi>y</mi> <mrow> <mi>N</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> </msub> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mi>m</mi> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>k</mi> <mo>&le;</mo> <mi>p</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

式中符号的意义同(4)式。

2.1.3)计算统计量Γ。为了计算Γ,分别计算邻近距离从1到p的统计量(δm(1),γm(1)),(δm(2),γm(2)),…,(δm(p),γm(p))。对这p个统计量构造一元线性回归模型,用最小二乘法进行拟合,得到的一次线性函数的截距就是Gamma Test统计量Γ,Γ值越小表示样本中的噪声越小。

定义另一个统计量Vratio

<mrow> <msub> <mi>V</mi> <mrow> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>&Gamma;</mi> <mrow> <msup> <mi>&delta;</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

式中,δ2(y)表示输出y的方差。Vratio可以用来评价光滑模型对该数据的模拟能力,Vratio越接近0,表示该模型的预测性能越好。

本实施例中将p设置为10,训练样本的初始个数为2000。首先,确定最优的训练样本尺寸。分别计算当样本尺寸分别是10~2000时,训练样本的Gamma Test统计量Γ,当Γ值趋于稳定时,得到的样本尺寸就是最优的训练样本尺寸。其次,确定最优的模型输入变量组合。需要计算所有输入变量组合时的Γ值和Vratio值,选择Γ值和Vratio值都很小的组合作为模型的最终输入变量。

2.2)利用PSO算法寻找最优的聚类半径。以聚类半径rα作为粒子,15个粒子作为一个种群,每个粒子随机赋予[0.20.9]区间内的随机值,其中第i个粒子的位置的向量标示为ri,i=1,2,…,15;

2.3)以ri为聚类半径,进行减法聚类分析。减法聚类算法用于对建模数据样本的空间进行初始划分以及模糊规则的确定,K-均值聚类算法和模糊C-均值聚类算法均需预设聚类中心的数目,没有充分利用样本空间的蕴含的对象特征信息。而减法聚类算法是一种基于山峰函数的聚类算法,它将每个数据点作为可能的聚类中心,并根据各个数据点周围的数据点密度来计算该点作为聚类中心的可能性。

每个数据点Xi作为聚类中心的可能性Pi由式(7)来定义:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式中m表示n维输入空间中全部的数据点数,Xi=[Xi1,Xi2,...,Xin]、Xj=[Xj1,Xj2,...,Xjn]是具体的数据点,ri是一个正数,定义了该点的邻域半径,||·||符号表示欧式距离。被选为聚类中心的点具有最高的数据点密度,同时该该数据点周围的点被排除作为聚类中心的可能性。第一个聚类中心为XC1,数据点密度为Pc1。选出第一个聚类中心后,继续采用类似的方法确定下一个聚类中心,但需消除已有聚类中心的影响,修改密度指标的山峰函数如下:

<mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>P</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>c</mi> <mn>1</mn> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>&beta;</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

其中,rβ定义了一个密度指标显著减小的邻域,为了避免出现十分接近的聚类中心,rβ=1.5ri。循环重复上述过程直到所有剩余数据点作为聚类中心的可能性低于某一阈值δ,即Pck/Pc1<δ。

2.4)ANFIS模型训练。不失一般性,假定减法聚类算法得到两个聚类中心和得到两条模糊规则:

Rule 1:

Rule 2:

ANFIS系统的第一层为系统的输入层,由n个节点组成,它的作用是将输入向量按原值传递到下一层。

第二层为模糊化层,由2n个节点组成,它的作用是计算各输入分量属于各语言变量值模糊集合的隶属函数该层采用高斯函数进行模糊化处理,每个节点的输出:

<mrow> <msubsup> <mi>&mu;</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mi>&sigma;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> </mfrac> <mo>)</mo> </mrow> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mn>2</mn> <mi>n</mi> <mo>;</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mn>2</mn> <mi>n</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

式中,cij和σij分别表示隶属函数的中心和宽度。

第四层为归一化层,节点数与第三层一样,它所实现的是归一化计算,即

<mrow> <msub> <mover> <mi>w</mi> <mo>&OverBar;</mo> </mover> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <msub> <mi>w</mi> <mi>j</mi> </msub> <mrow> <msub> <mi>w</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> </mrow> </mfrac> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>

第五层为结论层,该层与第三层的节点数相同。其节点输出为

<mrow> <msub> <mi>O</mi> <mrow> <mn>4</mn> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mover> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>&OverBar;</mo> </mover> <msub> <mi>f</mi> <mi>i</mi> </msub> <mo>=</mo> <mover> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>&OverBar;</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>+</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mn>1</mn> </msubsup> <msup> <mi>X</mi> <mrow> <mn>1</mn> <mo>*</mo> </mrow> </msup> <mo>+</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mn>2</mn> </msubsup> <msup> <mi>X</mi> <mrow> <mn>1</mn> <mo>*</mo> </mrow> </msup> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mi>n</mi> </msubsup> <msup> <mi>X</mi> <mrow> <mi>n</mi> <mo>*</mo> </mrow> </msup> <mo>)</mo> </mrow> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

第六层为输出层及去模糊化层,只有一个节点,使用面积中心法进行解模糊,得到网络的最终输出为

<mrow> <msub> <mi>O</mi> <mn>5</mn> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>w</mi> <mn>1</mn> </msub> <msub> <mi>f</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> <msub> <mi>f</mi> <mn>2</mn> </msub> </mrow> <mrow> <msub> <mi>w</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>

对于模糊神经网络模型的所有参数,采用混合最小二乘法的梯度下降算法进行学习,步骤如下:

2.4.1)在固定高斯型隶属函数的中心和宽度的前提下,利用最小二乘法计算线性结论参数{r,p};

2.4.2)固定结论参数,采用误差反向传播算法对高斯函数的中心和宽度进行学习可得:

<mrow> <mi>S</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mi>S</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&eta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mfrac> <mrow> <mo>&part;</mo> <mi>E</mi> </mrow> <mrow> <mo>&part;</mo> <mi>S</mi> </mrow> </mfrac> <mo>+</mo> <mi>&alpha;</mi> <mi>&Delta;</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>

ΔS(t)=S(t+1)-S(t) (14)

<mrow> <mi>E</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>n</mi> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <mi>f</mi> <mo>-</mo> <msub> <mi>f</mi> <mo>*</mo> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>

式中S为参数c和σ,ηs为学习率,α为动量项,f为预测输出,f*为实际输出,E为平方误差和,n为迭代步数。利用训练样本数据,重复上述步骤,直到满足误差指标或者达到最大训练次数。

2.5)计算适应度值。利用训练得到的预测模型计算垃圾热值将床温预测值与实际测量值y*进行比较,并以误差平方和作为粒子的适应度值MSE,适应度计算公式如下:

<mrow> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msup> <mrow> <mo>(</mo> <mover> <mi>y</mi> <mo>^</mo> </mover> <mo>-</mo> <msup> <mi>y</mi> <mo>*</mo> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>16</mn> <mo>)</mo> </mrow> </mrow>

2.6)更新极值。以适应度值为评价指标,比较当代粒子与上一代粒子之间的适应度值大小,如果当前粒子的适应度值优于上一代,则将当前粒子的位置设置为个体极值,否则个体极值保持不变。同时获取当代所有粒子适应度值最优的粒子,并与上一代最优粒子进行比较,如果当代最优粒子的适应度值优于上一代最优粒子的适应度值,则将当代粒子的最优适应度值设置为全局最优值,否则全局最优值保持不变。

2.7)更新粒子。根据最新的个体极值和全局极值,按照(17)式和(18)式更新粒子的速度vid(t)和位置xid(t)。

vid(t+1)=ωvid(t)+c1r1(pid-xid(t))+c2r2(pgd-xid(t)) (17)

xid(t+1)=xid(t)+vid(t+1) (18)

t是粒子群优化算法的寻优代数。更进一步,为了改善基本粒子群算法容易陷入局部极值和收敛速度慢的缺陷,在PSO算法的基础上引进了动态加速常数c1、c2和惯性权重ω:

<mrow> <mi>&omega;</mi> <mo>=</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>&omega;</mi> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> </msub> </mrow> <msub> <mi>T</mi> <mi>max</mi> </msub> </mfrac> <mi>t</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>1</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>+</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>2</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>c</mi> <mn>2</mn> </msub> <mo>=</mo> <msub> <mi>R</mi> <mn>3</mn> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mn>4</mn> </msub> <mo>&times;</mo> <mi>t</mi> </mrow> <msub> <mi>T</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo> </mrow> </mrow>

其中,Tmax为最大寻优代数,ωmax为最大惯性权重,ωmin为最小惯性权重,R1、R2、R3、R4为常数。

2.8)算法停止条件算法判定。判断是否达到最大迭代次数或者到达预测精度的要求,如果没有达到则返回步骤4.3),利用更新的聚类半径继续搜索,否则退出搜索。

2.9)利用最终寻优得到的聚类半径,对样本进行聚类分析和ANFIS模型训练,得到满足训练终止条件的ANFIS模型,即床温预测模型。

第二信号采集模块。用于从数据库中选择需要预测床温的运行工况,或者实时地采集当前锅炉的运行工况。

预测模块。该模块用于对指定的样本进行床温预测,或者对当前锅炉运行工况下的床温进行实时预测。

结果显示模块。显示床温的预测结果,或者对床温的预测结果进行统计分析。

本发明所提出的循环流化床锅炉入炉垃圾热值预测系统及方法,已通过上述具体实施步骤进行了描述,相关技术人员明显能在不脱离本发明内容、精神和范围内对本文所述的装置和操作方法进行改动或适当变更与组合,来实现本发明技术。特别需要指出的是,所有相类似的替换和改动对本领域的技术人员是显而易见的,它们都会被视为包括在本发明精神、范围和内容中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1