Matlab|考虑可再生能源消纳的电热综合能源系统日前经济调度模型

本文主要是介绍Matlab|考虑可再生能源消纳的电热综合能源系统日前经济调度模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1 主要内容

模型示意图

目标函数

程序亮点

2 部分程序

3 程序结果

4 下载链接


主要内容

本程序参考文献《考虑可再生能源消纳的建筑综合能源系统日前经济调度模型》模型,建立了电热综合能源系统优化调度模型,包括燃气轮机、燃气锅炉、余热锅炉、蓄电池、储热、风电和光伏等设备模型,注意:不含文献中的地源热泵和空调设备,可以作为比较经典的电热综合能源优化调度学习资料。

  • 模型示意图

注意:本程序不含地源热泵模型。
  • 目标函数

目标函数:经济性=燃料成本+设备运维成本+环境保护
目标函数代码:
for t=1:24
z=z+0.025*P_GT(t)+0.0097*Q_GB(t)+0.025*Q_RB(t)...%设备运维费用
+0.03*(abs(P_ESc(t))+abs(P_ESd(t)))+0.02*(abs(P_HSc(t))+abs(P_HSd(t)))...%储能设备
+3.15*(F_GT(t)+F_GB(t))...%买天然气的价格
+0.088*(P_GT(t)*0.242+Q_GB(t)*0.085)+0.624*(P_GT(t)*0.0036+Q_GB(t)*0.764)+1.95*(P_GT(t)*0.2+Q_GB(t)*0.54);%污染物处理
end
  • 程序亮点

  1. 程序对于蓄电池和储热设备的约束形式较常规方式有所区别,见部分程序59-66行,虽然这种约束方式略显笨重,但提供了另外一种程序编写方式,顺便了解implies命令应用方式。
  2. 程序对于蓄电池和储热采用自放电/热系数方式,因此可以合理解释结果图2中储热满足24小时充放电功率一致,但是储热量却一直下降的原因。

部分程序

%% 程序初始化
clc;
clear;
close all;
​
%% 定义变量
%电设备
P_PV=sdpvar(1,24,'full');%光伏发电
P_WT=sdpvar(1,24,'full');%风力发电
P_GT=sdpvar(1,24,'full');%燃气轮机电功率出力
Eb=sdpvar(1,24,'full');% 电储能的容量
P_ES=sdpvar(1,24,'full');%电储能输出,有正有负
P_ESc=sdpvar(1,24,'full');% 电储能充电功率
P_ESd=sdpvar(1,24,'full');% 电储能放电功率
%热设备
Q_GT=sdpvar(1,24,'full');%燃气轮机输出的热功率
Q_RB=sdpvar(1,24,'full');%余热锅炉输出的热功率
Q_GB=sdpvar(1,24,'full');%燃气锅炉输出的热功率
Eh=sdpvar(1,24,'full');%热储能的容量
P_HS=sdpvar(1,24,'full');%热储能输出,有正有负
P_HSc=sdpvar(1,24,'full');%热储能储热功率
P_HSd=sdpvar(1,24,'full');%热储能放热功率
%辅助变量
Ubc=binvar(1,24,'full');%电储能充电状态,1表示充电
Ubd=binvar(1,24,'full');%电储能放电状态,1表示放电
Uhc=binvar(1,24,'full');%热储能储热状态,1表示储热
Uhd=binvar(1,24,'full');%热储能放热状态,1表示放热
F_GT=sdpvar(1,24,'full');%燃气轮机消耗的天然气量
F_GB=sdpvar(1,24,'full');%燃气锅炉消耗的天然气量
%% 常量数据,包括电热冷负荷和风光出力
Pwt=[66.9  68.2  71.9  72  78.8  94.8  114.3  145.1  155.5  142.1  115.9  127.1  141.8  145.6   145.3  150  206.9  225.5  236.1  210.8  198.6  177.9  147.2  58.7];
Ppv=[0,0,0,  0,  0.06,  6.54,  20.19,  39.61,  49.64,  88.62,  101.59,  66.78,  110.46,  67.41,  31.53, 50.76,20.6,22.08,2.07,0,0,0,0,0];
load_e=[88.24   83.01   80.15   79.01   76.07   78.39   89.95   128.85   155.45   176.35   193.71   182.57   179.64   166.31   164.61   164.61   174.48   203.93   218.99   238.11   216.14   173.87   131.07   94.04];
load_h=[122 125 128 125 128 119 113 109 100,90 88,79 66,55 63,71 98 109 139 150 142 139 136 134];
​
%% 目标函数:经济性=燃料成本+设备运维成本+环境保护
z=0;
for t=1:24z=z+0.025*P_GT(t)+0.0097*Q_GB(t)+0.025*Q_RB(t)...%设备投资运行费用+0.043*P_WT(t)+0.0096*P_PV(t)+0.03*(abs(P_ESc(t))+abs(P_ESd(t)))+0.02*(abs(P_HSc(t))+abs(P_HSd(t)))...%储能设备+3.15*(F_GT(t)+F_GB(t))...%买天然气的价格+0.088*(P_GT(t)*0.242+Q_GB(t)*0.085)+0.624*(P_GT(t)*0.0036+Q_GB(t)*0.764)+1.95*(P_GT(t)*0.2+Q_GB(t)*0.54);%污染物处理
endF=z%% 约束条件
​
C=[];
%机组约束,决策变量
C=[C,0.8*Ppv<=P_PV<=Ppv];%光伏发电上下限约束
C=[C,0.8*Ppv<=P_WT<=Pwt];%风力发电上下限约束
for t=1:24C=[C,0<=P_GT(t)<=550];%燃气轮机上下限约束√C=[C,0<=Q_RB(t)<=750];%余热锅炉上下限约束√C=[C,0<=Q_GB(t)<=700];%燃气锅炉上下限约束√C=[C,0<=Q_GT(t)<=200];%燃气轮机输出的热功率
%设备模型
​C=[C,Ubc(t)+Ubd(t)<=1];C=[C,Uhc(t)+Uhd(t)<=1];%确定充放电状态不可能同时发生C=[C,-80<=P_ES(1,t)<=80,0<=P_ESc(1,t)<=80,-80<=P_ESd(1,t)<=0]; C=[C,-80<=P_HS(1,t)<=80,0<=P_HSc(1,t)<=80,-80<=P_HSd(1,t)<=0];   C=[C,implies(Ubc(1,t),[P_ES(1,t)>=0,P_ESc(1,t)==P_ES(1,t),P_ESd(1,t)==0])];%储电=负荷C=[C,implies(Ubd(1,t),[P_ES(1,t)<=0,P_ESd(1,t)==P_ES(1,t),P_ESc(1,t)==0])];C=[C,implies(Uhc(1,t),[P_HS(1,t)>=0,P_HSc(1,t)==P_HS(1,t),P_HSd(1,t)==0])];%储热=负荷C=[C,implies(Uhd(1,t),[P_HS(1,t)<=0,P_HSd(1,t)==P_HS(1,t),P_HSc(1,t)==0])];

程序结果

4 下载链接

这篇关于Matlab|考虑可再生能源消纳的电热综合能源系统日前经济调度模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/821044

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方