力学 API 参考

向量

此模块从 sympy.physics.vector 派生出与向量相关的能力和相关功能。请查看 sympy.physics.vector 的文档及其必要的API,以了解 sympy.physics.mechanics 的向量能力。

力学

在物理学中,力学描述静止(静力学)或运动(动力学)的条件。所有力学问题都有几个常见的步骤。首先,描述系统的理想化表示。接下来,我们使用物理定律生成定义系统行为的方程。然后,我们求解这些方程,有时是解析地,但通常是数值地。最后,我们从这些方程和解中提取信息。该模块的当前范围是多体动力学:多个粒子和/或刚体系统的运动。例如,该模块可以用来理解双摆、行星、机器人操纵器、自行车以及任何其他可能引起我们兴趣的刚体系统的运动。

通常,多体动力学中的目标是获得一组刚体随时间变化的轨迹。这项任务的挑战在于首先建立系统的运动方程。一旦方程建立,就必须求解,即在时间上向前积分。当数字计算机出现后,求解问题变得相对容易。现在,我们可以处理更复杂的问题,这使得建立方程成为新的挑战。

术语“运动方程”用于描述将牛顿第二定律应用于多体系统的应用。运动方程的形式取决于生成它们所使用的方法。此包实现了其中的两种方法:Kane方法和拉格朗日方法。此模块有助于运动方程的制定,然后可以使用通用的常微分方程(ODE)求解器进行求解(积分)。

解决一类特定动力学问题的方法,即正向动力学,包括以下步骤:

  1. 描述系统的几何形状和配置,

  2. 指定系统可以移动的方式,包括对其运动的约束

  3. 描述作用在系统上的外力和外力矩,

  4. 根据牛顿第二定律 (\(\mathbf{F}=m\mathbf{a}\)) 结合上述信息,

  5. 组织生成的方程,以便它们可以被积分以获得系统随时间的轨迹。

与 SymPy 的其他部分一起,该模块执行步骤 4 和 5,前提是用户可以为该模块执行 1 到 3。也就是说,用户必须提供自由体图的完整表示,这些图本身代表系统,通过这些图,该代码可以提供适合数值积分的运动方程形式。上述步骤 5 对于即使是相当简单的多体系统来说也涉及繁琐的代数运算。因此,使用符号数学包(如 SymPy)来执行此步骤是可取的。正是由于这个原因,该模块是 SymPy 的一部分。步骤 4 相当于这个特定的模块,即 sympy.physics.mechanics。

力学指南