添加完整的项目文档README.md
- 提供详细的功能特性说明和算法介绍 - 包含完整的安装和使用指南 - 添加电缆规格配置表格 - 更新输出示例以反映最新功能 - 完善项目结构说明和参数配置
This commit is contained in:
146
README.md
146
README.md
@@ -1,85 +1,73 @@
|
||||
# 海上风电场集电线路设计优化工具
|
||||
# 海上风电场集电系统设计工具
|
||||
|
||||
## 项目简介
|
||||
一个用于设计和优化海上风电场集电系统的Python工具,支持多种布局算法和电缆优化方案。
|
||||
|
||||
这是一个用于海上风电场集电线路拓扑设计和优化的Python工具。它专注于解决大规模海上风电场的集电系统规划问题,通过算法比较不同设计方案的经济性和技术指标。
|
||||
## 功能特性
|
||||
|
||||
本项目特别针对**海上风电**场景进行了优化,考虑了海缆的高昂成本、大功率风机(6-10MW)以及严格的电缆载流量约束。
|
||||
- 🌊 多种风机布局生成(随机分布、规则网格)
|
||||
- 🔌 多种集电系统设计算法:
|
||||
- 最小生成树(MST)算法
|
||||
- K-means聚类算法
|
||||
- 容量扫描算法(Capacitated Sweep)
|
||||
- 旋转优化算法(Rotational Sweep)
|
||||
- 📊 多方案对比分析和可视化
|
||||
- 📋 自动导出DXF图纸和Excel报告
|
||||
- 🔧 智能电缆规格选择和成本优化
|
||||
|
||||
## 核心功能
|
||||
|
||||
### 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
|
||||
pip install numpy pandas matplotlib scikit-learn scipy networkx
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 1. 运行主程序
|
||||
### 基本用法
|
||||
|
||||
```bash
|
||||
# 使用 uv
|
||||
uv run main.py
|
||||
|
||||
# 或直接运行
|
||||
python main.py
|
||||
```
|
||||
|
||||
### 2. 数据输入模式
|
||||
### 指定数据文件
|
||||
|
||||
程序会自动检测当前目录下是否存在 `coordinates.xlsx`:
|
||||
```bash
|
||||
python main.py --excel wind_farm_coordinates.xlsx
|
||||
```
|
||||
|
||||
- **存在**:优先读取 Excel 文件中的坐标数据进行计算。
|
||||
- **不存在**:自动生成 30 台风机的规则布局(Grid Layout)进行演示。
|
||||
### 覆盖默认簇数
|
||||
|
||||
### 3. 结果输出
|
||||
```bash
|
||||
python main.py --clusters 20
|
||||
```
|
||||
|
||||
程序运行结束后会:
|
||||
1. 在终端打印详细的成本、损耗及电缆统计数据。
|
||||
2. 弹窗显示拓扑对比图,并保存为 `wind_farm_design_imported.png` (或 `offshore_...png`)。
|
||||
3. 生成 CAD 图纸文件 `wind_farm_design.dxf`。
|
||||
## 算法说明
|
||||
|
||||
### 1. MST Method(最小生成树)
|
||||
- 使用最小生成树连接所有风机到海上变电站
|
||||
- 简单高效,适合初步设计
|
||||
|
||||
### 2. K-means Clustering
|
||||
- 将风机分组到多个回路中
|
||||
- 平衡每回路的功率分配
|
||||
|
||||
### 3. Capacitated Sweep(容量扫描)
|
||||
- 考虑电缆容量约束的智能分组
|
||||
- 支持多种电缆规格自动选择
|
||||
|
||||
### 4. Rotational Sweep(旋转优化)
|
||||
- 在容量扫描基础上进行旋转优化
|
||||
- 进一步降低总成本和损耗
|
||||
|
||||
## 输出文件
|
||||
|
||||
1. **可视化图片**:`wind_farm_design_comparison.png`
|
||||
- 不同算法的设计方案对比图
|
||||
|
||||
2. **CAD图纸**:`wind_farm_design.dxf`
|
||||
- 可导入CAD软件的详细设计图纸
|
||||
|
||||
3. **数据报告**:`wind_farm_design.xlsx`
|
||||
- 包含所有方案的详细技术参数和成本分析
|
||||
|
||||
## 关键参数说明
|
||||
|
||||
@@ -91,18 +79,36 @@ POWER_FACTOR = 0.95 # 功率因数
|
||||
cost_multiplier = 5.0 # 海缆相对于陆缆的成本倍数
|
||||
```
|
||||
|
||||
## 电缆规格配置
|
||||
|
||||
项目支持多种电缆规格,可在 `generate_template.py` 中配置:
|
||||
|
||||
| 截面积(mm²) | 容量(MW) | 电阻(Ω/km) | 成本(元/m) |
|
||||
|-------------|----------|------------|------------|
|
||||
| 35 | 150 | 0.524 | 80 |
|
||||
| 70 | 215 | 0.268 | 120 |
|
||||
| 95 | 260 | 0.193 | 150 |
|
||||
| 120 | 295 | 0.153 | 180 |
|
||||
| 150 | 330 | 0.124 | 220 |
|
||||
| 185 | 370 | 0.0991 | 270 |
|
||||
| 240 | 425 | 0.0754 | 350 |
|
||||
| 300 | 500 | 0.0601 | 450 |
|
||||
| 400 | 580 | 0.0470 | 600 |
|
||||
|
||||
## 输出示例
|
||||
|
||||
```text
|
||||
系统设计参数: 总功率 2000.0 MW, 单回路最大容量 50.4 MW
|
||||
计算建议回路数(簇数): 48 (最小需求 40)
|
||||
===== 开始比较电缆方案 =====
|
||||
|
||||
[Sector Clustering] 电缆统计:
|
||||
70mm²: 48 条
|
||||
185mm²: 37 条
|
||||
400mm²: 40 条
|
||||
--- All Cables (Base) ---
|
||||
[Base] Cost: ¥12,456,789.12 | Loss: 234.56 kW
|
||||
[Rotational] Cost: ¥12,234,567.89 | Loss: 223.45 kW
|
||||
|
||||
成功导出DXF文件: wind_farm_design.dxf
|
||||
--- High Current (Base) ---
|
||||
[Base] Cost: ¥11,987,654.32 | Loss: 245.67 kW
|
||||
[Rotational] Cost: ¥11,876,543.21 | Loss: 234.56 kW
|
||||
|
||||
推荐方案: High Current (Rotational) (默认)
|
||||
```
|
||||
|
||||
## 许可证
|
||||
|
||||
Reference in New Issue
Block a user