一些自己的学习记录
1.旋转坐标系
旋转坐标系的基本特点包括:
变换规则:
旋转坐标系相对于一个固定(或惯性)坐标系通过一个或多个旋转角度定义。这些旋转可以是绕一个轴的单一旋转,也可以是绕多个轴的复合旋转。
旋转通常通过旋转矩阵(方向余弦矩阵)、四元数或欧拉角来数学描述。
应用:
在航空航天领域,旋转坐标系用于描述飞行器、卫星或其他航天器的姿态和方向。
在机器人学和计算机图形学中,旋转坐标系用来模拟和控制物体的运动。
在地球科学中,用来描述地球自转、板块运动等现象。
动态性质:
旋转坐标系可能随时间而变化,例如地球随时间自转的坐标系,或者航天器在轨道上的姿态变化。
动态旋转坐标系中的物体或点的速度和加速度需要考虑坐标系自身的旋转动态,这涉及到科里奥利力和离心力的计算。
数学描述:
旋转矩阵:一个正交矩阵,用于描述从一个坐标系到另一个坐标系的线性变换。旋转矩阵的行列式为1,且逆矩阵等于其转置矩阵。
四元数:提供了一种更为紧凑和不受万向锁问题影响的旋转表示方法,常用于计算机图形学和机器人学中的3D旋转。
欧拉角:描述旋转的三个角度,通常按照特定的顺序(如绕z轴、x轴和再次z轴)来进行。欧拉角在理解和实现上直观,但可能会遇到万向锁问题,即在某些角度配置下失去一个自由度,导致旋转受限。
旋转坐标系的理解和应用对于许多技术和科学领域都是核心部分,正确处理这些坐标系的转换对于精确的导航、控制和模拟至关重要。
卫星的旋转坐标系
卫星的旋转坐标系是用于描述卫星自身姿态和方向相对于外部参考坐标系的坐标系统。
这种坐标系通常围绕卫星的质心设置,并随卫星的旋转而旋转,因此是一个非惯性坐标系。在航天工程中,这种坐标系的使用对于控制卫星的姿态、导航以及执行科学任务至关重要。
卫星旋转坐标系的特点:
定义方式:
通常定义为与卫星结构固连,随着卫星的旋转而改变方向的坐标系。
常见的定义包括体坐标系(Body Frame),其中轴通常与卫星的主要结构元件对齐。
用途:
卫星的旋转坐标系用于精确控制和监测卫星相对于地球、太阳或其他天体的方向和姿态。
在进行姿态控制时,需要知道卫星当前的旋转坐标系以及如何通过推力器或反作用轮改变它。
转换关系:
卫星的旋转坐标系与其他坐标系(如地固坐标系、地心惯性坐标系或轨道坐标系)之间的关系通过旋转矩阵、四元数或欧拉角来描述。
动力学分析:
在旋转坐标系中,除了常规的牛顿力学效应,还必须考虑非惯性力如科里奥利力和离心力。
这些力的计算对于精确的卫星动力学建模和姿态预测非常重要。
应用示例:
在卫星的实际操作中,控制系统设计师和任务规划人员必须非常熟悉卫星的旋转坐标系。例如,如果要调整卫星以对准特定的地面目标,控制系统需要计算从当前姿态到目标姿态的转换,这涉及到旋转坐标系之间的转换计算。
在设计阶段,卫星的旋转坐标系还将用于安排各种传感器和执行器的布局,以确保它们能在需要时正确地对准其目标。例如,一个指向太阳的太阳能板需要根据与太阳相关的旋转坐标系来优化其角度。
这些特性使得卫星的旋转坐标系在航天工程中扮演着核心角色,不仅影响卫星的设计和制造,还影响其在轨运行的效率和成功。
卫星的旋转矩阵
卫星的旋转矩阵是一个数学工具,用于在不同的坐标系之间转换卫星的姿态描述。这种矩阵在航天工程中用于表达从一个参考坐标系(如惯性坐标系)到另一个坐标系(通常是卫星的体坐标系或旋转坐标系)的旋转。方向余弦矩阵(DCM)是描述这些旋转的常用方法之一,它通过正交矩阵的形式,其中每个元素表示两个坐标系基向量之间的余弦关系。
方向余弦矩阵(DCM)
方向余弦矩阵是一个3x3的正交矩阵,用于描述一个坐标系相对于另一个坐标系的空间方向。它的元素由下式定义:
C
=
[
c
11
c
12
c
13
c
21
c
22
c
23
c
31
c
32
c
33
]
\mathbf{C} = \begin{bmatrix} c_{11} & c_{12} & c_{13} \\ c_{21} & c_{22} & c_{23} \\ c_{31} & c_{32} & c_{33} \end{bmatrix}
C=
c11c21c31c12c22c32c13c23c33
其中,
(
c
i
j
)
(c_{ij})
(cij) 是从原始坐标系到新坐标系的转换中,新坐标系的第 ( i ) 轴与原始坐标系的第
(
j
)
(j)
(j) 轴之间的余弦值。
卫星旋转矩阵的应用
-
姿态控制:
- 卫星的控制系统使用旋转矩阵来计算如何通过推力器或反作用轮等机械设备从当前姿态转换到所需姿态。
-
导航和定位:
- 通过观测星体或利用地球为参考点,卫星可以确定其在空间中的方向,这通常涉及旋转矩阵来从观测坐标系转换到卫星坐标系。
-
数据处理:
- 对于携带科学仪器(如相机、光谱仪)的卫星,必须使用旋转矩阵来校准数据,确保科学观测的准确性。
计算旋转矩阵
旋转矩阵可以通过多种方式计算,如欧拉角、轴-角表示法或四元数。每种方法都有其适用场景和优缺点:
- 欧拉角:提供直观的角度旋转序列,但可能遇到万向锁问题。
- 轴-角表示法:围绕一个单位向量旋转特定角度,使用罗德里格斯公式计算。
- 四元数:避免万向锁,对于计算机处理和数字稳定性表现更好。
例如,使用欧拉角 ( ϕ , θ , ψ ) ( \phi, \theta, \psi ) (ϕ,θ,ψ)(滚转,俯仰,偏航)定义的旋转矩阵可以表示为三个矩阵的乘积:
[
R
z
(
ψ
)
⋅
R
x
(
θ
)
⋅
R
z
(
ϕ
)
]
[ \mathbf{R}_z(\psi) \cdot \mathbf{R}_x(\theta) \cdot \mathbf{R}_z(\phi) ]
[Rz(ψ)⋅Rx(θ)⋅Rz(ϕ)]
这些矩阵表示绕
(
z
)
( z )
(z)、
(
x
)
( x )
(x) 和
(
z
)
( z )
(z)轴的旋转。
理解和正确应用卫星的旋转矩阵对于任务的成功至关重要,尤其是在姿态控制和导航系统的设计与实施中。
计算旋转矩阵
计算旋转矩阵可以使用多种方法,如欧拉角、轴-角表示法和四元数。这些方法各有优缺点,并且适用于不同的场景。下面是每种方法的详细说明、计算方式和它们的异同。
1. 欧拉角
计算方法:
欧拉角定义了绕坐标轴的三次旋转,常见的顺序有多种,例如 ZYX(偏航-俯仰-滚转)。对于 ZYX 顺序,旋转矩阵是三个基本旋转矩阵的乘积:
[ R = R z ( ψ ) ⋅ R y ( θ ) ⋅ R x ( ϕ ) ] [ R = R_z(\psi) \cdot R_y(\theta) \cdot R_x(\phi) ] [R=Rz(ψ)⋅Ry(θ)⋅Rx(ϕ)]
其中:
- ( R z ( ψ ) ) ( R_z(\psi) ) (Rz(ψ)) 是绕 ( z ) ( z ) (z) 轴旋转 ( ψ ) (\psi) (ψ)(偏航)
- ( R y ( θ ) ) ( R_y(\theta) ) (Ry(θ)) 是绕 ( y ) ( y ) (y) 轴旋转 ( θ ) (\theta) (θ)(俯仰)
- ( R x ( ϕ ) ) ( R_x(\phi) ) (Rx(ϕ)) 是绕 ( x ) ( x ) (x) 轴旋转 ( ϕ ) (\phi) (ϕ)(滚转)
这些基本矩阵分别为:
R
x
(
ϕ
)
=
[
1
0
0
0
cos
(
ϕ
)
−
sin
(
ϕ
)
0
sin
(
ϕ
)
cos
(
ϕ
)
]
,
R_x(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\phi) & -\sin(\phi) \\ 0 & \sin(\phi) & \cos(\phi) \end{bmatrix}, \quad
Rx(ϕ)=
1000cos(ϕ)sin(ϕ)0−sin(ϕ)cos(ϕ)
,
R
y
(
θ
)
=
[
cos
(
θ
)
0
sin
(
θ
)
0
1
0
−
sin
(
θ
)
0
cos
(
θ
)
]
,
R_y(\theta) = \begin{bmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{bmatrix}, \quad
Ry(θ)=
cos(θ)0−sin(θ)010sin(θ)0cos(θ)
,
R
z
(
ψ
)
=
[
cos
(
ψ
)
−
sin
(
ψ
)
0
sin
(
ψ
)
cos
(
ψ
)
0
0
0
1
]
R_z(\psi) = \begin{bmatrix} \cos(\psi) & -\sin(\psi) & 0 \\ \sin(\psi) & \cos(\psi) & 0 \\ 0 & 0 & 1 \end{bmatrix}
Rz(ψ)=
cos(ψ)sin(ψ)0−sin(ψ)cos(ψ)0001
优缺点和适用场景:
- 优点:直观、容易理解和实现。
- 缺点:可能会遇到万向锁问题,即在特定姿态下丧失一个自由度。
- 适用场景:适用于需要直观角度表示的场景,如飞行器姿态控制。
2. 轴-角表示法(罗德里格斯公式)
计算方法:
轴-角表示法定义了绕任意单位向量 ( u ) ( \mathbf{u} ) (u) 旋转角度 θ \theta θ 的旋转。其旋转矩阵 R R R 由罗德里格斯公式给出:
[ R = I + sin ( θ ) K + ( 1 − cos ( θ ) ) K 2 ] [ R = I + \sin(\theta)K + (1 - \cos(\theta))K^2 ] [R=I+sin(θ)K+(1−cos(θ))K2]
其中 K K K是向量 u \mathbf{u} u的反对称矩阵:
K = [ 0 − u z u y u z 0 − u x − u y u x 0 ] K = \begin{bmatrix} 0 & -u_z & u_y \\ u_z & 0 & -u_x \\ -u_y & u_x & 0 \end{bmatrix} K= 0uz−uy−uz0uxuy−ux0
优缺点和适用场景:
- 优点:直接表示绕任意轴的旋转,无万向锁问题。
- 缺点:计算相对复杂。
- 适用场景:适用于需要精确控制旋转轴和角度的应用,如3D图形和机器人关节。
3. 四元数
计算方法:
四元数提供了一种紧凑的方式来表示旋转,避免了万向锁问题。四元数 q = [ w , x , y , z ] q = [w, x, y, z] q=[w,x,y,z] 对应的旋转矩阵 R R R 为:
R = [ 1 − 2 y 2 − 2 z 2 2 x y − 2 z w 2 x z + 2 y w 2 x y + 2 z w 1 − 2 x 2 − 2 z 2 2 y z − 2 x w 2 x z − 2 y w 2 y z + 2 x w 1 − 2 x 2 − 2 y 2 ] R = \begin{bmatrix} 1 - 2y^2 - 2z^2 & 2xy - 2zw & 2xz + 2yw \\ 2xy + 2zw & 1 - 2x^2 - 2 z^2 & 2yz - 2xw \\ 2xz - 2yw & 2yz + 2xw & 1 - 2x^2 - 2y^2 \end{bmatrix} R= 1−2y2−2z22xy+2zw2xz−2yw2xy−2zw1−2x2−2z22yz+2xw2xz+2yw2yz−2xw1−2x2−2y2
优缺点和适用场景:
- 优点:不受万向锁限制,计算效率高,适合计算机实现。
- 缺点:较难直观理解和可视化。
- 适用场景:广泛用于计算机图形学、游戏开发和空间导航系统。
万向锁问题
万向锁问题(Gimbal Lock)是在使用欧拉角表示三维空间旋转时可能遇到的一种特殊情况,它会导致失去一个旋转自由度。这个问题的名字来源于机械万向节的类似现象,当两个旋转轴对齐时,系统将失去一个自由度。
产生原因:
万向锁发生在使用三个旋转角(例如偏航、俯仰、滚转)来定义空间中的一个方向时。当其中一个角(通常是俯仰角)达到 ±90°(或π/2弧度)时,第一个旋转轴和第三个旋转轴会落在同一线上,从而使得原本独立的旋转轴变得依赖,这导致无法独立控制这两个轴的旋转。
例如,在一个常见的ZYX欧拉角配置中(先偏航、再俯仰、最后滚转):
- 当俯仰角 θ \theta θ 等于 90°时,偏航 ψ \psi ψ 和滚转 ϕ \phi ϕ旋转会影响到同一个物理轴,使得原本可以由偏航和滚转独立控制的空间方向合并为单一方向的控制。
影响:
万向锁的主要影响是导致系统的旋转能力受限,特别是在需要精确控制姿态的航天器、飞行器和机器人等应用中,这可能会导致控制困难或者误操作。
解决方法:
- 使用四元数或轴-角表示:这些方法可以避免万向锁问题,因为它们不依赖于交错的角度轴来表示旋转。
- 重新安排旋转顺序或旋转轴:通过调整旋转顺序或使用不同的轴组合,可以在特定应用中减轻万向锁的影响。
- 添加额外的旋转机制:在某些机械系统中,通过设计添加额外的旋转机构来补偿或避免万向锁现象。
在实际工程应用中,四元数因其计算效率和避免万向锁的优势,成为了航空航天和计算机图形领域广泛使用的旋转表示方法。
未完待续…