2. 多体动力学建模基础
多体动力学联合仿真的第一步,是把一台真实的机电装置“翻译”成一组可计算的数学对象。这个翻译过程不是简单画几个方块,而是要在刚体、约束、自由度、广义坐标、运动学与动力学方程之间建立一致的对应关系。理解这条主线,后续把 Simulink 控制模型、电机模型或液压模型接入 Adams、RecurDyn、Simpack 时,才不会出现“模型能跑但结果不可信”的问题。
刚体:把零件抽象为质量、惯量与几何
刚体是多体系统的基本单元。一个刚体在空间中具有 6 个自由度:3 个平动加 3 个转动。建模时,每个刚体至少需要定义质量 m、质心位置、惯性张量 J,以及与其他刚体连接的几何标记点(Marker)。例如一个机械臂连杆,若质量 2.4 kg、质心位于杆件中点、绕质心主惯性矩为 diag(0.012, 0.011, 0.002) kg·m²,那么它在动力学方程中就以这组参数参与计算。惯性张量的坐标系必须与建模坐标系一致,否则转动惯量的耦合项会引入错误。
刚体假设并非永远成立。当结构柔性不可忽略时,需要把刚体扩展为柔性体,用模态坐标描述弹性变形。但在机电联合仿真的入门阶段,先掌握刚体建模,再逐步引入柔性体,是更稳妥的路径。
约束与自由度:系统能怎么动
约束定义了刚体之间的相对运动限制。常见约束包括旋转副、平移副、球铰、圆柱副、固定副、齿轮副和耦合副。每施加一个独立约束,系统就减少一个自由度。设系统由 n 个刚体组成,未受约束时总自由度数为 6n;若施加了 m 个独立约束,则系统自由度数为 DOF = 6n − m。这个公式是判断模型是否“过约束”或“欠约束”的第一把尺子。
以单摆为例:一个刚体在平面内绕固定点转动,未约束时 6 个自由度,旋转副约束掉 5 个,剩余 1 个自由度,即摆角 θ。若再添加一个驱动约束 θ = ωt,则系统自由度变为 0,成为确定性运动系统。实际建模中,过约束会导致求解器报冗余约束,欠约束则会出现刚体漂移或数值发散。因此,约束数量与类型必须与物理连接一致。
广义坐标:用最少的变量描述运动
广义坐标是描述系统位形的独立变量集合。对于平面单摆,广义坐标就是摆角 θ;对于空间六自由度机械臂,广义坐标可以是六个关节角 q = [θ₁, θ₂, θ₃, θ₄, θ₅, θ₆]ᵀ。广义坐标的选取直接影响方程复杂度。若选取的坐标之间存在约束关系,则称为非独立坐标,需要引入拉格朗日乘子 λ 来处理约束力。
在 Adams 中,广义坐标通常由软件自动选取,但用户可以通过修改约束类型和驱动方式来间接控制。例如把旋转驱动改为平移驱动,系统会自动调整广义坐标的定义。理解这一点,有助于在联合仿真中正确设置输入输出变量。
运动学方程:位置、速度与加速度约束
运动学描述系统位形随时间的变化,不涉及力和质量。对于由 n 个刚体组成的系统,若用笛卡尔坐标 q = [q₁ᵀ, q₂ᵀ, …, qₙᵀ]ᵀ 描述,则约束方程可写为 Φ(q, t) = 0。对时间求导得到速度约束:Φ_q · q̇ = −Φ_t;再求导得到加速度约束:Φ_q · q̈ = γ,其中 γ 包含速度二次项和显式时间项。
以曲柄滑块机构为例,设曲柄长度 r = 0.1 m,连杆长度 l = 0.3 m,曲柄转角 θ,滑块位移 x。约束方程为 x = r cosθ + √(l² − r² sin²θ)。给定 θ(t) = ωt,ω = 10 rad/s,即可通过运动学方程求出滑块的速度和加速度。这类计算在联合仿真中常作为控制模型的参考输入。
动力学方程:从拉格朗日到牛顿-欧拉
动力学方程描述力与运动的关系。拉格朗日方法从能量出发,定义拉格朗日函数 L = T − V,其中 T 为动能,V 为势能,得到 d/dt(∂L/∂q̇) − ∂L/∂q = Q。对于含约束的系统,引入拉格朗日乘子后,方程变为:
M(q)q̈ + Φ_qᵀ λ = Q
Φ(q, t) = 0
其中 M(q) 为质量矩阵,Φ_q 为约束雅可比矩阵,λ 为约束力乘子,Q 为广义力。牛顿-欧拉方法则通过递推方式计算每个刚体的力和力矩,计算效率更高,适合链式或树状拓扑。两种方法在数学上等价,选择取决于系统规模和拓扑结构。
在机电联合仿真中,电机输出的电磁转矩作为广义力 Q 的一部分施加到关节上,而关节的转角、角速度则通过接口反馈给电机模型。这个“力—运动”闭环正是联合仿真的核心。若动力学方程中的质量矩阵或惯性张量设置错误,闭环会表现为转矩异常、速度振荡或能量不守恒。
建模检查要点
- 每个刚体的质量、质心、惯性张量是否与物理对象一致,单位是否为 kg、m、kg·m²。
- 约束数量是否与物理连接匹配,DOF = 6n − m 是否等于预期独立坐标数。
- 驱动约束是否与运动学输入一致,避免过约束导致冗余方程。
- 广义坐标的初始值是否满足约束方程 Φ(q₀, 0) = 0,否则求解器需要额外稳定化。
- 动力学方程中的广义力是否包含所有外部载荷,包括重力、接触力、电机转矩和摩擦力。