1、实时预警算法设计与应用摘 要 本文重点介绍了流程工业实时预警系统设计中采用的数据处理算法。经过处理后的生产实时数据进入预警模型,预警的准确性和稳定性得到显著提高。参照本文设计的预警系统应用在新疆油田陆梁作业区的油气处理装置上,取得良好的使用效果。 关键词 实时; 预警; 算法; 设计; 应用 中图分类号 TP301.6 文献标识码 A 文章编号 1673 - 0194(2013)17- 0059- 03 1 概 述 原油开采、炼油、化工等流程工业,其典型特征是昼夜生产,生产过程多采用管道、容器等设备,物料在流动过程完成物理和化学加工过程。流程工业通常采用集散控制系统,对生产过程进行连续控制和调
2、整。大规模的流程企业,控制系统复杂、参数繁多,给监视和调整带来一定的难度。 实时预警是建立在装置实时数据基础之上的在线计算和分析系统,能够对装置所有的参数进行连续分析和诊断,发现隐患,及时给出指导意见。尤其是在夜间和特殊气候条件下,预警系统能够最大限度地弥补人工巡检的不足,提高装置的安全性。 实时预警是一种高效能的辅助控制系统,对生产数据有很强的依赖性。受电磁干扰、环境变化等因素的影响,从控制系统直接获得的实时生产数据带有一定程度的不确定性,进入预警模型,需要进行数据预处理,否则会影响预警的效果。 本文讨论流程工业实时预警系统建设中涉及的部分数据处理方法。 2 算法设计 实时预警的架构是将预警
3、系统建立在实时数据库之上,即对生产过程进行连续监视。因此实时预警涉及生产数据采集方面的压缩和解压缩算法,数据进入预警引擎之前的、以提高数据有效性为目的的预处理算法,以及预警引擎中的规则推理算法。限于篇幅,本文讨论数据预处理过程中的几个典型算法。 2.1 变化速率计算 工艺参数的变化速率计算是预警系统较为常见的计算方法之一,由于实时数据变化的幅度和频率没有规则,故采用多点平均算法计算的斜率会出现严重的不稳定性。经测试,在油气处理装置上,采用最小二乘法(LINEST)能有有效地解决该问题。 LINEST 函数可通过使用最小二乘法计算与现有数据最佳拟合的直线,来计算某直线的统计值,然后返回描述此直线
4、的数组。也可以将 LINEST 与其他函数结合使用来计算未知参数中其他类型的线性模型的统计值,包括多项式、对数、指数和幂级数。因为此函数返回数值数组,所以必须以数组公式的形式输入。 直线的公式为: y = mx + b 或: y = m1x1 + m2x2 + + b(如果有多个区域的 x 值) 式中,因变量 y 是自变量 x 的函数值。m 值是与每个 x 值相对应的系数,b 为常量。注意,y、x 和 m 可以是向量。LINEST 函数返回的数组为 mn,mn - 1,m1,b。LINEST 函数还可返回附加回归统计值。 语法 LINEST(known_ys, known_xs, const,
5、 stats) LINEST 函数语法具有以下参数: Known_ys 必需。关系表达式 y = mx + b 中已知的 y 值集合。 如果 known_ys 对应的单元格区域在单独一列中,则 known_xs 的每一列被视为一个独立的变量。 如果 known_ys 对应的单元格区域在单独一行中,则 known_xs 的每一行被视为一个独立的变量。 Known_xs 可选。关系表达式 y = mx + b 中已知的 x 值集合。 known_xs 对应的单元格区域可以包含一组或多组变量。如果仅使用一个变量,那么只要 known_ys 和 known_xs 具有相同的维数,则它们可以是任何形状的
6、区域。如果使用多个变量,则 known_ys 必须为向量(即必须为一行或一列) 。 如果省略 known_xs,则假设该数组为 1,2,3,其大小与 known_ys 相同。 const 可选。一个逻辑值,用于指定是否将常量 b 强制设为 0。 如果 const 为 TRUE 或被省略,b 将按通常方式计算。 如果 const 为 FALSE,b 将被设为 0,并同时调整 m 值使 y = mx。 stats 可选。一个逻辑值,用于指定是否返回附加回归统计值。 如果 stats 为 TRUE,则 LINEST 函数返回附加回归统计值,这时返回的数组为 mn,mn - 1,m1,b;sen,se
7、n - 1,se1,seb;r2,sey;F,df;ssreg,ssresid。 如果 stats 为 FALSE 或被省略,LINEST 函数只返回系数 m 和常量 b。 以大型贮罐的液位为例,图 1 为采用多点移动平均算法计算的液位变化结果。 图 2 为采用最小二乘法计算的液位变化结果。 结果显示,最小二乘法能最大限度地剔除噪声,反映真实规律。进入预警系统的液位预警模型中,最小二乘法处理后的数据,能够显著降低预警系统的误报率。 2.2 参数不变计算 参数因传输故障,或传感器故障而发生数据不变是非常常见的仪表现象,不变持续时间过长,会导致操作人员无法观察到已发生的变化或隐患。 经比较和测试,
8、采用方差计算参数不变,比较适合油气处理工艺。 计算基于给定样本方差的方法如下。 语法 VAR(number 1,number 2,) Number 1,number 2, 为对应于总体样本的 1 到 255 个参数。 注解 函数 VAR 假设其参数是样本总体中的一个样本。如果数据为整个样本总体,则应使用函数 VARP 来计算方差。 参数可以是数字或者是包含数字的名称、数组或引用。 逻辑值和直接键入到参数列表中代表数字的文本被计算在内。 如果参数是一个数组或引用,则只计算其中的数字。数组或引用中的空白单元格、逻辑值、文本或错误值将被忽略。 如果参数为错误值或为不能转换为数字的文本,将会导致错误。
9、 如果要使计算包含引用中的逻辑值和代表数字的文本,请使用 VARA 函数。 函数 VAR 的计算公式如下: 式中,x 为样本平均值 AVERAGE(number 1,number 2,) ,n 为样本大小。 实际应用中,以 10 秒为采样间隔,样本数量为 10,则在 2 分钟之内,预警系统可以发现参数处于不变状态,如贮罐的液位计卡壳、锅炉液位传感器故障。 2.3 均值计算 由于扰动的存在,液位、温度等参数的平均值会出现大幅变化,失去实际使用价值,工程研究表明,当数据中小概率数值去除后,数组的平均值出现显著平稳倾向,实用价值增强。正态分布用于平均值计算,将小概率数据剔除后,数据均值的有效性得到显
10、著提高。 正态分布返回指定平均值和标准偏差的正态累积分布函数的反函数。语法 NORMINV(probability,mean,standard_dev) Probability 正态分布的概率值。 Mean 分布的算术平均值。 Standard_dev 分布的标准偏差。 注解 如果任一参数为非数值型,函数 NORMINV 返回错误值 #VALUE!。 如果 probability 1,函数 NORMINV 返回错误值 #NUM!。 如果 standard_dev 0,函数 NORMINV 返回错误值 #NUM!。 如果 mean = 0 且 standard_dev = 1,函数 NORMIN
11、V 使用标准正态分布(请参阅函数 NORMSINV) 。 如果已给定概率值,则 NORMINV 使用 NORMDIST(x, mean, standard_dev, TRUE) = probability 求解数值 x。因此,NORMINV 的精度取决于 NORMDIST 的精度。NORMINV 使用迭代搜索技术。如果搜索在 100 次迭代之后没有收敛,则函数返回错误值 #N/A。 实际应用中,5%10%(视需要进行调整)的小概率样本从样本集中剔除,计算对象的均值能够比较真实地反映参数的变化规律。 3 算法组合及锅炉预警 3.1 算法组合 状态判断算法用于识别生产过程、设备或参数的当前的状态是
12、否稳定,为其他计算提供参考,或作为启动相应算法的开关。 状态判断的极端情况是数据连续不变,导致方差为“0”而无法计算出结果,而这种情况恰好可以判断出数据是否发生了不变的情况。故状态判断首先对方差进行计算,方差不为“0”时进行状态判断计算,其结果即分为“不变” 、 “稳态” 、 “非稳态” 3 种情况。 其中“不变”转入不变预警,而“稳态”则降低预警的可信度, “非稳态”则提高预警可信度。 输入:最新 10 个样本点(按 10 秒取样一次,可判断出 2 分钟的不变情况) 。 输出:“不变” 、 “稳态” 、 “非稳态” 。 预警对象:不变预警。 调节参数:状态判断计算的容忍度(稳态与非稳态之间平
13、衡点的调节) 。其过程见图 1。 3.2 锅炉预警示例 锅炉是油气处理装置的重要设备,锅炉预警模型涉及锅炉系统所有的运行参数,以及锅筒、供水泵等设备的运行状态。模型的主要描述如下: 设备投用:状态位号值为 1; 检测参数:锅筒液位、供水泵频率; 锅筒液位:超高、超低、不变; 供水频率:不变; 相关算法:最小二乘法计算速率;方差计算不变。 通过对锅筒液位不变的检测可以预防锅炉干烧事故,当液位计故障时,导致供水泵不能得到有效的反馈,从而不能及时补充供水,锅炉会在 20 分钟左右发生干烧事故。预警系统会在 3 分钟内触发锅筒液位不变预警,操作工有足够的时间判断原因和采取相应的措施,避免干烧事故的发生。其检测过程见图 2。 4 结 论 新疆油田“油气处理实时预警系统”于 2010 年 10 月并网运行,至2011 年 11 月,预警系统载入陆梁处理站和石南 21 处理站两个模型,系统加载的模型、设备、参数和规则均调试通过,计算参数调至合理范围。经过严格的测试和试用, “油气处理实时预警系统”目前已经为陆梁作业区的陆梁处理站和石南 21 处理站提供直接的装置预警服务,同时为陆梁作业区的相关管理部门提供预警信息服务。从使用情况来看,预警系统对控制系统形成了一个有益的补充,对操作水平的提高、设备故障的预防、故障的预警起到了预期的作用。