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 下载链接

相关推荐
tyatyatya1 小时前
神经网络在MATLAB中是如何实现的?
人工智能·神经网络·matlab
思茂信息1 小时前
CST软件对OPERA&CST软件联合仿真汽车无线充电站对人体的影响
c语言·开发语言·人工智能·matlab·汽车·软件构建
软件算法开发3 小时前
基于自适应交叉概率和变异概率遗传算法的地铁车辆使用寿命和璇修次数优化matlab仿真
matlab·遗传算法·自适应交叉概率·自适应变异概率·璇修次数·使用寿命
tyatyatya3 小时前
MATLAB 神经网络的系统案例介绍
开发语言·神经网络·matlab
tyatyatya4 小时前
MATLAB 自然语言处理入门教程
开发语言·matlab·自然语言处理
tyatyatya5 小时前
MATLAB的神经网络工具箱
开发语言·神经网络·matlab
t198751285 小时前
基于MATLAB-GUI图形界面的数字图像处理
人工智能·计算机视觉·matlab
Matlab仿真实验室1 天前
基于Matlab实现图像透明叠加程序
人工智能·计算机视觉·matlab
机器学习之心1 天前
贝叶斯优化Transformer融合支持向量机多变量时间序列预测,Matlab实现
支持向量机·matlab·transformer·多变量时间序列预测
FL171713141 天前
MATLAB机器人系统工具箱中的loadrobot和importrobot
人工智能·matlab·机器人