随机自适应鲁棒方法!基于恶劣场景辨别法的微网随机自适应鲁棒模型程序代码!

本文主要是介绍随机自适应鲁棒方法!基于恶劣场景辨别法的微网随机自适应鲁棒模型程序代码!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

随着分布式电源(distributed generator,DG)接入电网比例的不断提高,其出力的随机性和间歇性对电力系统的安全稳定运行构成威胁。微网凭借先进的智能计量技术、协调控制技术以及信息通信技术,为有效解决DG并网提供了新的思路。然而,由于电价的波动性和风光出力的随机性,不平衡惩罚依然存在,微网参与市场竞标仍存在很大的风险。微网往往聚合可再生能源、储能、需求响应(demand response,DR)等多种分布式能源,通过协调内部各机组出力,实现作为一个有机整体参与电网运行与调度,极大减小了分布式电源单独并网对公网造成的冲击,并提高了其市场竞争力。多阶段鲁棒优化调度模型能够在仅知道不确定性因素边界值的基础下,严格保证极端条件下的系统运行可靠性,并通过动态迭代降低保守性,克服了静态鲁棒优化的缺点。

恶劣场景概念及现实意义

从现实意义上来讲,所谓最恶劣场景,就是使得微网实时调度收益最低的场景,例如,当光伏出力波动较大,在本该出力较高的10-16(一般认为)时,由于天气等原因,此时光伏出力值较低,为了满足较高的负荷需求,微网在此时需要增加向电网的购电电量或增开燃气轮机组等其余发电设备,相较于成本较低廉的光伏发电,该举措使得微网的发电成本增加,从而其收益有所降低。

事实上,整体目标函数包括两部分,第一阶段基准场景下的日前优化调度收益最大化,由于基准场景一般给定,所以第一阶段为确定性的优化模型。第二阶段考虑了所有可能出现的光伏场景,设该场景集合为Ω,第二阶段的min-max问题其实质含义为,假设Ω集合中共计有ns种光伏场景,则内层max求解的是每一个光伏场景微网的实时调度收益最大化问题,共计有ns种最优解,分别对应不同场景。而外层的min主要用于辨别这ns种场景下使得微网实时收益最低的场景,若假设当取场景si时,对应的微网实时调度收益在所有场景中最低,则可认为此时的si最恶劣场景,也称恶劣场景。

鲁棒性的定义与意义

鲁棒性是指算法模型在面对各种异常情况时,能够保持良好的性能和稳定性。在实际应用中,数据可能存在噪声、缺失、异常值等问题,算法模型需要具备一定的鲁棒性才能在这些情况下正常工作。提高算法模型的鲁棒性可以提高其在真实环境中的适应性和可靠性,为实际问题的解决提供更好的保障。

自适应鲁棒优化求解思路

目前求解自适应鲁棒优化问题主要有4种思路:1)仿射算法;2)Benders分解算法;3)列约束生成法;4)场景法。

首先,仿射算法利用线性决策规则建立决策变量与不确定参数之间的仿射关系,从而将两阶段问题转化为单阶段优化问题,但是结果较为保守;

Benders分解算法以及列约束生成法在线性化过程中会引入大量的边界参数和整数变量,导致问题规模较大时模型求解复杂;

场景法需要列举大量不确定场景集合,导致计算的效率偏低,求解时间过长。

迭代流程图

程序介绍

针对光伏出力的随机性与间歇性,采用动态鲁棒优化法对其进行处理。构建了考虑电价和光伏出力不确定性的微网两阶段鲁棒优化调度模型,并采用恶劣场景辨别算法将原问题分解为主问题和子问题进行迭代求解。子问题用来辨别最恶劣的光伏出力情景,并通过主问题对该情景下的单层优化模型进行求解,从而极大地削减了所需求解情景数量,提高了模型的计算效率。程序中算例丰富,注释清晰,干货满满,创新性和可扩展性很高,足以撑起一篇高水平论文!下面对程序做简要介绍!

程序适用平台:Matlab+Yalmip+Cplex

参考文献:《基于恶劣场景辨别法的微网随机自适应鲁棒模型》-南方电网技术

复现情况:本程序未复现考虑微网同时参与日前能量市场、实时能量市场以及碳交易市场的情况,感兴趣的小伙伴可以自己尝试添加。

程序结果

部分程序

kmp=length(j);P_MP=sdpvar(1,1);​u_GTon=binvar(1,24);
u_GToff=binvar(1,24);u_GT=binvar(1,24);​C_GT=sdpvar(kmp,24);
P_DA=sdpvar(1,24);S_DA=sdpvar(1,24);​P_RT=sdpvar(kmp,24);
S_RT=sdpvar(kmp,24);g_GT=sdpvar(kmp,24);P_D=sdpvar(kmp,24);​
C_GT>=0,​Pmax>=P_DA>=0,
Pmax>=S_DA>=0,Pmax>=P_RT>=0,​Pmax>=S_RT>=0,
g_GT>=0,P_Dmax>=P_D>=0,​
u_GT(t)-u_GT(t-1)<= u_GTon(t),u_GT(t-1)-u_GT(t)<= u_GToff(t),      ​
​2*u_GToff(t)<=2-u_GT(t)-u_GT(t+1);    
2*u_GTon(t)<= u_GT(t)+u_GT(t+1);​
C_GT(s,t)==a*u_GT(t)+k*g_GT(s,t)+SUC*u_GTon(t)+SUD*u_GToff(t),​
g_GT(s,t) <= u_GT(t)*g_GT_max;     ​
​g_GT(s,t)-g_GT(s,t-1)<=RU;  
​g_GT(s,t)-g_GT(s,t-1)>=-RD; 
S_DA(t)+S_RT(s,t) == P_DA(t)+P_RT(s,t)+P_RES(s,t)+g_GT(s,t);    ​
​P_MP<=sum(x_RT.*(S_RT(s,:)-1.1*P_RT(s,:)))-sum(C_GT(s,:));
Obj_MP=Obj_MP+x_DA(t)*(S_DA(t)-1.1*P_DA(t))-SUC*u_GTon(t)-SUD*u_GToff(t);

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

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

这篇关于随机自适应鲁棒方法!基于恶劣场景辨别法的微网随机自适应鲁棒模型程序代码!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/920878

相关文章

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化