可变容积腔的Warning
在可变容积腔元件bhc1(图1所示)的使用过程中,我们有时会遇到如图2所示的Warning提示。笔者曾在往期的文章中对Amesim中的各种液压腔元件做了详细对比和说明,也曾简单提到过图2的Warning。鉴于此Warning在我们的QQ答疑群里被多次问到,本文将对它做进一步解释说明,希望对大家有帮助。
可变容积腔元件bhc1的外部变量如图3所示,每个端口的外部输入变量为油液的流量和腔的体积,外部输出变量为油液的压力。
通常情况下,bhc1的总体积是四个端口的输入体积和它自身的死区体积(即vol0)之和;四个端口的输入体积通常是随时间改变的,因此其总体积也是随时间改变的,这也是它被称为“可变容积腔”的原因。可变容积腔通过总体积与当前压力下油液的体积模量一起计算液压刚度,进而计算压力对时间的导数,并在每个端口输出压力变量。
液压腔是液压系统中最常见的元素之一。从物理结构上看,液压腔的体积必须大于等于0;从仿真求解上看,液压腔的体积必须大于0才可以计算并输出压力。
在建模计算过程中,有时会出现可变容积腔的体积非常接近0或者小于等于0的情况,此时为了确保模型在物理上和求解上的合理性,Amesim会将可变容积腔的体积按照其死区体积的百分之一(即vol0/100)进行处理,并给出如图2所示的警告信息。
下面通过两个液压缸建模仿真的小实例具体说明这个Warning产生的原因及其应对方法。
【实例一】液压缸的结构和仿真建模如图4所示,参数设置如表1所示(注:表中未提及的元件子模型及参数均采用默认设置)。
实例一模型的仿真过程为:初始时刻液压缸活塞位于最左侧,流量源将恒定流量输入到液压缸无杆腔,推动活塞以一定速度向右运动至右端点。设置仿真时间为10 s,提交运算,出现如图5所示的警告信息(注:BHC11 instance 2是图4中元件5的子模型)。
原因分析:检查模型的参数设置不难发现,起限位作用的质量块的最大位移为0.5 m,而油缸有杆腔的最大长度仅为300 mm。如图6曲线所示,当质量块位移超过300 mm后,元件2输入到可变容积腔5的腔体积开始变为负数,进而导致可变容积腔5的输入体积与死区体积之和小于0。为了使模型可以继续求解,Amesim将可变容积腔5的体积限定为死区体积的百分之一,并给出相应的警告信息。
很明显,本实例中出现这样的情况是由建模时参数设置错误造成的。修改仿真参数,使质量块的最大限位小于等于有杆腔的最大腔长度,即可避免此问题。
【实例二】液压缸的结构和仿真建模如图7所示(注:质量块的最大限位与有杆腔的最大腔长度均设置为300 mm)。与实例一不同的是,本实例中要仿真的液压缸死区体积为0,因此将可变容积腔元件的dead volume设为0.01 cm**3;除此之外,实例二与实例一建模参数完全一致。设置仿真时长为10 s,提交运算,仍然出现图5所示的警告信息!
原因分析:提取仿真结果,如图8所示。可以发现,活塞运动到最右端后,质量块的最大位移为300.0295 mm,超出了设置的最大限位300 mm,这是因为质量块与右限位端的接触为弹性接触,在液压力作用下发生弹性变形,从而使质量块的实际位移超出了最大限位。这一结果进一步导致可变容积腔5的输入体积与死区体积之和小于0,Amesim将可变容积腔5的体积限定为死区体积的百分之一,并给出相应的警告信息。
不难理解,实例二中出现的Warning,并不是因为建模错误,也不会对仿真结果造成实质性的影响,因此可以忽略不管。我想,这大概正是Amesim将这一提示信息当做Warning而不是Error的原因吧。
『注:笔者在《正确对待Amesim中的警告信息》一文中曾提到过,作为一款严谨、认真的仿真软件,Amesim对模型中任何它认为可能的问题都给出警告,所以很多Warning对仿真计算并不会产生实质性的影响,可以忽略。』
在使用可变容积腔建模计算时,如果出现类似“Warning in BHC11 instance ** Chamber volume is limited by vol0 / 100 = ****.”的警告提示,则其原因是可变容积腔端口输入的体积与死区体积之和非常接近0或者小于等于0。此时,应当根据具体模型检查参数设置是否有错误:如果参数设置错误(比如本文实例一),则应修改仿真参数;如果参数设置没有错误(比如文实例二),则可以忽略警告。