Matlab|基于广义Benders分解法的综合能源系统优化规划

目录

[1 主要内容](#1 主要内容)

广义benders分解法流程图:

优化目标:

约束条件:

[2 部分代码](#2 部分代码)

[3 程序结果](#3 程序结果)

[4 下载链接](#4 下载链接)


1 主要内容

该程序复现文章《综合能源系统协同运行策略与规划研究》第四章内容基于广义Benders分解法的综合能源系统优化规划,代码主要构建了以最小化包括初始投资和运行成本的总成本为优化目标的综合能源系统优化规划模型。模型上层是综合能源系统中相关设备的初始投资成本,下层以第三章所提出的综合能源优化运行问题为子问题,综合考虑风机、光伏随机性以及普遍存在的负荷预测误差等因素,通过广义Benders分解法进行求解。最后通过实际案例仿真分析,验证本文所提优化规划方法论可以实现综合能源系统在规划期内经济性最优,有力支撑了实际综合能源系统建设规划的策略依据。

广义benders分解法流程图:

优化目标:

约束条件:

2 部分代码

复制代码
%% 气网
m=14;n=16;     % 节点与支路个数
isb=1;
pr=0.0001;
BH=1.2;%压缩机常数
ZH=1.2;%压缩机常数
B1=[1     2     0.2526     1  % 4列分别为首节点i、末节点j、Kij和支路编号
    1     3     0.2410     2
    2     3     0.2990     3
    2     4     0.2924     4
    3     6     0.2777     5
    4     5     0.2777     6  % *
    5     8     0.2365     7
    6     7     0.1662     8  % *
    7     10    0.1662     9
    8     9     0.2365     10 % *
    9     12    0.1634     11
    10    11    0.1493     12 % *
    11    13    0.1493     13
    12    13    0.1598     14
    12    14    0.1665     15
    13    14    0.1534     16];       % 支路矩阵
B2=[1     0     1     0      1200;    % 5列分别为节点编号、节点类型、压缩机比例、节点负荷和节点压力
    2     1     1     20    700
    3     1     1     20    680
    4     1     1     40    520
    5     1     1     60    870
    6     1     1     0      500
    7     1     1     20    900
    8     1     1     30    720
    9     1     1     0      1000
    10    0     1     0      700
    11    1     1     0      1100
    12    1     1     40    680
    13    1     1     20    720
    14    1     1     80    650];     % 节点矩阵 类型为1的节点压力为自定义初值 类型为0的节点压力保持
B2(:,4)=abs(B2(:,4));
B1(:,3)=4.*B1(:,3);
%不收敛情况
%B2(:,5)=[1109.67741935484,993.548387096774,1022.58064516129,790.322580645161,587.096774193548,1022.58064516129,906.451612903226,616.129032258065,761.290322580645,848.387096774194,935.483870967742,1022.58064516129,1022.58064516129,1080.64516129032];
A0 = zeros(m,n);            % 构建关联矩阵A0 (m x n)
for i=1:16
    for j=1:14
    if B1(i,1)==j
        A0(j,i) = -1;
    end
    if B1(i,2)==j
        A0(j,i) = 1;
    end 
    end
end
% for i = 1:m
%     for j=1:n
%         COUNT1=[];
%         if B1(j,1)==i
%             COUNT1=[COUNT1 B1(j,4)];
%         end
%         A0(i,COUNT1) = 1;
%     end
%     for j=1:n
%         COUNT2=[];
%         if B1(j,2)==i
%             COUNT2=[COUNT2 B1(j,4)];
%         end
%         A0(i,COUNT2) = -1;
%     end
% end
A0;                     % 显示A0
A1 = A0(2:m,:);         % 构建缩减关联矩阵A1
A1;                     % 显示A1
for i=1:n               % 计算流量
    if B2(B1(i,1),5)^2 > B2(B1(i,2),5)^2
        S(i)=1;
    else
        S(i)=-1;
    end
    DetaP(i) = B2(B1(i,1),5)^2 - B2(B1(i,2),5)^2;
    f(i) = B1(i,3)*S(i)*sqrt(S(i)*DetaP(i));
end
P = B2(2:m,5); 
for i=1:m-1
    PAI(i)=P(i)^2;
end
PAI = PAI';             % 显示PAI
f = f';                 % 把流量f转化为列向量
L = B2(2:m,4);          % 负荷列向量L
F = A1*f-L;
kk=1;

3 程序结果

原文结果图:

从结果对比看,本程序收敛性能达到预期!

4 下载链接

相关推荐
菜鸟~noob2334 小时前
【太空电子战】Meadowlands作战验收:美国太空军可逆干扰能力的里程碑【含matlab代码】
matlab·电子战
菜鸟~noob2331 天前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
民乐团扒谱机1 天前
【手把手通信仿真】FSK与GFSK调制原理对比及MATLAB全实现,附频谱波形分析
matlab·蓝牙·微电子·通信技术·通信原理·gfsk·fsk
ι:2 天前
单相桥式全控整流仿真从零复现教学
windows·学习·matlab·simulink
菜鸟~noob2332 天前
【电子战】第14篇:TOA 定位——圆交汇与到达时间【含matlab代码】
开发语言·matlab
简简单单做算法2 天前
基于灰狼算法和贝叶斯联合优化的BiLSTM(GWO-BO-BiLSTM)一维时间序列预测算法matlab仿真
matlab·一维时间序列预测·gwo-bo-bilstm
Evand J3 天前
【MATLAB例程|图像滤波降噪13】局部噪声方差自适应滤波(LNR)图像降噪与效果展示。附完整例程的下载链接
图像处理·计算机视觉·matlab·滤波·代码·降噪
weixin_307779133 天前
C++代码实现MATLAB中的ode23t函数功能
开发语言·c++·算法·matlab
Evand J3 天前
【MATLAB例程】二维Astar路径规划与AOA-TDOA定位仿真。完整代码,附下载链接。包运行成功,带中文注释
开发语言·matlab·路径规划·代码·定位·融合定位
路径规划6664 天前
(MATLAB代码)退火PSO融合DWA算法的船舶路径规划MATLAB实现(260915)
matlab·路径规划·船舶·dwa·pso粒子群算法