# 海上风电场集电线路设计优化工具 ## 项目简介 这是一个用于海上风电场集电线路拓扑设计和优化的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](https://github.com/astral-sh/uv) 进行依赖管理。 ### 安装依赖 ```bash # 使用 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. 运行主程序 ```bash # 使用 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` 中调整以下核心常量以适配不同项目: ```python VOLTAGE_LEVEL = 66000 # 集电系统电压 (V) POWER_FACTOR = 0.95 # 功率因数 cost_multiplier = 5.0 # 海缆相对于陆缆的成本倍数 ``` ## 输出示例 ```text 系统设计参数: 总功率 2000.0 MW, 单回路最大容量 50.4 MW 计算建议回路数(簇数): 48 (最小需求 40) [Sector Clustering] 电缆统计: 70mm²: 48 条 185mm²: 37 条 400mm²: 40 条 成功导出DXF文件: wind_farm_design.dxf ``` ## 许可证 本项目仅供学习和研究使用。