文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《计及源荷不确定性的综合能源系统日前-日内协调优化调度》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》

这个标题指的是一个综合能源系统(包括多种能源资源和负荷需求),在考虑到源(能源供给)和荷(能源需求)的不确定性的情况下,进行日前和日内的协调优化调度。

让我们拆分这个标题:

  1. 综合能源系统: 指的是一个整体的能源系统,可能包括电力、热能、风能、太阳能等多种能源资源和相应的能源设备。

  2. 日前-日内协调: 指的是在两个时间尺度上进行协调。日前通常指的是对未来一天的规划,而日内则是在当天内的短时间范围内进行实时调度。

  3. 优化调度: 指的是通过数学优化模型和算法,使得能源系统在给定的约束条件下,达到最优的运行状态。这可能包括最小化成本、最大化可再生能源利用、确保能源供应的稳定性等目标。

  4. 计及源荷不确定性: 强调了在优化调度过程中考虑到了能源供给和需求的不确定性。这可能包括天气预测不确定性(影响可再生能源产生)、负荷需求波动性等因素。

因此,这个标题表明研究的重点在于如何在综合能源系统中,有效地处理源和荷的不确定性,并通过协调的方式,在日前和日内两个时间尺度上实现最优化的能源调度。这对于提高能源系统的鲁棒性、可靠性,以及更有效地利用可再生能源等方面都具有重要意义。

摘要:在能源耦合不断加深、高比例新能源渗透的背景下,为充分调动综合能源系统用能灵活性,并克服新能源和负荷预测不确定性对调度计划产生的影响,提出计及不确定性的综合能源系统日前–日内多目标优化调度方法。首先,针对工业园区型综合能源系统,建立其供能结构和设备模型;其次,分别基于多场景技术和模糊数学理论对负荷需求和光伏出力的日前–日内不确定性进行建模;最后,在不确定性环境中,以园区运行成本、碳排放成本最低和综合能效最高为目标进行日前调度,并基于日前计划在日内进行灵活调整。算例结果表明,所提方法平衡了日前–日内调度计划的风险和回报,能够提升系统运行的经济性、环保性和综合能效。

这段摘要涉及到综合能源系统的日前-日内多目标优化调度方法,旨在应对能源耦合加深和高比例新能源渗透带来的挑战。以下是对摘要的解读:

  1. 背景: 能源耦合指的是不同形式的能源(如电力、热能等)之间相互耦合和交互的情况。在这个背景下,新能源比例增加,对综合能源系统的管理提出了更高的要求。

  2. 目的: 提出这种方法的目的在于充分发挥综合能源系统的用能灵活性,同时克服新能源和负荷预测不确定性对调度计划的影响。

  3. 方法步骤:

    • 系统建模: 针对工业园区型综合能源系统,首先建立了供能结构和设备模型,这有助于更好地理解系统的组成和运行特点。
    • 不确定性建模: 使用多场景技术和模糊数学理论对负荷需求和光伏出力的日前-日内不确定性进行建模。这是为了更准确地反映能源需求和可再生能源产出的潜在波动性。
    • 多目标优化: 在不确定性环境中,以园区运行成本、碳排放成本最低和综合能效最高为目标进行日前调度。这表明系统考虑了经济性、环保性和综合能效等多个方面的优化。
    • 日内灵活调整: 在日前计划的基础上,系统在日内进行灵活调整,以适应实际情况的变化。
  4. 结果: 算例结果表明,提出的方法能够平衡日前-日内调度计划的风险和回报,同时提升系统运行的经济性、环保性和综合能效。这说明该方法在实际应用中具有潜在的有效性和可行性。

总体而言,这个方法旨在在充分利用综合能源系统的能源灵活性的同时,有效地应对新能源和负荷预测不确定性,以实现多目标优化的调度计划。

关键词: 综合能源系统;不确定性;多时间尺度;多场景技术;模糊优化;综合能效;

  1. 综合能源系统: 指的是将多种能源形式(例如电力、热能等)进行整合和协同管理的系统。这可能涉及到不同类型的能源设备、能源存储系统和能源网络,以实现更高效的能源利用。

  2. 不确定性: 指的是在能源系统运行中存在的无法完全预测或确定的因素。这可能包括天气变化、能源需求波动、设备故障等。在这种情况下,系统需要灵活应对不确定性,以确保可靠的能源供应和高效的运行。

  3. 多时间尺度: 表示考虑了不同的时间范围,可能涉及到从短时间内的小时级别到长时间内的日、周、月等不同尺度的时间。这反映了对综合能源系统调度的全面性和长远性考虑。

  4. 多场景技术: 指的是使用多种可能的情景或场景来描述不同的运行条件。这可以帮助系统更全面地考虑不同的不确定性来源,提高对系统行为的理解。

  5. 模糊优化: 使用模糊数学理论进行优化。模糊优化考虑到问题中的不确定性和模糊性,使得系统更能适应实际运行中的复杂和模糊情况,提高了决策的灵活性。

  6. 综合能效: 衡量综合能源系统在满足能源需求的同时,对能源的利用效率、经济性和环境影响等方面的综合考虑。提高综合能效意味着在维持能源供应的同时,更有效地利用资源并降低环境影响。

综合而言,这些关键词揭示了一种面向未来的、考虑多方面因素的综合能源系统优化方法。这包括对不确定性的充分考虑、在多个时间尺度上的灵活调度、利用多场景技术进行全面建模、应用模糊优化以适应不确定性,以及追求在多个方面综合考虑的系统综合能效。这种方法旨在提高综合能源系统的稳定性、可靠性和可持续性。

仿真算例:

以广东某电压等级为 10 kV 的 IES 工业园区为 例分析本文所提优化调度方法的效果,园区的供能 结构如图 1 所示,园区内各类能源设备参数及数量 如附录表 B1 所示。受最大充放能功率的限制,园 区储能设备完成一次充放能耗时较长,且考虑到不 规则充放能会损伤储能设备寿命,因此设定储能设 备每天进行一次充放能循环。广州于 2021 年 12 月 起执行的分时电价如附录表 B2 所示,天然气价格 为 3.80 元/m3,根据天然气热值(9.7 kWh/m3 )可折算 为 0.392 元/(kWh)。碳排放强度参数如附录表 B3 所示,碳排放价格为 252 元/t。本文假设燃气机组 的碳排放配额参照《2019—2020 年全国碳排放权交 易配额总量设定与分配实施方案(发电行业)》给定。 在处理器型号 Intel Core i7-8700 3.20GHz、内 存 16GB 的计算机上计算,程序语言为 MATLAB R2018b,使用 CPLEX 12.8 优化器。

仿真程序复现思路:

经过处理的日前优化模型不再含有分式项,因 此建立的日前–日内优化模型可以通过线性求解器 进行求解。由于将综合能效优化问题进行线性化后 会影响成本目标的表达形式,给编程求解造成困 难,且常用的线性加权法虽然可以按照目标重要程 度和量纲上的差异赋予相应权重系数,但多数情况 下权重的合理取值较为困难,因此本文在日前多目 标优化中采用主目标函数法求解 Pareto 最优解。为 方便编程,选取综合能效最高为目标,将成本转化 为约束条件进行优化,通过变步长地改变成本上限 约束,遍历求解获得 Pareto 最优前沿。

根据描述的情景和要求,在仿真分析中,主要任务是优化调度方法的效果,考虑到供能结构、能源设备参数、电价、天然气价格、碳排放等多个因素。以下是可能的仿真复现思路,并以伪代码形式展示:

仿真思路:

数据准备:
  1. 收集广东某电压等级为 10 kV 的 IES 工业园区的供能结构数据,包括各类能源设备的参数和数量。
  2. 获取分时电价、天然气价格、碳排放强度参数等相关数据。
  3. 理解和整理碳排放配额相关信息。
模型建立与优化器准备:
  1. 使用 MATLAB 编程语言。
  2. 安装 CPLEX 12.8 优化器。
仿真步骤:
  1. 定义能源系统模型和优化目标。
  2. 以广东某 10 kV IES 工业园区为例,在 MATLAB 中建立能源系统的数学模型,基于描述的各类能源设备参数和数量以及供能结构。
  3. 将优化问题转化为数学表达式,其中考虑电价、天然气价格、碳排放价格等因素。
  4. 根据描述中的复杂性,将综合能效最高作为主要目标,将成本作为约束条件。
  5. 使用 CPLEX 12.8 优化器求解多目标优化问题,采用主目标函数法求解 Pareto 最优解。
  6. 通过逐步改变成本上限约束,遍历求解获得 Pareto 最优前沿。

伪代码表示(MATLAB 部分):
% 数据准备
% 从附录 B1 获取工业园区各类能源设备参数和数量
% 获取附录 B2 中的分时电价、天然气价格等数据
% 理解和整理碳排放配额相关信息

% 示例数据
equipmentParameters = readEquipmentParameters('附录B1.csv');
electricityPrice = readElectricityPrice('附录B2.csv');
gasPrice = 3.80; % 元/m3
carbonIntensity = readCarbonIntensity('附录B3.csv');
carbonPrice = 252; % 元/t

% 定义变量和参数
% 定义能源设备参数和数量
% 定义电价、天然气价格、碳排放价格等参数

% 示例变量和参数
numEquipmentTypes = length(equipmentParameters);
numTimeSlots = length(electricityPrice);
demand = zeros(numEquipmentTypes, numTimeSlots); % 能源需求
% 其他变量的初始化

% 建立数学模型
% 定义能源系统模型
% 构建优化问题,考虑多目标优化

% 创建 CPLEX 优化问题对象
problem = createOptimizationProblem(equipmentParameters, electricityPrice, gasPrice, carbonIntensity, carbonPrice);

% 设置 CPLEX 优化器参数
options = cplexoptimset('cplex');
options.Display = 'on';
% 设定其他优化器参数

% 多目标优化求解
% 设定目标函数和约束条件
% 将成本作为约束条件,综合能效最高作为主要目标
% 通过变步长改变成本上限约束,求解 Pareto 最优解

% 优化过程
paretoFront = [];
costUpperLimit = initialCostUpperLimit;

while costUpperLimit <= maxCostUpperLimit
    % 设定成本上限约束
    problem = setCostConstraint(problem, costUpperLimit);
    
    % CPLEX 求解
    [x, fval, exitflag, output] = cplexmilp(problem, [], [], [], [], [], [], options);
    
    % 处理求解结果
    paretoFront = [paretoFront; fval];
    
    % 增加成本上限
    costUpperLimit = costUpperLimit + stepSize;
end

% 结果展示
% 输出 Pareto 最优前沿结果
disp('Pareto 最优前沿:');
disp(paretoFront);

% 辅助函数

function parameters = readEquipmentParameters(filename)
    % 从 CSV 文件读取设备参数
    % 实际实现需要根据文件格式进行解析
    % 返回一个结构体或矩阵包含设备参数
    parameters = [];
end

function price = readElectricityPrice(filename)
    % 从 CSV 文件读取分时电价
    % 实际实现需要根据文件格式进行解析
    % 返回一个向量或矩阵包含电价
    price = [];
end

function intensity = readCarbonIntensity(filename)
    % 从 CSV 文件读取碳排放强度
    % 实际实现需要根据文件格式进行解析
    % 返回一个向量或矩阵包含碳排放强度
    intensity = [];
end

function problem = createOptimizationProblem(parameters, electricityPrice, gasPrice, carbonIntensity, carbonPrice)
    % 创建优化问题对象
    % 包括定义变量、目标函数和约束条件
    % 返回 CPLEX 优化问题对象
    problem = [];
    % 具体实现需要根据模型进行构建
end

function problem = setCostConstraint(problem, costUpperLimit)
    % 设置成本上限约束
    % 输入:优化问题对象,成本上限
    % 输出:更新后的优化问题对象
    problem = [];
    % 具体实现需要根据模型进行设置
end

请注意,上述代码中的很多函数和细节都是占位符,实际实现需要根据具体的问题和数据进行调整。在实际编写时,可以根据具体的优化模型和算法来组织代码。希望这个更详细的伪代码能够帮助您更好地理解仿真程序的编写过程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营Day16 | 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

LeetCode 654 最大二叉树 本题思路&#xff1a;我们可以看到每次其实这个找最大值&#xff0c;然后创建节点的过程就是一个二叉树的前序遍历的过程。所以&#xff0c;我们可以递归来完成它。 先创找到数组中&#xff0c;最大的值的下标&#xff0c;然后创建根节点然后根据下标…

【零基础入门TypeScript】TypeScript - 基本语法

目录 你的第一个 TypeScript 代码 编译并执行 TypeScript 程序 编译器标志 TypeScript 中的标识符 TypeScript ─ 关键字 空格和换行符 TypeScript 区分大小写 分号是可选的 TypeScript 中的注释 TypeScript 和面向对象 语法定义了一组编写程序的规则。每种语言规范都…

Linux系统:引导过程与服务控制

目录 一、linux系统引导过程 1、引导过程介绍 1.1 引导过程总览图 1.2 引导过程详解 1.3 系统初始化进程 1.4 Ststemd单元类型 1.5 运行级别所对应的Systemd目标 二、排除启动类故障 1、修复MBR扇区故障 1.1 故障原因 1.2 故障现象 1.3 解决思路 1.4 详细操作步骤…

密码学:带密钥的消息摘要算法一数字签名算法

文章目录 前言手写签名和数字签名前置知识点&#xff1a;消息摘要算法数字签名算法数字签名算法的由来数字签名算法在实际运用的过程附加&#xff1a;签名和摘要值的解释 数字签名算法的家谱数字签名算法的消息传递模型经典数字签名算法-RSA实现 数字签名标准算法-DSA实现 圆曲…

IPC之十二:使用libdbus在D-Bus上异步发送/接收信号的实例

IPC 是 Linux 编程中一个重要的概念&#xff0c;IPC 有多种方式&#xff0c;本 IPC 系列文章的前十篇介绍了几乎所有的常用的 IPC 方法&#xff0c;每种方法都给出了具体实例&#xff0c;前面的文章里介绍了 D-Bus 的基本概念以及调用远程方法的实例&#xff0c;本文介绍 D-Bus…

【VTK-Rendering::Core】第二期 vtkTextActor

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 前言 本文以vtkTextActor为起点&#xff0c;分享VTK中Text相关的内容&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&a…

提升三维模型数据的几何坐标纠正速度效率具体技术方法

提升三维模型数据的几何坐标纠正速度效率具体技术方法 根据搜索结果&#xff0c;以下是提升倾斜摄影三维模型数据的几何坐标纠正和三维重建速度的具体技术方法&#xff1a; 1、增加控制点&#xff1a;通过增加控制点数量可以提高几何坐标精度。控制点是已知地面坐标的点&#…

儿童可以戴骨传导耳机吗?骨传导耳机对儿童有危害吗?

儿童是可以佩戴骨传导耳机的&#xff0c;相比于传统的入耳式蓝牙耳机&#xff0c;佩戴骨传导耳机要更健康一些。 首先骨传导耳机通过人体骨骼来传递声音&#xff0c;不经过耳道和耳膜&#xff0c;所以对听力的损伤较小&#xff0c;而且由于儿童还处于发育期&#xff0c;耳道和耳…

【并发设计模式】聊聊等待唤醒机制的规范实现

在多线程编程中&#xff0c;其实就是分工、协作、互斥。在很多场景中&#xff0c;比如A执行的过程中需要同步等待另外一个线程处理的结果&#xff0c;这种方式下&#xff0c;就是一种等待唤醒的机制。本篇我们来讲述等待唤醒机制的三种实现&#xff0c;以及对应的应用场景。 G…

{“sn“:““,“error“:3,“desc“:“VAD is not available“,“sub_error“:3100}解决办法

目录 问题描述: 解决顺序: 问题描述: 这个问题是在使用百度语音识别时出现的问题,当一切都配置好之后,启动程序,点击录音,发现程序并没有执行onEvent方法,直接闪退了,当断点调试时发现程序并没有进入onEvent方法,抛出异常{"sn":"","erro…

从0搭建github.io网页

点击跳转到&#x1f517;我的博客文章目录 从0搭建github.io网页 文章目录 从0搭建github.io网页1.成果展示1.1 网址和源码1.2 页面展示 2.new对象2.1 创建仓库 3.github.io仓库的初始化3.1 千里之行&#xff0c;始于足下3.2 _config.yml3.3 一点杂活 4.PerCheung.github.io.p…

2024/1/2 C++ work

全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp,int attck&#xff1b;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数 void Atk(){blood-0;}&#xff0c;法师类继承自英雄类&#xff0c;私有属性 …

k8s中实现pod自动扩缩容

一、k8s应用自动扩缩容概述 1&#xff09;背景&#xff1a; 在实际的业务场景中&#xff0c;我们经常会遇到某个服务需要扩容的场景&#xff08;例如&#xff1a;测试对服务压测、电商平台秒杀、大促活动、或由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作&…

gzip的了解

基本操作原理&#xff1a;通过消除文件中的冗余信息&#xff0c;使用哈夫曼编码等算法&#xff0c;将文件体积压缩到最小。这种数据压缩方式在网络传输中发扮了巨大作用&#xff0c;减小了传输数据的大小&#xff0c;从而提高了网页加载速度。 vue Vue CLI修改vue.config.js&a…

MySQL 临时表

MySQL 临时表 MySQL 临时表在我们需要保存一些临时数据时是非常有用的。 临时表只在当前连接可见&#xff0c;当关闭连接时&#xff0c;MySQL 会自动删除表并释放所有空间。 在 MySQL 中&#xff0c;临时表是一种在当前会话中存在的表&#xff0c;它在会话结束时会自动被销毁…

vue3按钮点击频率控制

现有一个按钮&#xff0c;如下图 点击时 再次点击 刷新窗口再次点击 刷新窗口依然可以实现点击频率控制。 代码实现&#xff1a; <template><!--<el-config-provider :locale"locale"><router-view/></el-config-provider>--><el…

Java学习苦旅(十六)——List

本篇博客将详细讲解Java中的List。 文章目录 预备知识——初识泛型泛型的引入泛型小结 预备知识——包装类基本数据类型和包装类直接对应关系装包与拆包 ArrayList简介ArrayList使用ArrayList的构造ArrayList常见操作ArrayList遍历 结尾 预备知识——初识泛型 泛型的引入 我…

机器人制作开源方案 | 多地形适应野外探索智能车

1. 作品基本介绍 如今&#xff0c;智能机器人在军事、制造业、交通运输、航天航空、医疗、服务等领域已有广泛的应用&#xff0c;智能车是机器人研究领域的一项重要基础内容&#xff0c;在各种移动机构中&#xff0c;最为常见的是轮式移动方式&#xff0c;当今社会正处于科技高…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-9PID控制器

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-9PID控制器&#xff09; P —— Proportional I —— Integral D —— Derivative 当前误差/过去误差/误差的变化趋势 K p ⋅ e K_{\mathrm{p}}\cdot e Kp​⋅e&#xff1a;比…

C++基本语言:1.5结构、pbulic、private权限修饰符、类简介

C基本语言包含10章节内容&#xff0c;存于C从入门到精通专栏 目录 一、结构回顾 ①结构变量作为参数 ②采用引用 ③用指向结构体的指针做函数参数 问&#xff1a;C/C的结构有何区别&#xff1f; 二、public和private权限修饰符 三、类简介&#xff1a;类也是一种用户自…