Amesim中Simulation(仿真库)介绍与方法

2025-08-20

Simulation 库是 Amesim 中一个功能强大却常被忽视的核心库,位于库目录树首位,包含 14 个元件(每个对应唯一子模型),主要用于控制仿真求解、统计运行状态、实现实时交互等,且具有较高运算优先级。由于其元件颜色与信号库相近(可以共用),易被混淆,但掌握其用法能显著提升建模效率与仿真深度。本文将系统介绍该库核心元件的功能与实操场景。

图片

一、统计仿真运行信息:runstats 元件(RSTAT 子模型)

runstats 是 Simulation 库中用于实时统计仿真运行关键参数的元件,无外部端口,放置于模型中即可生效,是性能分析的核心工具,非常常用,仿真卡住时经常用。

图片
1. 核心功能

配合 Amesim “性能分析器”(Performance Analyzer)的 “运行统计(Run statistics)” 模块,可监测 17 项关键变量,帮助定位模型问题(如运算缓慢、卡死报错等)。性能分析器窗口(图 3)中,左侧为变量列表,右侧默认显示CPU 时间曲线积分步长曲线(含当前、最小、最大步长,以 10 为底对数形式展示)。

图片
2. 重点关注变量

无需逐一分析 17 项变量,核心关注以下 8 项(如上图 标注):

  • CPU 时间(①)与运行时间(②)

    前者为 CPU 实际运算时长,后者为仿真经历的物理时长,曲线斜率变化反映运算速度(斜率增大→速度减慢)。


  • 积分步长相关(③-⑦)

    • 变量③(当前步长)受打印间隔影响,可能丢失极端值;
    • 变量④-⑦(最小、最大步长等)不受打印间隔影响,需结合分析。若步长突然减小,提示模型存在高频振荡或不连续点。
  • 累计不连续数量(⑧)

    不连续越多,运算越慢,甚至卡死,需重点排查。


3. 使用提示

双击 runstats 可单独查看变量曲线,但更推荐结合性能分析器的 “状态贡献度”“频率” 等模块综合分析,以全面定位模型问题。

二、动态调整打印间隔:print_interval 与 print_interval_signal

打印间隔决定仿真结果的数据点密度,间隔过大会丢失细节,过小则数据冗余。这两个元件可动态设置打印间隔,平衡精度与效率。

图片
1. 元件与子模型对应
  • print_interval:TI001 子模型,通过参数设置动态调整间隔;
  • print_interval_signal:TI010 子模型,通过外部信号控制间隔变化。
2. 实用场景

针对仿真中 “曲线斜率变化不均” 的场景(如下图):

图片

(a)曲线不平滑;(b)曲线平滑但数据点太多;(最后c)动态调整打印间隔,用较少数据点实现理想曲线的绘制

  • 斜率变化快的时段(如动态响应阶段):设小打印间隔,保留细节;
  • 斜率变化慢的时段(如稳态阶段):设大打印间隔,减少数据量。
    最终可在保证曲线平滑的同时,显著降低数据冗余(图 5c 对比图 5a、5b 的优势)。
3. 注意事项

若需对结果进行FFT 分析,不可使用动态间隔(FFT 依赖等间距数据点)。


放置了此元件,仿真设置里面的打印间隔就会失效。


三、时间同步与实时交互:timesync 与 externinput

这两个元件配合使用,可实现仿真时间与真实时间同步外部信号实时输入,是人机交互仿真的核心工具。

1. timesync 元件(SIMSYNCTIME0 子模型)
  • 功能

    减慢仿真速度,使运算时间与真实时间保持同步(或按比例缩放),便于实时观察仿真过程。


  • 使用前提

    • 模型原始运算速度需小于设置的仿真时间;
    • 必须使用固定步长积分器
2. externinput 元件(EXTERNINP0 子模型)
  • 功能

    将模型外部信号(如中控台输入)实时传入模型,实现动态控制。


3. 实操案例

如图 所示,二者配合中控台可实现 “人机实时交互”:

图片
  • externinput 将中控台的实时信号(如伺服阀控制信号)输入模型;
  • timesync 使仿真速度与真实时间同步,避免模型快速运行完毕;
  • 最终可通过中控台实时调节伺服阀开口,观测阻尼孔流量变化。

四、超元件的启用与禁用:4 个控制元件

超元件(Supercomponent)是 Amesim 中模块化建模的核心,Simulation 库提供 4 个元件(图 8)用于控制超元件的启用 / 禁用及切换,实现复杂系统的分模块仿真。

图片
1. 元件功能与子模型对应
元件用途
子模型名称
核心功能
启用 / 禁用超元件
SUPERCOMPENABLE0
仅用于超元件内部,输入 > 0 时启用超元件,输出指示活动状态(需连接复位子模型)。
信号复位控制
RESETSIG0
端口 2 输入为 0 时,端口 1 输出 = 端口 3 输入;输入为 1 时,输出 =“禁用时参数值”(无量纲信号)。
机械量复位控制
RESETMECH0
功能同 RESETSIG0,但适用于机械量(力、速度、位移)。
超元件切换
SUBSYSSELECT0
在多个可切换超元件间选择,输出连接至超元件内部的 SUPERCOMPENABLE0。
2. 应用实例

如图所示,通过 SUBSYSSELECT0 可实现 “液控超元件” 与 “电控超元件” 的动态切换:根据外部信号,SUBSYSSELECT0 控制对应超元件的启用,实现系统不同控制模式的仿真对比。

图片

五、其他实用元件

除上述核心元件外,Simulation 库还有 4 个高频使用元件:

图片
  • SIMP00

    :用于批运行中修改求解器公差、最大积分步长,或限定 CPU 时间;


  • SCRCALL01

    :连接外部前后处理工具,扩展仿真数据处理能力;


  • stop

    :特定条件下中断仿真(与信号库 stop 功能一致);


  • chronometer

    :计算特定事件的开始 - 停止时间(与信号库 chronometer 功能一致)。


六、总结

Simulation 库虽元件数量不多,却涵盖了仿真控制、性能分析、实时交互、模块化建模等核心场景。掌握其用法可解决 “运算慢”“数据冗余”“实时控制难” 等实际问题,尤其对复杂系统仿真与模型优化至关重要。建议读者在建模时主动探索这些元件,充分发挥 Amesim 的强大功能 —— 正如 “发现新大陆”,看似不起眼的工具往往能带来建模效率的质的飞跃。


分享
写评论...