使用性能分析器可以检测不同元件对模型计算时间的贡献度,使用一个液压机械系统的模型来说明如何使用性能分析器。
在仿真过程中考虑了非连续性。这样就有可能获得关于这些不连续点影响的信息:
启动一个模拟,并注意进度条的演变:从某个时间开始会注意到减速。点击工具栏相应图标打开性能分析器:
默认情况下,选择的是“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秒要好得多。绘制左侧质量块的速度曲线:
在这种情况下没有空化现象。
很多人经常遇到仿真卡住但不报错的现象,实际上就是某个状态点下引发了高频振荡,可以通过对元件检测和参数分析予以排除。