2d50ab0df0b9e86b34b7ec300ec0193e4a1c33fe
海上风电场集电线路设计优化工具
项目简介
这是一个用于海上风电场集电线路拓扑设计和优化的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. 结果输出
程序运行结束后会:
- 在终端打印详细的成本、损耗及电缆统计数据。
- 弹窗显示拓扑对比图,并保存为
wind_farm_design_imported.png(或offshore_...png)。 - 生成 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
Languages
Python
99.3%
Makefile
0.7%