【双层模型】考虑供需双侧的综合能源双层优化模型

简介: 该程序构建了一个综合能源系统的优化调度双层模型,采用差分进化算法和规划算法分别求解上下层问题。模型涵盖了燃气轮机、锅炉、风电、光伏及储能设备的协同运行,并考虑了供应商与用户的利益平衡。通过满足设备出力、储能、负荷平衡等约束条件,实现了系统经济性和性能的优化。程序基于Matlab+Cplex编写,注释详尽且附带文档说明,便于学习研究。

主要内容  

该程序实现一个综合能源系统的优化调度双层模型,上下层分别采用差分进化算法和规划算法进行求解。模型考虑了多种能源设备,包括燃气轮机、燃气锅炉、风电、光伏、储能设备等的协同运行,同时兼顾了能源供应商和用户的利益,需满足各种约束条件,包括设备出力约束、储能约束、负荷平衡约束等,以供应商和用户的收益、成本等为目标进行求解,同时考虑到负荷需求响应,通过分层模型将非线性求解模型转化为线性求解模型,实现了系统的经济和性能优化。程序采用matlab+cplex进行求解,注释清楚,有对应的文档说明,方便学习研究!


  内容研究  

1.模型简介

上层模型目标函数为:


为了便于理解,分块分析如下:


I3代表运营商售电收入,I4代表运营商售热收入,C_CCHP代表CCHP的运行成本,C_grid代表购电成本,FD代表储能的售电收益,FH代表售热能收益。

下层目标函数为:


逐项分析如下:


FU代表用户满意度,F5代表用户的购电,F6代表用户购热成本。

该目标的意思是用户满意度最高,用户购电和购热成本最低。

下层模型是采用规划算法结合cplex优化主体出力结果和目标值。

涉及到的约束主要有:

  • 设备出力约束
  • 设备爬坡约束
  • 热电功率平衡约束
  • 与电网交互约束
  • 用户侧热电储能约束
  • 用户侧负荷转移和削减约束

2 程序释义

程序包括的子程序较多,相互间的调用关系可参考下图:


具体每部分代码含义详见下载文件夹中说明文档。

部分代码

%基础热负荷

dh=[1000,1010,1043,1155,1172,1197,1158,1060,923,880,910,830,785,730,700,730,810,820,810,910,950,1010,1030,1020];

%基础电负荷

de=[540,528,504,516,524,520,612,652,696,856,956,968,992,864,720,676,680,668,708,976,968,960,572,532];

de1=[408,404,372,392,396,388,448,448,460,524,620,780,764,768,612,628,620,632,660,868,864,848,448,404];

%风电出力

Pwt=[203,277,264,331,137,81,72,141,43,12,20,12,5,48,86,346,287,530,491,448,603,601,403,380];

%光伏出力

Ppv=[0,0,0,0,0,0,97,220,336,410,486,444,453,445,442,325,202,140,29,0,0,0,0,0];

%电网分时电价、上网电价

grid_fs=[0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.8,0.8,0.8,1.2,1.2,1.2,1.2,0.8,0.8,0.8,0.8,1.2,1.2,1.2,0.8];

grid_sw=[0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35];    

ch_min=[0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15];%热价下限

ch_max=[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5];%热价上限

Pice=sdpvar(1,24,'full');%电输出功率

Qgb=sdpvar(1,24,'full');%热输出功率

Pbuy=sdpvar(1,24,'full');%从电网购电电量

Psell=sdpvar(1,24,'full');%向电网售电电量

Pnet=sdpvar(1,24,'full');%交换功率

Temp_net=binvar(1,24,'full'); % 购|售电标志

le=sdpvar(1,24,'full');%可转移电负荷

lh=sdpvar(1,24,'full');%可转移热负荷

Pcharge=sdpvar(1,24,'full');UPcharge=binvar(1,24,'full');%  充电  

Pdischarge=sdpvar(1,24,'full');UPdischarge=binvar(1,24,'full');%  放电  

Hti=sdpvar(1,24,'full');UHti=binvar(1,24,'full');%充热

Hto=sdpvar(1,24,'full');UHto=binvar(1,24,'full');%放热

%用户偏好常系数

ve=1.5;

a_e=0.0009;

vh=1.1;

a_h=0.0011;

%燃气发电机、锅炉常数

ae=0.0013;

be=0.16;

ce=0;

ah=0.0005;

bh=0.11;

ch=0;

ce_ave=0.7;%平均电价约束

ch_ave=0.45;%平均热价约束

n_c=0.8;%热交换效率

n_ex=0.83;   %余热回收效率

n_ice=0.35;   %内燃机发电效率


%热储能

H_storage_max=1500; h_n=0.98;h_charge=0.98;h_discharge=1;%热储能容量/自损/充热/放热;

%电储能

E_storage_max=2000; e_n=1;e_charge=0.95;e_discharge=0.95;%电储能容量/自损/充电/放电;

bggin=1000;%%电储能


运行结果




相关文章
|
6月前
|
机器学习/深度学习 搜索推荐 知识图谱
图神经网络加持,突破传统推荐系统局限!北大港大联合提出SelfGNN:有效降低信息过载与数据噪声影响
【7月更文挑战第22天】北大港大联手打造SelfGNN,一种结合图神经网络与自监督学习的推荐系统,专攻信息过载及数据噪声难题。SelfGNN通过短期图捕获实时用户兴趣,利用自增强学习提升模型鲁棒性,实现多时间尺度动态行为建模,大幅优化推荐准确度与时效性。经四大真实数据集测试,SelfGNN在准确性和抗噪能力上超越现有模型。尽管如此,高计算复杂度及对图构建质量的依赖仍是待克服挑战。[详细论文](https://arxiv.org/abs/2405.20878)。
96 5
|
8月前
|
调度
【复现】【免费】基于多时间尺度滚动优化的多能源微网双层调度模型
【复现】【免费】基于多时间尺度滚动优化的多能源微网双层调度模型
|
8月前
|
算法 调度
【问题探讨】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究
【问题探讨】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究
|
8月前
|
自然语言处理 搜索推荐 语音技术
大模型技术的分化与应用
【1月更文挑战第14天】大模型技术的分化与应用
110 2
大模型技术的分化与应用
|
算法 搜索推荐 调度
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
174 0
|
新能源
两级电力市场环境下计及风险的省间交易商最优购电模型(Matlab代码实现)
两级电力市场环境下计及风险的省间交易商最优购电模型(Matlab代码实现)
143 0
|
达摩院 调度
使用达摩院MindOpt优化交通调度_最大化通行量—线性规划问题
在数学规划中,网络流问题是指一类基于网络模型的流量分配问题。网络流问题的目标是在网络中分配资源,使得网络的流量满足一定的限制条件,并且使得某些目标函数最小或最大化。网络流问题通常涉及一个有向图,图中每个节点表示一个资源,每条边表示资源之间的关系。边上有一个容量值,表示该边上最多可以流动的资源数量。流量从源节点开始流出,经过一系列中间节点,最终到达汇节点。在这个过程中,需要遵守一定的流量守恒和容量限制条件。
|
供应链
【鲁棒优化】微电网鲁棒优化定价方案研究(Matlab代码实现)
【鲁棒优化】微电网鲁棒优化定价方案研究(Matlab代码实现)
【鲁棒优化】微电网鲁棒优化定价方案研究(Matlab代码实现)
|
存储 数据挖掘 调度
基于双层优化的大型电动汽车时空调度(Matlab代码实现)
基于双层优化的大型电动汽车时空调度(Matlab代码实现)
129 0
|
算法
基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)
基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)
156 0