Multi Body Dynamics 软件如何适用于柔性关节?

计算科学 模拟 计算物理学 时间积分
2021-12-22 04:10:54

我需要通过柔性/弹性接头连接几个“刚性棒”来模拟二维的“钓鱼竿”。接头充当具有不同弹簧常数的板/扭力弹簧。“钓鱼竿”会在这些关节处弯曲。杆的部分变得更轻,弹簧更软,朝向尖端。

唯一的输入数据是每根杆的长度和重量,以及将杆连接到前一根杆的相应弹簧常数。

我想看看当一端(手柄)受到扭矩时,这个物体是如何弯曲和移动的(即当你投掷诱饵时,鱼竿是如何弯曲的。 - 不需要包括围绕物体自身轴的扭矩。)

(这不是 FEM 应力分析的问题。它是关于几秒钟内的运动。我稍后会尝试将此模型扩展到生物力学。)

我可以遵循(并模拟)双摆的拉格朗日变换,但是对于两个以上的段,拉格朗日变换变得“几乎不可能”计算。

多体动力学软件可以对多链接对象(以及更多事物)进行建模。有关 N-link 摆模拟,请参阅此视频如此复杂的物体的运动如何计算!?

如果我能掌握多个弹性/柔性关节的“物理引擎”是如何工作的,在这种软件中,我也许可以用它来模拟钓鱼竿。

1个回答

正如@BillGreene 提到的,这将更好地建模为连续弹性体。它就像一根悬臂梁,受其自身重量和尖端力的影响。您可以为此使用Euler-Bernoulli梁,其中方程如下:

2x2(EI2wx2)=μ2wt2+q(x)

然后,您可以离散化您的域并获得时间积分方案,您可以为此使用有限差分有限元一个常见的是Verlet 集成

xn+1=2xnxn1+anΔt2

您将时间步长表示为过去两个时间步长和节点中的力的函数。你可以在这里看到一个实现

另一方面,我认为你的想法可能会奏效。这不会是问题物理的正确表示,但我认为它可能是有道理的。我正在检查几个物理模拟软件,比如Physion,它们没有旋转弹簧。因此,您将需要实现该部分。

关于如何做到这一点,您可以制定拉格朗日,然后获得运动方程。这里是 n-links 摆的一个例子作者在其中使用 Python 和 SymPy 作为任务的一部分。在此之后,您可能会找到一种模式来组装您的刚度和质量矩阵,然后您可以使用任意数量的链接。

在所有情况下,您都需要一种方法来计算系统中节点之间的“力”以及时间积分技术,这通常是显式的(和的)。