EI论文复现+改进:基于Kriging元模型优化算法+主从博弈的多区域综合能源系统/虚拟电厂/微电网动态定价和能量管理程序代码!

文摘   科学   2024-09-27 09:36   江苏  

简介



适用平台/参考文献:Matlab+Yalmip+Cplex/Gurobi

多区域网络建模部分:中国电机工程学报《多区域综合能源系统热网建模及系统运行优化》;

元模型/主从博弈部分:电网技术《基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理》;

程序首先建立了多园区综合能源系统模型,由于不同园区的电量冗余或者缺额,园区会与配电网运行商进行电量交互,由此形成一主多从的非合作博弈模型;其次,建立Kriging元模型对园区内部的主从博弈模型进行求解,利用粒子群优化算法搜索优异采样点,避免对下层博弈模型的繁复计算,提高寻优效率。程序中算例丰富、注释清晰、干货满满,创新性很高!下面对文章和程序做简要介绍!

创新点



建立多园区综合能源系统优化调度模型,园区间以电量交互为主;

建立配电网运行商为主领导者,多园区为服从者的主从博弈模型;

使用Kriging元模型替代园区内部的能量管理模型,提高拟合精确度;

利用粒子群优化算法搜索优异采样点,提高寻优效率。

Kriging元模型:

Kriging模型是众多元模型中的一种,其对于非线性模型具有良好的近似能力和独特的误差估计功能,该算法基于适量的样本数据建立初始Kriging模型,根据每个样本点的上层目标函数值将策略空间划分成多个关键区域,在每个区域内利用粒子群算法对上层模型快速寻优,针对寻优结果调用下层模型,计算真实电量和上层目标函数值,并添加到原样本点集中,通过更新修正Kriging模型,直至得到最优解。这个算法只需在关键区域特别是最优解附近具有较高的拟合精度,因此,能够在保证精度的同时大幅减少采样数目,显著提高求解效率。

粒子群算法


粒子群算法(Particle Swarm Optimization,PSO)的基本思想是通过模拟群体中个体之间的协同与竞争关系,寻找问题的最优解。

基本步骤流程:

主要内容


随着电力市场的发展和能源结构的调整,电力系统中如综合能源系统和虚拟电厂的利益主体将越来越多,形成一主体决策、多主体服从的博弈格局。为兼顾综合能源系统和电网运行商的利益,合理确定电量交易价格和管理电场能量,建立了基于Kriging元模型算法的电网运行商-多园区综合能源系统的一主多从动态定价和能量管理博弈模型。该模型利用该方法用Kriging元模型拟合并代替综合能源系统能量内部管理模型,在迭代寻优过程中,结合粒子群优化算法生成新的优异采样点,有针对性地修正Kriging元模型,从而快速准确地得到综合能源系统的交易电价和出力计划。该算法无需虚拟电厂的所有参数,不仅达到保护虚拟电厂隐私的目的,而且能够避免对下层优化模型的大量调用,有效减小计算量,提高求解效率。

程序框架:

程序结果


部分程序


注意:注释超详细!!!

%% 导入电负荷和风电出力P_LD=[];P_Wmax=[];%% 导入约束条件   P_IES==P_IES_b-P_IES_s, %IES与DSO的互电量,正-购买,负-售卖   P_IES+P_MT+P_ES+P_IL+P_W==P_LD, %IES的电功率平衡   0<=P_IES_s<=theta*10, %IES与DSO的最交互电量为10MW   0<=P_IES_b<=(1-theta)*10, %同上   0<=P_GT<=6,  %GT的输出功率上下限MW   -3.5<=P_GT(2:24)-P_GT(1:23)<=3.5, %GT的爬坡约束   -0.6<=P_ES<=0.6, %储能的充放电上下限MW   S_ES(1)==0.4-P_ES(1)/1, %蓄电池的SOC约束,取初始SOC为0.4   S_ES(2:24)==S_ES(1:23)-P_ES(2:24)/1, %蓄电池运行时段的SOC约束   0.2<=S_ES<=0.9, %SOC状态上下限MW   S_ES(24)==0.4, %蓄电池的初始值值相等   0<=P_IL<=0.1*P_LD, %可中断负荷的上下限约束MW   0<=P_W<=P_Wmax, %风机出力上下限约束MW;%% ObjectiveC_GT=0.08*P_GT.^2+0.9*P_GT+1.2; %微燃机的发电成本C_ES=0.05*P_ES.^2; %蓄电池成本C_IL=1.4*P_IL; %可中断负荷成本C_VPP=sum(lambda_DAb.*P_IES_b-lambda_DAs.*P_IES_s)+sum(C_MT+C_ES+C_IL); %IES的总运行成本%% 配置求解器ops=sdpsettings('solver','cplex','verbose',0,'usex0',0);result=solvesdp(C,C_IES,ops);%% 结果输出P_IES_b=double(P_IES_b);P_IES_s=double(P_IES_s);Out = [P_IES;P_GT;P_ES;P_IL;P_W;-P_LD];

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!

创新优化及预测代码
免费分享研究理论及方法,基础代码资料,努力提供电力系统相关专业预测及优化研究领域的创新性代码,保质保量!面包多地址:https://mbd.pub/o/yc_yh/work
 最新文章