基于多智能体SAC深度强化学习的风电场参数辨识方法
未命名
09-24
阅读:242
评论:0
基于多智能体sac深度强化学习的风电场参数辨识方法
技术领域
1.本发明涉及基于多智能体sac深度强化学习的风电场参数辨识方法,属于电力信息技术领域。
背景技术:
2.随着传统资源的过度开发及新能源行业的逐步兴起,越来越多的学者投身于新能源的研究。太阳能、风能等在多个行业得到应用。在电力行业,风力发电的比例逐渐提高,风电场已经成为电力系统不可或缺的部分。但是大量风电场并入电网会影响系统的动态特性。因此,提高风电场接入电网后的系统稳定性成为现在电网研究的重要问题之一。风电场是利用风能来发电的设备集群,是风能发电的主要形式之一。由于风速、风向和气象条件等自然因素的不确定性,使得风电场出力具有随机性和波动性,从而导致风电场的可靠性、稳定性和经济性等方面存在挑战。风电场风机数量众多,如果都采用详细模型模拟会影响仿真速度,因此,提高风电场仿真的效率和可靠性,需要对风机及其控制系统等参数进行等值及准确的辨识。
3.新疆大学吴章晗的直驱永磁风电机组参数辨识及风电场并网电压稳定性分析文献提出了一种基于mdpso(平均最优位置变量粒子群算法)算法,对直驱风机发电机参数进行辨识。山东科技大学刘立群的基于mmpso与bp神经网络的风电场等值建模方法研究文献提出了一种改进的粒子群优化算法(mmpso),对风电场多机等值模型进行辨识,但该算法辨识精度不高。电工技术学报公示的陈鹏伟,戚陈陈,陈新,陈杰,李朝晖的附加频率控制双馈风电场频率响应特性建模与参数辨识文献提出了一种结合矩阵束法和最小二乘法的双馈风电场参数辨识方法,该算法可较好解决附加频率控制后双馈风电场整体频率响应特性耦合情况下的建模问题,但该算法辨识效率不高。甘肃科技公示的谢霖伟,雷冠珠,杨丽洁,何增辉,李苗苗的基于粒子群算法的风电场参数辨识研究文献提出一种基于传统粒子群算法的风电场参数辨识方法,并与穷举算法辨识结果进行比较,得到了较高精度的风电场参数值,但传统粒子群优化算法容易陷入局部最优解。
4.中国电力公示的周庆锋,王思淳,李德鑫,刘佳琪,李同的基于ddpg的风电场动态参数智能校核知识学习模型文献提出了一种基于ddpg(深度确定性策略梯度)算法,用于修正风电场动态行为主导参数,结果优于传统启发式算法的辨识结果,但是该方法并未考虑多工况的情况。
5.近年来,人工智能算法在各领域取得了非凡的成就,也推动了基于人工智能算法在电力系统参数辨识中的应用。
6.中国电力公示的周庆锋,王思淳,李德鑫,刘佳琪,李同的基于ddpg的风电场动态参数智能校核知识学习模型文献采用深度强化学习对电力系统模型参数进行在线校正,实现了直流输电模型参数的离线多场景参数辨识与参数在线校正。东南大学的胡健雄的直流输电系统参数测辨与在线校正方法研究文献提出了一种基于最大熵、soft actor critic(sac)的非策略深度强化学习(drl)算法的参数校准方法,以自动调整不正确的参数集,同
时考虑多个事件,可以节省大量的劳动力。
7.基于多智能体强化学习的参数辨识方面,wang siqi et al.on multi-event co-calibration of dynamic model parameters using soft actor-critic[j].ieee transactions on power systems,2021,36(1):521-524.提出一种erl(enhanced reinforcement learning)算法对区域负荷时变系统进行参数辨识,该算法能对模型参数进行准确快速的跟踪。华南理工大学的尚筱雅的基于改进强化学习算法的终端电网在线等值建模方法及其应用文献提出了一种基于多智能体协作的自适应强化学习(macsarl)算法的在线辨识模型,对等值的负荷模型进行在线辨识,该算法有效改善了传统q学习算法遇到的维数灾难问题。
技术实现要素:
[0008]
为了克服现有研究的不足,本发明提供了基于多智能体sac深度强化学习的风电场参数辨识方法。
[0009]
本发明将多智能体深度强化学习与风电场参数辨识结合起来,针对传统单机等值法对在多工况下精度不高,风机参数多,传统方法辨识效率低等问题,提出了一种基于多智能体soft actor critic(sac)的非策略深度强化学习(deep reinforcement learning)算法的多工况下风电场参数辨识的新方法。这种方法可以在多工况下对风机进行精确辨识,大大提高风电场参数辨识的速度和效率。
[0010]
基于多智能体sac深度强化学习的风电场参数辨识方法的具体步骤如下:
[0011]
步骤一:建立风电场风机的等值数学模型;
[0012]
首先对风电场风机的详细模型进行单机等值,得到风机的单机等值模型。建立等值数学模型使用仿真工具psd-bpa(简称bpa),是电力系统计算分析的综合电力仿真软件,在国内电力调度运行机构和电力系统规划相关单位及各高校中都得到了广泛应用,具有潮流计算、暂态稳定仿真计算、短路计算、小干扰稳定计算等功能。
[0013]
潮流计算:潮流计算文件格式为dat,潮流数据文件是为潮流运算提供数据与指令、按照bpa定义的dat文本文件,可直接编辑、修改参数。
[0014]
暂态计算:暂态计算文件格式为swi。与潮流数据文件类似,元件动态参数、故障操作、计算和输出控制均以卡片形式输入,并可通过设置相关卡片的参数进行不同干扰方式下的稳定计算。
[0015]
步骤二:利用扰动法计算风机的无功功率轨迹灵敏度,探究不同观测量下的轨迹灵敏值,设定阈值,筛选出轨迹灵敏度大于设定阈值的参数;
[0016]
风机的静态参数存于bpa风机模型卡my和低压穿保护模型卡mr中,如风机容量,电容电压和卸荷电阻等,动态参数存于正常状态下有功控制eu卡,正常状态下无功控制ez卡和有功无功电流限制卡es中,如时间常数,各环节系数等。待辨识参数以bpa暂态数据文件中等值模型的设定值作为参数初始值进行潮流计算,设置短路故障,进行暂态计算,记录理想电源和故障节点的线路的无功输出曲线。将选定参数在初始值的基础上增加5%,再一次进行暂态计算,得到输出曲线,然后计算选定参数的无功轨迹灵敏度,计算公式如下:
[0017]
[0018]
式中:为无功轨迹灵敏度,n为采样点个数,q0为参数取初始值时得到的无功值,q1为参数在初始值的基础上增加5%得到的无功值。
[0019]
步骤三:建立基于bpa的sac多智能体算法的多工况环境;
[0020]
sac多智能体模型包含环境和智能体,首先要进行环境的搭建。针对辨识的每个风机参数,先确定参数的范围,将风机模型所有的参数的值作为状态s
t
,风机参数值的改变量为动作a
t
(训练时,动作a
t
由每个sac的智能体动作a
t
的组合),做出动作后的下一次状态为:
[0021]st+1
→st
+a
t (2)
[0022]
根据bpa中每个工况的暂态文件swi文件格式,将状态s
t+1
,即风机参数的值写入每个工况的暂态文件swi中,然后进行暂态计算,得到每个工况的结果文件swx,然后从所有工况的结果文件swx中读出当前状态下的故障节点线路输出的无功功率q(t+1),计算误差:
[0023][0024]qrel
为单个工况的风机详细模型故障节点线路输出的无功功率数据,i为考虑的工况序号,k为工况的数量,n为采样点个数,初始值q
loss
(0)取值为100。
[0025]
随后记录q
loss
最小的一组数据,最优q
lossbest
的值。然后计算奖励r为:
[0026][0027]
如果当前的q
loss
(t+1)比最优的q
lossbest
要小时,更新最优的误差值q
lossbest
。最终在一次迭代中得到当前状态s
t
,单个智能体动作a
t
,下一次的状态s
t+1
和奖励r,然后将(s
t
,a
t
,s
t+1
,r)并存入经验池d中用于后面训练(每个智能体独立训练),每个智能体的经验池相似,将全局的状态信息和单个智能体的动作信息传送到相应的智能体中。最后根据q
lossbest
的值是否满足误差要求来判断辨识是否结束。
[0028]
步骤四:sac多智能体的搭建;
[0029]
强化学习的本质在于互动性学习,也就是让一个智能体与外部环境之间进行交互。智能体根据自己所感知的环境状态选择响应的动作,以对环境做出响应,然后通过观测动作所导致的结果,并依据该动作的结果进行调整,最后通过智能体的动作选择策略对环境做出最优的动作,使其获得最大的奖励值。sac(soft actor critic)是强化学习中一种基于最大熵的非策略深度强化学习算法,它将强化学习跟深度学习结合起来,用神经网络来模拟策略函数π(s)、状态价值函数v
π
(s)和动作价值函数q
π
(s,a),s代表状态,a代表动作。
[0030]
标准强化学习的目标是学习一个π
*
函数使累加的奖励期望值最大,而sac训练了一个带有最大熵的π
*
函数,这代表着它不仅最大化了奖励期望,而且要求策略π的熵也要最大化。最大熵maximum entropy在策略函数和价值函数中具有不同的作用,在策略函数中,它可以防止智能体的策略过早收敛于局部最优解。在价值函数中,它可以增加智能体动作对策熵。这就意味着神经网络需要去探索所有可能的最优路径,这使得sac获得更强的探索能力和更强的鲁棒性。
[0031]
sac单智能体的最优策略π*为要求累加的奖励和熵的期望值最大:
[0032]
[0033]
h(π(a
t单
|s
t
))=-logπ(a
t单
|s
t
)
ꢀꢀꢀ
(6)
[0034]
其中h(π(a
t单
|s
t
))是状态s
t
时策略的熵,计算公式如(6)所示。π(a
t单
|s
t
)为sac的策略函数,r(s
t
,a
t单
)为状态为s
t
,动作为a
t单
时的奖励,为对累加的奖励和最大熵求期望,argmax指取得对应函数的最大值,α为熵的折扣因子。
[0035]
多智能体深度强化学习是指多个具有自我控制能力、能够相互作用的智能体,在同一个环境下不断交互并执行操作的过程。本文选择基于sac的多智能体深度强化学习算法进行参数辨识,框架图如图5所示,环境向每个智能体发送全局状态信息s
t
,随后每个智能体做出一个动作a
t
并组合为a
t
返回给环境,并生成s
t+1
和新的奖励r,再传回每个智能体,将(s
t
,a
t
,s
t+1
,r)存入replay buffer d中,用经验池d对每个智能体进行训练。每个智能体都会对环境造成影响,所以智能体之间是相互联系影响的,在本专利中每个智能体是相互合作关系,每个智能体的目标都是使奖励最大化。
[0036]
基于sac的多智能体深度强化学习算法中的每个智能体内部结构相同,单个sac智能体中包含两个网络,actor网络和critic网络,actor网络仅包含一个策略网络π
φ
(s
t
),而critic网络中包含四个网络,一个状态价值网络两个动作价值网络(两个动作价值网络用来缓解对真实值的高估问题)和一个目标值网络它的网络结构如图6所示。神经网络选取mlp多层感知机,mlp神经网络的结构包括三层:输入层、隐藏层和输出层。对于策略网络来说,mlp的输入层为全局状态s
t
,s
t
代表的是所有待辨识的风机参数值的向量,输出层为高斯分布的参数(期望和方差),每个智能体用来辨识一个风机的参数,然后由随机采样得出单个智能体的动作值a
t1
,a
t1
代表的是对应智能体辨识参数的改变量。对于状态价值网络来说,mlp的输入层为状态s
t
,输出层为状态价值对于动作价值网络来说,mlp的输入层为全局状态观测s
t
和策略网络输出的所有智能体的联合动作a
t
,输出层为动作价值对于目标值网络来说,mlp的输入层为全局状态观测s
t+1
,输出层为状态价值每个智能体有着独立的critic网络和actor网络,但在网络训练时相互交流,每个智能体自身的动作和状态观测信息发送给其他智能体,critic网络和actor网络的输入的s
t
都为能观测到的全局状态信息。
[0037]
sac多智能体深度强化学习算法中每个智能体的训练流程类似,sac单个智能体中状态价值网络策略网络π
φ
(s
t
)和动作价值网络通过对参数ψ、φ和θ训练随机梯度下降神经网络来实现策略评估和改进。首先训练策略网络π
φ
(s
t
),它的误差函数为:
[0038][0039]
其中,是根据动作价值网络得到(两个动作价值网络可任意选择),是重新由各个智能体的策略网络输出组合得到的,α跟式(5)中的相同。
[0040]
然后训练动作价值网络和状态价值网络它们的误差函数为:
[0041][0042][0043][0044][0045]
其中,作为动作价值网络的预测值,而作为动作价值网络的真实值,是根据目标价值网络得到,γ为折扣因子。作为状态价值网络的预测值,而作为状态价值网络的真实值,而作为状态价值网络的预测值,是根据动作价值网络得到(每个智能体都有两个动作价值网络,在训练时选择输出值最小的那一个,用于缓解高估问题),a
t
代表所有智能体输出动作的组合,与策略网络π
φ
(s
t
)中的相同,α跟式(5)中的相同。
[0046]
目标值网络不通过神经网络更新参数,而是通过状态价值网络的参数ψ来更新,τ为学习因子,为更新前的值,为更新后的值。
[0047][0048]
得到每个网络的误差函数之后,开始计算各个网络误差函数的梯度每个loss函数中只含有一个网络参数,可直接对各个loss函数中的参数求导得到各个网络误差函数的梯度,然后进行网络参数的更新,λv,λq,λ
π
为学习率。
[0049][0050][0051]
sac单智能体的网络参数更新流程如下:
[0052]
s1:初始化参数向量ψi,i∈{1,2,
…
,n}代表智能体,j∈{1,2}代表动作价值函数,φ和循环变量p=0,1,2
…
。
[0053]
s2:得到初始状态s
t
,单个智能体动作a
t
,根据公式(2)得到s
t+1
~(s
t
,a
t
),根据公式(4)计算奖励r,将(s
t
,a
t
,s
t+1
,r)存入replay buffer d中,用经验池d对智能体进行训练。
[0054]
s3:p满足设定次数20之后,从d中取得存储的样本数据,根据公式(13)计算策略网络动作价值网络和状态价值网络的梯度,
[0055]
s4:根据公式(12)更新参数根据公式(14)的梯度来更新参数ψi,θi,φi。
[0056]
s5:返回s2。
[0057]
步骤五:设置好sac多智能体模型中环境和智能体的结构和模型后,开始利用风电场详细模型无功曲线和sac多智能体深度强化学习算法辨识,得到风电场参数最终辨识结果。
[0058]
首先建立基于bpa的暂态计算环境,并初始化风机的参数和参数范围,然后建立直驱风机等值模型,并初始化网络参数ψi、φi和θi,i=1,2,
…
n。按照sac算法流程开始参数辨识及训练,首先根据当前全局状态s
t
利用bpa在多工况下进行暂态计算,分别得到各工况等值模型的无功功率曲线,与对应工况的风机详细模型的输出无功曲线比较,根据公式(2)计算误差,如果误差小于允许值,则输出风机参数,如果误差大于允许值,则由每个sac智能体的策略网络的输出a
t
组合得到a
t
,由a
t
得到s
t+1
和奖励r,(s
t
,a
t
,s
t+1
,r)并存入集合d中用于后面训练。当最优结果已不再更新时,输出风机当前参数值,即为辨识结果。
[0059]
与现有技术相比,本发明的有益效果在于:
[0060]
本发明提出利用电力系统仿真软件bpa对风电场进行建模仿真,用单机等值法对详细模型进行等值,对单机等值直驱风机模型进行辨识,然后根据轨迹灵敏度筛选出对单机等值直驱风机模型无功动态曲线影响较大的风机主要参数。这种方法可减少参与辨识的参数数目,减少参数辨识时间。其次设定直驱风机参数的范围,用tensorflow(一个开源的python机器学习库,包含自动求导系统的深度神经网络)搭建多智能体sac模型,然后通过sac多智能体训练,最终辨识出在多个工况下的风机参数,解决传统方法(如单机等值法、粒子群优化算法)在多工况下风机模型精确度不够的问题,以提高模型精度和辨识效率。
附图说明
[0061]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0062]
图1为本发明正常状态下的有功控制模型;
[0063]
图2为本发明正常状态下的无功控制模型;
[0064]
图3为本发明有功无功电流限制模型;
[0065]
图4为本发明直驱风机基本结构图;
[0066]
图5为本发明直驱风机单机等值模型图;
[0067]
图6为本发明sac多智能体深度强化学习原理图;
[0068]
图7为本发明sac单智能体结构图;
[0069]
图8为本发明训练流程图;
[0070]
图9为本发明仿真的无功输出对比曲线图;
具体实施方式
[0071]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0072]
基于多智能体sac深度强化学习的风电场参数辨识方法的具体步骤如下:
[0073]
步骤一:利用电力系统仿真软件bpa对风电场进行等值建模,建立单机风机的数学模型。
[0074]
下面以直驱风机为例,图1为正常状态下的有功控制模型,图中u
dc
为直流环节中的直流母线电压,正常状态下直流母线电压应保持恒定,t1为测量环节的测量时间常数,实时电压经过一个测量环节与参考值进行比较,若母线电压发生波动,则通过pi环节对电压进行调节,以使电压保持稳定,k
pudc
和k
iudc
分别是比例和积分环节的系数,i
dmax
和i
dmin
是控制环节的上下限。
[0075]
图2为正常状态下的无功控制模型。图中rc为电压补偿电阻,xc为电压补偿电抗,tr为电压测量时间常数,k
pv
为比例环节系数,k
vi
为积分环节系数,q
max
和q
min
为无功最大、最小限制,tv为时间常数,ipf为控制方式,本专利皆采用电压控制方式(ipf=0),故不对恒功率因素控制环节(ipf=1)的参数进行辨识研究。
[0076]
图3为有功无功电流限制模型,图中p
ref
和q
ref
分别为有功和无功的给定值,us为风机端口电压,i
dref
和i
qref
分别为有功和无功电流,imax为最大电流限制,i
dmax
,i
qmax
为有功和无功电流最大限制,k
qp
,k
qi
为有功和无功控制积分系数,dq
max
,dq
min
为无功控制环节限幅最大、最小值,在低压和高压期间均采用无功控制优先。
[0077]
另有直驱风机机组模型卡my中的风机额定容量mvabase,换流器直流侧电容c和低电压穿越保护模型卡mr中卸荷电阻r作为辨识的参数。
[0078]
图4为直驱风机基本结构图,永磁直驱风电机组主要由风力机、发电机、变流器、控制系统组成,其中变流器包括机侧变流器(rsc)、直流环节以及网侧变流器(gsc)。直驱风机发电的工作原理为:风电场中的风机获取风能,风力机带动发电机旋转,将风能转化为电能,通过机侧变流器对交流电进行整流,通过直流环节来稳定电压,通过网侧变流器将直流电逆变为交流电,然后经变压器接入主电网。
[0079]
图5为直驱风机单机等值模型图,后续使用该模型进行仿真计算。
[0080]
步骤二:计算风机各参数轨迹灵敏度,筛选主要参数。
[0081]
1)根据bpa中的直驱风机模型,初始待辨识动态参数有[t1,k
pudc
,k
iudc
,tr,k
pv
,k
pi
,q
max
,q
min
,tv,k
qp
,k
qi
],为提高辨识模型的精度,我们将等值模型中等值的参数也加入辨识,待辨识的等值参数有[mvabase,c,r],它们分别是风机额定容量、换流器直流侧电容和卸荷电阻r。以单机模型暂态数据文件中数据卡里的参数值作为初始值,(各初始值为t1=0.02,k
pudc
=0.418,k
iudc
=0.01,tr=0.02,k
pv
=18,k
pi
=5,q
max
=1.0,q
min
=-1.0,tv=0.15,k
qp
=0.01,k
qi
=0.01,mvabase=4.74(mva),c=0.4(f),r=0.34(ω)),t=2s时,在图5的电源母线处设置三相短路故障,故障在一段时间后切除,进行暂态计算,记录故障线路的输出无功
功率值、有功功率值。
[0082]
2)将t1增加5%,其余参数保持不变,重复与上步相同的计算。将其余每个参数分别增加5%,(一个参数变化时,其余参数保持不变),分别得到每个参数在变化后的仿真无功曲线、有功曲线。
[0083]
3)根据式(1)分别计算各参数的无功功率轨迹灵敏度、有功轨迹灵敏度。
[0084]
根据上述步骤,编写程序计算轨迹灵敏度,计算结果如表1所示。
[0085]
表1参数轨迹灵敏度
[0086][0087][0088]
由表1可得,各参数无功灵敏度与有功灵敏度结果相似,因此,在后续计算中只选取风机输出的无功功率作为判断灵敏度大小的指标。
[0089]
根据轨迹灵敏度计算结果可得,参数的轨迹灵敏度为0;轨迹灵敏度较小,难以辨识,因此在后续辨识中,这7个参数即用初始值,不作辨识。根据轨迹灵敏度筛选后的所需辨识参数为[t1,tv,k
pudc
,k
iudc
,q
max
,mvabase,c]。
[0090]
步骤三:建立基于bpa的sac的多工况环境。
[0091]
直驱风机参数[t1,k
pudc
,k
iudc
,q
max
,mvabase,c,r]作为待辨识参数,各参数范围为:t1:0.018-0.022;k
pudc
:0.3762-0.4598;k
iudc
:0.009-0.011;q
max
:1-1.3;mvabase:4.27-5.21;c:0.36-0.44;tv:0.135-0.165。确定辨识参数以及参数范围后,将风机参数的值作为状态s
t
,svg参数值的改变量为动作a
t
,每个智能体只输出一个a
ti
,改变一个参数,根据公式(2)得到下一次的状态s
t+1
。然后将当前状态s
t
中svg参数值写入bpa软件的swi文件中,在图
5的等值模型母线处设置三相短路故障,故障在一段时间后切除,进行暂态计算。
[0092]
在本专利中故障分为三种工况,如表2所示:
[0093]
表2工况数据
[0094] 工况1工况2工况3故障持续时间1.7s1.2s2s故障电阻标幺值0.020.040.02故障电抗标幺值0.150.030.4
[0095]
对这三种工况进行暂态计算,记录三个工况下的风机输出无功功率值,获取当前状态s
t
下,即当前风机参数值下的无功功率数据。
[0096]
如果sac多智能体给出的动作a
t
使得下一次的状态超过设定的风机参数的设定范围,则给予sac智能体模型一个惩罚,使奖励r为-10,如果下一次的状态s
t+1
在范围之内,则正常训练,奖励r根据公式(4)获得。
[0097]
最终得到当前状态s
t
,当前动作a
t
,下一次的状态s
t+1
和奖励r,然后将(s
t
,a
t
,s
t+1
,r)并存入经验池d中用于后面训练辨识。
[0098]
步骤四:建立sac多智能体。
[0099]
sac多智能体深度强化学习的单智能体的网络结构如图7所示。单个智能体中的神经网络选取mlp多层感知机,mlp神经网络的结构包括三层:输入层、隐藏层和输出层。网络的隐藏层均为5层全连接层,每一层有20个神经元。sac多智能体模型中使用的参数值如表3所示:
[0100]
表3参数值
[0101]
参数值λ0.001γ0.9α0.5τ0.9
[0102]
每个智能体所采用的参数值都相同。
[0103]
步骤五:开始风机参数辨识训练,得到最终辨识结果。
[0104]
实验是在nvidia geforce rtx 3060laptop gpu上进行的,使用tensorflow搭建sac多智能体深度强化学习并进行训练,优化器选择adam。本专利方法的训练流程图如图8所示,当辨识模型输出的无功功率跟详细模型输出的无功功率数据误差小于允许值时,输出风机当前参数值,即为辨识结果。
[0105]
使用sac多智能体深度强化学习在多工况下对系统参数进行估计的主要目的是减少参数辨识的计算量,缩短计算时间,但前提是要保证参数预测结果的准确度,必须在验证这种辨识方法的准确可行之后才能进一步讨论其对于效率的提升。同时,将本方法与粒子群优化算法在均方根误差(root mean square error,rmse)和决定系数(coefficient of determination,r2)作对比(rmse反映仿真值与实际值之间的偏离程度,它的值越小表明模型精度越高,r2反映模型的拟合程度,r2的值越接近于1,说明模型的拟合程度越好),以展现基于sac多智能体深度强化学习在多工况下参数辨识的优势。
[0106][0107][0108]
式中:n为样本个数;yi代表预测的曲线值;代表详细模型曲线值;代表详细模型曲线值的平均数。
[0109]
图9为工况3的风机无功输出对比曲线图。由仿真曲线可看出本文方法和粒子群方法可以较好的拟合详细模型的输出曲线,在故障区间中,本文方法的拟合效果要更好。
[0110]
辨识结果及精度对比如下表所示:
[0111]
表4辨识结果
[0112][0113]
误差结果如表5所示:
[0114]
表5误差结果
[0115]
无功rmse误差工况1工况2工况3粒子群算法23.1617.379.85本文方法22.6716.3658.93
[0116]
表6拟合程度
[0117]
决定系数r2工况1工况2工况3粒子群算法0.990.9970.987本文方法0.990.9970.989
[0118]
表7辨识时间
[0119] 辨识时间(min)粒子群算法15.27本文方法1.73
[0120]
从误差上看,本文方法较粒子群方法在每个工况下精度均有提升。从拟合程度上看,本专利方法和粒子群算法在每个工况下的拟合程度更好,在工况3中本文方法拟合程度要更好。从辨识时间上看,本专利方法的辨识时长在2分钟之内,而粒子群算法需要10分钟以上,由此可以看出效率非常高,而且精度也很好。
[0121]
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。
技术特征:
1.基于多智能体sac深度强化学习的风电场参数辨识方法,其特征在于:包括以下步骤:步骤一:建立风电场风机的等值数学模型;步骤二:利用扰动法计算风机的无功功率轨迹灵敏度,探究不同观测量下的轨迹灵敏值,设定阈值,筛选出轨迹灵敏度大于设定阈值的参数;步骤三:建立基于bpa的sac多智能体算法的多工况环境;步骤四:搭建sac多智能体模型;步骤五:开始风电场风机参数辨识训练,得到最终辨识结果。2.根据权利要求1所述的基于多智能体sac深度强化学习的风电场风机参数辨识方法,其特征在于:所述步骤二具体包括:风机的静态参数存于bpa风机模型卡my和低压穿保护模型卡mr中,待辨识参数以bpa暂态数据文件中等值模型的设定值作为参数初始值进行潮流计算,设置短路故障,进行暂态计算,记录理想电源和故障节点的线路的无功输出曲线,将选定参数在初始值的基础上增加5%,再一次进行暂态计算,得到输出曲线,然后计算选定参数的无功轨迹灵敏度,计算公式如下:式中:为无功轨迹灵敏度,n为采样点个数,q0为参数取初始值时得到的无功值,q1为参数在初始值的基础上增加5%得到的无功值。3.根据权利要求2所述的基于多智能体sac深度强化学习的风电场参数辨识方法,其特征在于:所述步骤三具体包括:sac多智能体模型包含环境和智能体,先要进行环境的搭建,针对辨识的每个风机参数,先确定参数的范围,将风机模型所有的参数的值作为状态s
t
,风机参数值的改变量为动作a
t
,做出动作后的下一次状态为:s
t+1
→
s
t
+a
t
(2)根据bpa中每个工况的暂态文件swi文件格式,将状态s
t+1
,即风机参数的值写入每个工况的暂态文件swi中,然后进行暂态计算,得到每个工况的结果文件swx,然后从所有工况的结果文件swx中读出当前状态下的故障节点线路输出的无功功率q(t+1),计算误差:q
rel
为单个工况的风机详细模型故障节点线路输出的无功功率数据,k为工况的数量,n为采样点个数,初始值q
loss
0取值为100,记录q
loss
最小的一组数据,最优q
lossbest
的值,然后计算奖励r为:如果当前的q
loss
t+1比最优的q
lossbest
要小时,更新最优的误差值q
lossbest
,最终在一次迭代中得到当前状态s
t
,单个智能体动作a
t
,下一次的状态s
t+1
和奖励r,后将(s
t
,a
t
,s
t+1
,r)并存入经验池d中用于后面训练,每个智能体的经验池相似,将全局的状态信息和单个智能体
得动作信息传送到相应的智能体中,最后根据q
lossbest
的值是否满足误差要求来判断辨识是否结束。4.根据权利要求3所述的基于多智能体sac深度强化学习的风电场参数辨识方法,其特征在于:所述步骤四具体包括:sac单个智能体中状态价值网络策略网络π
φ
(s
t
)和动作价值网络通过对参数ψ、φ和θ训练随机梯度下降神经网络来实现策略评估和改进,首先训练策略网络π
φ
(s
t
),误差函数为:其中,是根据动作价值网络得到,是重新由各个智能体的策略网络输出组合得到的,后训练动作价值网络和状态价值网络误差函数为:误差函数为:误差函数为:误差函数为:其中,作为动作价值网络的预测值,而作为动作价值网络的真实值,是根据目标价值网络得到,γ为折扣因子,作为状态价值网络的预测值,而作为状态价值网络的真实值,而作为状态价值网络的预测值,是根据动作价值网络得到,a
t
代表所有智能体输出动作的组合,与策略网络π
φ
(s
t
)中的相同,目标值网络不通过神经网络更新参数,而是通过状态价值网络的参数ψ来更新,τ为学习因子,为更新前的值,为更新后的值,得到每个网络的误差函数之后,开始计算各个网络误差函数的梯度每个loss函数中只含有一个网络参数,可直接对各个loss函数中的参数求导得到各个网络误差函数的梯度,然后进行网络参数的更新,λv,λ
q
,λ
π
为学习率,
5.根据权利要求4所述的基于多智能体sac深度强化学习的风电场参数辨识方法,其特征在于:所述步骤五具体包括:建立基于bpa的暂态计算环境,并初始化风机的参数和参数范围,然后建立直驱风机等值模型,并初始化网络参数ψ
i
、φ
i
和θ
i
,i=1,2,
…
n,按照sac算法流程开始参数辨识及训练,根据当前全局状态s
t
利用bpa在多工况下进行暂态计算,分别得到各工况等值模型的无功功率曲线,与对应工况的风机详细模型的输出无功曲线比较,根据公式(2)计算误差,如果误差小于允许值,则输出风机参数,如果误差大于允许值,则由每个sac智能体的策略网络的输出a
t
组合得到a
t
,由a
t
得到s
t+1
和奖励r,(s
t
,a
t
,s
t+1
,r)并存入集合d中用于后面训练,当最优结果已不再更新时,输出风机当前参数值,即为辨识结果。
技术总结
本发明涉及基于多智能体SAC深度强化学习的风电场参数辨识方法,首先根据轨迹灵敏度辨识出主要参数,这种方法可减少参与辨识的参数数目,再通过BPA仿真软件搭建softactorcritic(SAC)多智能体的多工况下的训练样本环境,然后设定待辨识风机参数的范围,以此来确定SAC智能体在环境中的状态s
技术研发人员:高慧敏 黄卓 卢艺 张嘉悦 郭淼
受保护的技术使用者:杭州电子科技大学信息工程学院
技术研发日:2023.07.05
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/