高温氦气物性补全;三通四通能量计算bug修正

This commit is contained in:
ljz committed 2026-09-15 17:57:20 +08:00
1 parent 6fc9afe41d
commit 2b07d996cf
133 files changed
+5230 -253310

No files matched your search

+20 -64
View File
@@ -1,76 +1,32 @@
# AMESim 氦气 Peng-Robinson 介质模型
# Amesim 氦气 Peng–Robinson 介质模型
## 本地资料依据
平台公开组件 `amesim_helium_medium` 的 `property_model=0` 对应 Amesim `fluidType=12`、`eosType=6`。`gi` 为气体引用索引。实际物性在 [native/components/modules/properties.c](../../native/components/modules/properties.c) 中计算;Python 介质类仅保存编译期身份和参考常数,不是另一个物性求值器。
仓库中已经包含该模型所需的说明和算例数据:
## 状态方程与热量学
- `tests/data/AmesimModels/help/pneumatic_library_manual/03_gas_properties.pdf` 第 3.3 节
给出 AMESim Pneumatic Library 的气体物性层级和 Peng-Robinson 状态方程。
- `tests/data/AmesimModels/help/pneumatic_library_manual/lib_pneumatic.pdf` 第 87--88 页
给出 293.15 K、1 barA 下的氦气参考物性。
- `tests/data/AmesimModels/test_mql.ame` 中的 `PNGD00` 实例明确选择
`fluidType=12`(helium)和 `eosType=6`(Peng-Robinson)。
- `app/simulation/core/peng_robinson.py` 已实现纯物质 Peng-Robinson 方程,
并定义了 `HELIUM_PR`。
使用摩尔体积形式的 Peng–Robinson EOS,气相取最大物理解。常数来自 Amesim 2404 `libpn/data/nasa_properties/helium_eos.data`:`R_u=8.31446261815324 J/(mol·K)`、`M=0.004002602 kg/mol`、`Tc=5.1953 K`、`Pc=227460 Pa`、偏心因子 `−0.382`。
AMESim 手册中的 Peng-Robinson 形式为:
热量学包含理想项和 PR 剩余项:`h=h0(T)+h_departure(p,T)`,`u=u0(T)+u_departure(T,rho)`,`u0=h0−R*T`。储气状态反解、p/h 温度反解及等熵系数使用同一套热物性。
```text
p = r T / (v - b) - a alpha(T) / (v^2 + 2 b v - b^2)
a = 0.457235583 r^2 Tc^2 / Pc
b = 0.07779607 r Tc / Pc
alpha(T) = [1 + m (1 - sqrt(T/Tc))]^2
m = 0.37464 + 1.54226 omega - 0.26992 omega^2
```
2026-09-15 补齐的温度分段:
当前 Python EOS 使用等价的摩尔体积形式,并通过最大物理解选择气相根。
| 项目 | Amesim 数据温区 | 当前实现 |
| --- | --- | --- |
| 理想 Cp、h | 200–1000、1000–6000、6000–20000 K | 前两段 Cp/R=2.5;第三段 NASA 2002 多项式,衔接处 Cp 和 h 连续 |
| 动力黏度 | 200–1000、1000–5000、5000–15000 K | 三段 NASA 96 公式,1000/5000 K 处连续修正 |
| 表外热量学 | 超过 20000 K | 按 Amesim 的二次 Cp 延拓及其焓积分处理,不能直接无限延长高阶多项式 |
| 表外黏度 | 超过 15000 K | 延用末段并保持边界修正,与 Amesim 对照一致 |
## 首版参数
低温参考量 `cp_ref` 和 `nasa_cp_over_R` 只描述低温段;它们不是全温区比热。黏度已不采用 Sutherland 近似。
| 参数 | 数值 | 本地依据 |
| --- | ---: | --- |
| 摩尔质量 | `0.004002602 kg/mol` | `HELIUM_PR` |
| 临界温度 | `5.1953 K` | `HELIUM_PR` |
| 临界压力 | `227460 Pa` | `HELIUM_PR` |
| 偏心因子 | `-0.385` | `HELIUM_PR` |
| 定压比热 | `5193 J/(kg*K)` | AMESim 手册表 11.1 |
| 定容比热 | `3116 J/(kg*K)` | AMESim 手册表 11.1 |
| 比气体常数 | 由 `R/M` 计算,约 `2077.26 J/(kg*K)` | EOS + 手册表 11.1 |
| 293.15 K 黏度 | `1.96e-5 Pa*s` | AMESim 手册表 11.2 |
| Sutherland 常数 | `79.4 K` | 已迁移 `test_mql` 管路近似 |
## 有效域与验证边界
手册参考点还给出 `rho=0.164 kg/m3`、`gamma=1.667`、`Z=1.0005`。
Amesim EOS 文件标记的有效温度为 **2.2–1500 K**。高温 NASA 理想热量学/输运数据存在,并不意味着 PR EOS 在相同高温也经过物理有效性验证;Amesim 自身会给出域外警告并继续计算。本次实现复现这些数值及延拓行为,没有宣称扩大 EOS 的适用范围。
## 组件与索引映射
当前组件求解路径使用密度、焓、内能、比热、黏度与等熵系数。没有新增平台尚未使用的熵或导热系数接口。
公开介质组件使用:
直接调用 Amesim 2404 官方库获取了 108 个固定温压状态作为独立回归基准,覆盖 200–30000 K、101300–250000000 Pa,各分段边界及其两侧。测试同时检查 p/h 温度反解、质量/内能状态重构、热力学导数和缓存路径。
```text
modelType = amesim_helium_medium
gi = 画布自动分配的 1..99 引用索引
property_model = 0 (Peng-Robinson,本应用内的稳定编号)
fluidType = 12 (AMESim 元数据)
eosType = 6 (AMESim 元数据)
```
`property_model` 与 AMESim 的 `eosType` 有意分离:前者是单个介质组件内部的
下拉选项编号,后者用于保留 AMESim 原模型语义。以后给氦气增加其他计算方法时,
只需扩展氦气的物性模型注册表。
源归档的 `gasName` 缓存文本与结构字段存在冲突,因此介质识别以
`fluidType=12`、`PNGD_HELIUM` 和组件标签为准,不使用 `gasName` 猜测。
## 首版计算边界
首版公共组件实现以下闭合:
- `rho(p,T)`、`p(rho,T)` 和控制容积压力使用 Peng-Robinson EOS;
- `u=cv*T`、`h=cp*T`,温度反解使用同一组定比热;
- 黏度使用以 293.15 K 为参考点的 Sutherland 近似;
- `gi` 注册、气动连通域一致性、XML/JSON 保存均复用现有介质机制。
这是一版可运行的“PR 压力--密度闭合 + 定比热热量学”,不是 AMESim 真实气体
物性的完全复刻。AMESim 的 `Cp/Cv/h/mu/rho/Z` 接口均可随 `(p,T)` 变化,而当前
`GasMedium` 的焓、内能和比热接口只有温度参数。后续若要接入完整残余焓、
压力相关比热和真实气体临界流,应先扩展为状态相关物性接口,再调整气室、管路和
孔口公式。
- [回归测试](../../tests/test_native_helium_high_temperature.py)
- [Amesim 独立数值基准](../../tests/data/amesim_helium_high_temperature_properties.json)
- [修复证据、误差与整模型对照](氦气高温物性补齐与Amesim对照-2026-09-15.md)