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

news2024/11/25 3:42:57

目录

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     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;

程序结果

原文结果图:

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

4 下载链接

点击直达!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图学习 [1]

图学习 [1] 图学习的主要任务 节点预测。节点预测任务是指利用图结构中已有的节点和边信息,通过机器学习算法对图中新添加的节点进行分类或回归预测的任务。链路预测。链路预测任务是指利用图结构中已有的节点和边信息,通过机器学习算法预测未来可能存…

【C++初阶】友元 + 内部类 + 匿名对象

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

欢迎所有用户! Elastic 扩展知识中心和支持中心

作者:Cory Mangini 对于所有云用户,我们有一些好消息:你现在可以访问我们的知识中心,在云试用期间请求技术支持,并通过 Elastic Support Hub 提出账单案例。 这意味着你可以利用我们的 Elasticians 多年来积累的丰富知…

基于html+css的图展示90

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

day20 - 绘制物体的运动轨迹

在我们平常做目标检测或者目标追踪时,经常要画出目标的轨迹图。绘制轨迹图的一种方法就是利用光流估计来进行绘制。 本期我们主要来介绍视频中光流估计的使用和效果,利用光流估计来绘制运动轨迹。 完成本期内容,你可以: 掌握视…

通过js来判断是否是横屏如果是就自刷新页面解决横屏之后只有屏幕一半宽度的问题

判断页面是横屏还是竖屏 window.addEventListener("load", rotate, false);window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", rotate, false);function rotate() {if (window.orientatio…

首个机器学习实时特征平台测试基准论文被 VLDB 2023 录取

国际顶级数据库学术会议 VLDB 2023 将于 2023 年 8 月份在加拿大温哥华举办。近日,由清华大学、新加坡国立大学、以及 OpenMLDB 社区联合完成的科研成果 - 业界第一个严谨的机器学习实时特征平台测试基准,被大会录取并且受邀在现场报告。论文题目为&…

Mybatis-动态SQL

1.什么是动态SQL? Mabits是一个Java持久化框架,它提供了动态SQL的功能。动态SQL是一种根据不同条件动态生成SQL语句的技术。在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排…

性能测试——jmeter实时压测结果收集

这里写目录标题 前言一、压测监控平台组成二、性能监控平台部署 - InfluxDB三、性能监控平台部署 - JMeter四、性能监控平台部署 - Grafana五、性能监控平台部署 – 运行与结果展示 前言 测试报告 .vs. 压测监控 JMeter原生测试报告带来的“痛苦” • 不具备实时性 • 报告中的…

单体项目偶遇并发漏洞!短短一夜时间竟让老板蒸发197.83元

事先声明:以下故事基于真实事件而改编,如有雷同,纯属巧合~ 眼下这位正襟危坐的男子,名为小竹,他正是本次事件的主人公,也即将成为熊猫集团的被告,嗯?这究竟怎么一回事?欲…

通过白噪声的频谱处理产生任意光谱斜率(f^a)噪声(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

首站中科院!百度商业AI技术创新大赛开启巡回宣讲

近日,百度商业AI技术创新大赛正式启动,并于5月18日起开启高校巡回宣讲。 宣讲会首站落地中国科学院大学,中国科学院大学人工智能学院副院长、教授、博士生导师肖俊教授,百度商业研发主任架构师焦学武,百度商业资深工程…

springboot 集成 Swagger3(速通)

→ springboot 集成 Swagger2 ← 目录 1. 案例2. info 配置3. Docket 配置1. 开关配置2. 扫描路径3. 路径匹配4. 分组管理 4. 常用注解1. 说明2. 案例 1. 案例 这次直接使用 2.5.6 的 spring-boot 。 依赖&#xff1a; <parent><groupId>org.springframework.…

亏损?盈利?禾赛科技Q1财报背后的激光雷达赛道「现实」

随着禾赛科技在去年登陆美股&#xff0c;作为全球为数不多已经开始前装量产交付的激光雷达上市公司&#xff0c;财务数据的变化&#xff0c;也在一定程度上反映了行业的真实状况。 根据禾赛科技最新发布的今年一季度财报显示&#xff0c;公司季度净营收为4.3亿元&#xff08;人…

基于html+css的图展示91

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

电表及配电监控系统的智能化发展

安科瑞虞佳豪 在电力领域&#xff0c;AI渗透率近年来也持续提升。今年3月&#xff0c;国家能源局发布《关于加快推进能源数字化智能化发展的若干意见》&#xff0c;文件中针对电力、、油气等行业数字化智能化转型&#xff0c;明确了指导思想和基本原则&#xff0c;从加快行业转…

Unity之ShaderGraph数据类型

前言 ShaderGraph是Unity引擎中的一个可视化着色器编辑器&#xff0c;它允许开发者使用节点和连接线的方式来创建自定义的着色器。使用ShaderGraph&#xff0c;开发者可以通过简单的拽和连接节点来创建复杂的着色器效果&#xff0c;而无需编写任何代码。 为了更好的学习Shader…

chatgpt赋能python:PythonWOL:简化计算机远程唤醒的一种方法

Python WOL&#xff1a;简化计算机远程唤醒的一种方法 随着人们越来越频繁地远程连接和控制计算机&#xff0c;计算机的远程唤醒功能变得越来越重要。WOL&#xff0c;即“Wake on LAN”&#xff0c;是一种使用网络信号远程唤醒计算机的技术。 在许多情况下&#xff0c;使用WO…

打家劫舍问题 Python题解

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

python 网络编程和http协议--网络编程,HTTP协议,Web服务器

一.网络编程 1.IP地址 给网络中的每一台设备进行编号. IPV4 IPV6 2.端口和端口号 端口的作用就是给运行的应用程序提供传输数据的通道。 端口号的作用是用来区分和管理不同端口的&#xff0c;通过端口号能找到唯一个的一个端口。 3.TCP协议 协议: 双方的约定. 网络传输协…