# myCDE **Repository Path**: openminds/mycde ## Basic Information - **Project Name**: myCDE - **Description**: 分析氢氧反应下连续爆震发动机(CDE, Continuous Detonation Engine)不同理想循环的热效率,以 Brayton 循环(传统燃气轮机)作为对比基准。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: cde, MCP ## README # mycde — 连续爆震发动机理想循环分析 ## 项目目标 分析氢氧反应下连续爆震发动机(CDE, Continuous Detonation Engine)不同理想循环的热效率,以 **Brayton 循环**(传统燃气轮机)作为对比基准。 ## 物理模型 所有循环均基于以下简化假设: - 工质为理想气体,比热比 `γ = 1.4` 恒定 - 燃烧过程由 Hugoniot 关系描述 - 压缩与膨胀过程为等熵过程 - 冷却过程为等压过程 热力学参数由当量比 `phi` 通过 `thermo_Hy_Ox(phi)` 生成: - `γ`: 比热比(固定 1.4) - `R`: 混合气体常数,`R = 8314·(2φ+1) / (4φ+32)` (J/(kg·K)) - `Q`: 反应热,`Q = 483.6·φ / (4φ+32) × 10⁶` (J/kg) ## 四种循环对比 | 循环 | 发动机类型 | 过程链 | 关键特征 | |------|-----------|--------|---------| | **Brayton** | 缓燃/燃气轮机 | 等熵压缩 → **等压燃烧** → 等熵膨胀 → 等压冷却 | 燃烧前后压力不变,缓燃基准 | | **Humphrey** | 脉冲爆震 | 等熵压缩 → **等容燃烧** → 等熵膨胀 → 等压冷却 | 燃烧前后体积不变,爆震基准 | | **Fickett-Jacobs** | 理想爆震 | 等熵压缩 → **Rayleigh 燃烧 (CJ点)** → 等熵膨胀 → 等压冷却 | 沿 Rayleigh 线燃烧至 CJ 点 | | **ZND** | 完整爆震 | 等熵压缩 → **激波压缩 (von Neumann 峰值)** → **Rayleigh 燃烧 (CJ点)** → 等熵膨胀 → 等压冷却 | 包含激波和有限速率燃烧 | ### 各循环过程示意 ``` Brayton: 1 ──等熵压缩──→ 2 ──等压燃烧──→ B3 ──等熵膨胀──→ B4 ──等压冷却──→ 1 Humphrey: 1 ──等熵压缩──→ 2 ──等容燃烧──→ H3 ──等熵膨胀──→ H4 ──等压冷却──→ 1 Fickett-Jacobs:1 ──等熵压缩──→ 2 ──Rayleigh燃烧──→ F3 ──等熵膨胀──→ F4 ──等压冷却──→ 1 ZND: 1 ──等熵压缩──→ 2 ──激波压缩──→ Z3 ──Rayleigh燃烧──→ F3 ──等熵膨胀──→ F4 ──等压冷却──→ 1 ``` ## 项目结构 ``` mycde/ ├── pyproject.toml # uv 项目配置 ├── src/mycde/ # 核心包 │ ├── thermo.py # thermo_Hy_Ox(): 热力学参数生成 │ ├── thermostate.py # 热力学状态类 │ ├── hugoniot.py # Hugoniot 曲线计算 │ ├── chapman_jouguet.py # CJ 爆轰点计算 (Rayleigh-Hugoniot 交点) │ ├── von_neumann.py # von Neumann 峰值计算 │ ├── compute_detonation.py # CJ 爆轰马赫数与爆速 │ ├── brayton_cycle.py # Brayton 循环 │ ├── humphrey_cycle.py # Humphrey 循环 │ ├── fickett_jacobs_cycle.py # Fickett-Jacobs 循环 │ ├── znd_cycle.py # ZND 循环 │ ├── plot_utils.py # p-v 与 T-s 图绘制 │ └── mcp_server.py # FastMCP 服务 (MCP 协议接口) ├── scripts/ │ └── run_all.py # 主入口: 单 phi 运行全部循环 ├── examples/ │ ├── cycle_demo.py # 固定工况下各循环效率与图形输出 │ └── cj_analysis.py # 不同 phi 下 CJ 爆轰参数分析 └── output/ # 图片输出 ``` ## 快速开始 ### 环境配置 ```bash cd mycde uv sync # 创建虚拟环境并安装依赖 .\.venv\Scripts\activate # 激活环境 (Windows) uv pip install -e . # 可编辑安装 ``` ### 运行 ```bash # 运行所有循环(phi=0.5) .\.venv\Scripts\python scripts\run_all.py # 示例:固定工况循环对比 .\.venv\Scripts\python examples\cycle_demo.py # 示例:CJ 爆轰参数分析 .\.venv\Scripts\python examples\cj_analysis.py ``` ## 计算结果(phi = 0.5) ``` 初始条件: p1 = 101325 Pa, T1 = 300 K, psi = 2.0 循环 效率 净功 (J/kg) ────────────────────────────────────────────── Brayton 50.0% 3,555,658 Humphrey 68.4% 4,866,083 Fickett-Jacobs 70.8% 5,037,613 ZND 81.3% 9,037,232 ``` - **ZND 循环** 效率最高,因为激波压缩 + Rayleigh 燃烧使更多热能转化为功 - **Humphrey 循环** 优于 **Brayton 循环**,等容燃烧相比等压燃烧能产生更高的峰值压力 - **Fickett-Jacobs 循环** 略优于 Humphrey,CJ 燃烧的 Rayleigh 线提供了更大的膨胀功 ## CJ 爆轰参数(随当量比变化) | phi | Mach | D (m/s) | |-----|------|---------| | 0.1 | 4.91 | 1,766 | | 0.5 | 8.27 | 3,750 | | 1.0 | 9.52 | 5,135 | 爆轰马赫数和爆速随当量比增加而单调递增,在化学当量比附近趋于饱和。 ## MCP 服务 mycde 提供基于 [FastMCP](https://gofastmcp.com) 的 MCP 服务,可将循环分析能力暴露给 AI 客户端(如 Claude Desktop、Trae 等)。 ### 启动方式 ```bash # stdio 模式(供本地 MCP 客户端使用) .\.venv\Scripts\mycde-mcp # 或以 Python 模块方式运行 .\.venv\Scripts\python -m mycde.mcp_server ``` ### 暴露的 Tools | Tool | 参数 | 功能 | |------|------|------| | `get_thermo_params` | `phi` | 获取 H₂-O₂ 热力学参数 γ, R, Q | | `compute_cycle` | `cycle_name`, `phi`, `p1`, `T1`, `psi` | 运行指定循环,输出特征点 + 效率 | | `compute_detonation_params` | `phi`, `p0`, `T0` | 计算 CJ 爆轰马赫数 Ms 和爆速 D | | `compare_cycles` | `phi`, `p1`, `T1`, `psi` | 全部 4 个循环同时运行并排名 | ### 暴露的 Resources | Resource URI | 内容 | |---|---| | `mycde://cycles/list` | 所有循环列表与过程描述 | | `mycde://methods/about` | 方法学与假设说明 | | `mycde://cycle/{name}` | 单个循环的详细信息 | ### 暴露的 Prompts | Prompt | 用途 | |--------|------| | `analyze_cycle(cycle_name)` | 引导 AI 逐步分析单个循环 | | `analyze_comparison()` | 引导 AI 对比全部 4 个循环 | ### MCP Client 配置示例 ```jsonc { "mcpServers": { "mycde": { "command": "uv", "args": ["run", "--directory", "E:\\myWorkspace\\mycde", "mycde-mcp"] } } } ``` ## 输出文件 每个循环生成 **p-v 图** 和 **T-s 图**,包含: - 分段着色曲线(蓝=压缩,橙=燃烧,紫=激波,绿=膨胀,灰蓝=冷却) - 特征点标注(含 p, v, T, s 数值) - 循环效率标注 ## 依赖 - Python ≥ 3.10 - NumPy ≥ 1.21 - Matplotlib ≥ 3.4 - FastMCP ≥ 3.0(可选,仅 MCP 服务需要) - 包管理: uv