首页/文章/ 详情

用性能分析器检测模型运行慢的原因

1年前浏览213
用性能分析器检测错误

使用性能分析器可以检测不同元件对模型计算时间的贡献度,使用一个液压机械系统的模型来说明如何使用性能分析器。

建模  

在仿真过程中考虑了非连续性。这样就有可能获得关于这些不连续点影响的信息:


启动一个模拟,并注意进度条的演变:从某个时间开始会注意到减速。点击工具栏相应图标打开性能分析器:


默认情况下,选择的是“Run statistics”窗格。为了使其内容不为空,仿真库的“run stats”组件必须放在草图上。

现在我们来下图:我们观察到CPU时间先呈线性趋势,然后呈抛物线趋势。这种趋势的变化对应于当前集成步骤的主要振荡(达到10-12 s左右),用光标来确定在哪个仿真时刻出现趋势的变化:其值约为3.5 s。

打开“频率”窗格。初始时振荡模态的最高频率约3500hz,虽然较高,但不足以作为干扰求解器的先验条件。

我们感兴趣的是确定导致减速的元件。

打开“状态活动”窗格。根据“受控”列对变量进行排序(从受控制最多的列到受控制最少的列)。一个变量控制得越多,它对模拟的缓慢程度就越有影响。如果双击列表中的一个变量,计算该变量的组件将被标记在草图上。

选择上述两个变量进行绘图:

在很长一段时间内,这两个变量的累积贡献保持在零水平,然后开始增加,我们打开对应的质量块元件,绘制左边质量块的位移:

我们看到特征时间发生在质量块运行在终点停止时。然而,似乎没有大的振荡可以解释经济放缓。

接着绘制质量块速度:

由图可知,当接触发生时,速度开始剧烈振荡。接着我们绘制出端口2处的压力:

在这种情况下,当接触发生时,压力波动很大,而当压力低于0bar时就会发生空化,可以看到在接触发生时的振荡模式是有问题的。这些结果表明,质量与执行机构之间的接触参数化程度很差。进入参数模式,检查执行器的参数。

端止点的阻尼系数为零,这是产生数值问题的原因。

修改系统  

在这种情况下,阻尼系数(这里称为c)必须用这个方程计算:

c=2.z.(K.M)^0.5

公式中:

z为阻尼比(我们将其固定为10%,因为这个值最能代表物理现象);

k为弹簧常数(1.109 N/m);

M是质量(1kg)

因此,在仿真中设置新的阻尼系数为。

现在启动运行并打开性能分析器:

CPU计算耗时是7秒,对于初始配置(加速比为300%),这比之前的20秒要好得多。绘制左侧质量块的速度曲线:

在这种情况下没有空化现象。

很多人经常遇到仿真卡住但不报错的现象,实际上就是某个状态点下引发了高频振荡,可以通过对元件检测和参数分析予以排除。


来源:Amesim学习与应用
控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-07-06
最近编辑:1年前
batt
本科 微信公众号:Amesim学习与应用
获赞 73粉丝 376文章 197课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈