基于大数据分析平台的发电大数据预处理方法及***
技术领域
本发明涉及电力信息化技术领域,尤其涉及一种基于大数据分析平台的发电大数据预处理方法及***。
背景技术
随着发电***信息技术的应用与发展,发电厂数字化程度越来越高,已经积累了海量的历史数据,采用传统的数据挖掘方法是基于有限的样本分析,已不能满足电力行业从海量数据中快速获取知识与信息的分析需要。而采用大数据技术对发电***的电力大数据进行数据挖掘,能够更清楚地发现原始数据无法揭示的细节信息,大大提升了电力大数据蕴含的价值。电力大数据技术的应用是电力行业信息化、智能化发展的必然要求,是实现智慧电厂和智慧能源的关键技术。
在发电***中各类仪表、传感器获取的电力设备状态监测信息种类多、数量大、意义非常模糊,在发电企业的电力大数据挖掘中,由于各***、各设备之间有着很强的耦合关系,指标计算公式复杂。存储的海量原始数据中存在一定比例不完整、不一致、有异常的脏数据,严重影响着大数据挖掘建模的执行效率,或会导致挖掘结果差强人意。
目前,电力大数据研究和应用仍处于起步阶段,如何应用大数据技术对发电企业的电力大数据进行分析挖掘,获得隐藏在深处的各种价值是当今亟待解决的难题。而获得良好的数据样本对大数据挖掘分析出理想的结果至关重要。故在大数据分析挖掘之前,需对数据进行预处理。数据预处理是一个最为重要和繁琐的步骤,工作量一般占整个挖掘分析过程的70%。
由于发电机组在启停和变负荷过程中的瞬态数据受测量手段和测量精度的影响,以及电厂热力学计算公式局限性等情况。存储在发电厂历史数据库中发电大数据不可避免地存在着不完整、不一致、不精确的数据,会对数据挖掘算法的执行效率产生影响,甚至会造成挖掘结果的偏差。
发明内容
本发明目的在于提供一种基于大数据分析平台的发电大数据预处理方法及***,以解决发电大数据存在着不完整、不一致和不精确的数据的技术问题。
为实现上述目的,本发明提供了一种基于大数据分析平台的发电大数据预处理方法,包括以下步骤:
S1:从发电厂的实时数据库中提取出电厂发电机组的运行数据,并上传至大数据分析平台;
S2:当需要调用电厂发电机组的运行数据时,根据发电机组开停机判定规则,过滤运行数据,从大数据分析平台中获取的电厂发电机组的运行数据中删除发电机组开停机的数据。
作为本发明的方法的进一步改进:
步骤S2中,停机数据的判断条件为:同时满足负荷≤8MW和转速≤2900r/Min。
步骤S2完成后,方法还包括:
S3:检测单维噪音并替换异常值。
步骤S3包括:采用箱线图法检测单维噪音,选取样本排序数据的上四分位数与1.5倍的上下四分位差值之和为作为健康数据的上限,采用下四分位数与1.5倍的上下四分位差值之差为作为健康数据的下限;采用线性插值处理方法替换检测出的异常值。
方法还包括:
S4:根据发电机组的负荷变化,判断发电机组是否处于稳定工况,删除发电机组处于不稳定工况时的运行数据。
S4中,将发电机组在升负荷和降负荷的工况判定为不稳定工况。
方法还包括:
S5:检测运行数据中的局部离群点并过滤删除。
步骤S5包括:采用基于KNN的局部LOF算法,计算出所有点的局部离群因子,根据点的局部离群因子,判断点是否为异常点;当点为异常点时,过滤删除。
步骤S5中的运行数据包括:全部指标的运行数据,以及负荷与供电煤耗的运行数据。
作为一个总的技术构思,本发明还提供了一种基于大数据分析平台的发电大数据预处理***,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的步骤。
本发明具有以下有益效果:
本发明的基于大数据分析平台的发电大数据预处理方法及***,通过数据采集与存储和机组开停机数据过滤,得到标准、干净、连续、所需的大批量数据,为后续的大数据统计、大数据挖掘等使用。
本发明的基于大数据分析平台的发电大数据预处理方法及***,通过单维噪音检测与处理、机组工况判稳处理、局部离群点检测与处理等步骤,对采集到的发电大数据进行噪音预处理。减少发电大数据挖掘算法的数据处理,改进数据质量,进而为后续的发电大数据挖掘分析提高效率和准确性。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照附图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明优选实施例1的基于大数据分析平台的发电大数据预处理方法的流程示意图;
图2是本发明优选实施例2或3的基于大数据分析平台的发电大数据预处理方法的流程示意图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
参见图1,本发明的基于大数据分析平台的发电大数据预处理方法,包括以下步骤:
S1:从发电厂的实时数据库中提取出电厂发电机组的运行数据,并上传至大数据分析平台;
S2:当需要调用电厂发电机组的运行数据时,根据发电机组开停机判定规则,过滤运行数据,从大数据分析平台中获取的电厂发电机组的运行数据中删除发电机组开停机的数据。
通过数据采集与存储和机组开停机数据过滤,可以删除发电机组开停机过程数据变化较快,对数据统计和挖掘造成坏的影响。将这部分数据给剔除掉。为后续的大数据统计、大数据挖掘等提供更准确干净的数据。
实施例1:
参见图1,本实施例的基于大数据分析平台的发电大数据预处理方法,包括以下步骤:
S1:从发电厂的实时数据库中提取出电厂发电机组的运行数据,生成txt文本数据,并上传至大数据分析平台,以便在大数据分析平台中对存储的发电大数据进行数据清洗,数据挖掘;
S2:当需要调用电厂发电机组的运行数据时,根据发电机组开停机判定规则,过滤运行数据,从所述大数据分析平台中获取的电厂发电机组的运行数据中删除发电机组开停机的数据;停机数据的判断条件为:同时满足负荷≤8MW和转速≤2900r/Min。开停机数据属于不稳定状态数据,发电大数据分析,一般都是对稳定状态分析才有意义。判断条件就是同时满足负荷≤8MW和转速≤2900r/Min。通过数据采集与存储和机组开停机数据过滤,可以删除发电机组开停机过程数据变化较快,对数据统计和挖掘造成坏的影响。将这部分数据给剔除掉。
S3:检测单维噪音并替换异常值。包括:采用箱线图法检测单维噪音,选取样本排序数据的上四分位数与1.5倍的上下四分位差值之和为作为健康数据的上限,采用下四分位数与1.5倍的上下四分位差值之差为作为健康数据的下限;采用线性插值处理方法替换检测出的异常值。
S4:根据发电机组的负荷变化,判断发电机组是否处于稳定工况,将发电机组在升负荷和降负荷的工况判定为不稳定工况。删除发电机组处于不稳定工况时的运行数据。
S5:检测运行数据中的局部离群点并过滤删除。本实施例中,采用基于KNN的局部LOF算法,计算出所有点的局部离群因子,根据点的局部离群因子,判断点是否为异常点;当点为异常点时,过滤删除处理。检测运行数据中的局部离群点分两步就行,先对全部指标的运行数据进行处理,再对负荷与供电煤耗的运行数据进行处理。
以上步骤,通过单维噪音检测与处理、机组工况判稳处理、局部离群点检测与处理等步骤,对采集到的发电大数据进行噪音预处理。减少发电大数据挖掘算法的数据处理,改进数据质量,进而为后续的发电大数据挖掘分析提高效率和准确性。
实施例2:
参见图2,本实施例的基于大数据分析平台的发电大数据预处理方法,包括以下步骤:
S1:数据采集与存储。通过从发电厂厂级监控信息***(集过程实时监测、优化控制及生产过程管理为一体的厂级自动化信息***,Supervisory information system inplant leve,简写SIS***)的实时数据库中提取出电厂发电机组的运行数据,生成TXT文本数据,并上传至大数据分析平台的HDFS(Hadoop Distributed File System)分布式存储***,经过文件的合并和格式的转换,将TXT数据文件转换为parquet格式存储到大数据分析平台。平台中的数据文件基本存储在HDFS文件***中,HDFS支持大数据量的存储;运行产生的日志文件存储在HBase(一个高可靠性、高性能、面向列、可伸缩的分布式存储***,Hadoop Database)分布式数据库,支持快速、高效的读写能力。
S2:机组开停机数据过滤。机组开停机数据过滤是指在机组运行的过程中,存在一些开停机过程的情况,这段时间内的数据变化较快,对数据统计和挖掘造成坏的影响。需将这部分数据给剔除掉。根据火力发电机组开停机判定规则,主要以机组负荷和转速指标进行判定,本实施例中,以同时满足负荷≤8MW,转速≤2900r/Min两个条件的数据判定为停机数据。
S3:单维噪音检测与处理。在发电厂数据采集过程中,不可避免地会引入噪声或异常点。手工收集的数据往往受到录入错误的困扰,自动收集的数据也难免存在受到传感器、传输、***读数等过程而造成的噪声数据。所以针对此类情况,采取单维噪音检测与处理。本步骤采用箱线图检测单维噪音,考察相邻数据的异常值,再采用异常值处理方法来确定相邻数据最终值。
箱线图(Boxplot)可以用来观察数据整体的分布情况,是用一组数据中的最小值、第一四分位数、中位数、第三四分位数和最大值来反映数据分布的中心位置和散布范围。通过把组中所有数据由小到大排列并分成四等份,处于三个分割点位置的数字确定为四分位数。通过计算这些统计量,生成一个箱体图,箱体包含了大部分的正常数据,而在箱体上边界和下边界之外的,就是异常数据。
其中上下边界的计算公式如下:
AU=Q3+1.5IQR=75%分位数+(75%分位数-25%分位数)*1.5 (1)
AL=Q1-1.5IQR=25%分位数-(75%分位数-25%分位数)*1.5 (2)
参数说明:AU为箱体上限;AL为箱体下限;Q1为表示下四分位数,即25%分位数;Q3为上四分位数,即75%分位数;IQR表示上下四分位差;系数1.5是一种经过大量分析和经验积累起来的标准系数。
针对箱线图法检测出来的异常值处理方法有多种,如均值替换、中位数替换、众数替换等。考虑到发电大数据大都是连续变量,异常点应保持和附近的正常点趋势一致性,因此采用线性插值处理。线性插值组件采用异常点上下时刻正常的点,去均值来替换原来的异常值。这种处理的方法使得数据比较平滑,可消除噪声数据的影响。
S4:机组工况判稳处理。火力发电机组在升负荷和降负荷等变工况情况下,某些指标的变化出现超前或者滞后的变化,此时,煤耗等计算值与实际值存在较大的偏差,煤耗计算值为一个虚假煤耗值,不能反映真实的情况。所以在变工况下,指标超前滞后的变化,可以通过稳定工况的判断进行与处理。
判断发电机组工况稳定与否。可对表征工况的指标进行稳定性判定。分别判断这些指标某一时刻的前后若干时间内值的变化大小(变化绝对值或变化速率)是否超出设定的范围。当某一时刻这些指标中任意指标值超出设定的范围时,则认定这一时刻机组为不稳定状态。此时数据将不纳入相关统计与分析中。主要选定发电机组负荷、主汽压力、主蒸汽温度、再热蒸汽温度、给水流量、给水温度作为火力发电机组开停机判定指标,依据一定的判定规则,对样本中每十分钟的数据进行稳定状态判定,被判定为不稳定的数据被剔除掉。再往后递推5min,构成新的10min的数据小样本,再次判定。
S5:局部离群点检测与处理。
采用基于KNN(KNN,K-NearestNeighbor,K最邻近分类算法)的局部LOF(LocalOutlier Factor,局部异常因子算法)算法来实现。该方法结合K-近邻算法(KNN),通过构造一棵混合泄露事故树,快速高效的计算出点的第K距离,优化了基于距离计算点局部离群因子的LOF算法。可有效提高算法的效率,能处理高维和大数据集。
该算法主要是通过比较点与其第K邻域内点的密度来判断点是否为异常点。算法输出所有点的局部离群因子,若点的离群因子越小于1,则表示该点的密度远大于其第K邻域内点的密度;若点的离群因子越大于1,则表示该点的密度越小于其第K邻域内点的密度,该点越可能是异常点。算法的具体实现步骤如下:
(1)利用K-近邻算法(KNN)输出所有点的第K距离;
(2)找出点第K邻域内的所有点;
(3)根据公式(3)计算出计算点第K邻域内点到该点的可达距离,其中p为计算点,o为p第K邻域内的点;
Reach-distancek(p)=max{k-distance(0),d(p,o)} (3)
其中,Reach-distancek(p,o)为点o到点p的第k可达距离,k-distance(o)为点o的第k距离,d(p,o)为点p和点o之间的距离。
(4)根据公式计算出计算点的可达密度;
其中,lrdk(p)为点p的局部可达密度,|Nk(p)|为点p的第k邻域内点的个数,Nk(p)为要计算点p的第K邻域。
(5)根据下述公式(5)计算出可达密度计算点的局部离群因子。
其中,LOFk(p)为可达密度计算点的局部离群因子。
(6)当计算出的LOFk(p)≥2.5时,从数据集里采用直接剔除法删除处理该数据。
实施例3:
参见图2,本实施例通过在大数据分析平台上,采集某电厂超临界600MW机组最近一年负荷、主汽压力、供电煤耗等184个历史能耗指标数据,利用以上大数据预处理方法对该样本数据进行清洗及预处理,剔除非真实数据,并对工况进行判稳,获取稳定工况下的健康数据进行数据挖掘分析。具体步骤如下:
S1:数据采集与存储。
基于#3号机组的历史运行数据,采集最近一年数据,共计525600条。数据量总计4.5GB。在采集数据时,文件以txt的格式,分成两个批次采集完成。在通过数据的合并和格式转换,将数据合并成一个文件,存储到HDFS文件存储***。
S2:机组开停机数据过滤。
在机组运行的过程中,存在一些开停机过程的情况,将这部分数据给剔除掉。主要参考的数据点是负荷和转速。具体设置为负荷小于等于8MW,转速设置为小于等于2900r/Min。同时满足这两个条件的数据为停机数据。经过过滤,剩余数据有409553条。停机数据116047条。
S3:单维异常值检测与处理。
对于噪声数据,先采用箱线图进行检测后采用线性插补法进行异常值的替换。找出单维排序后数据的四分位数点,以四分之一位、四分之三位值和两者差值的1.5倍作为计算属性正常值的上下限范围。在范围之外的值为异常值。发电数据在经过开停机过滤处理后,仍有些指标参数值零,会影响箱线图四分位的确定。故采用去箱线法异常检测包含两种使用方法,去0箱线处理和非去0箱线处理。
在对0值的统计结果的基础上,选择46个属性进行去0箱线检测异常。另选择128个属性进行非去0箱线检测异常。检测到异常的数据在添加列中取值1,正常的取值0。
S4:机组工况判稳处理。
在燃煤发电机组实际运行过程中,受负荷、煤质和环境等边界约束条件影响,***和设备的运行状态会随时间发生变化,运行过程总是在“稳态一过渡一稳态”各状态下不断交替进行。数据挖掘分析需要建立在机组运行稳定的状态之下,因此需要进行稳态的判定。
在采集的能耗数据样本中,选取六个特征指标组合判定,具体的判定指标及条件如表1:
表1火电机组稳定工况判定
其中,δ负荷为负荷的数值,Amax为负荷最大值,Amin为负荷最小值;
δ主汽压为主汽压力的数值,Bmax为主汽压力最大值,Bmin为主汽压力最小值;
δ主汽温为主蒸汽温度的数值,Cmax为主蒸汽温度最大值,Cmin为主蒸汽温度最小值;
δ再热汽温为再热蒸汽温度的数值,Dmax为再热蒸汽温度最大值,Dmin为再热蒸汽温度最小值;
δ给水流量为给水流量的数值,Emax为给水流量最大值,Emin为给水流量最小值;
T给水温度为给水温度的数值;
在判稳的过程中,每次取十分钟的数据进行判定,满足条件则将数据设定为稳定状态,如果不满足稳定工况其中一项,参数向后递推5min,并取新的5min数据,构成10min的数据,再次对机组进行稳态工况的判定。不稳定的数据则被剔除掉。筛选后稳定状态数据308978条,不稳定数据有100575条。
S5:局部孤立点检测与处理。
采用改进型的KNN-LOF算法进行局部孤立点的检测与处理。在计算K距离时采用KNN的算法进行优化。在局部离群因子算法中,通过设定参数K值来确定算法的K-距离计算,计算出所有数据点的LOF因子,再根据LOF因子对数据进行过滤。
本实施案例对以上样本处理后的数据先后进行两次的局部离群因子的检测和处理。第一次对全部指标全局进行处理,根据能耗分析的数据挖掘的需要,第二次对供电煤耗指标进行局部处理,由于供电煤耗是由各参数通过热力学公式实时计算而来,由于计算过程复杂,影响因素众多,计算结果难免会出现较大误差。故针对负荷—煤耗特性关系,利用基于KNN-LOF算法组件对负荷与供电煤耗两个属性进行二维处理。
考虑到数据集数据量较大,在20万以上,经对比分析研究后,采取最佳方案。即:第一次的局部离群因子的参数K设置为500,过滤掉lof因子大于2.5的数据,初步处理掉离群较远的点。第二次离群因子K参数设置为500,过滤掉lof因子大于2.8的数据。经过处理数据保留有216007条,筛选剔除掉20677条。
实施例4:
本发明还提供了一种基于大数据分析平台的发电大数据预处理***,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的步骤。
综上可知,本发明通过利用大数据分析平台为工具,通过数据采集与存储、机组开停机数据过滤、单维噪音检测与处理、机组工况判稳处理、局部离群点检测与处理等步骤,对采集到的发电大数据进行预处理,能处理电力大数据中噪声、异常等问题。通过数据预处理提高数据的质量,让数据更好地适应特定的Spark大数据平台挖掘工具。有效提高大数据挖掘的质量,降低实际挖掘过程时间。得到标准、干净、连续、所需的大批量数据,减少发电大数据挖掘算法的数据处理,改进数据质量,进而为后续的发电大数据挖掘分析提高效率和准确性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。