Files
SystemSimulationApp/AmesimModels/test_mql

test_mql

本目录记录从 AMESim 模型 test_mql.ame 迁移到 PythonModels 的当前状态。

模型命名

  • 仓库内模型名:test_mql
  • Python 系统类:TestMqlSystem
  • Python 配置解析类:TestMqlConfig
  • Python 运行入口:PythonModels/scripts/run_test_mql.py

源文件

  • AMESim 源模型:AmesimModels/test_mql.ame
  • 该 .ame 文件本质是一个 tar 包,内部包含 test_mql_.cir、test_mql_.param、test_mql_.modelinfo、test_mql_.sim 等文件。

当前新增文件

  • PythonModels/systems/test_mql.py

    • 记录 AMESim 组件清单、全局参数、子模型分布、连接拓扑和 AMESim modelinfo 状态数。
    • 当前是结构化 Python 迁移骨架,不是完整 AMESim 物理方程复刻。
  • PythonModels/systems/test_mql_config.py

    • 提供 TestMqlConfig.from_amesim_specs()。
    • 负责把 AMESim 全局参数和组件参数解析成后续可用的 Python 配置对象。
    • 已支持常量、全局参数引用、四则运算、括号和 AMESim 风格的 ^ 指数表达式。
    • 非数值文本会保留为 None,后续按具体子模型显式处理。
  • PythonModels/scripts/run_test_mql.py

    • 提供独立运行入口。
    • 当前输出结构摘要和基础序列,后续逐步接入真实物理方程。
  • tests/test_test_mql_structural.py

    • 保护组件数、连接数、状态数、全局参数和关键子模型计数。
  • tests/test_test_mql_config.py

    • 保护全局参数解析、AMESim 表达式解析、按子模型分组和典型组件参数解析。

当前提取结果

  • 组件数:117
  • 连接数:84
  • AMESim 连续状态数:132
  • AMESim 离散状态数:24
  • 全局参数:D1=20、D2=20、D3=14、P0=153、Pdq=1、V=15、cf=0.45

主要 AMESim 子模型分布:

  • F000: 16
  • PNPL01: 16
  • MECMAS21: 10
  • PNRP17: 8
  • LSTP00A: 8
  • PNCH012: 8
  • PNOR001: 8
  • PN3NODE2: 8
  • P4NODE2: 8
  • PNVO001: 8
  • STEP0: 8
  • PNCH023: 4
  • LMECHN1: 2
  • FORC: 2
  • UD00: 2
  • PNGD00: 1

验证方式

python3 -m py_compile PythonModels/systems/test_mql.py PythonModels/systems/test_mql_config.py PythonModels/scripts/run_test_mql.py
python3 -m PythonModels.scripts.run_test_mql
python3 -m unittest discover -s tests -t .

当前测试覆盖的是结构和配置解析,不代表已经完成 AMESim 物理结果复刻。

后续方向

后续继续补模型时,保持只新增或修改 test_mql 相关代码,不改旧的 testmodel。建议按下面顺序逐步实现真实物理方程:

  1. PNGD00:气体属性。
  2. PNCH023 / PNCH012:固定气室和变容气室。
  3. PNOR001 / PNVO001:固定孔口和可变孔口。
  4. PNL0001 / PNL0002 / PNL0003 / PNL00R:管路阻容连接。
  5. PNRP17 / MECMAS21 / LSTP00A / LMECHN1:气动活塞、机械负载和端止动。