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

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi