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

适用平台/参考文献: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:24H_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:24if 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.mzph.cn/news/645214.shtml

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

相关文章

1.20号网络

数据库基本概念 能够输入计算机并能被计算机程序识别和处理的信息集合数据库 &#xff08;Database&#xff09; 数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合 常用的数据库 1&#xff09;大型数据库Oracle公司是最早开发关系数据库的厂商…

大数据处理,Pandas与SQL高效读写大型数据集

大家好&#xff0c;使用Pandas和SQL高效地从数据库中读取、处理和写入大型数据集&#xff0c;以实现最佳性能和内存管理&#xff0c;这是十分重要的。 处理大型数据集往往是一项挑战&#xff0c;特别是在涉及到从数据库读取和写入数据时。将整个数据集加载到内存中的传统方法可…

opencv#33 边缘检测

边缘检测原理 图像的每一行每一列都可以看成是一个连续的信号经过离散后得到的数值&#xff0c;例如上图左侧给出的图像由黑色到白色的一个信号&#xff0c;也就是图像中某一行像素变化是由黑色逐渐到白色&#xff0c;我们将其对应在一个坐标轴中&#xff0c;将像素值的大小对应…

Pytorch线性代数

1、加法运算 A torch.arange(20, dtypetorch.float32).reshape(5, 4) B A.clone() # 通过分配新内存&#xff0c;将A的一个副本分配给B A, A B# tensor([[ 0., 1., 2., 3.], # [ 4., 5., 6., 7.], # [ 8., 9., 10., 11.], # [12., 13.,…

Linux系统创建并自动启用交换文件

在Linux系统中&#xff0c;交换空间&#xff08;Swap Space&#xff09;被用作当物理内存&#xff08;RAM&#xff09;不足时的额外内存。尽管现代计算机通常配备有大量的RAM&#xff0c;但在某些情况下&#xff0c;如运行内存密集型应用或程序时&#xff0c;交换空间仍然非常有…

鼠标移入/点击子组件,获取选中子组件事件

不管是移入&#xff0c;或者是点击事件 都要知道是触发的哪个组件 这里子组件是个通用小标题title 所以&#xff0c;通过标题内容&#xff0c;获取触发的哪个子组件子组件 <template><div mouseover"tMouseover" mouseleave"tMouseLeave" class&…

[AIGC大数据基础] Spark 入门

大数据处理已成为当代数据领域的重要课题之一。为了高效地处理和分析大规模数据集&#xff0c;许多大数据处理引擎应运而生。其中&#xff0c;Spark作为一个快速、通用的大数据处理引擎备受关注。 本文将从“是什么、怎么用、为什么用”三个角度来介绍Spark。首先&#xff0c;我…

【Flutter跨平台插件开发】如何实现kotlin跟C++的相互调用

【Flutter跨平台插件开发】如何实现kotlin跟C的相互调用 kotlin 调 c 在 Kotlin 中&#xff0c;可以使用 JNI (Java Native Interface) 来调用 C 代码 调用步骤: 创建 C 文件并实现函数。 // example.cpp #include <jni.h>extern "C" JNIEXPORT jstring J…

SQL 系列教程(二)

目录 SQL DELETE 语句 DELETE 语句 演示数据库 DELETE 实例 删除所有行 SQL TOP, LIMIT, ROWNUM 子句 TOP 子句 演示数据库 SQL TOP、LIMIT 和 ROWNUM 示例 SQL TOP PERCENT 实例 添加WHERE子句 SQL MIN() 和 MAX() 函数 MIN() 和 MAX() 函数 演示数据库 MIN() …

spring eureka集群相关问题

一、集群节点信息如何更新&#xff1f; EurekaServer节点启动的时候&#xff0c;DefaultEurekaServerContext.init()方法调用PeerEurekaNodes.start()方法&#xff0c;start方法中resolvePeerUrls()会从配置文件读取serviceUrl属性值获得集群最新节点信息&#xff0c;通过upda…

电池回收产业东风中,吉利科技集团如何先行一步?

随着绿色低碳可持续发展理念深入人心&#xff0c;全球能源变革和转型升级持续推进&#xff0c;新能源行业不断涌现新的机遇。 动力电池回收和再利用&#xff0c;就是近在眼前的“红利型”产业。 我国新能源汽车市场近年来爆发式增长&#xff0c;动力电池生产紧随电动车普及步…

【代码管理】TortoiseGit 图标没有显示

当TortoiseGit在Windows系统中没有正确显示文件和目录的图标状态时&#xff0c;可能的原因和解决方法如下&#xff1a; 原因与解决方案&#xff1a; TortoiseGit未集成到资源管理器&#xff1a; 请确保TortoiseGit已正确安装&#xff0c;并在安装过程中选择了“将TortoiseGit集…

C++区间覆盖(贪心算法)

假设有n个区间&#xff0c;分别是&#xff1a;[l1,r1], [l2,r2], [l3,r3].....[ln,rn] 从这n个区间中选出某些区间&#xff0c;要求这些区间满足两两不相交&#xff0c;最多能选出多少个区间呢&#xff1f; 基本思路&#xff1a; 按照右端点从小到大排序&#xff0c;再比较左端…

深度学习中RGB影像图的直方图均衡化python代码and对图片中指定部分做基于掩模的特定区域直方图均衡化

深度学习很重要的预处理步骤 就是需要对做直方图均衡化 其中主要分成灰度图以及RGB图的直方图均衡化 这俩的方法和代码不同 想要去看具体原理的朋友可以查看下面这篇博客的内容 写的很详细颜色直方图均衡化(https://www.cnblogs.com/wancy/p/17668345.html) 我们这个场景中会用…

【RT-DETR有效改进】FasterNet一种跑起来的主干网络( 提高FPS和检测效率)

前言 大家好&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持ResNet32、ResNet101和PP…

Google murmur3 hashString用法

如下为将String获取hashcode&#xff0c;转为Long的方法&#xff0c;主要是在海量数据的flink程序里&#xff0c;为了节省状态的存储空间&#xff0c;所以尝试用long来存储。 同样的还可以hash其他格式的数据。 评估了下&#xff0c;murmur3最高用的是128位的hash值&#xff…

圈子论坛社交实名制系统---H5小程序APP,三端源码交付,允许二开!PHP系统uni书写!

圈子系统是一种社会化网络平台&#xff0c;它的核心是以用户为中心&#xff0c;围绕用户的兴趣、爱好、经历和职业等因素&#xff0c;将具有相同特质的个体聚集起来&#xff0c;形成具有共同话题和兴趣的社交圈子。这样的系统旨在帮助用户拓宽社交范围&#xff0c;提升社交效率…

uniapp+vue开发微信小程序,image标签图片IOS可以正常回显,安卓回显不出

仅代表个人遇到的问题&#xff0c;仅代表个人遇到的问题&#xff0c;仅代表个人遇到的问题&#xff0c; 1.先说最快的解决方案&#xff0c;直接在src下面额外添加一段url&#xff0c;https://images.weserv.nl/?url&#xff0c; <imagestyle"width: 180rpx; height: 2…

封装 element el-date-picker时间选择区间

基于el-date-picker 处理满足项目需求。&#xff08;&#xff1a;最多选择7天&#xff09; 效果&#xff1a; 1 大于当前时间的以后日期禁选。2 选中时间的前后七天可选 &#xff08;最多可查询7天数据&#xff09;3 <template><section class"warning-contai…

FPGA硬件架构——具体型号是xc7k325tffg676-2为例

1.共如下图14个时钟域&#xff0c;XmYn(按坐标理解) 2.IOB(IOB为可编程输入输出单元,当然在普通Bank上的IOB附近还有很多时钟资源&#xff0c;例如PLL&#xff0c;MMCM资源。), 2.1 FPGA的Bank分为HP Bank和HR Bank&#xff0c;二者对电压的要求范围不同&#xff0c;HR支持更大…