EI论文复现:考虑冷热运行特性的综合能源系统多时间尺度优化调度程序代码!

news2024/12/24 1:40:43

适用平台/参考文献:Matlab+Yalmip+Cplex

参考文献:电力系统自动化《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》

提出考虑冷热特性的综合能源系统多时间尺度优化调度模型,日前计划中通过多场景描述可再生能源的不确定性,侧重于一个运行优化周期内系统的经济运行;日内调度基于日前计划方案,根据冷热电在不同时间尺度上的相关性和互补性,提出考虑冷热负荷变化的双层滚动优化平抑模型。程序中算例丰富、注释清晰、干货满满,创新性很高!下面对文章和程序做简要介绍!

程序创新点:

日前调度中,考虑新能源处理的不确定性,利用拉丁超立方抽样生成新能源典型出力场景;

日内调度中,建立考虑不同能源时间尺度差异的双层滚动优化调度模型,使冷热能在“时”时间尺度上进行调度,使电能在“分”时间尺度上进行调度,及时纠正预测误差引起的功率波动,实现对系统日前方案的修正,保证综合能源系统的稳定运行。

主要工作:

建立考虑冷热特性的多时间尺度优化调度模型,在日前计划模型,研究冷-热特性的运行方式对综合能源系统综合效益的影响,并考虑可再生能源不确定性,以运行费用最小为优化目标。在日内调度,考虑不同能源的调节时间尺度差异,建立双层滚动优化调度模型,基于滚动时长的差异,使冷热能在“时”时间尺度上进行调度,使电能在“分”时间尺度上进行调度,及时有效纠正预测误差引起的功率波动,实现对系统日前方案的修正,实现系统的稳定运行。

拉丁抽样方法:

拉丁超级方抽样(Latin Hypercube Sampling,简称LHS)是一种用于在多维空间中进行抽样的统计方法。它是在拉丁方抽样的基础上进行改进的一种技术,常用于数值模拟、实验设计和优化问题中。以下是拉丁超级方抽样的基本步骤:

确定抽样维度:首先,确定需要抽样的变量和其相应的分布。这些变量可以是模型中的输入参数,例如在数值模拟中的各种参数。

划分区间:将每个变量的分布范围划分为相等的子区间。这些区间的数量通常是相对较少的,而且是平均分布的。

生成拉丁超级方:创建一个拉丁方,确保在每个维度上都有且仅有一个样本。这可以通过在每个行和列上使用每个值一次的方式来实现。这个步骤确保了在每个维度上的均匀抽样。

填充超级方格:将每个区间的中心与相应的拉丁方中的一个样本关联起来。这样就得到了一个拉丁超级方抽样。

应用于模型:使用生成的抽样点作为模型的输入,执行模拟、实验或优化。这有助于在多维参数空间中更全面地探索。

拉丁超级方抽样的优势在于它能够提供相对均匀的抽样,而且相较于传统的随机抽样,它更有效地覆盖了参数空间。在有限的样本数量下,对模型或系统的全面性进行评估成为可能。

实时调度框架:

程序结果:

(1)上图是文中设备出力柱状图,下图是复现程序中设备出力柱状图。

(2)日内实时调度设备出力折线图

(3)日前调度主要热冷设备出力折线图

(4)风光典型场景出力

(5)日前调度设备出力

部分程序:

%电转热
Peh_max=;n_Peh=;%转换设备/转换率%热储能
H_storage_max=; h_n=;h_charge=;h_discharge=;%热储能容量/自损/充热/放热;%电储能
E_storage_max=; e_n=;e_charge=;e_discharge=;%电储能容量/自损/充电/放电;
%冷储能C_storage_max=;Ncool=;ncool=;kcool=%容量/自损量/充冷系数%PGrid
Pgrid_max=;%PCC交互容量;%%储冰空调+普通空调Qa_max=[];%空调模式Qa_min=];
Qc_max=[];%制冰模式Qc_min=[0;Qd_max=[120];%融冰模式Qd_min=[0];%设置变量
P=intvar(3,24,'full');
UP=binvar(3,24,'full'); %三台机组Pc=intvar(3,24,'full');%分配转冷部分Ph=intvar(3,24,'full');%分配转热部分
buy_Pgrid=intvar(1,24,'full');Ubuy_Pgrid=binvar(1,24,'full');%Pgrid购
Pcharge=intvar(1,24,'full');UPcharge=binvar(1,24,'full');%  充电  
Pdischarge=intvar(1,24,'full');UPdischarge=binvar(1,24,'full');%  放电  
H=intvar(1,24,'full');%锅炉Hh=intvar(1,24,'full');%转热Hc=intvar(1,24,'full');%转冷
Peh=intvar(1,24,'full');%电转热
Hti=intvar(1,24,'full');UHti=binvar(1,24,'full');%充热
Hto=intvar(1,24,'full');UHto=binvar(1,24,'full');%放热
Qa=intvar(1,24,'full');Uqa=binvar(1,24,'full');%
Qc=intvar(1,24,'full');Uqc=binvar(1,24,'full');%
Qd=intvar(1,24,'full');Uqd=binvar(1,24,'full');%
%设置目标函数buy_Price=[0.45 0.73 1.21];%谷/峰 购电价
for i=1:24
    H_h(1,i)=aH(1)*Ph(1,i)+bH(2)*UP(2,i)+Hh(1,i)*0.98;%转热功率
    H_c(1,i)=(aH(1)*Pc(1,i)+bH(2)*UP(2,i)+Hc(1,i))*0.95;%转冷功率
for i=1:24 %蓄冰模式下的耗电量
    Paa(1,i)=Qa(1,i)*0.45+3.6*Uqa(1,i);
    Pcc(1,i)=Qc(1,i)*0.44;
    Pdd(1,i)=8*Uqd(1,i); 
K1=;%热效益K2=;%冷效益aaa=0;
for i=1:24
    if i<=6%%谷
       objective=aaa+Pcharge(1,i)*0.00362+Pdischarge(1,i)*0.00182+Cgas*(aF(1)*P(1,i)+bF(1)*UP(1,i)+aF(2)*P(2,i)+bF(2)*UP(2,i))+aF(3)*P(3,i)+bF(3)*UP(3,i)...
           +Cgas*H(1,i)/H_n+buy_Price(1).*buy_Pgrid(1,i);
       aaa=objective;
       mPaa(1,i)=Paa(1,i)*buy_Price(1);
       mPcc(1,i)=Pcc(1,i)*buy_Price(1);
       mPdd(1,i)=Pdd(1,i)*buy_Price(1);
       mPgrid(1,i)=buy_Price(1).*buy_Pgrid(1,i);
    elseif i<=11&&i>=7%峰
       objective=aaa+Pcharge(1,i)*0.00362+Pdischarge(1,i)*0.00182+Cgas*(aF(1)*P(1,i)+bF(1)*UP(1,i)+aF(2)*P(2,i)+bF(2)*UP(2,i))+aF(3)*P(3,i)+bF(3)*UP(3,i)...
           +Cgas*H(1,i)/H_n+buy_Price(3).*buy_Pgrid(1,i);
       aaa=objective;
       mPaa(1,i)=Paa(1,i)*buy_Price(3);
       mPcc(1,i)=Pcc(1,i)*buy_Price(3);
       mPdd(1,i)=Pdd(1,i)*buy_Price(3);
       mPgrid(1,i)=buy_Price(3).*buy_Pgrid(1,i);
    elseif i>=12&&i<=17%平
       objective=aaa+Pcharge(1,i)*0.00362+Pdischarge(1,i)*0.00182+Cgas*(aF(1)*P(1,i)+bF(1)*UP(1,i)+aF(2)*P(2,i)+bF(2)*UP(2,i))+aF(3)*P(3,i)+bF(3)*UP(3,i)...
           +Cgas*H(1,i)/H_n+buy_Price(2).*buy_Pgrid(1,i);
       aaa=objective;
       mPaa(1,i)=Paa(1,i)*buy_Price(2);
       mPcc(1,i)=Pcc(1,i)*buy_Price(2);
       mPdd(1,i)=Pdd(1,i)*buy_Price(2);
       mPgrid(1,i)=buy_Price(2).*buy_Pgrid(1,i);
    elseif i>=18&&i<=22%峰
       objective=aaa+Pcharge(1,i)*0.00362+Pdischarge(1,i)*0.00182+Cgas*(aF(1)*P(1,i)+bF(1)*UP(1,i)+aF(2)*P(2,i)+bF(2)*UP(2,i))+aF(3)*P(3,i)+bF(3)*UP(3,i)...
           +Cgas*H(1,i)/H_n+buy_Price(3).*buy_Pgrid(1,i);
    aaa=objective;
    mPaa(1,i)=Paa(1,i)*buy_Price(3);
    mPcc(1,i)=Pcc(1,i)*buy_Price(3);
    mPdd(1,i)=Pdd(1,i)*buy_Price(3);
    mPgrid(1,i)=buy_Price(3).*buy_Pgrid(1,i);
    else i>=23&&i<=24;%谷
       objective=aaa+Pcharge(1,i)*0.00362+Pdischarge(1,i)*0.00182+Cgas*(aF(1)*P(1,i)+bF(1)*UP(1,i)+aF(2)*P(2,i)+bF(2)*UP(2,i))+aF(3)*P(3,i)+bF(3)*UP(3,i)...
           +Cgas*H(1,i)/H_n+buy_Price(1).*buy_Pgrid(1,i);
       aaa=objective;
  mPaa(1,i)=Paa(1,i)*buy_Price(1);mPcc(1,i)=Pcc(1,i)*buy_Price(1);mPdd(1,i)=Pdd(1,i)*buy_Price(1);
       mPgrid(1,i)=buy_Price(1).*buy_Pgrid(1,i);

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

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

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

相关文章

表白墙网站PHP源码,支持封装成APP

源码介绍 PHP表白墙网站源码&#xff0c;适用于校园内或校区间使用&#xff0c;同时支持封装成APP。告别使用QQ空间的表白墙。 简单安装&#xff0c;只需PHP版本5.6以上即可。 通过上传程序进行安装&#xff0c;并设置账号密码&#xff0c;登录后台后切换模板&#xff0c;适配…

牛客30道题解析精修版

1.异常处理 都是Throwable的子类&#xff1a; ① Exception&#xff08;异常&#xff09;:是程序本身可以处理的异常。 ② Error&#xff08;错误&#xff09;: 是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时&#xff0c;一般不需要…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法

文章目录 第3章 k邻近邻法3.1 k近邻算法3.2 k近邻模型3.2.1 模型3.2.2 距离度量3.2.3 k值的选择3.2.4 分类决策规则 3.3 k近邻法的实现&#xff1a;kd树3.3.1 构造kd树3.3.2 搜索kd树 算法实现课本例3.1iris数据集scikit-learn实例kd树:构造平衡kd树算法例3.2 《统计学习方法&a…

把Windows系统装进U盘,到哪都有属于你自己的电脑系统

前言 自从接触到WinPE启动盘之后&#xff0c;小白就突然萌生了一个想法&#xff1a;为啥不能把完整的Windows放进U盘呢&#xff1f; 实际上Windows是可以安装进U盘的&#xff0c;外出的时候带上&#xff0c;只需要有台正常开机的电脑就可以使用属于自己的系统。 这个是早已经…

一分钟教你搭建《幻兽帕鲁》服务器

幻兽帕鲁是一款由Pocketpair开发的开放世界生存游戏&#xff0c;融合了多种玩法的游戏&#xff0c;其独特的题材和画风吸引了很多玩家&#xff0c;越来越多的玩家开始尝试自己搭建服务器&#xff0c;享受更加自由的游戏体验。本文将为大家详细介绍如何从零开始搭建《幻兽帕鲁》…

「 网络安全常用术语解读 」杀链Kill Chain详解

1. 简介 早在2009年&#xff0c;Lockheed Martin公司就提出了杀链(Kill Chain)理论&#xff0c;现在也称之为攻击者杀链(Attacker Kill Chain)。杀链其实就是攻击者进行网络攻击时所采取的步骤。杀链模型包括7个步骤&#xff1a;1侦察 -> 2武器化 -> 3交付 -> 4利用 …

java程序判等问题

注意 equals 和 的区别 对基本类型&#xff0c;比如 int、long&#xff0c;进行判等&#xff0c;只能使用 &#xff0c;比较的是直接值。因为基本类型的值就是其数值。对引用类型&#xff0c;比如 Integer、Long 和 String&#xff0c;进行判等&#xff0c;需要使用 equals 进…

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

前言&#xff1a;本文进行布线铺铜实战及详解布线铺铜的细节 在本专栏中【立创EDA-PCB设计基础】前面完成了布线铺铜前的设计规则的设置&#xff0c;接下来进行布线 布局原则是模块化布局&#xff08;优先布局好确定位置的器件&#xff0c;例如排针、接口、主控芯片&#xff…

Sulfo Cy3 hydrazide,磺化-Cy3-酰肼,可用于与生物分子的羰基衍生物偶联

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Sulfo-Cyanine3-hydrazide&#xff0c;Sulfo Cy3 hydrazide&#xff0c;Sulfo Cyanine3 HZ&#xff0c;磺化 Cy3 酰肼&#xff0c;磺化-Cy3-酰肼 一、基本信息 产品简介&#xff1a;Sulfo-Cyanine3-hydrazide能够与…

远程连接银河麒麟

目录 一、防火墙服务 二、安装SSH服务 1.验证SSH服务是否安装 2.安装SSH服务 三、启动SSH服务 四、远程连接 1.切换登录用户 2.查看IP地址 3.FinalShell连接 4.切换root用户 前言: 本篇主要讲述在Win10系统中通过FinalShell远程连接银河麒麟桌面操作系统V10 一、防火…

android studio从空白开始

对我来说&#xff0c;真正的第一步是清理电脑C盘。从剩余8G清理到25G&#xff0c;把原来看不顺眼又不敢删的文件夹和软件全删了&#xff0c;删爽了的后果就是&#xff0c;用两天的时间在把一些环境配置慢慢装回来&#xff0c;node.js&#xff0c;jdk&#xff0c;npm。努力把它们…

零基础学习【Mybatis Plus】这一篇就够了

学习目录 1. 快速入门1-1. 常用注解总结 1-2. 常用配置 2. 核心功能3. 扩展功能4. 插件功能 1. 快速入门 1-1. 常用注解 MybatisPlus中比较常用的几个注解如下&#xff1a; TableName: 用来指定表名Tableld: 用来指定表中的主键字段信息TableField: 用来指定表中的普通字段信…

Excel·VBA时间范围筛选及批量删除整行

看到一个帖子《excel吧-筛选开始时间&#xff0c;结束时间范围内的所有记录》&#xff0c;根据条件表中的开始时间和结束时间构成的时间范围&#xff0c;对数据表中的开始时间和结束时间范围内的数据进行筛选 目录 批量删除整行&#xff0c;整体删除批量删除整行&#xff0c;分…

[每日一题] 01.24 - 求三角形

求三角形 n int(input()) count1 (1 n) * n // 2 count2 n * n lis1 [str(i).zfill(2) for i in range(1,count1 1)] lis2 [str(i).zfill(2) for i in range(1,count2 1)]for i in range(0,len(lis2),n):print(.join(lis2[i:i n]))print()for i in range(1,n 1):tem…

Vue+Element(el-upload+el-form的使用)+springboot

目录 1、编写模板 2、发请求调接口 3、后端返回数据 1.编写实体类 2.Controller类 3、interface接口&#xff08;Service层接口&#xff09; 4.Service&#xff08;接口实现&#xff09; 5、interface接口&#xff08;Mapper层接口&#xff09; 6、xml 4、upload相关参…

微信小程序之全局配置-window和tabBar

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

抖捧AI实景自动直播怎么玩

​在如今的全民直播时代&#xff0c;直播已经成为了众多实体店、品牌方所刚需的技能&#xff0c;但是大多数都不具备太多的直播能力 &#xff0c;这个时候实景自动直播就应运而生&#xff0c;但是很多人都没有想清楚&#xff0c;AI实景自动直播&#xff0c;到底适不适合自己用呢…

使用官方标定工具Dynamic Calibrator对RealSense D435i进行标定(二)

工具的安装教程可以看我的上一篇博文&#xff1a;Ubuntu 18.04安装Dynamic Calibration software for the Intel RealSense™ D400 Series Cameras&#xff08;一&#xff09; 使用教程参考user guide&#xff1a;https://www.intel.com/content/www/us/en/support/articles/0…

2023春秋杯冬季赛 --- Crypto wp

文章目录 前言Cryptonot_wiener 前言 比赛没打&#xff0c;赛后随便做一下题目 Crypto not_wiener task.py: from Crypto.Util.number import * from gmpy2 import * import random, os from hashlib import sha1 from random import randrange flagb x bytes_to_long(f…

IO 专题

使用try-with-resources语句块&#xff0c;可以自动关闭InputStream [实践总结] FileIUtils 共通方法最佳实践 [实践总结] java 获取在不同系统下的换行符 [实践总结] StreamIUtils 共通方法最佳实践 斜杠“/“和反斜杠“\“的区别 路径中“./”、“…/”、“/”代表的含义…