计及源-荷双重不确定性的虚拟电厂/微网日前随机优化调度

2023-11-10

目录

1主要内容

1.1 场景生成及缩减

1.2 随机优化调度

2 程序链接


1主要内容

程序主要做的是一个虚拟电厂或者微网单元的日前优化调度模型,考虑了光伏出力和负荷功率的双重不确定性,采用随机规划法处理不确定性变量,构建了虚拟电厂随机优化调度模型。具体来看,首先是基于蒙特卡洛算法,对预测的光伏以及负荷曲线进行场景生成,然后基于快概率距离快速消除法进行削减,直至削减至5个场景,然后采用随机调度的方法,对多场景下的虚拟电厂调度策略进行优化调度。

程序中燃气轮机、储能部分模型以及随机优化算法也是和下述文档一致。

1.1 场景生成及缩减

clcclearclose all%% 光伏场景生成以及削减%生成负荷场景并削减%%负荷出力预测均值EWw=[0  0  0  0  0  0  3.8  3.9  4.5  5.2  6.5  7.3  7.4  7.2  7.4  6.5  5.5  4.8  0  0  0  0  0  0];% Ww=[0,0,0,0,0,1,2.5,4,5,5.5,5.8,5.7,5.5,5.3,5.1,5,3.8,2.5,1.2,0,0,0,0,0];W=0.3*Ww%取标准差为负荷出力预测值E的5%-20%,这里x=E*10%l=W*0.1;Ws=[];%生成一个负荷场景,E+x*randn(1,24),其中randn(1,24)为生成随机数的标准正态分布m=200; %生成m个场景for i=1:ms=W+l.*randn(1,24);Ws=[Ws;s];endfigure(1)[ss,gg]=meshgrid(1:200,1:24 );plot3(ss,gg,Ws,'-');gridxlabel('场景');ylabel('时刻');zlabel('负荷功率');title('负荷场景生成图');% legend('负荷曲线1','负荷曲线2 ','负荷曲线3 ','负荷曲线4 ')Ws_d=Ws; %定义削减后的场景%场景削减pi=1/m*ones(m,1); %蒙特卡罗生成的场景为等概率场景,建立每个场景的概率向量%计算负荷场景Ws中每对场景的几何距离xx=zeros(m,m); for i=1:m    for j=1:m            x(i,j)=sum(abs(Ws(i,:)-Ws(j,:)));    endend%计算每个场景与剩余场景的概率距离之和yy=zeros(m,1);for i=1:my(i)=1/m*sum(x(i,:));endk=length(y);%不断削减场景,直到剩余5个场景while(k>5)d=find(y==min(y)); %选定与剩余场景的概率距离之和最小的场景x_2=x+100*eye(k); %构造新的x,以便找出风电场景Ws中与场景d几何距离最小的场景rr=find(x_2(d,:)==min(x_2(d,:)));pi(r)=pi(r)+pi(d); %将d场景的概率加到r场景上%在负荷场景中删除d场景pi(d)=[]; Ws_d(d,:)=[];x(d,:)=[];x(:,d)=[];y(d)=[];k=length(y);endfigure(2)[ss,gg]=meshgrid(1:5,1:24 );plot3(ss,gg,Ws_d,'-');gridxlabel('场景');ylabel('时刻');zlabel('风机出力值');title('场景削减图');

得到场景生成和缩减结果:

1.2 随机优化调度

模型中最核心的是随机优化模型的构建和处理,采用非预期运行约束处理随机优化问题,其中传统机组随机优化模型如下:

非预期约束是如何处理随机优化问题的呢?国内一些文献也是采用该类方法,如下所示,非预期约束也就是为了限定在风电、光伏以及其他因素存在的情况下,有且只有一种状态是被用在日前调度模型里的。

摘自《交直流混合配电网多阶段随机优化调度模型_裴蕾》

%主要内容:考虑光伏、负荷的不确定性,实现虚拟电厂的随机优化%模型中,考虑了燃气轮机、储能,光伏,负荷四种单元,并考虑可以并网clcclearclose allppv=[0,0,0,0,0,0,1.34060681352041,1.13391651200680,1.40252116109929,1.74124103883023,1.49174914115029,2.53240793479920,2.04065972732231,2.35828237099756,1.55809477900388,1.64805990357317,1.87064383698464,1.29603798576622,0,0,0,0,0,0;0,0,0,0,0,0,1.18358196815285,1.20530370391118,1.35854372362592,1.32447876876720,1.70829563301966,2.51396807020581,1.87219733041650,1.51045430771326,2.14995685962274,2.36901954872155,1.49939386631594,1.24439925735197,0,0,0,0,0,0;0,0,0,0,0,0,1.01175119002517,1.31035724158009,1.08516736148552,1.94136887715302,1.93148023426153,2.08839059797124,2.16179304729596,1.66329638481645,2.26989483226563,2.44265872929522,1.36505525184415,1.44002086391399,0,0,0,0,0,0;0,0,0,0,0,0,1.04539328775374,1.03998113428866,1.18246929195709,1.69424435782838,1.64461569874716,2.06924213909286,2.43963602014925,1.68729987832366,1.87805529528869,1.51992087170733,2.01158827571321,1.29724518700574,0,0,0,0,0,0;0,0,0,0,0,0,1.32311860610225,1.28695117820334,1.34520597073109,1.46724609252811,1.74247560818882,1.72276716702525,2.57775664860191,1.79578137388444,2.66126270645276,2.15099361545381,1.66252664174142,1.63885764533067,0,0,0,0,0,0];pload=[[0.431807609584421,0.486148921643357,0.721272534818094,0.898346267079082,0.944425724763714,0.541378372225899,0.882373258746104,1.56831193839750,1.86281649971011,1.99584713547466,2.19733700575767,2.29773449997527,2.47099246563420,1.66872324677400,1.77591203172356,1.32477944622446,1.95414778150622,1.54974896023576,1.74359932022130,1.44846182755801,0.955252219886710,1.25160480095078,1.49222676285844,0.682744656361740;0.483635538027688,0.495506878187239,0.714763198577902,0.799435561018225,1.01952146263562,0.800604394686264,0.945961336073563,1.28885742430358,1.90848488028237,2.10268787259155,1.91839575715085,1.85220123265328,2.17764591245376,1.78073710542207,1.73239834633622,1.42351956423826,2.03383140201547,2.58777879153454,1.89810311996295,1.45544594829551,1.11733457030710,0.835193945440698,1.45888556170521,0.737906988149361;0.475566682884608,0.538938919866738,0.694384127185758,0.948064145000996,0.869283322295024,0.693421312226079,1.24531781162386,1.18155825364294,2.24893779918531,2.22929790054771,1.91247902153441,1.60109975699407,2.04025369591884,1.62927362526231,1.94798019608120,1.30811995960382,1.92258374438264,2.34731329057125,1.88682790373556,1.82091112812632,0.761274726486709,1.14465406229059,1.66887813069703,0.687295849991400;0.506197427493947,0.555237638826251,0.711932167351328,0.723600759144382,1.04613991322447,0.658159592550928,1.07636853878386,1.06165890483766,2.06902267439968,2.48488721178039,2.34092228143214,2.63450984929863,2.35352014698963,2.08958282274750,1.65408992214257,1.54410971082492,1.94697999777118,1.92406941886044,2.00023938323277,2.10124494602628,1.04036325929128,0.984006134878927,1.94126189741016,0.651136186886876;0.504831465058796,0.522880453611977,0.805416372257449,0.776866377863578,1.09776915278538,0.499517330314076,0.895214516450348,1.27340524098249,1.51733245769139,1.46096552221328,2.35562457523011,1.98343189442592,1.73365278725908,1.98502985411742,2.00458112949663,1.35148256752316,1.86202305372752,2.23007113968369,1.56324879332238,1.57649124469752,0.995615716738264,1.11287433329993,1.96306488103865,0.572126166745211]];%% 定义变量%%定义市场购电电价以及售电电价xb=[630,630,630,630,630,630,1020,1020,1020,1520,1520,1520,1520,1520,1020,1020,1020,1520,1520,1520,1020,1020,630,630];xs1=[100,100,100,100,100,100,380,380,380,800,800,800,800,800,380,380,380,800,800,800,380,380,100,100];xs=1.05*xs1;%% 定义燃气轮机参数a=600;%固定开机费用kcp=100;%分段线性化费用sconv=100;%启停费用gtmax=3.31;%出力上限gtmin=1.3;%最小出力值ramp=1.5;%爬坡率%% 定义储能参数gescmax=1;%充电功率上限gesdmax=1;%放电功率上限sessmax=4;%蓄电量上限sessmin=0;%蓄电量最小值uesc=0.95;%充电效率uesd=0.95;%放电效率kil=[500,700,800];%中断负荷补偿费用%% 其他输入参数pmgmax=20;%最大交易量%负荷值% pload=[1.5  1.8  2.3  2.8  3.2  2.1  3.3  4.2  5.9  6.8  7.5  7.2  7.1  6.5  5.9  4.8  5.6  6.8  6.8  6.2  3.3  3.6  5.4  2.4];% %光伏出力% ppv=[0  0  0  0  0  0  3.8  3.9  4.5  5.2  6.5  7.3  7.4  7.2  7.4  6.5  5.5  4.8  0  0  0  0  0  0];%% 定义变量sdpvar/binvarumob=binvar(1,24);%是否购电umos=binvar(1,24);%是否售电umospf=binvar(5,5,24)umobpf=binvar(5,5,24)pmgb=sdpvar(1,24);%市场购电量pmgs=sdpvar(1,24);%市场售电量pmgbpf=sdpvar(5,5,24);pmgspf=sdpvar(5,5,24);xconv=binvar(1,24);%燃气轮机工作状态变量yconv=binvar(1,24);%燃气轮机启停状态变量xconvpf=binvar(5,5,24);yconvpf=binvar(5,5,24);pmt=sdpvar(1,24);%燃气轮机出力pmtpf=sdpvar(5,5,24);gesc=sdpvar(1,24);%储能充电功率gesd=sdpvar(1,24);%储能放电功率sess=sdpvar(1,24);%蓄电池蓄电量gescpf=sdpvar(5,5,24);gesdpf=sdpvar(5,5,24);sesspf=sdpvar(5,5,24);%% 约束条件C=[];%初始化约束%% 燃气轮机出力约束for p=1:5    for f=1:5        for t=1:24          C=[C,          xconvpf(p,f,t)*gtmin<=pmtpf(p,f,t)<=xconvpf(p,f,t)*gtmax ,%出力上下限约束          ];        end    endend% for p=1:5    for f=1:5       C=[C,           pmtpf(p,f,1)<=ramp,%初始爬坡约束           xconvpf(p,f,1)<=yconvpf(p,f,1),%初始启停约束       ];     endend% for p=1:5    for f=1:5        for t=2:24        C=[C,        -ramp<=pmtpf(p,f,t)-pmtpf(p,f,t-1)<=ramp,%爬坡率约束        xconvpf(p,f,t)-xconvpf(p,f,t-1)<=yconvpf(p,f,t), %工作状态约束          ];          end    endend

程序结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计及源-荷双重不确定性的虚拟电厂/微网日前随机优化调度 的相关文章

  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • Matlab PARFOR 循环可以通过编程方式打开/关闭吗?

    有一个关于 MATLAB 中 parfor 的简单问题 我想在程序中设置一个标志 以便在 parfor 和常规 for 循环之间进行更改 基本上 我需要此功能 以便我的代码的某些部分可以在 调试 模式下更新图形 然后当关闭该标志时 使用 p
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 通过 Matlab 访问 Physionet 的 ptbdb 中的数据库

    我首先设置系统 old path which rdsamp if isempty old path rmpath old path 1 end 8 end wfdb url http physionet org physiotools ma
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • MATLAB 中的霍夫变换

    有谁知道如何使用霍夫变换来检测二值图像中最强的线 A zeros 7 7 A 6 10 18 24 36 38 41 1 使用 rho theta 格式 其中 theta 以 45 为步长 从 45 到 90 以及如何在 MATLAB 中显
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • 对数据进行分布拟合 - MATLAB

    我正在尝试对从显微镜图像中收集的一些数据进行分布 我们知道 152 左右的峰值是由于泊松过程造成的 我想将分布拟合到图像中心的大密度 同时忽略高强度数据 我知道如何将正态分布拟合到数据 红色曲线 但它不能很好地捕获右侧的重尾 尽管泊松分布应
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan

随机推荐

  • Python自定义函数的综合应用

    第1关 求最大值函数 编写程序 利用可变长度参数定义一个求任意个数数值的最大值的函数max n a b c 并进行测试 例如 当传入6 9时 输出两个数的最大值 当传入3 9 5 1 12 33 2 10时 输出多个数的最大值 输入任意若干
  • 【经典】环境切换——SpringBoot配置不同环境启用不同的配置文件

    不同环境下切换数据库配置文件 环境切换配置一般在数据库 存储等需要在开发环境和正式环境中进行切换时 避免出错而常用的方式 以下内容以yml文件来举例 我们需要创建两个application文件 application dev yml app
  • SpringCloud利用网关拦截做Token验证(JWT方式)

    关于JWT的内容 请看以下链接 主要看它的原理 以及缺点 https blog csdn net memmsc article details 78122931 步骤1 前端传userName password到后端 后端为springcl
  • Mysql系列(一) - Mysql的架构体系

    目录 前言 MySQL架构图 连接层 编辑 服务层 连接池 缓存 解析器 优化器 执行器 存储引擎层 MyISAM 与 InnoDB 引擎的区别 如何在两种存储引擎中进行选择 系统文件存储层 数据文件 日志文件 错误日志 binglog和慢
  • ARP学习笔记

    ARP学习笔记 简单情况下的ARP 以太网是最普遍的一种计算机局域网技术 以太网有两类 第一类是经典以太网 第二类是交换式以太网 现主要使用交换式以太网 在以太网 局域网 物理连接搭建后 两台终端第一次通信前 将首先进行ARP 地址解析协议
  • SQL 如何查询某一张表某一字段重复次数,以及重复的字段值

    小插曲 如果你们公司想使用spring cloud进行微服务改造 本人提供完整的解决方案 GITHUB 地址 https github com Mranxiaoranran spring cloud sofa QQ 2767855941 我
  • stream流对集合对象里的时间降序排列

    List
  • This XMLfile does not appear to have any style information associated with it. THe document tree is

    This XMLfile does not appear to have any style information associated with it THe document tree is shown below 1 百度翻译 此X
  • STM32在Keil中使用串口助手打印中文字符出现乱码问题

    问题 问题如下 中文字符显示乱码 但数字正常 原因 通常这种在串口助手打印出现乱码情况 无非是波特率设置错误 不对应 就像一个滴水的水龙头 水滴进一个循环开合的容器 双方速率不能很好匹配 一定会出现水滴不能完全滴进容器 或者完全滴进或者完全
  • HTML5夜晚海上轮船动画js特效代码

    下载地址 HTML5夜晚海上轮船动画特效代码 pixi js制作夜空下海面上迷失的轮船航行动画场景特效 dd
  • Netty网络编程(六):搭建websocket服务器

    一 简介 二 netty中的websocket 1 websocket的版本 2 FrameDecoder和FrameEncoder 3 WebSocketServerHandshaker 4 WebSocketFrame 三 netty中
  • gin框架08--Query 和 post form

    gin框架08 Query 和 post form 介绍 案例 说明 介绍 本文主要介绍 Query 和 post form 并配上相关案例加以理解 通过Query方法可以获取url 中 之后的请求参数 通过PostForm方法可以获取到P
  • 迭代和递归的时间复杂度分析

    文章目录 1 迭代 1 1 常数阶 1 2 线性阶 1 3 对数阶 1 4 平方阶 1 5 多个复杂度的顺序组合 1 6 多个复杂度的选择组合 2 递归 3 习题 4 答案 1 迭代 1 1 常数阶 下面算法的时间复杂度为 O 1 O 1
  • 和小伙伴们一起学Unity3D(四)角色移动之Transform

    经过前三章的介绍 我们终于搞定了游戏界面 从本章开始 我将带大家创造游戏世界 作为一个游戏爱好者 最熟悉的莫过于WASD键 它控制着人物行走 带我们认识游戏世界 那么在Unity3D中我们如何控制人物行走移动呢 本章目标 使用Transfo
  • RJ45网口座子上的LED接法详解

    搞硬件的朋友 经常免不了会用到RJ45网口座子 但是你会发现在许多参考设计中 RJ45上的LED接线方式经常各不相同 许多朋友可能并不是很在意这个 认为只要网络通了就行 此外在进行物料替换的时候 通常也只是关注4对差分信号的连接方式 并不怎
  • 2023华为OD机试真题【补种未成活胡杨】

    题目内容 近些年来 我国防沙治沙取得显著成果 某沙漠新种植N棵胡杨 编号1 N 排成一排 一个月后 有M棵胡杨未能成活 现可补种胡杨K棵 请问如何补种 只能补种 不能新种 可以得到最多的连续胡杨树 输入描述 N 总种植数量 M 未成活胡杨数
  • web自动化测试从安装到实战(全)

    1 什么是Web自动化测试 让程序代替人工自动验证web项目功能的过程 预期结果和实际结果的比较 2 为什么要在做Web自动化测试 在较少的时间内运行更多和测试用例 脚本可重复执行 减少人为的错误 克服手工测试的局限 3 在什么场景下适合做
  • XCode 编译ffmpeg

    环境 macOS10 13 3 Xcode9 4 1 FFmpeg4 0 2 准备 brew install sdl2 brew命令如果出错 要能是版本问题 可按以下命令卸载后 重新安装brew usr bin ruby e curl fs
  • git分支切换

    在git中 可利用checkout命令转换分支 该命令的作用就是切换分支或恢复工作树文件 语法为 git checkout 分支名 当参数设置为 b 时 可以在新分支创建的同时切换分支 语法为 git checkout b 分支名 本文操作
  • 计及源-荷双重不确定性的虚拟电厂/微网日前随机优化调度

    目录 1主要内容 1 1 场景生成及缩减 1 2 随机优化调度 2 程序链接 1主要内容 程序主要做的是一个虚拟电厂或者微网单元的日前优化调度模型 考虑了光伏出力和负荷功率的双重不确定性 采用随机规划法处理不确定性变量 构建了虚拟电厂随机优