当前位置: 首页 > article >正文

考虑楼宇空间布局的电力系统集群规划策略【集群划分】

目录

主要内容   

  模型研究   

1 基于电气距离的模块度指标 

2 目标函数

3 集群最短连线距离优化

数学定义

求解方法

  部分代码   

  运行结果   

下载链接


主要内容   

针对大规模分布式光伏并网带来的电力系统协调自治挑战,程序通过集群划分方法研究多个建筑物间电力线路规划策略,从电气距离的模块度、建筑物间线路铺设成本以及电能互补的角度进行优化,采用粒子群算法进行求解,程序以随机生成的20个建筑物为例,建筑物的数量和负荷、光伏数据均可以在应用中进行调整,程序模块化编程,注释清晰,有参考文档,方便研究学习!

  模型研究   

1 基于电气距离的模块度指标 

模块度是用以评价网络结构强度的指标,其数值与网络结构及网络边权有关,模块度指标越大,表示相同区域节点之间功能或性质越相似,不同区域之间耦合性越弱。而在配电网中模块度的网络边权由电气距离表示,即以电气耦合强弱表征区域的耦合程度,因此可以用基于电气距离的模块度指标来衡量集群划分的结构性强弱。

表示集群内节点电气紧密程度的基于电气距离的模块度指标函数为:

2 目标函数

程序目标函数由线路铺设成本、集群购电费用以及模块度三部分组成。

属于同一集群的建筑通过线路铺设路径优化得到最佳铺设方案,从而减少每种方案的线路铺设成本。

集群购电费用主要体现在集群内部可以通过不同建筑物间电能互补从而降低从外网购电成本,这也是集群规划的优势所在。

3 集群最短连线距离优化

数学定义

求解方法

以上对最小 Hamilton 回路问题的描述,采用了整数规划的方法,但不构成回路的约束条件并不太容易表示,对于无向图,可不考虑路径的方向,只考虑其中一个变量即可,因此模型可以转化为下面的形式进行求解:

  部分代码   

% 随机生成建筑横、纵坐标;建筑类型;负荷和光伏曲线分配
% 建筑类型确定,负荷和光伏的曲线也就确定了【待优化】
[x, y, type, load_curve, pv_curve] = GenerateBuildingInfo(num_buildings);
% 绘制建筑位置分布图
PlotBuildingLocations(x, y,type);
% 显示每个建筑的位置和类型, '行列转换符,列转行
building_info= table((1:num_buildings)', x', y', type');
disp('随机生成的建筑位置和类型:');
disp(building_info);
% 绘制每个建筑的负荷曲线和光伏曲线以及净负荷图【最后再取消注释,这一步其实也不是很有必要,但是也写着】
% 循环绘制每个建筑的曲线图
figure;
for i = 1:num_buildings
    % 绘制第i个建筑的曲线图
    PlotBuildingCurves(load_curve{i}, pv_curve{i});
    hold on
end
% 添加标题
title('20个建筑曲线图');
%% 绘制负荷变化三维图【不是很重要】
%  净负荷元胞
hours_per_day = 48;
% 创建一个空的元胞数组来存储净负荷曲线
net_load_curve = cell(1, num_buildings);
% 净负荷       
for i = 1:num_buildings
    net_load_curve{i} = load_curve{i} - pv_curve{i};
end
% 创建时间轴标签
time_labels = cell(1, hours_per_day);
for i = 1:hours_per_day
    hour = floor((i-1)/2);
    minute = rem(i-1, 2) * 30;
    time_labels{i} = sprintf('%02d:%02d', hour, minute);
end
% 创建小时和建筑索引网格
[hour, building] = meshgrid(1:hours_per_day, 1:num_buildings);
​
% 将每个建筑的负荷数据放在网格中的对应位置
load_grid = zeros(num_buildings, hours_per_day);
for i = 1:num_buildings
    load_grid(i, :) = net_load_curve{i};
end

  运行结果   

下载链接


http://www.kler.cn/a/406290.html

相关文章:

  • VM虚拟机装MAC后无法联网,如何解决?
  • GESP2023年9月认证C++四级( 第三部分编程题(1-2))
  • LeetCode 746. 使用最小花费爬楼梯 java题解
  • Mono Repository方案与ReactPress的PNPM实践
  • 【LC】242. 有效的字母异位词
  • 设计模式之 状态模式
  • 【课堂笔记】隐私计算实训营第四期:“隐语”可信隐私计算开源框架
  • 国外地区经纬度查询免费API接口教程
  • 【深入学习大模型之:微调 GPT 使其自动生成测试用例及自动化用例】
  • Android Compose实现一个文字跑马灯效果控件
  • D76【 python 接口自动化学习】- python 基础之 HTTP
  • 漫步北京小程序构建智慧出行,打造旅游新业态模式
  • box-sizing
  • 了解Redis(第一篇)
  • Ubuntu20.04下安装向日葵
  • 更高效的Java 23开发,IntelliJ IDEA助力全面升级
  • unity中:超低入门级显卡、集显(功耗30W以下)运行unity URP管线输出的webgl程序有那些地方可以大幅优化帧率
  • # issue 4 进程控制函数
  • Leetcode 每日一题 392.判断子序列
  • 前端图像处理(一)
  • webview4/edgewebbrower学习记录——执行js
  • 三层交换机静态路由实验
  • ETCD调优
  • 计算机网络基础全攻略:探秘网络构建块(1/10)
  • 【鸿蒙开发】ArkTs布局(上)----面试题库
  • Delphi ADO组件中的 ADOTable、ADOQurey 无SQL语句实现增、删、改、查