刚体运动学基础:坐标系与变换、欧拉角与四元数、刚体速度与加速度、运动学约束方程

大家好,欢迎来到这门课的第一章。刚体运动学,说白了就是研究物体怎么动、怎么转,但不关心它为什么动。你想想看,在风机整机仿真里,叶片、塔筒、机舱这些部件,我们通常都当成刚体来处理。为什么?因为它们的变形相对整体运动来说,很多时候可以忽略不计。

我个人习惯,在开始任何多体动力学建模之前,先把运动学基础打牢。这就像盖房子打地基,地基不稳,后面建得再漂亮也白搭。今天我们就来聊聊坐标系、旋转表示、速度和加速度,还有约束方程这些核心概念。

核心要点:刚体运动学不关心力,只关心位置、速度和加速度的几何关系。这是多体动力学仿真的第一步。

1. 坐标系与变换

做仿真,第一件事就是选坐标系。我见过不少新手,坐标系没选好,后面算出来的结果乱七八糟,还找不到原因。

我们通常用两种坐标系:

  • 全局坐标系(惯性系):固定在地面上,比如塔筒底部。所有绝对运动都参考它。
  • 局部坐标系(体坐标系):固定在每个刚体上,比如叶片根部。描述刚体自身的几何和惯性属性。

刚体上任意一点的位置,都可以通过坐标变换得到。假设有个点P,在局部坐标系下的坐标是 r,局部坐标系原点在全局系下的位置是 R,那么P点在全局系下的位置 p 就是:

p = R + A * r

这里的 A 是旋转矩阵,它把局部坐标转到全局坐标。嗯,这里要注意,旋转矩阵是正交矩阵,行列式为+1。我在项目中遇到过,有人不小心把旋转矩阵写成了转置,结果叶片转到了天上,哈哈。

小技巧:旋转矩阵的逆就是它的转置。这个性质在数值计算中非常有用,可以省去求逆的麻烦。

2. 欧拉角与四元数

旋转矩阵有9个元素,但自由度只有3个。所以,我们通常用更紧凑的方式来表示旋转。最常用的两种:欧拉角和四元数。

2.1 欧拉角

欧拉角,说白了就是绕三个轴转三次。比如风机叶片变桨,就是绕叶片轴线转一个角度。常见的顺序有ZYX、ZYZ等。我建议你根据具体问题选顺序,没有万能的。

但欧拉角有个大坑——万向锁。当第二个旋转角达到±90°时,第一个和第三个旋转轴会重合,丢失一个自由度。我曾经在调试一个偏航系统时,遇到了万向锁,仿真直接跳飞了。从那以后,我只要涉及大角度旋转,就改用四元数。

表示方法 优点 缺点
欧拉角 直观,3个参数 万向锁,插值困难
四元数 无奇异性,适合插值 不直观,4个参数有约束

2.2 四元数

四元数是个超复数,形式是 q = w + xi + yj + zk,其中 w² + x² + y² + z² = 1。它表示绕某个轴转某个角度。你想想看,用4个数表示3个自由度,多了一个约束,但换来了无奇异性。

我个人习惯,在风机多体仿真中,全部用四元数。虽然调试时不太直观,但数值稳定性好得多。比如,两个四元数相乘就代表旋转的复合,比矩阵乘法快多了。

// 四元数乘法示例
q1 = [w1, x1, y1, z1]
q2 = [w2, x2, y2, z2]
q_result = [
    w1*w2 - x1*x2 - y1*y2 - z1*z2,
    w1*x2 + x1*w2 + y1*z2 - z1*y2,
    w1*y2 - x1*z2 + y1*w2 + z1*x2,
    w1*z2 + x1*y2 - y1*x2 + z1*w2
]

注意:四元数必须归一化!否则旋转会附带缩放。我见过有人忘了归一化,结果叶片越转越长,仿真结果完全不可用。

3. 刚体速度与加速度

有了位置,接下来就是速度和加速度。刚体的运动可以分解为平动和转动。

  • 平动速度:局部坐标系原点的速度,记作 v
  • 转动角速度:刚体绕自身轴旋转的角速度,记作 ω

刚体上任意一点的速度,可以用下面的公式计算:

v_p = v + ω × r

这里的 × 是叉积。加速度类似,但多了一项向心加速度和科里奥利加速度。为什么?因为刚体在转,点的运动轨迹是曲线。

我记得有一次做叶片动力学分析,发现叶尖加速度异常大。查了半天,原来是忘了考虑科里奥利项。嗯,这个坑我踩过,你们别踩。

公式记忆:刚体上点的加速度 = 平动加速度 + 切向加速度 + 向心加速度。切向加速度由角加速度引起,向心加速度由角速度引起。

4. 运动学约束方程

多体系统里,各个刚体不是孤立的。它们通过铰链、弹簧、阻尼器等连接。这些连接就是约束。运动学约束方程,就是描述这些连接关系的数学表达式。

常见的约束类型:

  • 旋转副:两个刚体绕一个轴旋转,比如叶片变桨轴承。
  • 平移副:两个刚体沿一个轴滑动,比如塔筒内的升降机。
  • 固定副:两个刚体完全固定在一起,比如叶片和轮毂的螺栓连接。

约束方程的一般形式是:

Φ(q, t) = 0

其中 q 是所有刚体的广义坐标(位置和姿态),t 是时间。这个方程对时间求导,就得到速度约束和加速度约束。

我建议你在建模时,先把所有约束列出来,写成方程。然后检查自由度:总自由度数 = 6 × 刚体数 - 独立约束方程数。如果自由度是0,那就是个静定结构;如果大于0,那就是个机构。

避坑指南:我曾经在建模时,不小心多写了一个约束方程,导致系统过约束,仿真直接报错。检查约束的独立性,是调试的第一步。

知识体系总览

下面这张图,是我自己画的本章知识体系。你可以看到,坐标系是基础,旋转表示是核心,速度和加速度是应用,约束方程是连接各个刚体的桥梁。把这四块吃透,后面的动力学建模就顺了。

刚体运动学 坐标系与变换 全局系 / 局部系 / 旋转矩阵 欧拉角与四元数 万向锁 / 无奇异性 速度与加速度 平动 / 转动 / 科里奥利 运动学约束方程 铰链 / 自由度检查 图1:刚体运动学知识体系

好了,第一章的内容就到这里。记住,运动学是动力学的基础。把坐标系、旋转、速度和约束搞明白,后面学动力学就轻松多了。下一章,我们会进入动力学部分,聊聊力和力矩怎么影响运动。

专注资料整理