# 海上风电场集电系统设计优化工具 (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 报告。 ## ⚖️ 许可证 本项目仅供工程学习、研究和初步设计评估使用。详细计算应以专业设计院规范为准。