本发明涉及光伏发电技术领域,具体为一种基于k-means-hmm模型的分布式光伏电站故障预警算法。
背景技术:
随着光伏发电在我国的普及,光伏面板的故障率高的特点逐渐显现出来。由于光伏面板长期在室外环境工作,面板不可避免的发生受损,老化等问题,导致热斑,裂纹等故障,影响了光伏面板的稳定运行,缩短了面板的使用寿命。因此光伏组件的故障诊断成为业界所关注的重点话题。
光伏组件常见的缺陷有热斑,玻璃开裂,闪电纹等。热斑是由于在室外环境中灰尘,落叶等遮挡物或由电池内部缺陷造成的局部功率增大,导致局部温度上升。玻璃开裂是由外界高空坠物或其他外力造成的玻璃破碎。闪电纹与电池的隐裂,背板透过的水汽等多因素有关,其具体成因尚不清楚,有研究指出闪电纹可能会造成输出功率的衰减。
对于光伏组件的故障检测,传统的方法是测试人员使用iv检测仪对组件的电流,电压数据进行检测,并由专业人员进行分析。其缺点在于操作性较差,由于电厂的组件数量极大,只能对特定设备进行点检,而无法实时的对所有设备进行在线监控,且依赖专家知识,对分析人员的专业水平要求较高。
现阶段光伏发电厂的信息化系统已经十分完善,光伏组件实时的生产数据被系统采集和储存,因此基于数据驱动的光伏组件故障诊断方法开始流行。但当前的光伏组件故障诊断算法多为学术研究机构在试验环境下进行研究,甚至采用软件进行模拟产生试验数据,可以获得大量故障样本,与真实的光伏电站的情况相差较大。且算法每次运行仅对单个时间点进行诊断分析,当故障发生时才发出警告,未有效利用时间维度上的信息。
检索到现有技术有基于隐马尔科夫模型的分布式光伏电站故障预警算法(对比文件1:cn111124840a),其对数据的预处理方式仅论述其缺失值处理和数据编码。因此,其如何编码,编码的原则是否有利于模型预测的精度不得而知,如果进行大量的手动动态编码,或者制定不合理的编码规则,不利于样本扩大,模型动态更新的需求,因此预警模型在后期维护和可扩展性较差,预测精度也可能无法得到保证,为此,我们提出一种基于k-means-hmm模型的分布式光伏电站故障预警算法。
技术实现要素:
本发明的目的在于提供一种基于k-means-hmm模型的分布式光伏电站故障预警算法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于k-means-hmm模型的分布式光伏电站故障预警算法,包括如下步骤:
s1、采集生产记录n条,从这n条数据筛选出发电功率在1kw以上的数据m条,对采集的数据进行分档离散化,并以输出电流和电压两个维度进行k-means聚类;
s2、利用聚类后的光伏电站的工作状态样本数据训练hmm模型;
s3、采集光伏组件的实时生产数据,以输出电流和电压两个维度进行k-means聚类,计算出聚类结果;
s4、将聚类后的光伏组件的实时生产数据输入训练后的hmm模型,得到预警结果。
优选的,所述步骤s1中采集一年的生产记录共n条,每条记录含组件号、时间、输出电流、输出电压、发电功率五种参数,从这n条数据筛选出发电功率在1kw以上的数据m条,筛选出的发电功率数据最小值为1kw,最大功率为14.7kw;设某条数据的发电功率值为p,若n≤p<n+1,1≤n≤13,则n为该发电功率档数p,作为hmm模型状态序列的取值。
优选的,所述步骤s1中以输出电流和电压两个维度进行k-means聚类的具体步骤如下:
对于m条数据中的输出电流,输出电压进行归一化处理,将输出电流,输出电压视为m*2大小的矩阵,归一化计算公式为:
其中:i,j分别为矩阵中的行和列的索引,xij表示归一化后i,j位置的矩阵元素,vij表示归一化前i,j位置的矩阵元素,
对经过归一化后的输出电流,输出电压数据进行k-means聚类,k值设为20,得到m条数据的聚类结果c,聚类结果将作为hmm观测序列的取值。
优选的,所述步骤s2中的训练样本是根据某一年全年光伏电站的故障记录,在时间段该年的1-10月份中选择32个正常运行时间点及对应组件编号,作为训练集正常状态标签,选择遮挡、导线短路、导线开路、电池老化四种故障的时间点各8个及对应组件编号,作为训练集故障状态标签;
在时间段该年的11-12月份中,选择8个正常运行时间点及对应组件编号,作为测试集正常状态标签,选择遮挡、导线短路、导线开路、电池老化四种故障的时间点各2个及对应组件编号,作为测试集故障状态标签。
优选的,所述步骤s2中的得到的每个正常状态标签,正常状态标签包含训练集和测试集,根据时间点和组件编号,在m条数据中寻找对应记录,选取对应时间点前300分钟到对应时间点的聚类结果c值和发电功率档数p值,得到训练集正常样本32个和测试集正常样本8个,每个样本含300个c值和300个p值;
对于步骤s2中得到的每个故障状态标签,故障状态标签包含训练集和测试集,根据时间点和组件编号,在m条数据中寻找对应记录,选取对应时间点前360分钟到前60分钟的聚类结果c值和发电功率档数p值,得到训练集故障样本32个和测试集故障样本8个,每个样本含300个c值和300个p值。
优选的,所述步骤s2训练hmm模型的过程如下:
已知模型的状态序列状态的集合的数量n=13,观测值集合的数据量m=20,每个训练样本中的300个p值作为状态序列,300个c值作为观测序列,初始状态概率向量πi有13个元素,每个元素的值为1/13;对于训练集中的正常、遮挡、导线短路、导线开路、电池老化五种状态的样本,按照如下算法,分别训练五个hmm模型:
基于已知信息,使用有监督学习算法,求解hmm的转移概率矩阵a,观测概率矩阵b;
(1)转移概率矩阵a的求解:
对于所有的训练样本,统计c值由i转移到为j的样本个数为sij个,则由状态为i转移到状态j的概率的估计值为:
aij组成的矩阵即为转移概率矩阵a;
(2)观测概率矩阵b的求解:
对于所有的训练样本,统计c值为i且p值为j的样本个数为tij个,则状态为i且观测值为j的概率估计值为:
bi(j)组成的矩阵即为观测概率矩阵b。
优选的,还需验证训练后的hmm模型的预测准确率,将测试样本的观测序列分别代入训练好的五个hmm模型,使用前向-后向算法进行计算,得到五个该观测序列出现的概率,前向-后向算法的公式如下:
其中αt(i)是前向概率,即在t时刻部分观测序列为o1,o2,o3…,ot,状态是qi的概率,记作:
αt(i)=p(o1,o2,…,ot,it=qi|λ)
βt+1(j)是后向概率,即在t+1时刻部分观测序列ot+2,ot+3,…,ot,状态是qi的概率,记作:
βt(i)=p(ot+2,ot+3,…,ot,it+1=qi|λ)
根据上述公式计算得到的5个概率值,取最大概率值对应的模型类型,即为对测试数据的预测状态;根据预测的状态和实际状态即可计算出hmm模型的预测准确率,若准确率超出范围,则按照步骤s1到步骤s2,重新选取数据对hmm模型进行训练。
优选的,所述步骤s3中取任一光伏组件的输出电流,输出电压,长度为300分钟的数据,根据步骤s1中的归一化公式,计算输出电流和输出电压归一化后的值,并使用步骤s1中训练好的k-means模型计算出聚类结果。
优选的,所述步骤s4将s3中得到的300个聚类结果作为观测序列,分别输入五个已训练好的hmm,按照前向-后向算法,得到5个概率值,取最大概率值对应的模型类型,即为预测的状态。
与现有技术相比,本发明的有益效果是:将光伏组件的发电功率按照功率区间进行离散化,采用k-means对输出电流、输出电压分为不同的类别,利用hmm对时间序列的学习和预测能力,对正常状态和各种故障状态进行学习,进而对光伏组件的工作状态进行判断和预警。
通过本发明预警能够取得如下优势:
1、对小样本数据集有较高的准确度。常用的时间序列模型有arima模型,hmm和rnn。arima模型对于非稳定的时序数据预测较差,rnn的学习能力较强,但其结构复杂,需要大量的数据和时间进行训练,光伏组件的故障样本数无法满足训练要求。
2、全面性及时效性,相对于传统的人工对少数组件进行抽检,模型能覆盖所有组件,实时的进行在线监控,提前对故障发出警报。
3、智能化程度高。能够自动的对故障进行诊断,无需维检人员到现场使用仪器对组件检测,诊断过程也无需人工参与。
附图说明
图1本发明预测流程图;
图2为本发明hmm模型的结构。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-2,本发明提供一种技术方案:
一种基于k-means-hmm模型的分布式光伏电站故障预警算法,包括如下步骤:
s1、采集生产记录n条,从这n条数据筛选出发电功率在1kw以上的数据m条,对采集的数据进行分档离散化,并以输出电流和电压两个维度进行k-means聚类。
具体过程如下:
采集2019年(也可采集其他时间段)全年生产记录共n条,每条记录含组件号、时间、输出电流、输出电压、发电功率五种参数,从这n条数据筛选出发电功率在1kw以上的数据m条,筛选出的发电功率数据最小值为1kw,最大功率为14.7kw。设某条数据的发电功率值为p,若n≤p<n+1,1≤n≤13,则n为该发电功率档数p,作为hmm模型状态序列的取值。
以输出电流和电压两个维度进行k-means聚类的具体步骤如下:
对于m条数据中的输出电流,输出电压进行归一化处理,将输出电流,输出电压视为m*2大小的矩阵,归一化计算公式为:
其中:i,j分别为矩阵中的行和列的索引,xij表示归一化后i,j位置的矩阵元素,vij表示归一化前i,j位置的矩阵元素,
对经过归一化后的输出电流,输出电压数据进行k-means聚类,k值设为20,得到m条数据的聚类结果c,聚类结果将作为hmm观测序列的取值。
s2、利用聚类后的光伏电站的工作状态样本数据训练hmm模型。
具体过程如下:
训练样本是根据根据2019年(也可采集其他时间段,但需与步骤s1对应)光伏电站的故障记录,在时间段2019年1-10月份中选择32个正常运行时间点及对应组件编号,作为训练集正常状态标签,选择遮挡、导线短路、导线开路、电池老化四种故障的时间点各8个及对应组件编号,作为训练集故障状态标签;
在时间段2019年11-12月份中,选择8个正常运行时间点及对应组件编号,作为测试集正常状态标签,选择遮挡、导线短路、导线开路、电池老化四种故障的时间点各2个及对应组件编号,作为测试集故障状态标签。
步骤s2中的得到的每个正常状态标签,正常状态标签包含训练集和测试集,根据时间点和组件编号,在m条数据中寻找对应记录,选取对应时间点前300分钟到对应时间点的聚类结果c值和发电功率档数p值,得到训练集正常样本32个和测试集正常样本8个,每个样本含300个c值和300个p值;
对于步骤s2中得到的每个故障状态标签,故障状态标签包含训练集和测试集,根据时间点和组件编号,在m条数据中寻找对应记录,选取对应时间点前360分钟到前60分钟的聚类结果c值和发电功率档数p值,得到训练集故障样本32个和测试集故障样本8个,每个样本含300个c值和300个p值。
hmm是一种时间序列模型,由一个隐藏的马尔科夫链生成状态序列,再由各个状态生成一个观测从而组成观测序列。hmm结构如图1所示。训练hmm模型的过程如下:
已知模型的状态序列状态的集合的数量n=13,观测值集合的数据量m=20,每个训练样本中的300个p值作为状态序列,300个c值作为观测序列,初始状态概率向量πi有13个元素,每个元素的值为1/13;对于训练集中的正常、遮挡、导线短路、导线开路、电池老化五种状态的样本,按照如下算法,分别训练五个hmm模型:
基于已知信息,使用有监督学习算法,求解hmm的转移概率矩阵a,观测概率矩阵b;
(1)转移概率矩阵a的求解:
对于所有的训练样本,统计c值由i转移到为j的样本个数为sij个,则由状态为i转移到状态j的概率的估计值为:
aij组成的矩阵即为转移概率矩阵a;
(2)观测概率矩阵b的求解:
对于所有的训练样本,统计c值为i且p值为j的样本个数为tij个,则状态为i且观测值为j的概率估计值为:
bi(j)组成的矩阵即为观测概率矩阵b。
验证训练后的hmm模型的预测准确率,过程如下:
将测试样本的观测序列分别代入训练好的五个hmm模型,使用前向-后向算法进行计算,得到五个该观测序列出现的概率,前向-后向算法的公式如下:
其中αt(i)是前向概率,即在t时刻部分观测序列为o1,o2,o3…,ot,状态是qi的概率,记作:
αt(i)=p(o1,o2,…,ot,it=qi|λ)
βt+1(j)是后向概率,即在t+1时刻部分观测序列ot+2,ot+3,…,ot,状态是qi的概率,记作:
βt(i)=p(ot+2,ot+3,…,ot,it+1=qi|λ)
根据上述公式计算得到的5个概率值,取最大概率值对应的模型类型,即为对测试数据的预测状态;根据预测的状态和实际状态即可计算出hmm模型的预测准确率,若准确率超出范围,则按照步骤s1到步骤s2,重新选取数据对hmm模型进行训练。准确率范围可自行设定,例如90%以上或95%以上。
s3、采集光伏组件的实时生产数据,以输出电流和电压两个维度进行k-means聚类,计算出聚类结果。
具体过程如下:
取任一光伏组件的输出电流,输出电压,长度为300分钟的数据,根据步骤s1中的归一化公式,计算输出电流和输出电压归一化后的值,并使用步骤s1中训练好的k-means模型计算出聚类结果。
s4、将聚类后的光伏组件的实时生产数据输入训练后的hmm模型,得到预警结果。
具体过程如下:
将s3中得到的300个聚类结果作为观测序列,分别输入五个已训练好的hmm,按照前向-后向算法,得到5个概率值,取最大概率值对应的模型类型,即为预测的状态。
本发明创造性的关键环节是将光伏组件的发电功率按照功率区间进行离散化,采用k-means对输出电流、输出电压分为不同的类别,利用hmm对时间序列的学习和预测能力,对正常状态和各种故障状态进行学习,进而对光伏组件的工作状态进行判断和预警。
hmm是一种作为光伏故障预警的主干算法,其中hmm分为有监督学习和无监督学习的模型训练方式,本方案采用有监督的模型训练方式,为满足hmm模型的特性(离散数据),进行了一系列数据预处理方式,首先将功率数据进行分档离散化,其次通过k-means将电压电流进行离散化,满足hmm模型结构需求。现有技术中也有将k均值聚类算法也应用于故障预警的方案,但并非利用其对数据的离散化功能。本技术方案中的k-means采用无监督的方式解决了hmm有监督学习过程中数据离散化的问题。具有意料不到的技术效果。
且仅仅需要知道聚类的这些数据有不同的类别,无需关注其具体是什么类别。k-means模型只是聚类方式的一种,也可采用gmm(高斯混合模型)的聚类方式。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。