曾超湛,印四华
(广东工业大学计算机学院,广州 510006)
玻璃生产是高能耗产业,其中玻璃窑炉的能源消耗占据全厂能源的80%以上[1-2]。若生产过程中,由于燃料、配合料供给不稳定等因素造成玻璃制品的良品率下降,则会直接导致能源损失。能耗异常损耗是造成窑炉生产能源浪费的重要诱因,及时发现异常是窑炉节能降耗的重要环节。目前玻璃窑炉的异常检测方法仍然是较传统的,即通过人工巡查机组、人力监测系统日志以检测异常,虽人力参与监测使其具备高容错性优点,但传统方法易受主观因素干扰且存在滞后性,待确定异常原因时已造成能源大量损失。此外,窑炉异常发生时是冗余报错的,工人将无法准确捕捉核心异常信息。
异常检测作为数据挖掘领域的热门研究方向,可用于能源效率、设备监测、工业过程等领域。Soner Emec等[3]基于机床电力能耗数据模型,提出一种在线模式匹配的机床设备故障监测方法,用于提高机床生产效率。Abbas M等[4]以模块化结构对飞机涡轮发动机建立能耗模型,通过分析模块间的能量传播过程以检测子系统的运作状况。Jianhua Guo等[5]基于热力学理论建立硫化过程的能耗模型,并建立动态分层能耗模型估算热损失,由此检测到轮胎硫化车间里蒸汽疏水阀和绝缘层中不易检测的故障。林越等[6]提出一种双向KL 距离聚类的变压器状态异常检测模型及分析方法,有效减少变电站故障漏报信息。黄鑫等[7]结合光流法和均值漂移算法,提出了一种基于监控视频的车辆异常行为检测方法,可有效实时地识别出道路车辆超速、违规变道和闯红灯等车辆异常行为。
基于上述研究可知,多数学者分别从设备能耗和聚类方面进行异常检测研究。基于能耗模型的异常检测结果具备成为专家系统的潜力;聚类则是典型的无监督异常检测算法,即使没有预知领域信息也可进行异常检测。实际上,如在铝型材挤压行业[8-9]、钢铁工业[10]、配电网系统[11]等领域上应用证明,结合两者的异常检测方法是可行的,即拥有聚类算法实时精准的检测能力,同时具备较高应用价值。为此,本文将以马蹄焰玻璃窑炉(马蹄窑)为例,提出一种结合马蹄窑分层能耗模型与ABC-DPC算法的能耗异常检测方法,以实现实时精准的异常检测,同时聚类结果可直接反映设备能耗状况,具有指导生产的意义。
若需研究马蹄窑的异常检测方法,前提是需要对该热工设备建立宏观的认识和理解。本文研究对象为双通道蓄热室马蹄窑,由熔化部(火焰空间和熔化池)、蓄热室、小炉、工作池等部件构成。已知马蹄焰以20 min 为周期,以交换小炉的喷火口实现换向喷火,同时蓄热室以换向方式交换蓄热或者传热功能。即蓄热式马蹄窑是一侧小炉处于工作状态,燃料燃烧提供火焰进入火焰空间;另外一侧小炉处于休息状态,火焰空间中产生的高温烟气则通过闲置一侧小炉进入蓄热室,以此加热该侧蓄热室,待下次换向时以加热助燃空气。以此往复交替进行工作,持续不断辐射传热熔化原料,并输出玻璃液。马蹄窑的系统结构和燃烧工艺如图1所示。
图1 马蹄窑系统结构及工艺流程
参考国家标准GBT 25039-2010的玻璃池窑热平衡分析方法[12],根据热力学第一、第二定律构建马蹄窑的热平衡方程式。在热平衡方程式基础上,参考文献[13]的马蹄窑局部能耗模型,本文将提出一种结合马蹄窑工艺流程的分层能耗模型。
假设燃料充分燃烧,以及由火焰空间、蓄热室、熔化池构建的整个窑炉系统气体密封性良好的情况下,马蹄窑整体通路热平衡方程式表示为:
式中参数说明如表1所示。
表1 马蹄窑整体通路热平衡能量构成
由马蹄窑的工艺流程可知,窑炉系统可具体分为火焰空间、蓄热室以及溶化池3个子系统。
火焰空间的热平衡能量构成项主要包括燃料燃烧反应热、玻璃熔制过程的化学热、玻璃液面吸收辐射热、高温烟气带走物理热以及火焰空间窑墙散热,如下所示:
式中参数说明如表2所示。
表2 火焰空间的热平衡能量构成
熔化池的玻璃液面从火焰空间吸收辐射热和对流热用于玻璃熔融反应,并伴随混合料带入一定焓值的热量,最后输出玻璃液。该子系统的热平衡方程式如下所示:
式中参数说明如表3所示。
表3 熔化池的热平衡能量构成
蓄热室则以火焰空间流入的高温烟气以及蓄热室负压侧漏入空气带入热量作为蓄热室的能源输入,以出口废气带走的热量、蓄热室预热助燃空气的热量、蓄热室壁散热损失与沉积在蓄热室格子体的炉尘热量损失作为能源输出。蓄热室的热平衡方程式如下所示:
式中参数说明如表4所示。
表4 蓄热室的热平衡能量构成
依据马蹄窑的工艺流程特性,分析窑炉及其子系统之间的能量流动关系,明确窑炉子系统相互间的能量流动关系,并联立表3~5中各窑炉子系统的热平衡能量构成项,以构建马蹄窑的分层能耗模型,如图2所示。
图2 马蹄窑分层能耗模型
在热平衡方程式中,池窑有效热是评价窑炉能源效率的有效指标。已知国外先进玻璃窑炉的池窑热效率达40%~45%[14],而本文研究的马蹄窑经实地调研结果显示,其池窑热效率达35%~40%。过高或过低的热效率都反映窑炉的能耗存在异常,因此池窑热效率可作为马蹄窑的能耗异常检测指标。
评价池窑热效率的公式为:
池窑有效热包含玻璃液带走热量、玻璃反应形成热以及玻璃反应生产气体带走热量,如下式所示:
池窑总输入热量包含燃料燃烧热、燃料物理显热、预热助燃空气显热,如下式所示:
联立式(5)~(7)可知,理想条件下较高的池窑有效热,表示池窑能够以稳定的燃料燃烧能耗获得较高的玻璃液生成率。
从马蹄窑子系统的热平衡能量构成可得,能源消耗大致可分为:(1) 玻璃液吸收并带走热,表示窑炉的有效热;(2) 排除废气带走热,表示窑炉的损失热,但部分热量可被回收利用;(3) 窑墙散热损失热,则是窑炉的纯粹损失热。分析热平衡能量构成的实际数据和各损失热的大小和所占比例,发现熔窑运行中的一些问题,以寻找一些切实可行的解决办法。例如传感器异常、窑体散热异常以及玻璃熔融反应异常等[15]。
(1) 符号定义
DPC算法[16]相关符号及描述如表5所示。
表5 DPC算法的符号描述
(2) 算法描述
DPC 算法思想:任意簇中心被具有较低局部密度的邻居点包围,且与较高密度的任何样本点有着相对较大距离。为此,对每个样本点i要计算2个量,局部密度 ρi和该点到更高局部密度点的距离δi。
计算样本点的局部密度 ρi:
式中:dij为样本之间的距离; χ (·)为密度估计函数,默认可选截断核和高斯核形态,分别如式(9)~(10)所示。
计算样本点i到较高密度点j的最近邻距离δi:
(1)设定Q={q1,q2,...,qn}为局部密度集P降序排序后取其下标组成的索引集合,则其满足:
(2)依索引集Q中顺序依次计算δi,如下式所示:
综合式(8)~(12),对于数据集S中的每个样本点xi可计算 (ρi,δi)。令 Z={(ρi,δi)}in=1,并把 Z 作为绘制 DPC决策图的输入空间,绘制效果如图3所示。由图可知,各个索引数字表示样本序号,即偏左区域是可能成为离群点的序号,或者偏右区域是可能成为簇中心的序号。从样本集中筛选出较小ρi且δi较大的样本点判定为离群点,或筛选出较大ρi且较大δi的样本点判定为簇中心。确认簇中心后,将其他样本点归类到距离其最近的簇中心所属簇群,完成聚类过程。
图3 DPC算法决策图
原始DPC 算法是通过经验值来设定截断距离dc参数的,并且聚类效果对于不同核函数、不同dc取值较为敏感。已知dc是一个超参数,与样本点i相距小于δ内的邻居点个数总和等于i的局部密度ρ。当dc过大时,ρ值区分度不高,且ρ值之间非常接近,致使多个类簇被划分在一起,聚类个数少于真实簇群数;同理ρ过小时,聚类个数多于真实簇群数[17-19]。
为解决DPC 算法聚类效果依赖主观经验设定参数的不足,本文提出基于ABC 算法的dc参数自适应的优选策略,其主要思想是通过ABC 算法优秀的寻优能力进行最优解搜索。然而不同dc取值对聚类结果影响不一,为此还需要具体聚类性能度量指标作为适应值,即dc求解过程的收敛条件。本文的改进算法采用轮廓系数[20](Sihouette,Sil)作为适应值目标函数,结合内聚度和分离度两种因素,以评价不同dc取值的聚类效果表现。
鉴于ABC算法优秀的求最优解能力,本文将结合ABC算法实现截断距离自适应优选过程,算法步骤如下。
输入:数据集S。
输出:最优Sil指标的截断距离dc。
(1)步骤1:计算所有样本点之间的欧氏距离,并按照升序排序得到距离集合E={dc1,dc2,…,dcL},根据原始DPC 算法指出,样本点附近邻居点个数不超过总数的2%[16],因此可设定dc的搜索空间为E的前2%,故L为E的前2%的距离值个数统计量。初始化解空间为:
式中:φ为[0,1]内的随机数;为构成解每维度的取值范围,即[]。
(2)步骤2:执行DPC 算法,并根据聚类结果计算Sil 指标作为每个解的适应值,以及记录当前解为最优解。Sil指标由式(14)计算得:
(3)步骤3:雇佣蜂阶段,在当前解的邻近解中进行搜索以更新解,搜索公式为:
式中:τ为[-1,1]内的随机数;dck为在种群中随机选择的邻居解,且dck≠dci;当产生新解vi时,同时计算其适应值。由于Sil 取值范围为[-1,1],Sil 取值越接近1 表示聚类效果越好。适应度目标函数如式(16)所示。
(4)步骤4:跟随蜂阶段,跟随蜂是根据雇佣蜂带回的适应值进行随机选择,即通过式(16)~(17)计算被选中概率P,以轮盘赌方式选择新解。若新解优于被更新解dci,则让 vi替换dci。
(5)步骤5:侦查蜂时期,再次利用式(13)随机产生新的解,并依次执行步骤(2)~(4),若迭代次数达到预设的limit 次,仍然没有产生更好Sil 指标的新解,输出最优解dc,算法正式结束。
图4 基于ABC算法的截断距离优选算法流程图
原始DPC 算法是采用观测决策图形式确定离群点或者簇中心的,选择标准很大程度受到使用者的主观因素影响,容易导致干扰对象误判为目标对象的情况发生。考虑到人为决策的不足,本文将模拟人为观测决策图的筛选策略,定义一个离群系数γi,如式(18)所示。
式中:f(ρi,δi)为二元分段函数,ρθ为边界条件。由 DPC 算法思想与决策图的特征可知,决策图可大致分成左右两部分,同一左侧越往左上方偏移则样本越有可能成为离群点,同一右侧越往右上方偏移则样本越适合成为簇中心。然而,实现自动识别离群点或簇中心的关键问题是使得二元分段函数的计算方式生效,即寻找合适的边界条件值ρθ,方法步骤如下。
(1)步骤1:设定样本集决策图的输入空间为Z,并将其归一化到数据空间[0,1]2∈R2内。
(2)步骤2:将Z经高斯核密度估计变换,得到决策图的概率密度分布曲线,如图5所示。
图5 决策图的概率密度分布曲线
图6 离群系数升序趋势图
其概率密度函数PK(y)由式(20)~(21)计算而得。在数学上,核是由带宽参数σ控制的正值函数K(ρ,δ)。
(3)步骤3:观察图5的概率密度分布曲线,其在形态上是较符合正态分布,与DPC 决策图的特征表现基本一致。即曲线以ρb为分界处分成左右两部分区域,较低与较高密度点的频数都相对较低,其中局部密度较低点位于左侧,局部密度较高点位于右侧。概率密度分布代表了样本的分布频数,以ρb值划分的左侧区域为出现频率较低的样本分布区域,在该区域内所有对象点均有可能成为离群点,为此设定离群系数公式的边界条件ρθ=ρb。
(4)步骤4:将离群系数集G升序排序后,取其下标组成索引集合Y={y1,y2,…,yn}。则其满足:
(5)步骤5:按照式(22)绘制离群系数升序图,如图6所示。由图可知,簇中心或离群点与大部分样本的γ差值较大,即存在明显的“跳跃点”。非簇中心的γ值之间差值较小且变化趋于平滑。由此,在“跳跃点”位置设定阈值边界,让算法识别阈值边界以自动识别出离群点和簇中心。
操作步骤:让相邻的γ值两两相减得到差值集合。从小到依次搜索差值集合,寻找差值小于设定阈值的位置序号k。然后,从式(22)中导出前k个离群点{γy1,γy2,γyk}。
因马蹄窑的分层能耗模型的基础是各个窑炉子系统的热平衡方程式。在分层能耗模型中,各个能量构成项与池窑热效率指标代表着窑炉整体及其子系统的能耗信息和设备状态。其次,由于监控玻璃窑炉的工况信息是通过传感仪器测量及采集的,传感仪器由于安装位置、网络环境、使用寿命等因素,可能造成数据采集偏差问题。
由此,以能量构成项和池窑热效率构造特征值,并作为ABC-DPC 算法的数据输入空间,不仅避免部分数据干扰影响,而且可直接反映窑炉整体及其子系统的能耗状况。基于ABC-DPC的马蹄窑能耗异常检测算法的步骤如下。
输入:数据集S。
输出:异常能耗样本集B。
(1)步骤1:提取马蹄窑分层能耗模型中的14 个能量构成项以及池窑热效率,计算并构造特征值。记作输入空间C。
(2)步骤2:为排除不同量纲差异带来的影响,对C进行最大-最小归一化处理。
对矩阵C进行转置:
对每一特征i进行最大-最小值归一化:
(3)步骤3:启用人工蜂群算法的截断距离参数优选算法,计算最优Sil指标的截断距离,输出dc。
(4)步骤4:设定最优dc,并初始化密度峰值算法。开始聚类运算得到C的局部密度集P和最近邻距离集Δ。
(5)步骤5:启用离群系数算法,计算C中每个能耗样本的离群系数,并输出离群系数集Γ。
(6)步骤6:升序排序Γ,并让相邻的值两两相减得到差值集。检索差值集合中小于设定阈值的索引位置k。从升序排序的Γ 中取得前k位的样本索引序号{y1,y2,…,yk},然后根据索引序号依序从C中导出异常能耗样本,记作B={cy1,cy2,…,cyk}。
ABC-DPC的马蹄窑能耗异常检测模型如图7所示。
图7 ABC-DPC的马蹄窑能耗异常检测模型
为了验证所提出的马蹄窑异常聚类检测模型的有效性,本实验将以广东省佛山市某玻璃厂的蓄热式马蹄窑为研究对象,具体从马蹄窑生产控制系统的数据库中提取2019年1~2 月中的22 880 条原始工况数据作为样本,以开展本课题的聚类异常检测实验研究。其中,本文的算法均在PC 上完成实验的。实验软件环境为Windows 10;实验编程环境为Python 3.7.1。
根据ABC-DPC的能耗异常检测结果,即异常能耗样本集B={cy1,cy2,…,cyk}。联立集合Γ、S 以及C,根据索引序号{y1,y2,…,yk}导出对应的数据,S中只取标签值(1表示正常,0表示异常),得到能耗异常检测参考表,如表6~7所示。
表6 能耗异常检测参考表
表7 异常能耗样本集B
联立表6~7可以分析样本点的池窑热效率与离群系数的关系。离群系数越大,样本的池窑热效率接近于较中心样本点平均水平。同理,离群系数越小,样本池窑热效率越低,说明样本越有可能存在能耗异常,即样本点的池窑热效率与其离群系数成正比例关系。经多组实验结果表明,基于ABC-DPC的马蹄窑能耗异常检测模型的聚类结果接近于调研结果的池窑热效率水平,符合实际生产条件。
Sil系数的值域范围为[-1,1]。对于不正确的聚类,Sil系数越接近-1;Sil 系数接近1 时,表示该样本越适合被划分到当前簇。当簇内分布密集且簇间分离较好时,则分数更高,符合簇的标准概念定义。Fowlkes-Mallows(FM)指数被定义为成对查准率和查全率的几何平均值。FM 指数的值域范围为[0,1],该指数表示经聚类划分的标签集和真实标签集之间的相似性,值越高表示越相似,即聚类划分效果越好。
以Sil 系数与FM 指数度量聚类算法的性能表现,效果如表8 所示。分析实验结果可得结论,ABC-DPC 较于经典聚类算法的聚类有效性指标是最优的,特别是随着数据规模增加,效果愈明显。
表8 不同聚类算的Sil与FM指标对比
数据规模572 1 144 2 288 4 576 11 440 22 880 DBSCAN Sil 0.190 0.223 0.242 0.261 0.278 0.284 FM 0.751 0.767 0.766 0.773 0.772 0.770 K-means Sil 0.239 0.244 0.243 0.249 0.252 0.253 FM 0.658 0.663 0.690 0.708 0.724 0.759
同样地,算法运行时间也是值得关注的统计量,如图8所示。ABC-DPC与其他聚类算法运行时间水平相当,但取得最佳聚类有效性指标。
图8 不同聚类算法的运行时间
本文是以工业应用为研究背景,针对传统的玻璃窑炉异常检测方法易受主观因素干扰、冗余报错的情况,首先通过热平衡分析得到马蹄窑的分层能耗模型,并以此构造能耗特征值,然后应用ABC-DPC算法实现马蹄窑的能耗样本快速聚类异常检测过程。实验结果表明,ABC-DPC算法能高效地检测窑炉的异常能耗样本,并与DPC、K-Means 以及DBSCAN算法比较,在算法运行时间相当的情况下,具有最好的聚类性能表现。