Files
SystemSimulationApp/docs/amesim-component-migration-matrix.md
T

8.1 KiB
Raw Blame History

AMESim 子模型公开组件迁移矩阵

状态:规划中
适用模型:AmesimModels/test_mql.ame / PythonModels.systems.test_mql
配套规范:component-model-authoring-spec-v1.md

目标

本文档把 test_mql 中的 AMESim 子模型族拆成可执行的迁移批次。它不是组件注册清单;只有完成公开模型契约、方程实现、最小 XML 编译/仿真测试后,子模型才能加入某个 library.py 的 models 清单并出现在前端组件库中。

当前原则:

  • 不把现有固定拓扑 TestMqlSystem 整体注册为公开拖拽组件。
  • 不把机械、信号、事件元件提前伪装成可由当前气动求解器仿真的公开组件。
  • 可先公开当前 app.simulation 求解链路能承载的气动元件:储能、阻性、孔口、三通/四通、准稳态管段。
  • 对 AMESim 精确语义尚未复刻的元件,允许先做内部模型或文档化候选,不能在目录中标记为完成。

当前求解器能力边界

app.simulation 当前支持:

  • 物理域:pneumatic。
  • 端口变量:p、m_flow、h_outflow。
  • 流量符号:m_flow > 0 表示流入当前组件。
  • 网络方程:连接压力相等、连接流量和为零、组件压力-流量残差、stream 焓传播。
  • 动态:半显式 ODE,动态组件提供质量和内能状态导数。
  • 暂不支持:机械端口、信号端口仿真、事件系统、一般高指数 DAE、AMESim 气体定义组件对全局 medium 的动态切换。

子模型族矩阵

AMESim 子模型 数量 AMESim 角色 当前公开状态 建议目标 先决条件 / 限制
PNCH023 4 固定容积气室,带换热 候选公开 amesim_pnch023,storage 可基于 ThermodynamicVolumeComponent;需按 AMESim cvol/extemp/kth/sth/gi 复核质量、能量、换热方程。
PNCH012 8 变容气室,带换热 参数化第一版公开 amesim_pnch012,storage 已将 AMESim vol1..4/dvol1..4 外部体积输入映射为 SI 参数,支持固定/预设体积场景;实时机械耦合仍需后续机械域或输入端口协议。
PNOR001 8 常系数气动孔口 候选公开 amesim_pnor001,flow 可基于 AlgebraicComponent;需按 AMESim cq/area/Cv/Kv/flowset/gi 复核双向流、零压差正则化和单位换算。
PNVO001 8 信号调制气动孔口 第一版公开 amesim_pnvo001,flow 已接入标量信号端口 res,可由 amesim_step0 驱动开度;精确事件语义和 AMESim baseline 仍留后续修模。固定开度变体 amesim_pnvo001_fixed 继续保留。
PN3NODE2 8 三端气动节点,压力温度由 port 2 固定 候选公开 amesim_pn3node2,junctions 当前 Tee 是通用三通近似;AMESim port 2 参考温压语义和 stream 混合需单独测试。
P4NODE2 8 四端气动节点,压力温度由 port 2 固定 候选公开 amesim_p4node2,junctions 需要新增四端 junction 基类/模型;复核 port 2 参考温压和多支路混合。
PNL00R 4 管路纯阻性摩擦段 候选公开 amesim_pnl00r,flow 可基于准稳态阻性管;需按 AMESim PNL00R 参数和摩擦公式复核。
PNL0001 20 C-R 动态管路 第一版公开 amesim_pnl0001,flow 已按公开契约接入两状态管内容积 + port 1 摩擦残差 + mode 2 换热项;仍需后续按 AMESim baseline 复核 pn2pipefr_ 和 mode 1 多方语义。
PNL0002 8 R-C-R 动态管路 第一版公开 amesim_pnl0002,flow 已按公开契约接入中心两状态容积 + 两端半长摩擦残差 + mode 2 换热项;仍需后续按 AMESim baseline 复核 pn2pipefr_ 和 mode 1 多方语义。
PNL0003 8 C-R-C 动态管路 第一版公开 amesim_pnl0003,flow 已按公开契约接入两端四状态容积 + 中心摩擦流 + mode 2 换热项;大压差动态闭合和 AMESim baseline 误差仍留后续修模。
PNPL01 16 零气动流源 第一版公开 amesim_pnpl01,boundary 当前实现一端零流边界,只约束端口质量流量为 0;压力源/外部边界语义留后续扩展。
PNGD00 1 氦气气体定义 暂不公开 medium 配置,不是画布物理组件 应映射为系统/介质设置;不能作为普通可连接组件注册。
PNRP17 8 气动活塞与移动体耦合 暂不公开 内部固定算例;后续跨域组件 依赖气动端口和机械端口耦合;需要新增机械域、跨域状态和连接规则。
MECMAS21 10 一维平动质量 第一版公开 amesim_mecmas21,mechanical 已接入一维机械端口 x/v/f、双端质量状态和基本摩擦/限位项,并跑通零力源与信号力源最小 System XML;完整 AMESim 接触/事件语义仍留后续对齐。
LMECHN1 2 动态线性机械节点 暂不公开 后续机械域组件 同上。
LSTP00A 8 弹性接触/端止动 暂不公开 后续机械域组件 依赖机械接触和事件/非光滑力模型。
F000 16 零力源 第一版公开 amesim_f000,mechanical 已作为一端机械零力边界公开,约束端口力为 0。
FORC 2 信号转力 第一版公开 amesim_forc,mechanical 已接入信号输入 res 到机械端口力源,可由 STEP0/UD00 驱动质量组件。
STEP0 8 阶跃信号源 第一版公开 amesim_step0,signals 已接入标量信号输出端口和求解时信号传播;当前是基础阶跃,不含更复杂事件调度语义。
UD00 2 分段线性信号源 第一版公开 amesim_ud00,signals 已接入标量信号输出端口、8 段 start/end/t 参数、循环模式和 System XML signal connection;当前按已转换 PythonModels 语义处理最后一段外推,AMESim baseline 仍留后续复核。
DIRECT 44 直接连接 不注册为组件 System XML Connection 连接不是组件;物理连接必须保持无方向端点语义。

建议迁移批次

批次 1:可进入当前气动求解器的公开组件

优先级最高,但仍需先补 AMESim 公式与测试:

  • amesim_pnor001
  • amesim_pnl00r
  • amesim_pnch023
  • amesim_pn3node2
  • amesim_p4node2

完成定义:每个模型必须有 MODEL_TYPE/MODEL_VERSION/PORTS/PARAMETERS/RESULT_VARIABLES/DISPLAY/create(),并补目录、参数边界、残差、零流量/反向流、最小 XML 编译和短时仿真测试。

批次 2:动态管路

  • amesim_pnl0001:已第一版公开,保留后续 baseline 精修。
  • amesim_pnl0002:已第一版公开,保留后续 baseline 精修。
  • amesim_pnl0003:已第一版公开,保留后续 baseline 精修。

这些模型是 test_mql 对齐工作的核心。当前已先按动态组件契约公开,后续仍需要在固定算例和 AMESim baseline 上复核摩擦、换热、多方模式和大压差动态闭合;不能用准稳态 pipe 替代这些动态管路并宣称等价。

批次 3:信号、事件、机械和跨域组件

  • STEP0:已第一版公开。
  • PNVO001:已第一版公开,保留固定开度变体。
  • UD00:已第一版公开。
  • MECMAS21、F000、FORC:已第一版公开。
  • LMECHN1、LSTP00A、PNRP17

当前已具备一对一标量信号传播和一维机械端口基础闭合;剩余机械/跨域组件仍需要继续设计多端机械节点、接触事件、气动-机械耦合、XML 协议、前端连线兼容和最小闭合系统测试。

下一步执行建议

  1. 先为 AMESim 公开组件建立独立库,例如 app.simulation.components.amesim,不要混入 experimental。
  2. 先只登记一个完成度最高的气动代数组件,例如 PNOR001 或 PNL00R。
  3. 每登记一个模型,都同步补充测试和目录校验,确认 /api/components/catalog、System XML 编译和最小仿真都通过。
  4. 动态管路 PNL0001/2/3、参数化 PNCH012、STEP0、UD00、信号版 PNVO001 和机械基础件 F000/FORC/MECMAS21 已完成第一版公开接入;下一步转向 LMECHN1/LSTP00A/PNRP17 或完整实时耦合。