很多情况下,我们用Amesim对系统进行动态仿真时,希望从系统的平衡状态开始计算。系统初始时刻是否处于平衡状态,取决于状态变量初始值(即设置参数时前面加#的那些量)。对于简单系统,我们可以手动计算并设置状态变量初始值使系统初始时刻处于平衡状态,但对于复杂系统就无能为力了。
Amesim为我们提供了一些稳态初始化方法,帮助我们设置初始平衡状态。本文将对这些方法做介绍,希望对大家有帮助。
一、第一种方法
这种方法的求解思路是:首先使系统输入保持为初始时刻的输入值,经过足够长时间的计算,使系统达到平衡状态,然后将计算的终了状态(即平衡状态)设置为下次动态计算的初始状态。
下面以图1所示的弹簧-阻尼-质量块系统(子模型及参数设置见表1,未列出的元件子模型及参数均采用默认设置)为例说明该方法的具体操作过程。
图1 弹簧-阻尼-质量块系统
表1 图1子模型及参数设置
在仿真模式下打开Run Parameters对话框,切换至Standard options选项卡,勾选Hold inputs constant(图2所示,作用是使系统输入保持为初始时刻的输入值),并在General选项卡下将仿真时间设置为足够长(本例中设置为20s),提交运算。
图2 勾选Hold input constant
仿真完成之后,提取质量块的位移和速度曲线(图3所示)。可以看出,计算结束后质量块速度为基本为保持为0,位移基本保持恒定,可以认为系统已经处于平衡状态。
图3 计算终了时质量块处于平衡状态
接下来要做的是将计算得到的系统平衡状态设置为下次计算的初始状态并进行动态仿真,有两种方式可以实现:
二、第二种方法
这种方法是通过设置仿真模式求解初始平衡状态。相比第一种方法,这种方法更便捷高效。
一、基本方法
在Run Parameters对话框中的Standard options选项卡下找到Simulation mode模块(图6所示),可以看到Amesim为我们提供了三种不同的仿真模式。其中,Dynamic模式(默认选项)是对系统进行动态求解;Stabilizing模式是对系统进行稳态初始化计算;Stabilizing + Dynamic模式是对系统进行稳态初始化计算,并在此基础上进行动态求解。我们在提交运算时选择后两种仿真模式即可实现稳态初始化计算。
图6 Amesim的三种计算模式
二、局部平衡的求解方法
有些时候,我们希望系统只有局部处于初始平衡状态。比如图7所示的仿真模型(子模型及参数设置见表2,未列出的元件子模型及参数均采用默认设置),要计算质量块m2从高度为10m的位置处自由跌落在弹簧-阻尼-质量块系统上的动态响应。对于此模型,我们希望初始状态是这样的:质量块m1在弹簧力和重力作用下处于平衡状态,而质量块m2位于高度为10m的位置处(非平衡状态)。
图7 局部平衡实例模型
表2 图7子模型及参数设置
对于这种特别的要求,Amesim也是可以实现的,具体方法如下:
右击质量块m2,在下拉菜单中点击View lock states…,即可打开Locked states status对话框,勾选速度和位移两个变量后面的复选框(图8所示,作用是锁定质量块m2的两个状态变量),则在接下来进行的稳态初始化计算中,质量块m2的状态变量将保持不变。
图8 锁定m2的状态变量
三、Stabilizing run options
当选用Stabilizing模式或Stabilizing + Dynamic模式进行仿真时,Stabilizing run options模块就会被激活,如图9所示。该模块包含两个选项,分别是Diagnostics和Lock non-prop. states。
图9 Stabilizing run options模块
Diagnostics:我们在进行稳态初始化求解时,如果系统存在不合理之处,稳态初始化求解就会失败。此时,如果勾选Diagnostics,在运算细节窗口中就会给出更详细的与稳态初始化求解失败相关的信息。
Lock non-prop. states:首先,我们设想一个水平放置、受摩擦力作用且可以自由运动的一维质量块系统,当质量块速度x=0时,无论位移x为多少,质量块都将处于平衡状态;换言之,位移这一状态变量的取值对质量块是否处于平衡状态并没有影响。这种对系统是否平衡不会产生影响的状态变量,在Amesim中被称为非传播状态变量(non-propagating stages)。如果系统中存在非传播状态变量,那么在进行稳态初始化计算时就需要勾选Lock non-prop. states,其作用是锁定非传播状态变量初始值为用户输入的值。
小结
以上内容就是本文对Amesim稳态初始化方法的介绍。
采用第一种方法具有一定局限性:如果系统的阻尼较小,则需要计算很长时间才能达到平衡状态;如果系统阻尼为0(虽然这种情况很少见),则系统将处于无休止振荡中,通过该方法无法计算获得平衡状态。
采用第二种方法计算初始平衡状态,更便捷高效,可以避免第一种方法的局限性。此外,这种方法才能更强大,可以满足我们一些“过分”的小需求,因此推荐大家采用第二种方法进行稳态初始化求解。