Files
windfarm/README.md
dmy a5b46529da fix: 修复打包后exe程序在无控制台模式下运行时的uvicorn日志配置错误
通过检测sys.frozen判断运行环境,只在打包后的exe程序中禁用日志配置,
避免AttributeError: 'NoneType' object has no attribute 'isatty'错误。
普通Python运行环境保留完整日志功能,方便调试。
2026-01-05 09:52:51 +08:00

78 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 海上风电场集电系统设计优化工具 (Wind Farm Collector System Optimizer)
一个用于设计和优化海上风电场集电系统拓扑的综合工具。支持多种先进算法,能够根据风机坐标、功率以及海缆规格,自动生成投资成本最低、损耗最小的设计方案。
## 🌟 主要功能
- 🖥️ **交互式 Web 界面**:基于 NiceGUI 开发,支持文件上传、实时日志、方案对比和可视化。
- 🌊 **多种布局生成**:内置模拟数据生成器,支持规则网格和随机分布布局。
- 🔌 **先进设计算法**
- **MST (Minimum Spanning Tree)**:无容量约束基准方案。
- **Capacitated Sweep (Base)**:基础扇区扫描分组。
- **Rotational Sweep**:全局最优起始角度旋转扫描优化。
- **Esau-Williams**:经典启发式算法,在距离与容量间寻找最优平衡。
- 📊 **智能方案对比**:自动运行三大场景(标准方案、含可选电缆方案、限制最大截面方案)并对比结果。
- 📋 **数据校验与保障**:严格校验输入数据的有序性及电缆配置规则。
- 📁 **多格式导出**
- 自动生成 CAD 图纸 (`.dxf`),按电缆规格分层并着色。
- 导出详细的 Excel 对比报告及单方案电缆清册。
- 支持一键打包导出所有方案压缩包 (`.zip`)。
## 🛠️ 安装依赖
本项目使用 `uv``pip` 管理环境。推荐安装依赖:
```bash
pip install numpy pandas matplotlib scikit-learn scipy networkx ezdxf nicegui openpyxl
```
## 🚀 使用方法
### 1. 启动图形化界面 (推荐)
运行以下命令启动 Web 界面,程序将自动在浏览器中打开:
```bash
python gui.py
```
*注:程序默认监听 8080 端口,若被占用将自动尝试后续可用端口。*
### 2. 命令行模式
```bash
python main.py --excel your_data.xlsx
```
## 📝 输入数据规范 (Excel)
为了确保计算结果的准确性,输入 Excel 文件应包含以下两个 Sheet
### 1. Coordinates (坐标)
| Type | ID | X | Y | Power | PlatformHeight |
|------|----|---|---|-------|----------------|
| Substation | Sub1 | 4000 | -800 | 0 | 0 |
| Turbine | 1 | 0 | 0 | 8.0 | 25 |
| ... | ... | ... | ... | ... | ... |
### 2. Cables (电缆)
**必须遵守以下规则:**
- **单调递增性**:电缆必须按截面从小到大排列,且对应的额定载流量也必须严格递增。
- **可选电缆规则**
- `Optional` 列标记为 'Y' 的电缆最多只能有一条。
- 若存在可选电缆,它必须是列表中截面最大的一条。
## 📈 场景说明 (Scenarios)
1. **Scenario 1 (Standard)**:仅使用非可选(标准)电缆进行优化。
2. **Scenario 2 (With Optional)**:包含标记为 'Y' 的大型电缆,适用于尝试增加单回路容量的场景。
3. **Scenario 3 (No Max)**:排除最大截面电缆,测试在电缆供应受限时的最优拓扑。
## 📂 输出文件说明
- **Excel 报告**`[文件名]_result.xlsx` 包含所有方案的总览及详细连接清单。
- **CAD 图纸**`design_[方案名].dxf` 包含分层分色的拓扑图。
- **全部方案**`[文件名]_result.zip` 包含所有图纸及 Excel 报告。
## ⚖️ 许可证
本项目仅供工程学习、研究和初步设计评估使用。详细计算应以专业设计院规范为准。