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

1 主要内容

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

  • 参考文献

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

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

  • 程序的模块化很好。
  • 个模块的功能介绍很详细
  • 工具:MATLAB➕YALMIP➕cplex

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

2 部分代码

复制代码
%导纳矩阵计算
% [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 代表求解成功   
else
    error('求解出错');
end

3 程序结果

4 下载链接

相关推荐
机器学习之心2 天前
基于CEEMDAN-TCN-BiGRU的空气质量指数(AQI)预测研究,五模型对比,实验报告+MATLAB代码
matlab·tcn-bigru·ceemdan·空气质量指数
粉色挖掘机2 天前
高压电工证理论考试常考知识点
电力系统·电工
吃好睡好便好3 天前
MATLAB仿真框图3
开发语言·matlab·仿真·simulink
吃好睡好便好4 天前
MATLAB仿真框图2
开发语言·matlab·仿真·simulink
AAIshangyanxiu5 天前
涡度通量碳观测数据 MATLAB 全流程解析与敏感性定量分析、观测数据质控、插补及 footprint 建模技术
开发语言·matlab·涡度通量·生态碳汇·生态碳汇模拟
吃好睡好便好5 天前
MATLAB仿真框图
开发语言·matlab·仿真·simulink
netccdn6 天前
Hough变换检测直线(Matlab)
开发语言·计算机视觉·matlab
DFT计算杂谈7 天前
ADV. SCI. 反铁磁体MnTe2中的Plaid-like自旋劈裂与手性磁振子
matlab
机器学习之心8 天前
可拓理论+云模型:一套量化高校科研创新能力的MATLAB实现方案
matlab·云模型·可拓理论
bu_shuo8 天前
MATLAB中的meshgrid和ndgrid
开发语言·matlab