Files
SystemSimulationApp/docs/other/八路循环信号平台与Amesim对比-2026-09-14.md

11 KiB
Raw Permalink Blame History

八路循环信号:参数核对、耗时与曲线对比

2026-09-14,Windows,分支 system-optimization。

结论

先核对参数,再将两个 UD00 都设为循环并统一运行设置。最终测试副本的 157 个元件、178 条逐端口连接、1,092 项公开参数均匹配,另有 1,015 项图纸参数与 Amesim 实际运行参数表交叉核验通过。

两边均连续三次完成 50 秒。平台纯求解墙钟时间中位数 9.133 秒;平台原生进程完整运行 10.660 秒,Amesim 原生进程完整运行 6.816 秒,按此进程口径平台约慢 1.56 倍。平台通过真实 HTTP 流式接口提交和接收结果,完整请求中位数为 14.593 秒。

曲线总体变化趋势相近,但不能验收为全部一致。 循环切换采样点存在左右分支差异;起始快速变化阶段还有压力、温度差异,而且将双方误差限收紧到 1e-10 后仍然存在。

1. 仿真前参数检查

本轮来源为用户指定的当前八路默认文件:

来源 仿真前 SHA-256
tests/data/test_mql.ame 251b2f17c24ea02c1ab48f9f441a0ec38e7920627ea7e6870392326424a517c5
tests/data/test-mql-8-corrected.json 60ed16c71b72be4ae71ca7980f4f8cdcdf6b4c4c4c8950863c2390960b71ced4

原模型公开物理参数和连接没有差异,两个 UD00 都为非循环。原运行设置有三项差别:JSON 为 10 秒、输出间隔 0.01 秒,Amesim 为 50 秒、0.05 秒;平台默认相对误差限 1e-8,Amesim 容差 1e-7。

在测试副本中调整如下,并在开始求解之前重新通过完整参数、连接和时间设置审计:

设置 平台 Amesim
起止时间 0–50 s 0–50 s
输出间隔 0.01 s 0.01 s
最大积分步长 1e30 s 1e30 s
误差限数值 rtol=1e-8 tolerance=1e-8
运行方式 CVODE BDF 标准变步长积分器;API integ_method=0
循环开关 两个 UD00 均为 1 两个 UD00 均为 2

循环开关按各自枚举的语义转换,而非直接比较数字。两个信号周期都是 10.8 秒:

  • amesim_ud00_1 / piecewiselinear:前 0.8 秒为 1e17,后 10 秒为 49000。
  • amesim_ud00_2 / piecewiselinear_1:前 0.8 秒为 1e12,后 10 秒为 0。

统一的是公开物理输入、连接和上述运行设置,不是两套求解器的全部内部行为。Amesim 保留 mixed error、standard solver、启用 optimized solver;平台保留生成的逐状态绝对误差限。相同的 1e-8 数字不等于完全相同的误差权重。按用户此前要求,仅记录 Amesim 运行选项,不把其内部算法直接认定为 CVODE BDF。

证据:test/mql8-cyclic-20260914/preflight/audit.json、aligned-audit/audit.json、ame-settings.json。原始 AME/JSON 在本轮结束时 SHA-256 均未改变。

2. 执行方式和耗时

Amesim 使用本机 2404 官方 API 打开副本、设置参数、生成程序并保存;随后独立运行其生成的模型程序。平台启动一个独立临时 FastAPI 实例,走 JSON→XML→/api/system-xml/simulate-stream 正式路径,使用本轮修复后的 C 封装。该临时服务已结束,未替换用户运行中的服务。

两边各串行运行三次,没有互相并发竞争计算资源。平台三次均命中模型编译缓存。主测均为 1e-8;后文 1e-10 仅用于精度诊断,不混入速度中位数。

计时字段 第 1 次 第 2 次 第 3 次 中位数
平台 solveSeconds:纯求解墙钟 9.368 s 9.133 s 9.058 s 9.133 s
平台 solveCpuSeconds:纯求解 CPU 9.344 s 9.219 s 9.078 s 9.219 s
平台 processWallSeconds:原生进程及结果读取 10.901 s 10.660 s 10.594 s 10.660 s
平台 HTTP 请求墙钟 14.593 s 14.653 s 14.291 s 14.593 s
Amesim 原生进程墙钟 6.886 s 6.816 s 6.649 s 6.816 s
Amesim 日志 Total CPU time 4.406 s 4.438 s 4.250 s 4.406 s

CPU 字段之比约 2.09;但 Amesim 的日志总 CPU 字段与平台明确排除了初始化/最终结果投影的纯求解 CPU 字段不保证边界完全一致,因此只作辅助观察。原生进程墙钟之比约 1.56;两边结果格式和输出数量也不同,不能把全部差额认定为积分器内部开销。

平台完整请求的额外成本可直接看到:缓存命中时仍有约 2.22 秒构建检查/预处理;原生进程时间比纯求解约多 1.53 秒;另有后端组装及本地 HTTP 结果传输。此次平台返回完整 1,784 个输出,JSON 体积较大。HTTP 计时包含请求至接收完全部流式响应,不含客户端随后解析大 JSON、浏览器 JavaScript 或绘图,所以不能称为网页按钮到绘图完成时间。

平台三次接受步均为 15,037,均记录同时间成功返回 12 次、最多连续 6 次;最终到达 50 秒,没有再次出现 10.8 秒提前终止。

3. 曲线结果

比较 158 条关键曲线:质量位移/速度、气腔和管路压力/温度、8 路接触力/间隙及信号。由参数审计确定对应元件,按物理单位转换,例如 Amesim 表压加 101300 Pa 对应平台绝对压力,间隙 mm 转为 m;没有通过交换元件或改变符号来拟合曲线。

平台返回 5,010 个时刻,Amesim 为 5,002 个时刻。双方具名保存值均有限;对比使用 0~50 秒的 5,001 个共同 0.01 秒网格点,线性插值。额外事件点及浮点边界的处理并不相同,原始文件全部保留。

完整区间的最大差

物理量/曲线 最大绝对差 发生时刻
第 1 路接触力 amesim_lstp00a_1.force 1,285,518 N 32.4 s
全部 8 路接触力的最差项,第 7 路 1,285,518 N 32.4 s
管路压力 amesim_pnl0002_6.p 163,286 Pa 0.01 s
管路温度 amesim_pnl0001_13.T 105.215 K 0.01 s
接触间隙最差项,第 2 路 2.703e-8 m 44.19 s

不能只报“趋势重合”而省略上表的大差异。

循环切换点为什么有尖峰差异

在共同网格 t=32.4 s,两边取到了不同的信号分支:平台第一个信号为 49000,Amesim 插值值约为 1e17。这里正好是第三个循环边界;浮点时间、事件点及保存采样的先后约定影响取到跳变前还是跳变后的值。离开切换点前后 0.02 秒后,所有对照信号完全相同,说明不是周期长度或幅值参数仍不一致。

接触力对此特别敏感:本模型 kcont=rcont=1e11,32.4 秒处两边接触间隙接近,但 Amesim 相连两质量的相对速度约为 1.2855e-5 m/s,平台接近零,仅此阻尼项就对应约 1.2855e6 N 的力。因而微小速度和切换取样侧的差别,会被很大的阻尼放大为力尖峰。这里是对保存结果的解释,不等于已证明某一方的尖峰代表真实物理脉冲。

保留全部初始阶段、只避开每个 UD00 切换点前后 0.02 秒,8 路接触力最大差约 5,129 N。进一步仅看 t>=0.1 s 且避开上述窗口,接触力最大差 32.12 N;第 1 路在 50 秒时的差为 −28.79 N。这些筛选结果用于定位差异,不能代替完整区间验收。

温度和压力差异并未随容差收紧消失

补做两边 1e-10 的 50 秒诊断:

项目 双方 1e-8 最大差 双方 1e-10 最大差
上述管路压力 163,285.92 Pa 163,359.89 Pa
上述管路温度 105.2145 K 105.2373 K
第 7 路接触力 1,285,518.34 N 1,288,259.73 N

对压力最差曲线,平台自身收紧容差的变化最大约 89.87 Pa,Amesim 自身变化约 15.89 Pa;温度最差曲线分别约 0.02356 K 和 0.00106 K,远小于双方之间的 105 K。因此这部分差异主要不是普通积分误差限偏松,后续应核对相应状态/物性公式、有效范围之外的处理和初始化后的快速压缩过程。

本次 Amesim 日志实际报告:初始快速过程的氦气温度超出状态方程及残余热物性有效上限 1500 K,日志中出现约 9609 K 的查询;保存曲线也有约 5174 K 的管内温度。Amesim 还报告 8 个 PNCH012 容积被最小容积 cvol0/100=150 cm³ 限制。这些都是当前匹配模型实际进入的状态,需要在后续公式对照中保留,不能因为双方均正常终止就认定该工况的物性精度已经得到保证。本轮没有进一步认定某个具体物性函数为唯一根因。

巨大位移的特殊质量块

amesim_mecmas21_9 是质量 100 kg、无摩擦、无限位的质量块,受到本模型量级很大的重复激励。两边都得到约 1.12e17 m 的最终位移。默认容差下该位移的绝对差约 1.50e10 m,相对该量级约 1.34e-7;容差收紧后绝对差降到约 2.66e8 m。这部分不能与普通活塞的毫米级位移混在同一绝对误差指标里,也不能忽略这项极端模型状态。

排除该质量块,在 t>=0.1 s 且避开切换窗口后,其他质量位移最大差约 2.19e-5 m,速度最大差约 2.43e-4 m/s。完整逐曲线指标均见 comparison.json。

循环模型对比

4. 后续方向与本轮范围

这次已经确认:参数与连接匹配、两个循环信号配置正确、两边都完成 50 秒、外层提前终止问题没有复发。仍未完成的“一致性”包括切换点采样侧统一,以及高温快速过程的压力/温度差异解释。应先完成这两项,再把此模型作为等精度性能基准。

本轮没有修改生产求解器、组件公式或两个可调环境参数,也没有据此开展稀疏矩阵优化。Amesim 首次重新编译遇到既有 GCC CreateProcess 故障,另一次 API 会话缺少模型库搜索路径;补齐该会话使用的既有库路径后编译完成,未修改机器工具链配置。这些发生在正式计时之前。

5. 交付文件与证据

所有本机工件位于 test/mql8-cyclic-20260914/:

  • amesim/test_mql.ame:循环、50 秒、0.01 秒采样、容差 1e-8 的模型副本,已通过官方 API 保存最新仿真结果;归档 .results 的 SHA-256 与本次实际运行结果一致。
  • test-mql-8-cyclic.json:参数对应的平台工程,可直接导入;rtol 由当前平台后端默认值提供。
  • platform-curves.csv、amesim-curves.csv:158 条曲线在共同网格上的单位统一数据。
  • comparison.png / .svg:总体及局部曲线。
  • comparison.json、refinement-comparison.json:完整指标及严格容差诊断。
  • platform-timings.json、ame-timings.json:三次计时;platform-result-event.json、ame-run/ 保留原始输出。
  • prepare_ame.py、run_comparison.py、analyze.py、refine.py、analyze_refinement.py:本机复现脚本。

原始 tests/data 两份默认输入保持不变;循环测试使用交付副本。测试目录为 Git 忽略目录,报告保存在 docs/other/。