基于广义Benders分解法的综合能源系统优化规划(matlab程序)

news/2024/11/8 23:03:45/

目录

1 主要内容

广义benders分解法流程图:

优化目标:

约束条件:

2 部分代码

3 程序结果

4 下载链接


主要内容

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

广义benders分解法流程图:

优化目标:

约束条件:

部分代码

%% 气网
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     22     3     0.2990     32     4     0.2924     43     6     0.2777     54     5     0.2777     6  % *5     8     0.2365     76     7     0.1662     8  % *7     10    0.1662     98     9     0.2365     10 % *9     12    0.1634     1110    11    0.1493     12 % *11    13    0.1493     1312    13    0.1598     1412    14    0.1665     1513    14    0.1534     16];       % 支路矩阵
B2=[1     0     1     0      1200;    % 5列分别为节点编号、节点类型、压缩机比例、节点负荷和节点压力2     1     1     20    7003     1     1     20    6804     1     1     40    5205     1     1     60    8706     1     1     0      5007     1     1     20    9008     1     1     30    7209     1     1     0      100010    0     1     0      70011    1     1     0      110012    1     1     40    68013    1     1     20    72014    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:16for j=1:14if B1(i,1)==jA0(j,i) = -1;endif B1(i,2)==jA0(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)^2S(i)=1;elseS(i)=-1;endDetaP(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-1PAI(i)=P(i)^2;
end
PAI = PAI';             % 显示PAI
f = f';                 % 把流量f转化为列向量
L = B2(2:m,4);          % 负荷列向量L
F = A1*f-L;
kk=1;

程序结果

原文结果图:

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

4 下载链接

点击直达!


http://www.ppmy.cn/news/82175.html

相关文章

【利刃出鞘】链式思维利用ChatGPT,让其成为工作中的利剑?附带初学者扫盲SpringBoot

【利刃出鞘】链式思维利用ChatGPT,让其成为工作中的利剑 一、一点思考二、技术学习——链式思维2.1 springboot注册bean的几种方式?2.2 springboot Component 注册的原理?2.3 springboot引用注册的Bean原理?2.4 private final MyB…

专为Windows电脑和服务器设计的磁盘管理软件

关于Windows磁盘管理 磁盘管理是Windows自带工具,允许你对磁盘进行一些基本操作,Windows个人用户和Windows Server用户可以使用它来: 1. 创建一个新驱动器,如“新建简单卷”功能。 2. 将一个卷扩展到当前未被同一磁盘…

通过Python的filestools库给图片添加全图水印

文章目录 前言一、filestools库简介二、安装filestools三、查看filestools版本四、图片添加全图水印1.引入库2.添加水印3.效果 五、参数调整对比1.水印颜色1.1通过名称设置颜色1.2通过RGB值设置颜色1.3通过十六进制设置颜色 2.水印字体的大小3.水印的透明度4.水印直接的间隔5.水…

如何对图片进行卷积计算

1 问题 如何对图片进行卷积计算? 2 方法 先导入torch和torch里的nn类,然后设置一个指定尺寸的随机像素值的图片,然后使用nn.conv2d函数进行卷积计算,然后建立全连接层,最后得到新的图片的尺寸 步骤: (1) 导入实验所需要…

快递业的最新发展趋势:2023年市场预测

快递业是随着电子商务崛起而迅速发展的行业之一。自从互联网取代了线下商业模式,电子商务的发展成为了现代零售业的主要趋势,而快递业则变得越来越重要和不可或缺。未来的快递业需要应对许多挑战和机遇。 在2023年,快递业将进一步走向数字化、…

End-to-End Object Detection with Transformers 论文学习

论文地址:End-to-End Object Detection with Transformers 1. 解决了什么问题? 现有的目标检测算法需要大量的人为先验的设计,如 anchor 和 NMS,整体架构并不是端到端的。现有的检测方法为了去除重叠框,一般会利用 p…

2023年认证杯SPSSPRO杯数学建模B题(第一阶段)考订文本全过程文档及程序

2023年认证杯SPSSPRO杯数学建模 B题 考订文本 原题再现: 古代文本在传抄过程中,往往会出现种种错误,以至于一部书可能流传下来多种版本。在文献学中,错误往往被总结成“讹”、“脱”、“衍”、“倒”等形式,也可能同…

STM32 10个工程篇:1.IAP远程升级(四)

在前三篇博客中主要介绍了IAP远程升级的应用背景、下位机的实现原理、以及基于STM32CubeMX对STM32F103串口DMA的基本配置,第四篇博客主要想介绍Labview端上位机和下位机端的报文定义和通信等。 当笔者工作上刚接触到STM32 IAP升级的时候,实事求是地说存在…