性能分析器由四个面板组成。
下文将对这些面板进行介绍。
运行统计面板
运行统计面板显示求解器的相关信息。它提供了 “运行统计 ”组件中的所有指标(请记住,您需要在草图上安装该组件)。该工具的主要目的是在运行过程中识别出哪些特定事件会导致仿真速度减慢。
注意: 通过将变量名称拖放到 Simcenter Amesim 草图上,可独立绘制运行统计中显示的任何变量。
现在我们将详细解释该窗格中的每个变量:
CPU time
该信息将用于评估模拟性能,并确定模拟速度减慢的时间。
这是模拟进程的真实 CPU 时间。这意味着它不会受到计算机上同时运行的其他进程的影响。
观察 CPU 时间与仿真时间的对比变化非常有趣。该图将自动显示在运行统计窗格的上部。您可以获得哪些信息?当曲线的斜率增加时,表示仿真速度减慢;当出现一个明显的阶跃时,表示求解器一直在努力求解当时的方程组;当曲线的斜率减小时,表示仿真速度加快。
最后,通过该曲线与虚拟特性曲线(y=x)的位置对比,可以了解模型的实时性能。这里的实时是指 1 秒钟的模拟时间在 1 秒钟内解决。如果 CPU 时间曲线低于特性曲线,则模型比实时速度快;如果高于特性曲线,则模型比实时速度慢。
在上图中,红色曲线为 CPU 时间,绿色曲线为同一时间参考曲线。我们可以看到,在 12 秒之前,模型的运行速度相当快,解算速度高于实时速度。此后,模拟速度减慢。这表明在这之后模型中发生了一些变化。
Elapsed time
这是模拟过程从开始到结束所经过的时间(也称为挂钟时间)。因此,它会受到模拟过程中计算机活动的影响,如果计算机忙于处理其他进程,则该时间可能会大幅增加。通过比较 CPU 时间和已用时间,您可以了解时间是由 Simcenter Amesim 求解器花费的,还是由其他进程花费的。这对模拟模型非常有用。
log 10 of current/minimum/maximum integration step
这些变量会显示在"运行统计"面板的下部,它们分别代表以下内容:
- 求解器在仿真任一时刻的当前积分时间步长
- 最小积分时间步长
- 最大积分时间步长
Simcenter Amesim 的默认求解器采用变步长算法来对仿真模型的微分方程进行积分求解。
当当前积分步长减小时,意味着求解器正在处理模型中的计算难点,此时可以预期仿真速度会变慢。本质上,求解器正在采用极小的时间步长来尝试完成方程求解。
注:
当前积分步长的绘制分辨率受以下两个因素影响:
- "打印间隔"参数的设定值
- 输出离散点时的间断情况
因此,在大多数情况下,曲线可能无法显示求解器实际采用的最小步长值——这些极值可能出现在结果文件记录点之间的任意时刻。此时最小积分时间步长指标就显得尤为重要:该指标会持续记录自仿真启动以来积分步长达到的最小值,且完全独立于打印间隔的设置。本手册第一部分分析的简单示例对此进行了具体说明。
log 10 of minimum/maximum integration step since last print
操作说明:
这些变量可通过拖放操作手动绘制到曲线区或草图区域。如前一节所述,当前积分步长反映的是结果保存时刻的精确积分步长值。
技术特性:
新增变量可帮助您观测在结果保存间隔期间积分步长的变化情况,它们能显示两个打印时刻之间积分步长的变化范围:
- 较宽的变化范围 表明:
▸ 求解器正在进行高负荷运算
▸ 存在多个离散事件
▸ 模型具有强非线性特征 - 较窄的变化范围 则意味着求解过程较为平稳。
在 Simcenter Amesim 中,积分时间步长的计算是自动完成的,作为用户您无需干预此计算过程。但在某些特定情况下,可以设置积分时间步长的最大值。更多信息请参阅文档《TB121_Discontinuity_Handling.pdf》第4节"最大时间步长"的相关说明。该参数可在"运行参数"(Run Parameters)中进行调整。
当前函数调用总次数
当求解仿真模型时,系统会调用各类函数(包括所有子模型例程和积分器调用)。该指标统计仿真期间所有函数调用次数,含:
- 求解器各步骤(成功/失败步骤均计入)
- 雅可比矩阵计算调用
- 数据打印例程调用
当前雅可比矩阵计算总次数
显示BDF求解器所需的雅可比矩阵评估次数。需注意:
- 雅可比计算计算成本极高
- 过高频次可能预示系统数值不稳定(尤其与BDF总步数相比时)
- 正常情况应保持每3次BDF步对应≤1次雅可比计算
- 异常情况可能原因:
- 模型存在结构问题
- 用户自定义子模型中不连续点处理不当
当前处理的不连续点总数
监控要点:
- 高数值会显著降低仿真速度
- 必须定位不连续点来源并评估优化可能性
当前成功步进总数
记录求解器成功完成的步进总次数
单次函数评估平均CPU耗时
模型计算复杂度指标(独立于求解过程):
- 数值越高表示模型计算越复杂
- 高值可能原因:
- 子模型存在难收敛的迭代方案
- 常伴随高雅可比计算次数
- 典型特征:
- 仿真初期会出现短暂高值(模型初始化开销)
- 应用场景:评估用户自定义子模型性能
单步步进平均CPU耗时
求解过程成本指标,反映:
- 成功/失败步进总成本
- 雅可比计算开销
- 全局误差计算与局部不连续处理的容差影响
诊断建议:当该值超过函数评估耗时,可能表明求解过程异常
Adams步进总数
求解器采用的显式系统积分方法(通常视为"简单"积分方案)
BDF步进总数
求解器采用的刚性/振荡/隐式系统积分方案
各阶(1-12)Adams步进数
阶次变化意义:
- 阶次升高:系统易求解(常见于较小容差时)
- 高阶次意味着求解器追求更高精度
- 系统难求解时应优先采用BDF方法
本向量提供按阶次分类的Adams步进统计
各阶(1-5)BDF步进数
诊断提示:
- 当1阶BDF步进占比过高时,通常表明:
- 主模型结构异常
- 某子模型存在缺陷
监控策略建议
常规监测项:
- CPU时间曲线
- 不连续点数量
- 当前/最小积分步长
进阶监测项(用户自定义子模型时需额外关注):
- 上述所有其他统计变量