Matlab|电-气-热综合能源系统耦合优化调度

embedded/2024/9/23 15:38:34/

主要内容

程序主要做的是一个考虑电、热、气网耦合调度的综合能源系统优化调度模型,考虑了电网与气网,电网与热网的耦合,电网部分为10机39节点的综合能源系统,热网为6节点,气网部分为比利时20节点气网,潮流部分电网是用了直流潮流,气网部分也进行了线性化的操作处理。

  • 参考文献

《计及碳排放成本的电—气—热...源系统节点能价计算方法研究_邓红卫》

《计及需求响应与动态气潮流的电—气综合能源系统优化调度_张伊宁》

  • 程序的模块化很好。

  • 个模块的功能介绍很详细

  • 工具:MATLAB➕YALMIP➕cplex

(之前有些程序反映求解失败,都是软件没有配置好,而且官网免费的cplex真的严重受限,我用的matlab2018a,yalmip和cplex都是用的公众号免费软件里面的版本,匹配性比较好,一些比较高的matlab版本我也没有合适的不限制变量和约束cplex,建议你再安装一个matlab,对电脑影响不大,具体配套软件和安装说明在公众号有详细介绍。)

部分代码

%导纳矩阵计算
% [Ybus, Yf, Yt] = makeYbus(baseMVA, bus, M_branch);   % build admitance matrix
[Bbus, Bf, Pbusinj, Pfinj] = makeBdc(baseMVA, bus, branch);       %直流潮流
%%
% 创建决策变量
%%
% 电网
% 火电发电机出力 
gen_P = sdpvar(n_gen, n_T);
gen_P_upper = sdpvar(n_gen, n_T);
​
% 火电机组状态
u_state = binvar(n_gen, n_T);    
​
% 电力系统各支路功率
PF_D  = sdpvar(n_branch, n_T);
% 电力系统各节点相角
Va = sdpvar(n_bus,n_T);
%%
% 气网
GasFlow = sdpvar(n_GasBranch, n_T);         %各管道气流量
GasPressure2 = sdpvar(n_GasBus, n_T);       %各节点气压平方
GasSourceOutput = sdpvar(n_GasSource, n_T); %各天然气源节点出力
GasGenNeed = sdpvar(n_GasGen, n_T);         %各天然气发电机耗气
​
%%
% 热网
TmprtrFromDir = sdpvar(n_HeatBranch, n_T);  %正方向支路头结点温度
TmprtrToDir = sdpvar(n_HeatBranch, n_T);    %正方向支路尾结点温度
TmprtrFromRev = sdpvar(n_HeatBranch, n_T);  %逆方向支路头结点温度
TmprtrToRev = sdpvar(n_HeatBranch, n_T);    %逆方向支路尾结点温度
​
TmprtrBusDir = sdpvar(n_HeatBus,n_T);       %正方向系统各节点热水的温度
TmprtrBusRev = sdpvar(n_HeatBus,n_T);       %逆方向系统各节点热水的温度
​
HeatSource = sdpvar(n_HeatBus, n_T);        %热源供热,因为电炉和CHP连在同一个节点才写的这么诡异
HeatCHP = sdpvar(n_CHPgen,n_T);             %chp机组热出力
HeatEBoiler = sdpvar(n_EBoiler,n_T);        %电锅炉热出力
PowerEBoiler = sdpvar(n_EBoiler,n_T);       %电锅炉耗电
​
C = [];     %约束
% C = sdpvar(C)>=0;
SCUC_value = 0;
​
%%
%添加约束
%%
%火电机组开机费用
% Add_Huodian_Startup;
%%
%功率平衡
% Add_PowerBalance;
Add_PowerFlow;
%%
%爬坡约束
Add_Ramp;
%%
%最小启停时间限制
Add_MinUpDownTime;
%%
%火电机组出力
Add_Huodian_UnitOutput;
%%
%天然气网约束
Add_GasConstraints;
%%
%热网约束
Add_HeatConstraints;
%%
%火电二次费用函数
Add_Huodian_GenCost;
%%
%天然气费用
Add_Gas_Cost;
%%     
%配置 
ops = sdpsettings('solver','cplex','verbose',2,'usex0',0);      
ops.gurobi.MIPGap = 1e-6;
ops.cplex.mip.tolerances.mipgap = 1e-6;
​
%%
%求解         
result = optimize(C, SCUC_value, ops);
​
if result.problem == 0 % problem =0 代表求解成功   
elseerror('求解出错');
end

程序结果

4 下载链接


http://www.ppmy.cn/embedded/115665.html

相关文章

python机器人编程——用手机web远程视频监控并控制小车驾驶(上篇vrep仿真)

目录 一、前言二、技术架构三、设备端实现四、服务控制端实现(1)摄像头服务模块(2)web服务器 五、web端实现(1)视频显示(2)驾驶盘的实现(3)心跳 六、总结七、…

MongoDB 关系

MongoDB 关系 MongoDB 是一种流行的 NoSQL 数据库,它使用文档存储数据。与传统的关系型数据库不同,MongoDB 不使用表格和行来存储数据,而是使用集合和文档。在 MongoDB 中,一个文档是一个 BSON(二进制 JSON)对象,它类似于 JSON 对象,但包含更多的数据类型。 MongoDB …

了解华为云容器引擎(Cloud Container Engine)

1.什么是云容器引擎? 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎是一个企业级的…

去耦合的一些建议

尽量少用全局变量,以减少状态共享和潜在的副作用。 模块化设计:将代码分成小模块,每个模块独立实现特定功能,减少模块之间的相互依赖。 封装:将数据和操作封装在类中,控制对内部状态的访问,避…

【系统架构设计师】特定领域软件架构(经典习题)

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3~4题】【第5~6题】【第7~8题】【第9~10题】【第11~12题】【第13~14题】【第15~17题】【试题一(共25分)】【问题 1】(13 分)【第1~2题】 特定领域软件架构(Domain Specific Software Architecture…

【python】字面量

字面量 学习目标: 掌握字面量的含义了解常见的字面量类型基于print语句完成各类字面量的输出 什么是字面量: 字面量:在代码中,被写下来的固定的值,称之为字面零 Python中有哪些值可以被写下来? 如何在…

Flyway-SQL 脚本与 Java 迁移

Flyway SQL 脚本与 Java 迁移详解 Flyway 是一种数据库迁移工具,提供了 SQL 脚本和 Java 迁移两种方式来管理数据库变更。在 Flyway 中,数据库迁移是通过逐步执行迁移脚本或代码来完成的。Flyway 既可以通过 SQL 文件直接执行数据库操作,也可…

ubuntu安装gitlab-runner

目录 1.添加gitlab 仓库地址 ​编辑2. 安装gitlab-runner命令 1.添加gitlab 仓库地址 curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash2. 安装gitlab-runner命令 sudo apt-get install -y gitlab-ru…