发明内容
基于现有设计的不足,本申请提供一种振动区确定方法及装置,能够有效确定水电机组设备的振动区,以便于后续对水电机组设备的有功功率的调整提供依据,避免水电机组设备运行过程中的损害。
根据本申请的第一方面,提供一种振动区确定方法,应用于计算机设备,所述方法包括:
获取水电机组设备的历史监测状态数据,所述历史监测状态数据包括有功功率数据、水头数据以及振动告警状态,所述振动告警状态包括第一告警状态和第二告警状态,所述第一告警状态用于表示处于振动区的告警状态,所述第二告警状态用于表示处于非振动区的告警状态;
从所述历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据;
对所述目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇;
对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。
在第一方面的一种可能的实施方式中,所述从所述历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据的步骤,包括:
剔除所述历史监测状态数据中处于异常工作状态下的异常检测状态数据,得到第一初始检测状态数据,其中,所述异常工作状态下的异常检测状态数据用于表示有功功率数值小于预设数值的状态数据,以及水头数值小于或等于0的状态数据;
剔除所述第一初始检测状态数据中振动告警状态为第二告警状态的状态数据,得到第二初始检测状态数据;
根据预设标准化公式对所述第二初始检测状态数据进行标准化处理,得到所述处于振动告警状态下的目标历史监测状态数据。
在第一方面的一种可能的实施方式中,所述对所述目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇的步骤,包括:
从所有二维数组样本中选定预设数量个二维数组样本作为初始聚类质心点;
针对每个二维数组样本,根据该二维数组样本与每个所述初始聚类质心点之间的关系,确定该二维数组样本所属的第一聚类簇,其中,所述第一聚类簇用于表示处于同一类的二维数组样本集;
计算每个第一聚类簇的第一聚类中心,针对每个二维数组样本,根据该二维数组样本与每个所述第一聚类中心之间的关系,确定该二维数组样本所属的第二聚类簇;
将所述第二聚类簇作为新的所述第一聚类簇,返回计算每个第一聚类簇的第一聚类中心的步骤,直到满足聚类收敛条件时,输出与每个二维数组样本对应的聚类收敛后的分簇。
在第一方面的一种可能的实施方式中,所述根据该二维数组样本与每个所述初始聚类质心点之间的关系,确定该二维数组样本所属的第一聚类簇的步骤,包括:
计算该二维数组样本与每个所述初始聚类质心点之间的欧氏距离;
将与该二维数组样本之间的欧氏距离最小的初始聚类质心点,与该二维数组样本作为作为第一聚类簇。
在第一方面的一种可能的实施方式中,所述聚类收敛条件包括以下至少一种:
每个第一聚类簇中的二维数组样本不再发生变化;
每个第一聚类簇的第一聚类中心的位置变化量小于预设变化量;
聚类迭代次数达到预设次数。
在第一方面的一种可能的实施方式中,所述对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区的步骤,包括:
针对每个分簇,获取该分簇对应的二维数组中的水头最小值、水头最大值、最小有功功率值和最大有功功率值;
将所述最小有功功率值和最大有功功率值构成的功率区间定义为所述水头最小值和水头最大值对应水头区间的振动区。
在第一方面的一种可能的实施方式中,所述方法还包括:
获取所述水电机组设备的当前水头值和当前有功功率值;
将所述当前水头值与每个振动区对应的水头区间进行匹配,判断所述当前水头值是否存在振动区;
若所述当前水头值与任意一个振动区对应的水头区间匹配成功,则获取匹配的目标水头区间对应的目标振动区;
判断所述当前有功功率值是否处于该目标振动区对应的功率区间;
当所述当前有功功率值处于该目标振动区对应的功率区间时,输出调整所述水电机组设备的有功功率的提示信息。
根据本申请的第二方面,提供一种振动区确定装置,应用于计算机设备,所述装置包括:
获取模块,用于获取水电机组设备的历史监测状态数据,所述历史监测状态数据包括有功功率数据、水头数据以及振动告警状态,所述振动告警状态包括第一告警状态和第二告警状态,所述第一告警状态用于表示处于振动区的告警状态,所述第二告警状态用于表示处于非振动区的告警状态;
选取模块,用于从所述历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据;
聚类分簇模块,用于对所述目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇;
数值分析模块,用于对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。
基于上述任一方面,本申请通过从大量的历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据,然后对目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇,由此对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。如此,相比于常规设计的人工实验方式,能够更为快速、全面、精确地获得振动区,极大提升效率,减少人力成本损耗和水电机组设备的损耗,降低由于水电机组设备运行在振动区导致异常事故发生的概率。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请实施例的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其它操作,也可以从流程图中移除一个或多个操作。
参照前述背景技术中所获得的技术问题,本申请发明人研究发现,常规的振动区确定方法通常是通过现场人工实验。例如,可以在某水头下人工调节水电机组设备的有功功率,一般是从最小功率调整到最大功率,然后查看水电机组设备是否处于振动告警状态,由此获得振动区。然而,这种方式过于主观化,耗时耗力。并且,考虑到水头是由上游控制决定,在实际实施过程中通常不易调节,所以这种方法获得的振动区往往覆盖面窄,精细化程度远远不够,从而可能导致许多未知的振动区未被观测到。
因此,在实际水电机组设备的运行过程中,虽然根据上述的实验结果可以从一定程度上人为避免水电机组设备在某段有功功率下运行,但仍然会出现很多水电机组设备设备仍旧处于振动状态,出现振动区告警的情况,因此有必要设计提供一种更有效更客观的方案来有效获得更为完整的所有振动区。
所应说明的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述技术问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本申请做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
基于发明人发现的上述技术问题,本申请实施例提供一种改进的振动区确定方法,以改善上述发明人发现的振动区覆盖面窄,精细化程度降低,从而会导致许多未知的振动区未被观测到的问题。
详细地,本申请实施例的提供的振动区确定方法,通过从大量的历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据,然后对目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇,由此对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。如此,相比于常规设计的人工实验方式,能够更为快速、全面、精确地获得振动区,极大提升效率,减少人力成本损耗和水电机组设备的损耗,降低由于水电机组设备运行在振动区导致异常事故发生的概率。
请参照图1,示出了本申请实施例提供的振动区确定方法的交互流程示意图。应当理解,在其它实施例中,本实施例的振动区确定方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该振动区确定方法的详细步骤介绍如下。
步骤S110,获取水电机组设备的历史监测状态数据。
步骤S120,从历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据。
步骤S130,对目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇。
步骤S140,对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。
本实施例中,历史监测状态数据例如可以包括有功功率数据、水头数据以及振动告警状态。其中,有功功率可以是指单位时间内实际发出或消耗的交流电能量,是周期内的平均功率。在单相电路中有功功率等于电压有效值、电流有效值和功率因数的乘积。在多相电路中有功功率等于相数乘以每相的有功功率。水头数据可以表示任意断面处单位重量水的能量,等于比能(单位质量水的能量)除以重力加速度。含位置水头、压力水头和速度水头。
振动告警状态包括第一告警状态和第二告警状态,第一告警状态用于表示处于振动区的告警状态,第二告警状态用于表示处于非振动区的告警状态。例如,第一告警状态的状态值可以为1,第二告警状态的状态值可以为0,当状态值为1时,可以表示振动告警即处于振动区,当状态值为0时,则可以表示为非振动告警。该状态值可以由标准规则计算得出,并实时存入数据库。
例如在图2所示的历史监测状态数据的统计示意图中,x轴可以代表水头,y轴可以代表有功功率,统计图中的各个坐标点可以以不同的形式(图未示出)表示振动告警状态和非振动告警状态。
基于上述步骤,通过从大量的历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据,然后对目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇,由此对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。如此,相比于常规设计的人工实验方式,能够更为快速、全面、精确地获得振动区,极大提升效率,减少人力成本损耗和水电机组设备的损耗,降低由于水电机组设备运行在振动区导致异常事故发生的概率。
在一种可能的实施方式中,针对步骤S120,为了提高后续聚类的准确性,在从历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据的过程中,需要预先剔除无效数据,并且为了保证聚类的单位一致性,还需要对历史监测状态数据进行标准化转换,例如请结合参阅图3,步骤S120可以通过以下示例性的子步骤实现,详细描述如下。
子步骤S121,剔除历史监测状态数据中处于异常工作状态下的异常检测状态数据,得到第一初始检测状态数据。
子步骤S122,剔除第一初始检测状态数据中振动告警状态为第二告警状态的状态数据,得到第二初始检测状态数据。
在后续的聚类之前,需要将一些无效的数据清洗删除,因为聚类分析的是水电机组设备处于正常工作状态下的振动区,所以非正常工作状态下,例如在水电机组设备处于停机时的异常检测状态数据需要删除。
本实施例中,异常工作状态下的异常检测状态数据用于表示有功功率数值小于预设数值(例如小于10)的状态数据,以及水头数值小于或等于0的状态数据。
例如,参阅图4所示,为清洗后的振动告警数据。x轴为水头,y轴为有功功率,每个点都是表示处于振动告警状态。
子步骤S123,根据预设标准化公式对第二初始检测状态数据进行标准化处理,得到处于振动告警状态下的目标历史监测状态数据。
本实施例中,由于有功功率、水头数值范围的不同,需要对第二初始检测状态数据的数值进行标准化处理,例如标准化公式如下:
其,中min(x)取0,max(x)可以选择理论上的有功功率最大值或水头最大值,当x>max(x)时,x=max(x),x为标准化处理之前的有功功率或者水头,为标准化处理之后的有功功率或者水头。
在一种可能的实施方式中,在具体聚类分簇的实现过程中,请结合参阅图5,步骤S130可以通过以下示例性的子步骤实现,详细描述如下。
子步骤S131,从所有二维数组样本中选定预设数量个二维数组样本作为初始聚类质心点。
本实施例中,经过步骤S120的数据预处理,可以获得振动告警状态下的有功功率标准化值和水头标准化值,然后对有功功率标准化值和水头标准化值组成的二维数组样本进行聚类分簇。
例如,对二维数组样本{x1,...,xm},每个xi∈Rn,由于每个二维数组样本包括有功功率和水头两个属性,故n=2。后续的聚类分簇可以将二维数组样本{x1,...,xm}聚类成k个分簇。
在一些可能的实施方式中,可以从二维数组样本{x1,...,xm}中选择k个初始聚类质心点为u1,u2,...,uk∈R2。值得说明的是,随机选择的初始聚类质心点的每次聚类结果可能会有差异。因此,此处可以采用k-means++方法选择初始聚类质心点,一方面可以避免这种差异,另一方面可以进一步地加快聚类的收敛。
子步骤S132,针对每个二维数组样本,根据该二维数组样本与每个初始聚类质心点之间的关系,确定该二维数组样本所属的第一聚类簇。
本实施例中,第一聚类簇用于表示处于同一类的二维数组样本集。
例如,可以计算该二维数组样本与每个初始聚类质心点之间的欧氏距离,然后将与该二维数组样本之间的欧氏距离最小的初始聚类质心点,与该二维数组样本作为作为第一聚类簇。
示例性地,对于每一个样本xi,可通过以下公式计算其应该属于的类:
其中,ci代表样本xi与k个类中距离最近的那个类,ci∈1,2,...,k。||xi-uj||2代表二维数组样本xi与聚类中心uj之间的距离,由于每个二位数组样本是二维特征,此处该距离可以采用欧式距离。
子步骤S133,计算每个第一聚类簇的第一聚类中心,针对每个二维数组样本,根据该二维数组样本与每个第一聚类中心之间的关系,确定该二维数组样本所属的第二聚类簇。
例如,将本次聚类相同类的二维数组样本组成一个第一聚类簇,按照以下公式重新计算每个第一聚类簇的第一聚类中心:
其中,ci==j时,rj=1,否则rj=0。
子步骤S134,将第二聚类簇作为新的第一聚类簇,返回计算每个第一聚类簇的第一聚类中心的步骤,直到满足聚类收敛条件时,输出与每个二维数组样本对应的聚类收敛后的分簇。
本实施例中,通过上述经过多个聚类周期分别迭代聚类的方式,可以在每个迭代周期内不断更新筛选每个聚类簇的二维数组样本,从而在后续的每个迭代周期内,都会确定新的聚类簇。
这样,通过不断更新聚类簇的聚类中心位置,并不断形成新的聚类簇,使得新的聚类簇中的二维数组样本之间的匹配程度越来越大,最终在满足迭代停止条件时,得到聚类收敛后的分簇中的各个二维数组样本。
其中,上述的迭代停止条件可以包括以下条件中的至少一种:
1)每个第一聚类簇中的二维数组样本不再发生变化。
2)每个第一聚类簇的第一聚类中心的位置变化量小于预设变化量。
3)聚类迭代次数达到预设次数。
其中,在条件1)中,第一聚类簇中的二维数组样本不再发生变化,表明已经形成了最佳的聚类簇,可以停止迭代。在条件2)中,如果每个第一聚类簇的第一聚类中心的位置变化量小于预设变化量,说明当前的聚类簇已经基本可以满足条件,此时可以停止迭代。在条件3)中,为了节省运算量,可以设置聚类迭代次数的最大值,如果聚类迭代次数达到设定次数,可以停止本迭代周期的迭代,输出最终得到的各个分簇。
需要说明的是,上述迭代停止条件可以结合使用,也可以择一使用。例如,可以在每个第一聚类簇中的二维数组样本不再发生变化时停止迭代;或者,在聚类迭代次数达到预设次数时停止迭代;或者,在每个第一聚类簇的第一聚类中心的位置变化量小于预设变化量时停止迭代。又或者,还可以在聚类迭代次数达到预设次数,并且每个第一聚类簇的第一聚类中心的位置变化量小于预设变化量时,停止迭代。
此外,在实际实施过程中,也可以不限于采用上述示例作为迭代停止条件,本领域技术人员可以根据实际需求设计与上述示例不同的迭代停止条件。
此外,值得说明的是,当聚类簇的数量k越大时,聚类簇越多,划分也就越精细,在实际实施过程中,本领域技术人员可以根据前述数据清洗后的目标历史监测状态数据中的二维数组样本数量动态调整k的大小,在此不作具体限定。
在上述基础上,在一种可能的实施方式中,对于步骤S140,针对每个分簇,可以获取该分簇对应的二维数组中的水头最小值、水头最大值、最小有功功率值和最大有功功率值。然后,将所述最小有功功率值和最大有功功率值构成的功率区间定义为所述水头最小值和水头最大值对应水头区间的振动区。
本实施例中,每个分簇可计算一个对应的振动区。例如,每个分簇可以是由有功功率值和水头值组成的二维数组,针对每个分簇,获取其对应的二维数组中水头的水头最大值w_1、水头最小值w_0以及最大有功功率值p_1、最小有功功率值p_0,那么该分簇对应的振动区可表示为:水头段[w_0,w_1]对应的振动区为有功功率段[p_0,p_1]。例如,在水电机组设备运行时,若水头数值大小在[w_0,w_1]范围内,并且有功功率在[p_0,p_1]范围内,则会发生振动告警。
例如,在应用层面,请结合参阅图6,本实施例所提供的振动区确定方法还可以包括以下步骤,详细描述如下。
步骤S150,获取水电机组设备的当前水头值和当前有功功率值。
步骤S160,将当前水头值与每个振动区对应的水头区间进行匹配,判断当前水头值是否存在振动区。
步骤S170,若当前水头值与任意一个振动区对应的水头区间匹配成功,则获取匹配的目标水头区间对应的目标振动区。
步骤S180,判断当前有功功率值是否处于该目标振动区对应的功率区间。
步骤S190,当当前有功功率值处于该目标振动区对应的功率区间时,输出调整水电机组设备的有功功率的提示信息。
本实施例中,在获得前述聚类生成的振动区后,即可对水电机组设备的有功功率进行调节,以避免其在振动区运行,造成异常事故的发生。考虑到水头是由上游多因素控制,故在本实施例中,在调节有功功率的过程中,通过控制水电机组设备以避免其运行在振动区,可以降低水电机组设备运行异常的概率。
例如,当监测到当前水头值与任意一个振动区对应的水头区间匹配成功,则获取匹配的目标水头区间对应的目标振动区,并且当当前有功功率值处于该目标振动区对应的功率区间时,输出调整水电机组设备的有功功率的提示信息,以提示现场的操作人员将水电机组设备的有功功率调整到该目标振动区对应的功率区间之外。或者,在一些其余可能的实施方式中,也可以自动根据预先设定的调节策略,将水电机组设备的有功功率调整到该目标振动区对应的功率区间之外。
基于同一发明构思,请参阅图7,示出了本申请实施例提供的振动区确定装置110的功能模块示意图,本实施例可以根据上述计算机设备100执行的方法实施例对振动区确定装置110进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。比如,在采用对应各个功能划分各个功能模块的情况下,图7示出的振动区确定装置110只是一种装置示意图。其中,振动区确定装置110可以包括获取模块111、选取模块112、聚类分簇模块113以及数值分析模块114,下面分别对该振动区确定装置110的各个功能模块的功能进行详细阐述。
获取模块111,用于获取水电机组设备的历史监测状态数据,所述历史监测状态数据包括有功功率数据、水头数据以及振动告警状态,所述振动告警状态包括第一告警状态和第二告警状态,所述第一告警状态用于表示处于振动区的告警状态,所述第二告警状态用于表示处于非振动区的告警状态。可以理解,该获取模块111可以用于执行上述步骤S110,关于该获取模块111的详细实现方式可以参照上述对步骤S110有关的内容。
选取模块112,用于从所述历史监测状态数据中选取处于振动告警状态下的目标历史监测状态数据。可以理解,该选取模块112可以用于执行上述步骤S120,关于该选取模块112的详细实现方式可以参照上述对步骤S120有关的内容。
聚类分簇模块113,用于对所述目标历史监测状态数据中的每个二维数组样本进行聚类分簇,获得与每个二维数组样本对应的聚类收敛后的分簇。可以理解,该聚类分簇模块113可以用于执行上述步骤S130,关于该聚类分簇模块113的详细实现方式可以参照上述对步骤S130有关的内容。
数值分析模块114,用于对聚类收敛后的每个分簇对应的二维数组进行数值分析,获得每个分簇对应的振动区。可以理解,该数值分析模块114可以用于执行上述步骤S140,关于该数值分析模块114的详细实现方式可以参照上述对步骤S140有关的内容。
在一种可能的实施方式中,所述聚类分簇模块113具体用于:
从所有二维数组样本选定预设数量个二维数组样本作为初始聚类质心点;
针对每个二维数组样本,根据该二维数组样本与每个所述初始聚类质心点之间的关系,确定该二维数组样本所属的第一聚类簇,其中,所述第一聚类簇用于表示处于同一类的二维数组样本集;
计算每个第一聚类簇的第一聚类中心,针对每个二维数组样本,根据该二维数组样本与每个所述第一聚类中心之间的关系,确定该二维数组样本所属的第二聚类簇;
将所述第二聚类簇作为新的所述第一聚类簇,返回计算每个第一聚类簇的第一聚类中心的步骤,直到满足聚类收敛条件时,输出与每个二维数组样本对应的聚类收敛后的分簇。
在一种可能的实施方式中,所述聚类分簇模块113具体用于:
计算该二维数组样本与每个所述初始聚类质心点之间的欧氏距离;
将与该二维数组样本之间的欧氏距离最小的初始聚类质心点,与该二维数组样本作为作为第一聚类簇。
基于同一发明构思,请参阅图8,示出了本申请实施例提供的用于执行上述振动区确定方法的计算机设备100的结构示意框图,该计算机设备100可以包括振动区确定装置110、机器可读存储介质120和处理器130。
本实施例中,机器可读存储介质120与处理器130均位于计算机设备100中且二者分离设置。然而,应当理解的是,机器可读存储介质120也可以是独立于计算机设备100之外,且可以由处理器130通过总线接口来访问。可替换地,机器可读存储介质120也可以集成到处理器130中,例如,可以是高速缓存和/或通用寄存器。
振动区确定装置110可以包括存储在机器可读存储介质120的软件功能模块(例如图7中所示的获取模块111、选取模块112、聚类分簇模块113以及数值分析模块114),当处理器130执行振动区确定装置110中的软件功能模块时,以实现前述方法实施例提供的振动区确定方法。
由于本申请实施例提供的计算机设备100是上述计算机设备100执行的方法实施例的另一种实现形式,且计算机设备100可用于执行上述方法实施例提供的振动区确定方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
以上所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,在附图中提供的本申请的实施例的详细描述并非旨在限制本申请的保护范围,而仅仅是表示本申请的选定实施例。因此,本申请的保护范围应以权利要求的保护范围为准。此外,基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下可获得的所有其它实施例,都应属于本申请保护的范围。