网站首页 > 技术文章 正文
由于电网互联水平提高、负荷日益增加、新能源接入、线路传输能力限制等因素,电力系统运行愈发接近其稳定极限,电网的稳定运行显示出更大的重要性,从而暂态稳定评估问题(Transient Stability Assessment,TSA)更加受到人们的关注。传统的基于时域仿真的TSA方法受到计算速度的限制,难以满足在线应用的需要。近年来,随着人工智能技术的快速发展,基于机器学习算法的暂态稳定评估成为学者的研究热点。
机器学习算法是一类数据驱动的建模方法,根据所用数据源的不同,基于机器学习方法的暂态稳定评估研究可分为两大类。第一类同时使用故障前和故障后特征作为模型的数据输入,第二类仅使用故障前的特征作为数据输入。故障前特征即为系统处于稳态运行时可以检测到的特征,如线路潮流、节点电压等;故障后特征,如发电机转子加速度等动态特征,仅在系统真正发生故障后,才可以被检测到。电网的暂态过程发展迅速,一旦系统发生故障,留给调度人员的反应时间已经很少,所以,针对电网实际运行,指导意义更大的是使用第二类数据源的建模方法,根据电网稳态运行时的各种信息,判别各类故障可能造成的后果,从而可以及时调整运行方式,起到故障预防的作用。
在这一领域的研究中,仍然有待解决的问题主要有以下两方面。一方面是模型的评估准确度仍有提升空间。近年来,一些新的机器学习算法在准确度上有着超出传统机器学习算法的表现,使用此类新算法进行暂态稳定评估有望进一步提升准确度。另一方面是机器学习算法均难以达到百分之百的准确率,往往不可避免会有一些错误,对于电网运行,错误的模型输出可能对运行人员带来错误引导,从而引发严重的误操作事故。现有文献的分析大多围绕算法准确度,对于被错误分类的样本没有专门的统计研究,然而,对于非机理性的机器学习算法,如何有效避免模型的可能失误也是一个重要问题。
问题拆分
首先使用电网仿真软件模拟待评估电网各种运行方式下节点、线路故障后的暂态过程。从仿真数据中提取电气量特征,利用暂稳判据确定暂稳标签。然后使用样本数据训练XGBoost模型。针对暂态稳定预测中两类错误严重程度不同的特点,引入注意力系数对算法的损失函数进行修正。使用logistic函数将模型输出概率化。本发明具有较高的准确率和召回率,同时能以概率方式捕捉较为确定的预测和相对不确定的预测之间的差别,从而可以避免模型的一部分误输出。
问题解决
首先,利用电力系统仿真软件模拟待评估电网在各种运行方式下,各节点、线路处发生故障所带来的后果。由此形成大量和该电网暂态稳定性有关的原始数据。
其次,从原始数据中提取特征,并确定暂稳标签。利用故障后发电机功角差是否发散判定系统是否发生失稳状况。对于各种稳态运行方式,提取出各类电气量特征,作为后续XGBoost算法的特征输入。由此形成一定数量的用于建立电力系统暂态稳定评估模型的样本数据。
然后,采用XGBoost算法并进行适用性改进,利用获取的样本数据进行模型训练。在训练过程中,针对暂态稳定预测过程中两类错误严重程度不同的特点,引入注意力系数对算法的损失函数进行修正,使得模型对不稳定样本的预测情况减少;使用logistic函数用于将模型输出概率化,用于衡量XGBoost模型输出的可靠程度,预防部分误预测。
最后,基于XGBoost算法的暂态稳定评估模型训练成熟之后,可以根据电网能量管理系统记录下的电网实时运行信息,构成能够反映电网稳态运行状态的电气量特征。输入XGBoost模型,即可以实时评估电力系统某些可能的故障所带来的暂态稳定后果。
本发明采用以下具体步骤:
步骤1)利用电力系统仿真软件模拟待评估电网在各种运行方式下,各节点、线路处发生故障所带来的后果。由此形成大量和该电网暂态稳定性有关的原始数据,具体步骤如下:
(1)对于一个包含c个发电机节点和z个负荷节点的系统,确定一种基础运行方式,在此基础运行方式下,各发电机的出力分别为PGbasei,QGbasei(i=1,2…c),各个负荷节点的需求分别为PLbasej,QLbasej(j=1,2…z)。
(2)ρj(j=1,2…z)和τi(i=1,2…c)分别是在设定范围内独立产生的随机数,通过这些随机数,可以使用下述两式产生不同的系统发电机出力和负荷需求情况,求解稳态潮流后,可以获得系统的不同运行方式。
(3)在求解稳态潮流的过程中,总负荷与总出力之间的不平衡情况可由系统的平衡节点进行补偿,在模拟出的各类运行方式之下,可以收集各类故障对应的样本数据,具体做法是在产生的各种运行方式之下,在关注的节点、线路上设置故障,进行暂态稳定仿真,从而获取系统的暂稳后果。
步骤2)从原始数据中提取特征,并确定暂稳标签。利用故障后发电机功角差是否发散判定系统是否发生失稳状况。对于各种稳态运行方式,提取出各类电气量特征,作为后续XGBoost算法的特征输入。由此形成一定数量的用于建立电力系统暂态稳定评估模型的样本数据。相关计算步骤如下:
(1)当电网发生故障后,其稳定性由一段时间内电网中各发电机之间的功角差δ来衡量,根据δ是否发散,可将系统故障后果分为暂态稳定和暂态不稳定。当系统最大发电机功角差小于180度时,系统往往不会失去稳定,当系统最大发电机功角差超过180度时,往往出现功角差发散现象,系统将无法继续保持稳定运行。由此给定电网稳定性标记y的评估标准如下式所示。
其中,max(δ)指故障后一段时间内系统任意两发电机之间功角差的最大值。
(2)提取能够反映电网稳态运行状态的特征如下表所示,从而构成电网的稳态电气量特征:
稳态电气量特征
Electrical features under steady state
其中V,theta分别表示节点电压的幅值和相角,Δtheta表示发电机节点之间的功角差,PG,QG,PL,QL,PB,QB分别表示发电机节点的有功、无功出力,负荷节点的有功、无功需求和线路传输的有功、无功功率,所有变量的上标为对应节点的编号,如i或j。
步骤3)采用XGBoost算法并进行适用性改进,利用获取的样本数据进行模型训练。在训练过程中,针对暂态稳定预测过程中两类错误严重程度不同的特点,引入注意力系数对算法的损失函数进行修正,使得模型对不稳定样本的预测情况减少;使用logistic函数用于将模型输出概率化,用于衡量XGBoost模型输出的可靠程度,预防部分误预测。相关具体步骤如下:
(1)XGBoost算法原理:对于给定的具有N个样本和M个特征的训练样本集D={(xi,yi)}(|D|=N,xi∈RM,yi∈R),XGBoost算法的最终训练结果是一个由K个CART决策树函数相加得到的集成模型:
其中,是XGBoost模型的输出,F={f(x)=wq(x)}(q:RM→T,w∈RT)是CART决策树的集合,一个CART决策树由树结构q和T个叶节点组成,每个叶节点j都有一个连续值与它对应,称为叶节点的权重wj,所有权值构成该树的权重向量w∈RT。
树结构q通过属性判别可以将任意具有M维特征的样本映射到其某一个叶节点上。每一个决策树函数fk对应一个特有的树结构q以及对应的叶节点权重向量w。对于一个样本,XGBoost模型获取最终的预测值的过程为:在每一棵决策树上将该样本映射到对应的叶节点上,再将该样本对应的K个叶节点的权重相加。
机器学习模型均会定义损失函数,用于衡量模型的预测值与真实值之间的偏差,在训练过程中,训练目标即使得损失函数的值尽可能的小。XGBoost模型的损失函数形式如下所示。
表达式中,l为训练损失函数,根据机器学习问题类型的不同可选用对数损失函数、均方误差损失函数等,用于衡量预测值与标签值yi之间的偏差,第二项Ω称为正则项,用于控制训练出的模型的复杂度,使模型保证在训练样本上的准确度的同时,不至于过度复杂,从而可以避免过拟合,增强泛化能力。其定义如下。
正则项中的第一项用于控制树模型中叶子节点的个数,使树结构q尽可能简单;第二项用于控制叶节点的权重分布,使权重向量w避免出现过大值。γ和λ两参数用于调节正则项中两部分之间的比例,一般将λ定为1,仅对参数γ做必要的调整。
根据定义的损失函数,可以使用训练样本对XGBoost模型进行训练。基于树的机器学习模型与普通机器学习模型在训练方式上最大的不同在于,此类模型参数不仅包含具体的数值,如权重向量w,也包含函数fk这种特殊类型的“参数”,难以通过梯度下降的方式直接进行优化。在XGBoost算法中,训练是以树模型迭代增加的方式进行的,即训练过程中的每一步,增加一个CART决策树函数f,使得损失函数进一步减小。假定表示第t步时对第i个样本的预测值,此时,为了进一步优化模型,需要增加最优的树结构ft来最小化此时的目标函数L(t)。
新的树结构ft使得此时的预测输出变为constant为独立于变量树结构ft的常数,即第t步之前已经获得的CART树函数对应的正则项,这些正则项已是定值。选取树结构ft的标准即使得损失函数L(t)的减小幅度最大。将上式展开成如下二次泰勒级数的形式。
其中,分别是损失函数l在展开点处的一阶和二阶导数。展开式中的表示第t步之前得到的所有CART树函数的输出与样本标签yi构成的损失函数,也是一个定值。由于损失函数的减小幅度与常数项无关,因此,去掉上式中的常数项,可以得到第t步时简化的目标函数
定义Ij={i|qt(xi)=j}为所有被树结构qt映射到第j个叶节点的样本编号集合,则上述简化目标函数可进一步被化简为:
该式对wj求导,可得对于一个特定的树结构qt,其最优的叶节点权重为:
代入损失函数公式,得到此特定树结构qt对应的最优损失函数为:
此最优损失函数可以衡量任意树结构qt的好坏。越小,说明此树结构qt可以使模型的损失函数下降更多。
至此,可以将XGBoost模型的实际训练过程表述如下:(a)以迭代的方式增加CART树函数,当树模型的继续增加使得模型的准确度提升幅度小于s时,则停止迭代,不再继续增加树模型的个数K,获得最终的XGBoost模型(b)在每一轮迭代过程中,为得到一个新的函数ft,从一个单一的叶节点结构开始,每次将一个叶节点增加一个树分叉,在所有可能的树增长方案中(扫描所有的可分叉处和所有的可用特征),选取使得最优损失函数最小化的方案,如此循环进行。树的停止分裂可以由两个参数控制:当树的最大深度maxdepth达到规定值时,或者当全部分裂节点的方案均无法使损失函数获得大于γ的下降时,树停止分裂,计算此树结构qt对应的最优权重向量w,从而可得到新的树函数ft。
(2)引入如下logistic函数将XGBoost模型的输出概率化,将输出转化到(0,1)范围之内。
选取阈值α=0.5,可以获得最终的预测结果如下式所示。
此种方式可将XGBoost模型的输出转化为暂态稳定与暂态不稳定两类,并且,概率输出的大小能够反映模型预测的“可靠程度”,可以认为,当越接近1时,模型将此样本分类为1的确定程度越高,当越接近0时,模型将此样本分类为0的确定程度越高。后续的算例分析表明,针对暂态稳定评估问题,此种概率输出的形式有助于判定模型预测的可靠程度。
(3)错误分类和遗漏分类是暂稳评估中可能出现的两类错误。错误分类指不稳定样本(yi=1)被分类为稳定样本,而遗漏分类指稳定样本(yi=0)被分类为不稳定样本。对于运行中的电力系统,错误分类将导致不稳定情况被忽视,使得运行人员错过调整运行方式的最佳时间,为电力系统安全稳定留下隐患,而遗漏分类虽然也是错误情况,但是仍可以通过时域仿真等手段对后果进行进一步确认,其对于电力系统运行的影响相对较小。因此在模型训练时,错误分类应比遗漏分类获得更多的重视。由此引入注意力系数μ改进损失函数,使得模型更不易出现错误分类的问题。
当μ>1时,损失函数的构成中第一项占据的比例将更大,模型的训练过程将更加重视被错误分类的样本,从而使得训练出的模型更不易发生错误分类的问题。
步骤4)最后,基于XGBoost算法的暂态稳定评估模型训练成熟之后,可以根据电网能量管理系统记录下的电网实时运行信息,构成能够反映电网稳态运行状态的电气量特征。输入XGBoost模型,即可以实时评估电力系统某些可能的故障所带来的暂态稳定后果。
本发明的有益效果:本发明在准确率和召回率上均高于判别方法,这是由于XGBoost在算法设计上更好地兼顾了学习能力与泛化能力,尽管在损失函数的框架下,大多数机器学习算法均可以在训练集上获得较好的拟合,但XGBoost算法在正则项上的设计使其在训练集之外有更好的泛化能力,具有更高的测试集准确率。同时本发明能以概率方式捕捉较为确定的预测和相对不确定的预测之间的差别,从而可以避免模型的一部分误输出。
猜你喜欢
- 2024-11-12 机器学习“司马家族”——树族 机器学习实战树回归
- 2024-11-12 大白话人工智能算法-第27节决策树系列之预剪枝和后减枝(6)
- 2024-11-12 机器学习之图解 GBDT 的构造和预测过程
- 2024-11-12 机器学习算法之随机森林算法通俗易懂版本
- 2024-11-12 决策树之 GBDT 算法 - 回归部分 gbdt和决策树
- 2024-11-12 大数据:如何用决策树解决分类问题
- 2024-11-12 几种特征选择方法的比较,孰好孰坏?
- 2024-11-12 决策树算法之随机森林 决策树和随机森林预测结果
- 2024-11-12 3分钟掌握机器学习中的决策树 机器学习和深度学习决策树
- 2024-11-12 一文看懂决策树分类模型理论和应用
你 发表评论:
欢迎- 11-13第一次养猫的人养什么品种比较合适?
- 11-13大学新生活不适应?送你舒心指南! 大学新生的不适应主要有哪些方面
- 11-13第一次倒班可能会让人感到有些不适应,以下是一些建议
- 11-13货物大小不同装柜算法有哪些?怎么算?区别有哪些?
- 11-13五大基本算法 五大基本算法是什么
- 11-13高级程序员必备:分治算法分享 分冶算法
- 11-13最快速的寻路算法 Jump Point Search
- 11-13手机实时人工智能之「三维动作识别」:每帧只需9ms
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)