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

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(使用前将#替换为@)

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

  • 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的“max”和“nanmax”?

    Matlab描述nanmin and nanmax像这样 NANMIN最小值 忽略NaNs NANMAX最大值 忽略NaNs 但实际上 min and max ignore NaNs too 那我应该使用哪个 根据我的测试 nanmin a
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 为什么 MATLAB 本机函数 cov(协方差矩阵计算)使用与我预期不同的除数?

    给定一个 M 维和 N 个样本的数据矩阵数据 例如 data randn N M 我可以计算协方差矩阵 data mu data ones N 1 mean data cov matrix data mu data mu N 如果我使用原生
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • 如何每次使用按钮将数据添加到 MATLAB 中的现有 XLSX 文件?

    我有一个函数可以生成一些变量 例如分数 对 错 未回答 使用按钮调用此功能 问题是如何每次将函数生成的这些值添加 附加到 XLSX 文件中 或者 如何创建 MAT 文件以便可以添加它 可能的解决方案是什么 附加到 xls 文件所涉及的挑战是
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • Matlab颜色检测

    我试图一致地检测同一场景的图像之间的某种颜色 这个想法是根据颜色配置文件识别一组对象 因此 例如 如果给我一个带有绿色球的场景 并且我选择绿色作为我的调色板的一部分 我想要一个具有反映它检测到球的矩阵的函数 任何人都可以为这个项目推荐一些
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z

随机推荐

  • 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主要内容 程序主要做的是一个虚拟电厂或者微网单元的日前优化调度模型 考虑了光伏出力和负荷功率的双重不确定性 采用随机规划法处理不确定性变量 构建了虚拟电厂随机优