002文章解读与程序——中国电机工程学报EI\CSCD\北大核心《计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机优化》已提供下载资源

news2024/11/22 22:51:21

👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆下载资源链接👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆

摘要:为应对源端可再生能源及荷端负荷需求的随机性波动对综合能源生产单元(integratedenergyproductionunit,IEPU)运行调度及容量配置问题带来的挑战,该文提出一种两阶段随机优化方法。首先,在底层运行优化问题中,通过建立各设备模型及约束条件,提出基于混合整数线性规划(mixed integer linear programming,MILP)的最小成本求解方法;其次,利用蒙特卡洛模拟生成多种随机场景,确定系统在给定容量配置条件下的成本期望;最后,在顶层容量配置优化问题中,以系统容量为决策变量,采用遗传算法调用蒙特卡洛模拟及MILP运行优化算法,实现使IEPU系统全生命周期成本最小的最优容量配置。优化结果表明:底层运行优化中储气的接入使弃光量和碳排放量分别减少5.49%和0.35%,顶层计及源荷不确定性的电力设备容量提升20%左右,更加接近实际场景,验证了所提出方法的有效性。结合参数灵敏度分析,可为IEPU系统的规模化设计提供参考。

这段摘要描述了一种应对可再生能源波动和负荷需求不确定性对综合能源生产单元(IEPU)运行和容量配置带来挑战的方法。以下是对摘要中关键内容的详细解读:

  1. 问题背景和动机:

    • 可再生能源波动性: 描述了源端可再生能源的波动性,这可能是由太阳能和风能等可再生能源的不稳定性引起的。
    • 负荷需求不确定性: 强调了负荷需求的随机性波动,这可能是由用户需求变化等因素引起的。
  2. 提出的方法:

    • 两阶段随机优化方法: 方法包括两个主要阶段,旨在解决底层运行优化问题和顶层容量配置优化问题。
    • 底层运行优化问题: 使用混合整数线性规划(MILP)方法,通过建立各设备模型和约束条件,以最小成本为目标解决问题。
    • 蒙特卡洛模拟: 在第二阶段,通过蒙特卡洛模拟生成多种随机场景,确定系统在给定容量配置条件下的成本期望。
  3. 顶层容量配置优化问题:

    • 遗传算法: 使用遗传算法作为顶层容量配置的优化工具,决策变量为系统容量。
    • 调用蒙特卡洛模拟和MILP: 通过调用蒙特卡洛模拟和MILP运行优化算法,以实现全生命周期成本最小的最优容量配置。
  4. 优化结果:

    • 底层运行优化结果: 储气的接入减少了弃光量和碳排放量,表明底层优化对系统性能有积极影响。
    • 顶层容量配置优化结果: 电力设备容量提升,更接近实际场景,证明了方法的有效性。
  5. 结论和展望:

    • 有效性验证: 通过对优化结果的验证,说明了提出方法的有效性。
    • 参数灵敏度分析: 结合参数灵敏度分析,为IEPU系统的规模化设计提供参考。

综合而言,这项研究旨在通过两阶段的随机优化方法解决IEPU系统的运行和容量配置问题,以适应可再生能源和负荷需求的不确定性。通过底层运行优化和顶层容量配置优化,研究者提出的方法在考虑系统全生命周期成本的前提下,取得了一系列积极的优化结果。

论文模型展示:=

论文部分程序代码展示:

%%  初始化设备参数及运行变量
addpath('..\光照强度与电负荷生成');
load('IPV1');  load('IPV2'); load('IPV3'); load('IPV4'); load('IPV5'); load('IPV6');   
load('Eload1');  load('Eload2'); load('Eload3'); load('Eload4'); load('Eload5'); load('Eload6');
It = [IPV1,IPV2,IPV3,IPV4,IPV5,IPV6];
Edemand = [Eload1,Eload2,Eload3,Eload4,Eload5,Eload6]; %电负荷
load('Nday'); %各典型日频次   
nday = [Nday(1)*ones(1,24),Nday(2)*ones(1,24),Nday(3)*ones(1,24),Nday(4)*ones(1,24),Nday(5)*ones(1,24),Nday(6)*ones(1,24)];
%% 以下,注意是把六个典型日的约束一起写,维度是24*6
T = 24*6;   
T = 24*6; 
%% 1.1.1光伏设备模型 
E_PVmppt = sdpvar(1,T);  %光伏板mppt发电功率
A_PV = sdpvar(1,1);  %光伏板面积/m2
k = 0.200;  %1平方米的光伏板1000w/m2的标准电功率为200w
E_PVr = sdpvar(1,1);  %光伏板额定发电功率
ita_PV = 0.200/1000;
%文章内写了两个E_PV,有错位,本代码将其改为E_PVmppt与E_PV
E_PV = sdpvar(1,T);  %光伏板有效发电功率
E_PV_cur = sdpvar(1,T);  %弃光功率
%后文算例中出现135MW的光伏容量配置结果,那么这里的限值就算用300MW吧,即300 000kW.
E_PVr_max = 300000;  %光伏板额定发电功率.kW
%之后,这里直接将约束也写上,省的再回头来写约束了。
C=[];
C=[C, E_PVr ==  A_PV*k,
      E_PVmppt == E_PVr*ita_PV/k*It,
      E_PVmppt == E_PV + E_PV_cur,
      0<=E_PVr,E_PVr<=E_PVr_max,
      %补充
      E_PV >= 0,
      E_PV_cur >= 0,
      A_PV >= 0, 
];
%% 1.1.2 CCS 模型   
V_CO2_PGU = sdpvar(1,T);  %火电机组的二氧化碳排放量
E_PGU = sdpvar(1,T);  %火电机组发电功率
e_PGU = 0.46;   %火电机组的二氧化碳排放强度,见表1的 0.46 N.m3CO2/kW.h
ita_CCS_max = 0.65;%碳捕集效率最大值  0.65 
V_CO2_CCSmax = sdpvar(1,T); %碳捕集最大功率(体积)
V_CO2_CCS = sdpvar(1,T); %实际碳捕集功率(体积)
V_CO2_cur = sdpvar(1,T); %碳捕集功率耗散部分功率(体积)
lamdaCO2 = 0.1937;   %碳捕集功率耗电系数 kW.h/N.m3CO2
E_CCS = sdpvar(1,T); %碳捕集耗电功率
%从图5可以找出火电机组的最大出力功率180MW,最大爬坡常出现在119时刻与162时刻的正负50MW
%火电机组的最小出力功率90MW,
%表1中给出的火电机组容量为300000kW
E_PGUmax = 300000;  %kW
E_PGUmin = 90000;   %kW
dita_E_PGUmax = 50000;%kW
dita_E_PGUmin = -50000;%kW
E_PGUmax = 300000;  %kW
E_PGUmin = 90000;   %kW
dita_E_PGUmax = 50000;%kW
dita_E_PGUmin = -50000;%kW
%从图7可知CO2捕集的最大功率是23000m3每小时
%由此计算碳捕集的最大电功率为 0.1937*23000 = 4.4551e+03 kW
E_CCSmax = 4.4551e+03; %kW
C=[C,V_CO2_PGU == e_PGU*E_PGU,
     V_CO2_CCSmax == ita_CCS_max*V_CO2_PGU,
     V_CO2_CCSmax == V_CO2_CCS + V_CO2_cur,
     E_CCS == lamdaCO2*V_CO2_CCS,
     E_PGUmin<=E_PGU,E_PGU<=E_PGUmax,
     dita_E_PGUmin<=E_PGU(2:T)-E_PGU(1:T-1),E_PGU(2:T)-E_PGU(1:T-1)<=dita_E_PGUmax,
     dita_E_PGUmin<=E_PGU(1:T-1)-E_PGU(2:T),E_PGU(1:T-1)-E_PGU(2:T)<=dita_E_PGUmax,
     0<=E_CCS,E_CCS<=E_CCSmax,
     %补充
     V_CO2_CCS >= 0,
     V_CO2_cur >= 0,
     ];

展示效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nacos入门篇001-安装与启动

1、下载zip包 我这里下载的是版本2.2.0 Nacos 快速开始 2、修改配置文件 2.1集群模式修改成单例模式 vi startup.sh 2.2 修改数据库配置信息 3、初始化数据库 3.1 创建db名称&#xff1a;db_nacos 3.2 执行mysql-schema.sql 3.3 执行完截图&#xff1a; 4、运行脚本启动 …

leetcode贪心算法题总结(二)

本节目录 1.最长回文串2.增减字符串匹配3.分发饼干4.最优除法5.跳跃游戏II6.跳跃游戏7.加油站8.单调递增的数字9.坏了的计算器 1.最长回文串 最长回文串 class Solution { public:int longestPalindrome(string s) {//计数一&#xff1a;用数组模拟哈希表int hash[127] {0}…

SimpleCG小游戏开发系列(2)--贪吃蛇

一、前言 在之前的C语言小游戏开发系列我们已经介绍了扫雷游戏的开发&#xff0c;本篇我们继续此系列第二篇&#xff0c;同样是比较简单但好玩的一个游戏--贪吃蛇。因为有了之前的游戏框架&#xff0c;我们只需要直接搬来原来的框架即可&#xff0c;可以省去不少活。 先看看游…

命令行创建Vue项目

Vue项目创建 1. 打开UI界面 在命令行中&#xff0c;执行如下指令&#xff1a; vue ui 2. 打开项目管理器 3. 创建项目 创建项目的过程&#xff0c;需要联网进行&#xff0c;这可能会耗时比较长的时间&#xff0c;请耐心等待。 windows的命令行&#xff0c;容易卡顿&#xff0c…

使用Node Exporter采集主机数据

安装 Node Exporter 在 Prometheus 的架构设计中&#xff0c;Prometheus Server 并不直接服务监控特定的目标&#xff0c;其主要任务负责数据的收集&#xff0c;存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西&#xff0c;如主机的 CPU 使用率&#xff0c;我们…

3D 渲染如何帮助电商促进销售?

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 3D 渲染图像因其高转化率而成为亚马逊卖家的最新趋势。它是电子商务平…

Linux 线程安全 (1)

文章目录 线程互斥概念互斥实际使用互斥锁的原理死锁问题说明 线程互斥概念 执行流 执行流是指操作系统对进程或线程的调度和执行顺序。它决定了程序中的指令按照何种顺序被执行。 现阶段可以粗浅的理解为&#xff0c;执行流决定执行哪个线程或进程的代码(或者说执行流决定了…

MyBatis标签及其应用示例

MyBatis标签及其应用示例 1. select 1.1 标签属性 id唯一的标识符parameterType传给此语句的参数的全路径名或别名如&#xff1a;com.xxx.xxx.demo.entity.User或userresultType语句返回值类型或别名。如果是集合List&#xff0c;此处填写集合的泛型T&#xff0c;而不是集合…

人机交互中信息数量与质量

在人机交互中&#xff0c;信息的数量和质量都是非常重要的因素。 信息的数量指的是交互过程中传递的信息的多少。信息的数量直接影响到交互的效率和效果&#xff0c;如果交互中传递的信息量太少&#xff0c;可能导致交互过程中的信息不足&#xff0c;用户无法得到想要的结果或者…

js实时监听input输入框值的变化

实习日记之通过调用common chemistry的api接口实现输入keyword查找cas号和mw。做了一个简单的html网页&#xff0c;用到了ajax技术。比较简单&#xff0c;适合刚入门的宝学习参考。代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head>&l…

面试算法78:合并排序链表

题目 输入k个排序的链表&#xff0c;请将它们合并成一个排序的链表。 分析&#xff1a;利用最小堆选取值最小的节点 用k个指针分别指向这k个链表的头节点&#xff0c;每次从这k个节点中选取值最小的节点。然后将指向值最小的节点的指针向后移动一步&#xff0c;再比较k个指…

cleanmymac这个软件怎么样?值不值得下载

cleanmymac是我必装的mac端清理软件&#xff0c;界面简洁好看&#xff0c;完美适配mac系统&#xff0c;文件清理的速度、精度都比较优秀&#xff0c;还是比较不错的呢。cleanmymac作为一款第三方清洁应用程序&#xff0c;具有专业完整的清理功能&#xff0c;包括释放内存、一键…

Halcon阈值处理的几种分割方法threshold/auto_threshold/binary_threshold/dyn_threshold

Halcon阈值处理的几种分割方法 文章目录 Halcon阈值处理的几种分割方法1. 全局阈值2. 基于直方图的自动阈值分割方法3. 自动全局阈值分割方法4. 局部阈值分割方法5. var_threshold算子6 . char_threshold 算子7. dual_threshold算子 在场景中选择物体或特征是图像测量或识别的重…

FairyGUI-Cocos Creator官方Demo源码解读

博主在学习Cocos Creator的时候&#xff0c;发现了一款免费的UI编辑器FairyGUI。这款编辑器的能力十分强大&#xff0c;但是网上的学习资源比较少&#xff0c;坑比较多&#xff0c;主要学习方式就是阅读官方文档和练习官方Demo。这里博主进行官方Demo的解读。 从gitee上克隆项目…

《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(15)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识&#xff08;14&#xff09; 1.3 PCI总线的存储器读写总线事务 1.3.4 PCI读写主存储器 前文已提到&#xff0c;由于本节内容较长&#xff0c;因此将后一部分内容放在本文中。 为…

基于Python、Keras和OpenCV的实时人脸活体检测

你在互联网上找到的大多数人脸识别算法和研究论文都遭受照片攻击。这些方法在检测和识别来自网络摄像头的图像、视频和视频流中的人脸方面非常有效。然而&#xff0c;他们无法区分现实生活中的面孔和照片上的面孔。这种无法识别人脸的现象是由于这些算法在二维帧上工作。 现在…

【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(二)

数组 什么是数组&#xff1f; 字面理解就是 数字的组合 其实不太准确&#xff0c;准确的来说数组是一个 数据的集合 也就是我们把一些数据放在一个盒子里面&#xff0c;按照顺序排好 [1, 2, 3, hello, true, false]这个东西就是一个数组&#xff0c;存储着一些数据的集合 …

深度学习框架Keras与Pytorch对比

对于许多科学家、工程师和开发人员来说&#xff0c;TensorFlow是他们的第一个深度学习框架。TensorFlow 1.0于2017年2月发布&#xff0c;可以说&#xff0c;它对用户不太友好。 在过去的几年里&#xff0c;两个主要的深度学习库Keras和Pytorch获得了大量关注&#xff0c;主要是…

【Java EE初阶五】wait及notify关键字

1. wait和notify的概念 所谓的wait和notify其实就是等待、通知机制&#xff1b;该机制的作用域join类似&#xff1b;由于多个线程之间是随机调度的&#xff0c;引入wait和notify就是为了能够从应用层面上&#xff0c;干预到多个不同线程代码的执行顺序&#xff0c;此处的干预&a…

C# WPF上位机开发(Web API联调)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多时候&#xff0c;客户需要开发的不仅仅是一个上位机系统&#xff0c;它还有其他很多配套的系统或设备&#xff0c;比如物流小车、立库、数字孪…