【发布时间】:2015-10-20 09:15:57
【问题描述】:
我想知道如何最有效地对机械停止进行建模。
我在 OpenModelica 中使用受控液压缸进行液压模拟。对于液压缸,我使用 Modelica 标准库中的 sweptVolume 模型。
这个模型让我感到困扰的是,如果活塞到达气缸底部,则没有机械停止。
我尝试了几个想法,但都没有好结果。我试图通过 if 表达式将活塞的位移重置为零,如果它触及底部。但这并不是一个好的选择,因为体积是使用活塞的位移计算的。
然后我尝试引入一个力,该力等于施加在活塞上的力,如果活塞撞到挡块。此选项也不起作用,因为在这种情况下无法计算气缸内的压力。
第三次尝试是使用MassWithStopAndFriction 的MSL 模型链接到sweptVolume 模型的平移法兰,但这个模型对我来说似乎坏了。
现在我指望你们这个有能力的社区为我带来更多的想法来测试。
【问题讨论】:
-
看起来这个问题更适合堆栈交换的机械/动力学风格
-
您是否尝试过使用“when”语句对位移进行重置而不是“if”表达式?重置我的意思是重置(位移,0)。
-
@Orion:我认为大多数 Modelica 问题都属于这种堆栈交换的风格
-
@Adrian Pop:感谢您的建议。我尝试了“when”语句并使用 reinit 将活塞的位移设置为零。 when 子句实际上启动,但不会停止活塞的运动。我猜活塞位移设置为零,但施加在它上面的力不是,所以活塞继续运动。
-
也许然后重新启动部队?
标签: simulation modelica openmodelica fluid-dynamics