dmy b5718a0cc2 优化风电场设计方案对比算法:添加旋转算法和双模式对比
- 新增design_with_rotational_sweep函数:实现旋转优化算法
- 修改compare_design_methods函数:
  * 将MST结果纳入对比列表
  * 每个电缆场景运行Base和Rotational两种算法
  * 添加成本和损耗对比显示
  * 优化可视化展示和文件输出
- 改进算法选择逻辑:增强簇数计算的智能化
- 更新输出格式:区分不同算法结果并优化显示
2026-01-02 00:25:33 +08:00

海上风电场集电线路设计优化工具

项目简介

这是一个用于海上风电场集电线路拓扑设计和优化的Python工具。它专注于解决大规模海上风电场的集电系统规划问题通过算法比较不同设计方案的经济性和技术指标。

本项目特别针对海上风电场景进行了优化考虑了海缆的高昂成本、大功率风机6-10MW以及严格的电缆载流量约束。

核心功能

1. 多种布局生成与导入

  • 自动生成支持生成规则的矩阵式Grid风机布局模拟海上风电场常见排布。
  • Excel导入:支持从 coordinates.xlsx 导入自定义的风机和升压站坐标。
    • 格式要求:包含 Type (Turbine/Substation), ID, X, Y, Power 列。

2. 智能拓扑优化算法

  • 最小生成树 (MST)
    • 计算全局最短路径长度。
    • 注意在大规模风电场中纯MST往往会导致根部电缆严重过载仅作为理论最短路径参考。
  • 扇区聚类 (Angular K-means)
    • 无交叉设计:基于角度(扇区)进行聚类,从几何上杜绝不同回路间的电缆交叉。
    • 容量约束自动计算所需的最小回路数Clusters确保每条集电线路的总功率不超过海缆极限。

3. 精细化电气计算与选型

  • 动态电缆选型
    • 基于实际潮流计算Power Flow为每一段线路选择最经济且满足载流量的电缆。
    • 规格库:覆盖 35mm² 至 400mm² 海缆。
    • 参数:电压等级 66kV,功率因数 0.95。
  • 成本与损耗评估
    • 考虑海缆材料及敷设成本约为陆缆的5倍
    • 计算全场集电线路的 I^2R 损耗。

4. 工程级可视化与输出

  • 可视化图表
    • 生成直观的拓扑连接图。
    • 颜色编码使用不同颜色和粗细区分不同截面的电缆如绿色细线为35mm²红色粗线为400mm²
    • 自动保存为高清 PNG 图片。
  • CAD (DXF) 导出
    • 使用 ezdxf 生成 .dxf 文件。
    • 分层管理:风机、升压站、各规格电缆分层显示,可直接导入 AutoCAD 进行后续工程设计。

安装说明

环境要求

  • Python >= 3.10
  • 推荐使用 uv 进行依赖管理。

安装依赖

# 使用 uv (推荐)
uv add numpy pandas matplotlib scipy scikit-learn networkx ezdxf openpyxl

# 或使用 pip
pip install numpy pandas matplotlib scipy scikit-learn networkx ezdxf openpyxl

使用方法

1. 运行主程序

# 使用 uv
uv run main.py

# 或直接运行
python main.py

2. 数据输入模式

程序会自动检测当前目录下是否存在 coordinates.xlsx

  • 存在:优先读取 Excel 文件中的坐标数据进行计算。
  • 不存在:自动生成 30 台风机的规则布局Grid Layout进行演示。

3. 结果输出

程序运行结束后会:

  1. 在终端打印详细的成本、损耗及电缆统计数据。
  2. 弹窗显示拓扑对比图,并保存为 wind_farm_design_imported.png (或 offshore_...png)。
  3. 生成 CAD 图纸文件 wind_farm_design.dxf

关键参数说明

可以在 main.py 中调整以下核心常量以适配不同项目:

VOLTAGE_LEVEL = 66000  # 集电系统电压 (V)
POWER_FACTOR = 0.95    # 功率因数
cost_multiplier = 5.0  # 海缆相对于陆缆的成本倍数

输出示例

系统设计参数: 总功率 2000.0 MW, 单回路最大容量 50.4 MW
计算建议回路数(簇数): 48 (最小需求 40)

[Sector Clustering] 电缆统计:
  70mm²: 48 条
  185mm²: 37 条
  400mm²: 40 条

成功导出DXF文件: wind_farm_design.dxf

许可证

本项目仅供学习和研究使用。

Description
No description provided
Readme 2.8 MiB
Languages
Python 99.3%
Makefile 0.7%