一种SCADA系统数据采集周期控制方法及装置与流程

文档序号:20437768发布日期:2020-04-17 22:11阅读:743来源:国知局
一种SCADA系统数据采集周期控制方法及装置与流程

本发明涉及一种数据采集周期控制方法及装置,尤其是涉及一种scada系统数据采集周期控制方法及装置。



背景技术:

统计机器学习是进行样本分析的有效方法,svm支持向量机方法是建立在统计学习理论的vc维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(泛化能力)。支持向量机方法主要优点有:1)专门针对有限样本情况,其目标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值;2)算法最终将转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,解决了其它方法中无法避免的局部极值问题。3)算法将实际问题通过非线性变换转换到高维的特征空间,在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样本维数无关。

svm算法常用于分类识别等问题,但也可推广用于回归估计,即svr支持向量回归算法,算法主要是通过升维后,在高维空间中构造线性决策函数来实现线性回归,用e不敏感函数时,其基础主要是e不敏感函数和核函数算法。若将拟合的数学模型表达多维空间的某一曲线,则根据e不敏感函数所得的结果,就是包括该曲线和训练点的“e管道”。在所有样本点中,只有分布在“管壁”上的那一部分样本点决定管道的位置,这一部分训练样本称为“支持向量”。

数据采集是整个scada系统实现业务功能的基础。scada系统采集实时数据时,一般都需要先配置好数据点的采集周期,数据采集服务运行时,按照此周期采集实时数据。由于采集单元从向设备发起数据请求,到收到设备返回数据,这个过程涉及通讯协议交互、数据传输和解析,需要一定的时间;因此,程序实际数据采集周期,比配置的采集周期要小,但大多还是按照原周期乘以小于1的系数作为实际采集周期(如:配置周期为t,实际周期t'可为t/2,t/3,...)。由于我们的目标是保证一个周期内至少进行1次数据采集,因此,实际采集周期应该是根据系统运行情况,可以动态调整的。如大规模应用中,数据点数目较多,按照固定周期进行采集,可能导致系统资源(cpu、内存)长期处于高负荷状态而不能满足运行指标要求;当后期增加设备导致增加数据点时,可能需要重新调整采集周期或者修改代码而中断系统运行;当并发访问scada系统请求实时数据的客户端数目增加时,会导致系统cpu、内存压力增加、数据传输实时性降低,降低整个scada系统的性能。



技术实现要素:

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种scada系统数据采集周期控制方法,其特征在于,

实时监控系统的运行状态,包括:采集数据点数量、cpu使用率、内存使用率、网络输出流量;当运行状态发生变化且满足设定条件时,进行采集周期更新,包括:

步骤1、系统初始运行时,选定初始实际采集周期t1=配置周期t/5,按此采集数据;同时,记录当前周期t1下的实际运行参数:采集数据点数量count、cpu使用率cpu、内存使用率mem、网络输出流量flow;

步骤2、当scada系统配置单元增加、减少数据点数量时,根据当前数据点数量count2,1)中的cpu、mem、flow,组成特征向量,使用训练产生的回归模型period.mode,计算得到预测周期t2,即为当前实际采集周期t',并据此进行数据采集;同时更新并记录当前采集数据点数量count=count2,cpu、mem、flow为当前实际运行参数;

步骤3、当向采集单元请求实时数据的scada客户端增加、减少导致网络输出流量发生变化时,通过当前的count、cpu、mem,和预估flow3,使用训练产生的回归模型period.mode,计算得到预测周期t3,即为当前实际采集周期t',并据此进行数据采集;同时更新并记录当前实际cpu、mem、flow为当前实际运行参数;

步骤4、由于系统运行过程中,cpu使用率、内存使用率可能会产生波动;在这种情况下,当前cpu使用率cpu',或者内存使用率mem'与记录的cpu使用率cpu,内存使用率mem相比,出现5%以上的变化,则通过当前的count、cpu'、mem'、flow,使用训练产生的回归模型period.mode,计算得到预测周期t4,即为当前实际采集周期t',并据此进行数据采集;同时更新并记录当前实际cpu、mem、flow为当前实际运行参数。

在上述的一种scada系统数据采集周期控制方法,回归模型period.mode具体获取方法包括:

步骤3.1、采集样本数据,具体包括

1)需要采集的样本数据包括:实际数据采集周期t'、数据点数目、cpu使用率、内存使用率、网络输出流量;

2)样本数据以向量格式存储,便于对样本进行训练;

即[目标值][特征1]:[特征值][特征2]:[特征值]...

由于我们的目标是获取实际数据采集周期,具体存储格式如下:

[实际数据采集周期t'][1]:[数据点数目][2]:[cpu使用率][3]:[内存使用率][4]:[网络输出流量];

样本数据文件记为:period.data;

步骤3.2、对采集的样本进行预处理,具体包括

1)样本数据缩放处理:svr算法为防止某个特征过大或者过小,从而导致后续训练中起的作用不平衡,需要对原始样本数据进行缩放处理;另外,核函数计算中,会用到内积或者exp运算,不平衡的数据会导致计算困难,影响计算速度;缩放区间的大小也会对svr参数的选取和建立svr模型的速度产生影响,这里选择缩放范围为[0,1],能加快模型的预测速度;

2)缩放处理结果保存:进行缩放处理后的文件记为period.scale;

步骤3.3、选择svr参数,包括算法选择、核函数选择以及最佳参数选择

步骤3.4、进行样本训练,具体是使用选取的核函数g和惩罚参数c,对预处理之后的样本period.scale进行训练,可得到训练后的svr回归模型文件period.model,该文件中保存了经训练生成回归函数的相关信息。

在上述的一种scada系统数据采集周期控制方法,步骤3中flow3按以下步骤预估:

步骤1、定义flow3=flow*k'/k;其中,flow为原来的增减前网络流量;k为原来的增减前客户端数目;k'为当前增减后的客户端数目;

步骤2、原来客户端数目为0时,flow3=max_flow*k'/max_client_count;其中,max_flow为系统预设最大网络输出流量;max_client_count为系统支持最大客户端数量;k'为。前增减后的客户端数目。

一种scada系统数据采集周期控制装置,其特征在于,

采集运行状态监控模块:实时监控系统的运行状态,包括:采集数据点数量、cpu使用率、内存使用率、网络输出流量;当运行状态发生变化且满足设定条件时,通知实际采集周期预测及更新模块,进行采集周期更新,

实际采集周期预测及更新模块:接收采集运行状态监控模块的采集信息,并根据采集运行状态监控模块的反馈进行确定是否需要采集周期更新。

在上述的一种scada系统数据采集周期控制装置,采集运行状态监控模块包括

数据采集单元:系统初始运行时,选定初始实际采集周期t1=配置周期t/5,按此采集数据;同时,记录当前周期t1下的实际运行参数:采集数据点数量count、cpu使用率cpu、内存使用率mem、网络输出流量flow;

scada系统配置单元:进行scada系统配置;

数据更新单元一:当scada系统配置单元增加、减少数据点数量时,根据当前数据点数量count2,1)中的cpu、mem、flow,组成特征向量,数据更新单元使用训练产生的回归模型period.mode,计算得到预测周期t2,即为当前实际采集周期t',并据此进行数据采集;同时更新并记录当前采集数据点数量count=count2,cpu、mem、flow为当前实际运行参数;

数据更新单元二:当向采集单元请求实时数据的scada客户端增加、减少导致网络输出流量发生变化时,通过当前的count、cpu、mem,和预估flow3,使用训练产生的回归模型period.mode,计算得到预测周期t3,即为当前实际采集周期t',并据此进行数据采集;同时更新并记录当前实际cpu、mem、flow为当前实际运行参数;

数据更新单元三:由于系统运行过程中,cpu使用率、内存使用率可能会产生波动;在这种情况下,当前cpu使用率cpu',或者内存使用率mem'与记录的cpu使用率cpu,内存使用率mem相比,出现5%以上的变化,则通过当前的count、cpu'、mem'、flow,使用训练产生的回归模型period.mode,计算得到预测周期t4,即为当前实际采集周期t',并据此进行数据采集;同时更新并记录当前实际cpu、mem、flow为当前实际运行参数。

在上述的一种scada系统数据采集周期控制装置,回归模型period.mode具体获取方法包括:

采集样本数据模块:用于

1)需要采集的样本数据包括:实际数据采集周期t'、数据点数目、cpu使用率、内存使用率、网络输出流量;

2)样本数据以向量格式存储,便于对样本进行训练;

即[目标值][特征1]:[特征值][特征2]:[特征值]...

由于需要获取实际数据采集周期,具体存储格式如下:

[实际数据采集周期t'][1]:[数据点数目][2]:[cpu使用率][3]:[内存使用率][4]:[网络输出流量];

样本数据文件记为:period.data;

样本预处理模块:

1)样本数据缩放处理:svr算法为防止某个特征过大或者过小,从而导致后续训练中起的作用不平衡,需要对原始样本数据进行缩放处理;另外,核函数计算中,会用到内积或者exp运算,不平衡的数据会导致计算困难,影响计算速度;缩放区间的大小也会对svr参数的选取和建立svr模型的速度产生影响,这里选择缩放范围为[0,1],能加快模型的预测速度;

2)缩放处理结果保存:进行缩放处理后的文件记为period.scale;

svr参数选择模块:包括算法选择、核函数选择以及最佳参数选择

样本训练模块:使用选取的核函数g和惩罚参数c,对预处理之后的样本period.scale进行训练,可得到训练后的svr回归模型文件period.model,该文件中保存了经训练生成回归函数的相关信息.

在上述的一种scada系统数据采集周期控制装置,数据更新单元二中flow3按以下步骤预估:

步骤1、定义flow3=flow*k'/k;其中,flow为原来的增减前网络流量;k为原来的增减前客户端数目;k'为当前增减后的客户端数目;

步骤2、原来客户端数目为0时,flow3=max_flow*k'/max_client_count;其中,max_flow为系统预设最大网络输出流量;max_client_count为系统支持最大客户端数量;k'为当前增减后的客户端数目。

因此,本发明具有如下优点:本发明通过事先采集与实际采集周期相关的特征样本数据,进行训练后得出svr回归函数。在采集系统运行过程中,根据实际运行状态预测并自动调整实际采集周期。提高了scada系统采集效率和运行过程可控性。自适应调控采集周期,能够极大地减少人工配置采集周期的工作量,且不中断系统业务;系统采集数据点有较大增加时,仍能满足实时性要求,从而提高系统的数据采集能力;采集过程中网络、内存、cpu等有波动时,可通过调整采集周期保证系统运行可控性。

附图说明

附图1是本发明的方法流程示意图。

具体实施方式

下面通过实施例,对本发明的技术方案作进一步具体的说明。

实施例:

一、面介绍本发明涉及的装置的具体结构,主要包括

采集样本数据模块:

1)需要采集的样本数据包括:实际数据采集周期t'、数据点数目、cpu使用率、内存使用率、网络输出流量。

2)样本数据以向量格式存储,便于对样本进行训练。

即[目标值][特征1]:[特征值][特征2]:[特征值]...

由于我们的目标是获取实际数据采集周期,具体存储格式如下:

[实际数据采集周期t'][1]:[数据点数目][2]:[cpu使用率][3]:[内存使用率][4]:[网络输出流量]。

样本数据文件记为:period.data。

样本预处理模块:

1)样本数据缩放处理:svr算法为防止某个特征过大或者过小,从而导致后续训练中起的作用不平衡,需要对原始样本数据进行缩放处理。另外,核函数计算中,会用到内积或者exp运算,不平衡的数据会导致计算困难,影响计算速度。缩放区间的大小也会对svr参数的选取和建立svr模型的速度产生影响,这里选择缩放范围为[0,1],能加快模型的预测速度。

2)缩放处理结果保存:进行缩放处理后的文件记为period.scale。

svr参数选择模块:

1)算法选择:由于本方案基于svm建立回归模型,因此可选择svm回归算法类型e-svr。

2)核函数选择:svm常用的核函数有这么几种:线性核函数(linear)、多项式核函数(polynomial)、径向基核函数(rbf)、sigmoid核函数。通常应选取rbf,主要原因是:1)rbf可以将样本映射到一个更高维的空间,处理类别标签和特征之间的关系是非线性时的样本。2)与多项式核函数相比,rbf需要确定的参数较少,核函数参数的数量对模型复杂度有直接影响。3)线性核函数是rbf的一个特例,sigmoid核函数在某些参数上具有与rbf相似的性能。因此,本方案选用的是径向基核函数(rbf)。

3)最佳参数选择:选取核函数后,还需选取相应的参数。通常比较重要的参数有gamma(-g):核函数中的函数设置,cost(-c):算法类型中的惩罚参数。一般采用交叉验证得到预处理样本period.scale最佳算法参数g和c。

样本训练模块:

使用选取的核函数g和惩罚参数c,对预处理之后的样本period.scale进行训练,可得到训练后的svr回归模型文件period.model,该文件中保存了经训练生成回归函数的相关信息。

采集运行状态监控模块:

系统运行时,启用一个采集状态监控模块。该模块的作用是实时监控系统的运行状态,包括:采集数据点数量、cpu使用率、内存使用率、网络输出流量。当运行状态发生变化且满足一定条件时,通知“实际采集周期预测及更新模块”,进行采集周期更新。具体如下:

1)系统初始运行时,选定初始实际采集周期t1=配置周期t/5,按此采集数据。同时,记录当前周期t1下的实际运行参数:采集数据点数量count、cpu使用率cpu、内存使用率mem、网络输出流量flow。

2)当scada系统配置单元增加、减少数据点数量时,通知“实际采集周期预测及更新模块”,该模块根据当前数据点数量count2,1)中的cpu、mem、flow,组成特征向量,使用训练产生的回归模型period.mode,计算得到预测周期t2,即为当前实际采集周期t',并据此进行数据采集。本模块同时更新并记录当前采集数据点数量count=count2,cpu、mem、flow为当前实际运行参数。

3)当向采集单元请求实时数据的scada客户端增加、减少导致网络输出流量发生变化时,通知“实际采集周期预测及更新模块”,该模块通过当前的count、cpu、mem,和预估flow3,使用训练产生的回归模型period.mode,计算得到预测周期t3,即为当前实际采集周期t',并据此进行数据采集。本模块同时更新并记录当前实际cpu、mem、flow为当前实际运行参数。

其中,flow3按以下方式预估:

a)flow3=flow*k'/k。

flow:原来的网络流量(增减前);

k:原来的客户端数目(增减前);

k':当前客户端数目(增减后)。

b)原来客户端数目为0时,flow3=max_flow*k'/max_client_count。

max_flow:系统预设最大网络输出流量;

max_client_count:系统支持最大客户端数量;

k':当前客户端数目(增减后)。

4)由于系统运行过程中,cpu使用率、内存使用率可能会产生一定的波动。在这种情况下,当前cpu使用率cpu',或者内存使用率mem'与记录的cpu使用率cpu,内存使用率mem相比,出现5%以上的变化,则通知“实际采集周期预测及更新模块”,该模块通过当前的count、cpu'、mem'、flow,使用训练产生的回归模型period.mode,计算得到预测周期t4,即为当前实际采集周期t',并据此进行数据采集。本模块同时更新并记录当前实际cpu、mem、flow为当前实际运行参数。

实际采集周期预测及更新模块:

接收“采集运行状态监控模块”发送的更新采集周期的通知,根据训练产生的回归模型

period.mode,和相关特征数据,得到预测采集周期t',并按照此周期进行数据采集。

(三)下面介绍本发明涉及的方法流程。

scada系统需要预先设置实时数据采集周期t,而程序实际采集周期t'则应当小于t,且可根据系统实际运行情况动态调整。t'选取要求是:1)保证1个周期t内,数据点至少采集1次;2)系统运行负载(cpu、内存、网络输出流量)在目标上限以下。显然,实际周期t'与采集数据点数目、cpu使用率、内存使用率、网络输出流量有关系。当采集数据点数量增加、cpu使用率增高、内存使用率增高、客户端数增加导致网络输出流量增加时,实际周期t'应该适当增大;反之,当采集数据点数量减少、cpu使用率降低、内存使用率降低、客户端数较少导致网络输出流量减少时,实际周期t'可适当减小或维持不变。可在系统正式运行的调试阶段,采集与实际数据采集周期t'相关的数据样本,进行统计分析,找到数据间的相关性,建立实际数据采集周期t'的数学模型。待系统正式运行时,可根据此模型,预测系统实际数据采集周期t',并适时调整。相比传统方法采用固定值作为实际数据采集周期,本方案能根据系统实际负载情况作出调整,在保证一定的数据采集频率的前提下,提高了scada系统采集效率和整个系统运行过程的可控性;不用人工干预,具有较强的自适应性。

scada系统包括:配置单元、数据采集单元、客户端等;配置单元设置好数据点的采集周期后,数据采集单元根据配置周期t选取实际采集周期t',然后按照t'定时从设备采集数据,并保存在实时数据库中;当有客户端从采集单元请求实时数据时,采集单元将实时数据推送给客户端。

具体方法流程是:

系统调试阶段,采集系统运行过程中的数据点数目、cpu使用率、内存使用率、网络输出流量、实际采集周期等数据作为样本。样本经过预处理,再通过支持向量回归模型(svr)训练样本,得出svr回归函数。设定系统开始运行时实际采集周期ts为某一定值(如t/5,t为配置采集周期),并记录系统初始运行参数(cpu使用率、内存使用率、网络输出流量、数据点数目)。后续当系统运行情况发生变化时,根据此时系统运行参数(cpu使用率、内存使用率、网络输出流量、当前数据点数目),利用svr回归函数得到目标采集周期t',即为实际采集周期,采集单元按照该周期进行实时数据采集。

scada系统实际数据采集周期t'与数据点数目、cpu使用率、内存使用率、网络输出流量密切相关,要建立svr回归函数,需要先采集实际数据采集周期t'、cpu使用率、内存使用率、网络输出流量等运行数据,并按照一定的格式生成样本数据,并进行保存。然后对样本进行预处理、选择svr参数、经样本训练后得到实际数据采集周期回归函数。系统运行后,需要监测系统运行情况,满足一定条件时,利用回归函数预测当前的实际数据采集周期t',并按照该周期进行实时数据采集。

每当系统运行情况发生变化且达到一定条件,就会重新计算1次新的实际数据采集周期t',并按该新t'采集数据。t'的更新由系统实际运行过程决定,并不需要外部干预,且不会导致运行中断。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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