自用的姿态与轨道动力学笔记

圆锥曲线轨道

轨道六根数指:
半长轴(a)、偏心率(e),轨道倾角(i),升交点赤经( Ω \Omega Ω)、近地点幅角( ω \omega ω)、真近点角( ϕ \phi ϕ)。
其它参数:
角动量 h ⃗ \vec{h} h 、半通径 p p p、远拱点 r a r_a ra、周期 T T T
E = − μ 2 a = v 2 2 − μ r = v i n f 2 2 h ⃗ = r ⃗ × v ⃗ ∣ h ⃗ ∣ = ∣ r ⃗ ∣ ∣ v ⃗ ∣ sin ⁡ θ a = p 1 − e 2 = − μ 2 E = μ r 2 μ − r v 2 p = h 2 μ e ⃗ = v ⃗ × h ⃗ μ − r ⃗ ∣ r ⃗ ∣ = ( v 2 μ − 1 r ) r ⃗ − v ⃗ ⋅ r ⃗ μ v ⃗ e = 1 − h 2 a μ r = p 1 + e cos ⁡ f f = arccos ⁡ ( 1 e ( h 2 μ r − 1 ) ) r a = a ( 1 + e ) T = 2 π a 3 μ \begin{aligned} \mathcal{E} =& -\frac{\mu}{2a}=\frac{v^2}{2}-\frac{\mu}{r} = \frac{v_{inf}^2}{2} \\ \vec{h} =& \vec{r}\times\vec{v} \\ |\vec{h}| =& |\vec{r}||\vec{v}|\sin\theta \\ a =& \frac{p}{1-e^2}=-\frac{\mu}{2\mathcal{E}} = \frac{\mu r}{2\mu-rv^2} \\ p =& \frac{h^2}{\mu} \\ \vec{e} =& \frac{\vec{v}\times\vec{h}}{\mu} - \frac{\vec{r}}{|\vec{r}|} = (\frac{v^2}{\mu}-\frac{1}{r})\vec{r} - \frac{\vec{v}\cdot\vec{r}}{\mu}\vec{v} \\ e =& \sqrt{1-\frac{h^2}{a\mu}} \\ r =& \frac{p}{1+e\cos f} \\ f =& \arccos(\frac{1}{e}(\frac{h^2}{\mu r}-1)) \\ r_a =& a(1+e) \\ T =& 2\pi\sqrt{\frac{a^3}{\mu}} \end{aligned} E=h =h =a=p=e =e=r=f=ra=T=2aμ=2v2rμ=2vinf2r ×v r ∣∣v sinθ1e2p=2Eμ=2μrv2μrμh2μv ×h r r =(μv2r1)r μv r v 1aμh2 1+ecosfparccos(e1(μrh21))a(1+e)2πμa3
由轨道元素计算位置和速度向量
R = [ c Ω c ω − s Ω c i s ω − c Ω s ω − s Ω c i c ω s Ω s i s Ω c ω + c Ω c i s ω − s Ω s ω + c Ω c i c ω − c Ω s i s i s ω s i c ω c i ] r ⃗ = R [ a ( 1 − e 2 ) 1 + e cos ⁡ θ cos ⁡ θ a ( 1 − e 2 ) 1 + e cos ⁡ θ sin ⁡ θ 0 ] v ⃗ = μ a ( 1 − e 2 ) R [ − sin ⁡ θ e + cos ⁡ θ 0 ] \begin{aligned} R =& \begin{bmatrix} c_\Omega c_\omega-s_\Omega c_i s_\omega & -c_\Omega s_\omega-s_\Omega c_i c_\omega & s_\Omega s_i \\ s_\Omega c_\omega+c_\Omega c_i s_\omega & -s_\Omega s_\omega+c_\Omega c_i c_\omega & -c_\Omega s_i \\ s_i s_\omega & s_i c_\omega & c_i \end{bmatrix} \\ \vec{r} =& R\begin{bmatrix} \displaystyle\frac{a(1-e^2)}{1+e\cos\theta}\cos\theta \\ \displaystyle\frac{a(1-e^2)}{1+e\cos\theta}\sin\theta \\ 0 \end{bmatrix} \\ \vec{v} =& \sqrt{\frac{\mu}{a(1-e^2)}}R\begin{bmatrix} -\sin\theta \\ e+\cos\theta \\ 0 \end{bmatrix} \end{aligned} R=r =v = cΩcωsΩcisωsΩcω+cΩcisωsisωcΩsωsΩcicωsΩsω+cΩcicωsicωsΩsicΩsici R 1+ecosθa(1e2)cosθ1+ecosθa(1e2)sinθ0 a(1e2)μ R sinθe+cosθ0
平近点角( M M M),真近点角( θ \theta θ),偏近点角( E E E)
E − e sin ⁡ E = M tan ⁡ E 2 tan ⁡ θ 2 = 1 − e 1 + e \begin{aligned} & E-e\sin E=M \\ & \frac{\tan\frac{E}{2}}{\tan\frac{\theta}{2}} = \sqrt{\frac{1-e}{1+e}} \end{aligned} EesinE=Mtan2θtan2E=1+e1e
根据平近点角计算真近点角
f = M + ( 2 e − 1 4 e 3 ) sin ⁡ M + 5 4 e 2 sin ⁡ 2 M + 13 12 e 3 sin ⁡ 3 M + O ( e 4 ) \begin{aligned} f =& M+\left(2e-{\frac {1}{4}}e^{3}\right)\sin {M} + {\frac {5}{4}}e^{2}\sin {2M} \\ &+ {\frac {13}{12}}e^{3}\sin {3M}+O(e^{4}) \end{aligned} f=M+(2e41e3)sinM+45e2sin2M+1213e3sin3M+O(e4)
已知 μ \mu μ、初始位置 r ⃗ \vec{r} r 和速度 v ⃗ \vec{v} v 计算经过指定时间 T 0 T_0 T0 后的位置和速度

  1. 根据初始位置速度计算轨道能量 E \mathcal{E} E 和偏心率 e ⃗ \vec{e} e
  2. 根据 μ \mu μ E \mathcal{E} E 计算半长轴 a a a 进而计算轨道周期 T T T
  3. 根据 T 0 T_0 T0 T T T 计算平近点角进而计算偏近点角 E E E
  4. 根据 e ⃗ \vec{e} e 计算半短轴 b b b 和焦距 c c c,由椭圆参数方程得到 r ⃗ \vec{r} r
  5. E \mathcal{E} E 计算速度大小 ∣ v ⃗ ∣ |\vec{v}| v
  6. 由偏心率公式计算速度 v ⃗ \vec{v} v

[ e 0 0 ] = ( v ⃗ × h ⃗ μ − r ⃗ ∣ r ⃗ ∣ ) [ r x r y 0 ] − v x r x + v y r y μ [ v x v y 0 ] k = v ⃗ × h ⃗ μ − r ⃗ ∣ r ⃗ ∣ r x v x 2 + r y v x v y = μ ( k r x − e ) r y v y 2 + r x v x v y = μ k r y r x 2 v x 2 + r x r y v x v y = μ ( k r x − e ) r x r y 2 v y 2 + r x r y v x v y = μ k r y r y r x 2 v x 2 − r y 2 v y 2 = μ ( k r x − e ) r x − μ k r y r y = k 1 v x 2 + v y 2 = v 2 v x 2 = r y 2 v 2 + k 1 r 2 v y 2 = r x 2 v 2 − k 1 r 2 k 1 = μ k ( r x 2 − r y 2 ) − e r x = ( v 2 − μ r ) ( r x 2 − r y 2 ) − μ e r x \begin{aligned} &\left[\begin{matrix} e \\ 0 \\ 0 \end{matrix}\right] = (\frac{\vec{v}\times\vec{h}}{\mu} - \frac{\vec{r}}{|\vec{r}|}) \left[\begin{matrix} r_x \\ r_y \\ 0 \end{matrix}\right] - \frac{v_xr_x+v_yr_y}{\mu} \left[\begin{matrix} v_x \\ v_y \\ 0 \end{matrix}\right] \\ & k = \frac{\vec{v}\times\vec{h}}{\mu} - \frac{\vec{r}}{|\vec{r}|} \\ & r_xv_x^2+r_yv_xv_y = \mu(kr_x-e) \\ & r_yv_y^2+r_xv_xv_y = \mu kr_y \\ & r_x^2v_x^2+r_xr_yv_xv_y = \mu(kr_x-e)r_x \\ & r_y^2v_y^2+r_xr_yv_xv_y = \mu kr_yr_y \\ & r_x^2v_x^2-r_y^2v_y^2 = \mu(kr_x-e)r_x - \mu kr_yr_y = k_1 \\ & v_x^2+v_y^2 = v^2 \\ & v_x^2 = \frac{r_y^2v^2 + k_1}{r^2} \\ & v_y^2 = \frac{r_x^2v^2 - k_1}{r^2} \\ &k_1 = \mu k(r_x^2-r_y^2) - er_x = (v^2 - \frac{\mu}{r})(r_x^2-r_y^2) - \mu er_x \end{aligned} e00 =(μv ×h r r ) rxry0 μvxrx+vyry vxvy0 k=μv ×h r r rxvx2+ryvxvy=μ(krxe)ryvy2+rxvxvy=μkryrx2vx2+rxryvxvy=μ(krxe)rxry2vy2+rxryvxvy=μkryryrx2vx2ry2vy2=μ(krxe)rxμkryry=k1vx2+vy2=v2vx2=r2ry2v2+k1vy2=r2rx2v2k1k1=μk(rx2ry2)erx=(v2rμ)(rx2ry2)μerx

四元数、欧拉角、旋转矩阵

四元数、欧拉角、旋转矩阵笔记 -CSDN博客

角速度公式

设一向量 x ⃗ ( t ) \vec{x}(t) x (t) 绕旋转轴 ω ⃗ \vec{\omega} ω 作匀速圆周运动,
x ⃗ ( t ) \vec{x}(t) x (t)的线速度为
x ⃗ ˙ ( t ) = ω ⃗ × x ⃗ ( t ) \dot{\vec{x}}(t)=\vec{\omega}\times\vec{x}(t) x ˙(t)=ω ×x (t)
证明: 由罗德里格斯(Rodrigues)旋转公式
R = cos ⁡ θ I + ( 1 − cos ⁡ θ ) n ⃗ n ⃗ T + sin ⁡ θ n ⃗ ∧ R=\cos\theta I+(1-\cos\theta)\vec{n}\vec{n}^\text{T}+\sin\theta\vec{n}^{\wedge} R=cosθI+(1cosθ)n n T+sinθn
其中
R R R为旋转矩阵,
n n n为单位旋转轴,
θ \theta θ为旋转角度,
n ⃗ ∧ \vec{n}^{\wedge} n 表示向量 n ⃗ \vec{n} n 叉乘对应的反对称矩阵。
将向量 ω ⃗ \vec{\omega} ω 写成 ω ⃗ = ω n ⃗ \vec{\omega}=\omega\vec{n} ω =ωn
并将旋转矩阵对时间 t t t求导得到
d d t R ( t ) = d d t ( cos ⁡ ω t I + ( 1 − cos ⁡ ω t ) ω ⃗ ω ω ⃗ T ω + sin ⁡ ω t ω ⃗ ∧ ω ) = − ω sin ⁡ ω t I + sin ⁡ ω t ω ω ⃗ ω ⃗ T + cos ⁡ ω t ⋅ ω ⃗ ∧ R ˙ ( t ) x ⃗ 0 = − ω sin ⁡ ω t x ⃗ 0 + sin ⁡ ω t ω ω ⃗ T x ⃗ 0 ω ⃗ + cos ⁡ ω t ⋅ ω ⃗ × x ⃗ 0 \begin{aligned} \frac{\text{d}}{\text{d}t}R(t) =& \frac{\text{d}}{\text{d}t}\left( \cos\omega t I +(1-\cos\omega t)\frac{\vec{\omega}}{\omega}\frac{\vec{\omega}^\text{T}}{\omega} +\sin\omega t\frac{\vec{\omega}^{\wedge}}{\omega} \right) \\ =& -\omega\sin\omega tI +\frac{\sin\omega t}{\omega}\vec{\omega}\vec{\omega}^\text{T} +\cos\omega t\cdot\vec{\omega}^{\wedge} \\ \dot{R}(t)\vec{x}_0 =& -\omega\sin\omega t\vec{x}_0 +\frac{\sin\omega t}{\omega}\vec{\omega}^\text{T}\vec{x}_0\vec{\omega} +\cos\omega t\cdot\vec{\omega}\times\vec{x}_0 \end{aligned} dtdR(t)==R˙(t)x 0=dtd(cosωtI+(1cosωt)ωω ωω T+sinωtωω )ωsinωtI+ωsinωtω ω T+cosωtω ωsinωtx 0+ωsinωtω Tx 0ω +cosωtω ×x 0
另因为
ω ⃗ × R ( t ) x ⃗ 0 = cos ⁡ ω t ⋅ ω ⃗ × x ⃗ 0 + 1 − cos ⁡ ω t ω 2 ω ⃗ × ω ⃗ ω ⃗ T x ⃗ 0 + sin ⁡ ω t ω ω ⃗ × ( ω ⃗ × x ⃗ 0 ) = cos ⁡ ω t ⋅ ω ⃗ × x ⃗ 0 + sin ⁡ ω t ω ( ω ⃗ T x ⃗ 0 ω ⃗ − ω ⃗ T ω ⃗ x ⃗ 0 ) \begin{aligned} \vec{\omega}\times R(t)\vec{x}_0 =& \cos\omega t\cdot\vec{\omega}\times\vec{x}_0 +\frac{1-\cos\omega t}{\omega^2}\vec{\omega}\times\vec{\omega}\vec{\omega}^\text{T}\vec{x}_0 \\ &+ \frac{\sin\omega t}{\omega}\vec{\omega}\times(\vec{\omega}\times\vec{x}_0) \\ =& \cos\omega t\cdot\vec{\omega}\times\vec{x}_0 +\frac{\sin\omega t}{\omega}(\vec{\omega}^\text{T}\vec{x}_0\vec{\omega} -\vec{\omega}^\text{T}\vec{\omega}\vec{x}_0) \end{aligned} ω ×R(t)x 0==cosωtω ×x 0+ω21cosωtω ×ω ω Tx 0+ωsinωtω ×(ω ×x 0)cosωtω ×x 0+ωsinωt(ω Tx 0ω ω Tω x 0)
所以
x ⃗ ˙ ( t ) = R ˙ ( t ) x ⃗ 0 = ω ⃗ × R ( t ) x ⃗ 0 = ω ⃗ × x ⃗ ( t ) \dot{\vec{x}}(t)=\dot{R}(t)\vec{x}_0=\vec{\omega}\times R(t)\vec{x}_0=\vec{\omega}\times\vec{x}(t) x ˙(t)=R˙(t)x 0=ω ×R(t)x 0=ω ×x (t)

旋转坐标系下的速度和加速度

旋转坐标系 F 2 \mathcal{F}_2 F2 绕惯性坐标系 F 1 \mathcal{F}_1 F1 以角速度 ω ⃗ \vec{\omega} ω 旋转,
F 1 \mathcal{F}_1 F1 下位置向量的一阶导和二阶导分别为
r ⃗ ˙ \dot{\vec{r}} r ˙ r ⃗ ¨ \ddot{\vec{r}} r ¨
F 2 \mathcal{F}_2 F2下位置向量的一阶导和二阶导为
r ⃗ ∘ \overset{\circ}{\vec{r}} r r ⃗ ∘ ∘ \overset{\circ\circ}{\vec{r}} r ∘∘
满足
r ⃗ ˙ = r ⃗ ∘ + ω ⃗ × r ⃗ r ⃗ ¨ = r ⃗ ∘ ∘ + 2 ω ⃗ × r ⃗ ∘ + ω ⃗ ∘ × r ⃗ + ω ⃗ × ( ω ⃗ × r ⃗ ) \begin{aligned} \dot{\vec{r}} =& \overset{\circ}{\vec{r}} + \vec{\omega}\times\vec{r} \\ \ddot{\vec{r}} =& \overset{\circ\circ}{\vec{r}} + 2\vec{\omega}\times\overset{\circ}{\vec{r}} + \overset{\circ}{\vec{\omega}}\times\vec{r} + \vec{\omega}\times(\vec{\omega}\times\vec{r}) \end{aligned} r ˙=r ¨=r +ω ×r r ∘∘+2ω ×r +ω ×r +ω ×(ω ×r )
证明:
设同一向量 r ⃗ \vec{r} r 在坐标系 F 1 \mathcal{F}_1 F1 F 2 \mathcal{F}_2 F2 下的坐标分别为
r ⃗ = [ e ⃗ x e ⃗ y e ⃗ z ] [ x 1 y 1 z 1 ] = [ a ⃗ x a ⃗ y a ⃗ z ] [ x 2 y 2 z 2 ] \vec{r} = \begin{bmatrix} \vec{e}_x & \vec{e}_y & \vec{e}_z \end{bmatrix} \begin{bmatrix} x_1 \\ y_1 \\ z_1 \end{bmatrix} = \begin{bmatrix} \vec{a}_x & \vec{a}_y & \vec{a}_z \end{bmatrix} \begin{bmatrix} x_2 \\ y_2 \\ z_2 \end{bmatrix} r =[e xe ye z] x1y1z1 =[a xa ya z] x2y2z2
其中 [ e ⃗ x   e ⃗ y   e ⃗ z ] [\vec{e}_x\ \vec{e}_y\ \vec{e}_z] [e x e y e z] 表示惯性坐标系 F 1 \mathcal{F}_1 F1 下的三轴单位向量, [ a ⃗ x   a ⃗ y   a ⃗ z ] [\vec{a}_x\ \vec{a}_y\ \vec{a}_z] [a x a y a z] 表示坐标系 F 2 \mathcal{F}_2 F2 的三轴单位向量在惯性坐标系 F 1 \mathcal{F}_1 F1 下的坐标,
三个单位向量张成旋转坐标系 F 2 \mathcal{F}_2 F2
则向量 r ⃗ \vec{r} r 的一阶导
r ⃗ ˙ = [ a ⃗ ˙ x a ⃗ ˙ y a ⃗ ˙ z ] [ x 2 y 2 z 2 ] + [ a ⃗ x a ⃗ y a ⃗ z ] [ x ˙ 2 y ˙ 2 z ˙ 2 ] = ω ⃗ × [ a ⃗ x a ⃗ y a ⃗ z ] [ x 2 y 2 z 2 ] + r ⃗ ∘ = ω ⃗ × r ⃗ + r ⃗ ∘ \begin{aligned} \dot{\vec{r}} =& \begin{bmatrix} \dot{\vec{a}}_x & \dot{\vec{a}}_y & \dot{\vec{a}}_z \end{bmatrix} \begin{bmatrix} x_2 \\ y_2 \\ z_2 \end{bmatrix} + \begin{bmatrix} \vec{a}_x & \vec{a}_y & \vec{a}_z \end{bmatrix} \begin{bmatrix} \dot{x}_2 \\ \dot{y}_2 \\ \dot{z}_2 \end{bmatrix} \\ =& \vec{\omega}\times \begin{bmatrix} \vec{a}_x & \vec{a}_y & \vec{a}_z \end{bmatrix} \begin{bmatrix} x_2 \\ y_2 \\ z_2 \end{bmatrix} + \overset{\circ}{\vec{r}} \\ =& \vec{\omega}\times\vec{r} + \overset{\circ}{\vec{r}} \end{aligned} r ˙===[a ˙xa ˙ya ˙z] x2y2z2 +[a xa ya z] x˙2y˙2z˙2 ω ×[a xa ya z] x2y2z2 +r ω ×r +r
使用坐标系的记法写作
r ⃗ ˙ = d d t ( F 2 r ⃗ 2 ) = F 2 r ⃗ ˙ 2 + F 2 ˙ r ⃗ 2 = F 2 r ⃗ ˙ 2 + ω ⃗ × F 2 r ⃗ 2 = F 2 r ⃗ ˙ 2 + ω ⃗ × F 1 r ⃗ 1 \begin{aligned} \dot{\vec{r}} =& \frac{\text{d}}{\text{d}t}(\mathcal{F}_2\vec{r}_2) \\ =& \mathcal{F}_2\dot{\vec{r}}_2 + \dot{\mathcal{F}_2}\vec{r}_2 \\ =& \mathcal{F}_2\dot{\vec{r}}_2 + \vec{\omega} \times \mathcal{F}_2\vec{r}_2 \\ =& \mathcal{F}_2\dot{\vec{r}}_2 + \vec{\omega} \times \mathcal{F}_1\vec{r}_1 \end{aligned} r ˙====dtd(F2r 2)F2r ˙2+F2˙r 2F2r ˙2+ω ×F2r 2F2r ˙2+ω ×F1r 1
对上式进一步求导得
r ⃗ ¨ = ω ⃗ × F 2 r ⃗ ˙ 2 + F 2 r ⃗ ¨ 2 + ω ⃗ ˙ × F 1 r ⃗ 1 + ω ⃗ × ( ω ⃗ × F 2 r ⃗ 2 + F 2 r ⃗ ˙ 2 ) = F 2 r ⃗ ¨ 2 + 2 ω ⃗ × F 2 r ⃗ ˙ 2 + ω ⃗ ˙ × F 1 r ⃗ 1 + ω ⃗ × ( ω ⃗ × F 1 r ⃗ 1 ) = r ⃗ ∘ ∘ + 2 ω ⃗ × r ⃗ ∘ + ω ⃗ ˙ × r ⃗ + ω ⃗ × ( ω ⃗ × r ⃗ ) \begin{aligned} \ddot{\vec{r}} =& \vec{\omega} \times \mathcal{F}_2\dot{\vec{r}}_2 + \mathcal{F}_2\ddot{\vec{r}}_2 + \dot{\vec{\omega}} \times \mathcal{F}_1\vec{r}_1 \\ &+ \vec{\omega} \times (\vec{\omega} \times \mathcal{F}_2\vec{r}_2 + \mathcal{F}_2\dot{\vec{r}}_2) \\ =& \mathcal{F}_2\ddot{\vec{r}}_2 + 2\vec{\omega} \times \mathcal{F}_2\dot{\vec{r}}_2 \\ &+ \dot{\vec{\omega}} \times \mathcal{F}_1\vec{r}_1 + \vec{\omega} \times (\vec{\omega} \times \mathcal{F}_1\vec{r}_1) \\ =& \overset{\circ\circ}{\vec{r}} + 2\vec{\omega}\times\overset{\circ}{\vec{r}} + \dot{\vec{\omega}}\times\vec{r} + \vec{\omega}\times(\vec{\omega}\times\vec{r}) \end{aligned} r ¨===ω ×F2r ˙2+F2r ¨2+ω ˙×F1r 1+ω ×(ω ×F2r 2+F2r ˙2)F2r ¨2+2ω ×F2r ˙2+ω ˙×F1r 1+ω ×(ω ×F1r 1)r ∘∘+2ω ×r +ω ˙×r +ω ×(ω ×r )
其中 ω ⃗ \vec{\omega} ω 在两个坐标系下的坐标相等,
ω ⃗ ˙ = ω ⃗ ∘ \dot{\vec{\omega}}=\overset{\circ}{\vec{\omega}} ω ˙=ω

刚体动力学中的欧拉方程

【班门弄斧系列】分析力学/进阶力学 01 多体系统
刚体动力学中的欧拉方程是如何推导出来的?-知乎
惯性矩、惯性积、转动惯量、惯性张量 -博客园
Euler-Lagrange equations for free rigid body -stackexchange
Jacobian of Euler’s rotation equations -stackexchange
4.5: Euler’s Equations of Motion -libretexts
13.17: Euler’s equations of motion for rigid-body rotation -libretexts
Euler’s equations (rigid body dynamics)
定点转动的欧拉动力学方程

离散形式下,
动量 P ⃗ a = m a r ⃗ ˙ a \vec{P}_a=m_a\dot{\vec{r}}_a P a=mar ˙a
角动量 L ⃗ a = r ⃗ a × P ⃗ a \vec{L}_a=\vec{r}_a\times\vec{P}_a L a=r a×P a
质心(Center of Mass, COM) R ⃗ = 1 M ∑ a m a r ⃗ a \vec{R}=\displaystyle\frac{1}{M}\sum_a m_a\vec{r}_a R =M1amar a
总动量 P ⃗ = M R ⃗ ˙ = ∑ a P ⃗ a \vec{P}=M\dot{\vec{R}}=\displaystyle\sum_a\vec{P}_a P =MR ˙=aP a
连续形式下,
总质量 M = ∭ ρ ( r ⃗ ) d v M=\displaystyle\iiint\rho(\vec{r})\text{d}v M=ρ(r )dv
质心 R ⃗ = 1 M ∭ ρ ( r ⃗ ) r ⃗ d v \vec{R}=\displaystyle\frac{1}{M}\iiint\rho(\vec{r})\vec{r}\text{d}v R =M1ρ(r )r dv
角动量 L ⃗ a = ∭ ρ ( r ⃗ ) r ⃗ × r ⃗ ˙ d v \vec{L}_a=\displaystyle\iiint\rho(\vec{r})\vec{r}\times\dot{\vec{r}}\text{d}v L a=ρ(r )r ×r ˙dv
刚体的运动可以分解为刚体质心的运动和刚体相对于质心的运动,即 r ⃗ = R ⃗ + r ⃗ ∗ \vec{r}=\vec{R}+\vec{r}^* r =R +r ,其中 R ⃗ \vec{R} R r ⃗ ∗ \vec{r}^* r 分别为质心坐标和刚体上每个点的坐标, r ⃗ ∗ \vec{r}^* r 满足 ∑ m r ⃗ ∗ = 0 \sum m\vec{r}^*=0 mr =0,或 ∭ ρ ( r ⃗ ∗ ) r ⃗ ∗ d 3 r ⃗ ∗ = 0 \displaystyle\iiint\rho(\vec{r}^*)\vec{r}^*\text{d}^3\vec{r}^*=0 ρ(r )r d3r =0
L ⃗ = ∫ v ρ ( r ⃗ ) r ⃗ × r ⃗ ˙ d v = ∫ v d v [ ρ ( r ⃗ ) ⋅ ( R ⃗ + r ⃗ ∗ ) × ( R ⃗ ˙ + r ⃗ ∗ ˙ ) ] = ∫ v d v ⋅ ρ ( r ⃗ ) [ ( R ⃗ × R ⃗ ˙ ) + ( r ⃗ ∗ × r ⃗ ∗ ˙ ) + ( R ⃗ × r ⃗ ∗ ˙ ) + ( r ⃗ ∗ × R ⃗ ˙ ) ] = ∫ v d v ⋅ ρ ( r ⃗ ) ( R ⃗ × R ⃗ ˙ ) + ∫ v d v ⋅ ρ ( r ⃗ ) ( r ⃗ ∗ × r ⃗ ∗ ˙ ) = L ⃗ C O M + L ⃗ C O M ∗ \begin{aligned} \vec{L} =& \int_v\rho(\vec{r})\vec{r}\times\dot{\vec{r}}\text{d}v \\ =& \int_v\text{d}v\left[\rho(\vec{r})\cdot(\vec{R}+\vec{r}^*) \times(\dot{\vec{R}}+\dot{\vec{r}^*})\right] \\ =& \int_v\text{d}v\cdot\rho(\vec{r})\left[(\vec{R}\times\dot{\vec{R}}) +(\vec{r}^*\times\dot{\vec{r}^*})+(\vec{R}\times\dot{\vec{r}^*}) +(\vec{r}^*\times\dot{\vec{R}})\right] \\ =& \int_v\text{d}v\cdot\rho(\vec{r})(\vec{R}\times\dot{\vec{R}}) +\int_v\text{d}v\cdot\rho(\vec{r})(\vec{r}^*\times\dot{\vec{r}^*}) \\ =& \vec{L}_{COM}+\vec{L}_{COM}^* \end{aligned} L =====vρ(r )r ×r ˙dvvdv[ρ(r )(R +r )×(R ˙+r ˙)]vdvρ(r )[(R ×R ˙)+(r ×r ˙)+(R ×r ˙)+(r ×R ˙)]vdvρ(r )(R ×R ˙)+vdvρ(r )(r ×r ˙)L COM+L COM

两轴力矩控制三轴姿态

对被控对象
J ω ⃗ ˙ + ω ⃗ × J ω ⃗ = H J\dot{\vec{\omega}}+\vec{\omega}\times J\vec{\omega}=H Jω ˙+ω ×Jω =H

QUEST 算法

  QUEST(QUaternion ESTimator)已知多个参考向量 y k y_k yk 和对应的多个观测向量 x k x_k xk,求旋转矩阵 A A A 使得 y = R x y=Rx y=Rx 的误差最小,即最小化指标函数
J 0 = 1 2 ∑ k = 1 n α k ∣ y k − A x k ∣ 2 J_0=\frac{1}{2}\sum_{k=1}^n\alpha_k|y_k-Ax_k|^2 J0=21k=1nαkykAxk2
或者最大化指标函数
J = ∑ k = 1 n α k y k T A x k J=\sum_{k=1}^n\alpha_ky_k^\text{T}Ax_k J=k=1nαkykTAxk
其中 y k y_k yk x k x_k xk 均为单位向量, α k ≥ 0 \alpha_k\ge 0 αk0 为加权因子, ∑ α k = 1 \sum\alpha_k=1 αk=1,并且 J = 1 − J 0 J=1-J_0 J=1J0

一组数据的情况

  首先研究一个向量 y = A x y=Ax y=Ax,设 B = y x T B=yx^\text{T} B=yxT,利用关于矩阵的迹的两个公式
x T y = tr ( y x T ) = tr ( x y T ) tr ( A B ) = tr ( B A ) x^\text{T}y=\text{tr}(yx^\text{T})=\text{tr}(xy^\text{T}) \\ \text{tr}(AB)=\text{tr}(BA) xTy=tr(yxT)=tr(xyT)tr(AB)=tr(BA)

J = y T A x = tr ( y ( A x ) T ) = tr ( y x T A T ) = tr ( B A T ) = tr ( A B T ) \begin{aligned} J=y^\text{T}Ax=\text{tr}(y(Ax)^\text{T})=\text{tr}(yx^\text{T}A^\text{T}) =\text{tr}(BA^\text{T})=\text{tr}(AB^\text{T}) \end{aligned} J=yTAx=tr(y(Ax)T)=tr(yxTAT)=tr(BAT)=tr(ABT)
将四元数与旋转矩阵的关系 (四元数、欧拉角、旋转矩阵笔记)
R = ( w 2 − q v T q v ) I + 2 q v q v T − 2 w q v ∧ R=(w^2-q_v^\text{T}q_v)I+2q_vq_v^\text{T}-2wq_v^{\wedge} R=(w2qvTqv)I+2qvqvT2wqv
代入 J J J
J = tr ( [ ( w 2 − q v T q v ) I + 2 q v q v T − 2 w q v ∧ ] B T ) = ( w 2 − q v T q v ) tr ( B ) + 2 tr ( q v q v T B T ) − 2 w tr ( q v ∧ B T ) \begin{aligned} J =& \text{tr}([(w^2-q_v^\text{T}q_v)I +2q_vq_v^\text{T}-2wq_v^{\wedge}]B^\text{T}) \\ =& (w^2-q_v^\text{T}q_v)\text{tr}(B)+2\text{tr}(q_vq_v^\text{T}B^\text{T}) -2w\text{tr}(q_v^{\wedge}B^\text{T}) \end{aligned} J==tr([(w2qvTqv)I+2qvqvT2wqv]BT)(w2qvTqv)tr(B)+2tr(qvqvTBT)2wtr(qvBT)

σ = tr ( B ) S = B + B T = y x T + x y T Z = y × x \begin{aligned} \sigma =& \text{tr}(B) \\ S =& B+B^\text{T} = yx^\text{T}+xy^\text{T} \\ Z =& y\times x \end{aligned} σ=S=Z=tr(B)B+BT=yxT+xyTy×x

J = ( w 2 − q v T q v ) σ + 2 tr ( q v q v T x y T ) − 2 w tr ( q v ∧ x y T ) = w 2 σ − q v T q v σ + tr ( x y T q v q v T ) + q v T x tr ( q v y T ) − 2 w tr ( q v ∧ x y T ) = w 2 σ − q v T q v σ + y T q v tr ( x q v T ) + q v T x tr ( y T q v ) − 2 w y T q v ∧ x = w 2 σ − σ q v T q v + q v T y x T q v + q v T x y T q v + 2 w q v T y ∧ x = w 2 σ − σ q v T q v + q v T S q v + 2 w q v T ( y × x ) = w 2 σ + q v T Z w + w Z T q v + q v T S q v − σ q v T q v = ( w σ + q v T Z ) w + ( w Z T + q v T ( S − σ I ) ) q v = [ w q v T ] [ σ Z T Z S − σ I ] [ w q v ] = q T K q \begin{aligned} J=& (w^2-q_v^\text{T}q_v)\sigma+2\text{tr}(q_vq_v^\text{T}xy^\text{T}) -2w\text{tr}(q_v^{\wedge}xy^\text{T}) \\ =& w^2\sigma-q_v^\text{T}q_v\sigma+\text{tr}(xy^\text{T}q_vq_v^\text{T}) +q_v^\text{T}x\text{tr}(q_vy^\text{T}) -2w\text{tr}(q_v^{\wedge}xy^\text{T}) \\ =& w^2\sigma-q_v^\text{T}q_v\sigma+y^\text{T}q_v\text{tr}(xq_v^\text{T}) +q_v^\text{T}x\text{tr}(y^\text{T}q_v) -2wy^\text{T}q_v^{\wedge}x \\ =& w^2\sigma-\sigma q_v^\text{T}q_v+q_v^\text{T}yx^\text{T}q_v +q_v^\text{T}xy^\text{T}q_v+2wq_v^\text{T}y^{\wedge}x \\ =& w^2\sigma-\sigma q_v^\text{T}q_v+q_v^\text{T}Sq_v+2wq_v^\text{T}(y\times x) \\ =& w^2\sigma+q_v^\text{T}Zw+wZ^\text{T}q_v +q_v^\text{T}Sq_v-\sigma q_v^\text{T}q_v \\ =& (w\sigma+q_v^\text{T}Z)w+(wZ^\text{T}+q_v^\text{T}(S-\sigma I))q_v \\ =& \begin{bmatrix} w & q_v^\text{T} \end{bmatrix} \begin{bmatrix} \sigma & Z^\text{T} \\ Z & S-\sigma I \\ \end{bmatrix} \begin{bmatrix} w \\ q_v \end{bmatrix} \\ =& q^\text{T}Kq \end{aligned} J=========(w2qvTqv)σ+2tr(qvqvTxyT)2wtr(qvxyT)w2σqvTqvσ+tr(xyTqvqvT)+qvTxtr(qvyT)2wtr(qvxyT)w2σqvTqvσ+yTqvtr(xqvT)+qvTxtr(yTqv)2wyTqvxw2σσqvTqv+qvTyxTqv+qvTxyTqv+2wqvTyxw2σσqvTqv+qvTSqv+2wqvT(y×x)w2σ+qvTZw+wZTqv+qvTSqvσqvTqv(wσ+qvTZ)w+(wZT+qvT(SσI))qv[wqvT][σZZTSσI][wqv]qTKq
其中第3行到第4行 y T q v ∧ x = − q v T y ∧ x y^\text{T}q_v^{\wedge}x = -q_v^\text{T}y^{\wedge}x yTqvx=qvTyx 实际上等价于
a ⋅ ( b × c ) = b ⋅ ( c × a ) = c ⋅ ( a × b ) a\cdot (b\times c) = b\cdot (c\times a) = c\cdot (a\times b) a(b×c)=b(c×a)=c(a×b)
  考虑到单位四元数 q q q 满足 ∣ q ∣ = 1 |q|=1 q=1,使用拉格朗日乘子法,
L = q T K q + λ ( q T q − 1 ) ∂ L ∂ q = 2 K q − 2 λ q = 0 \begin{aligned} L =& q^\text{T}Kq+\lambda(q^\text{T}q-1) \\ \frac{\partial L}{\partial q} =& 2Kq-2\lambda q=0 \end{aligned} L=qL=qTKq+λ(qTq1)2Kq2λq=0
  进一步扩展到多组数据并加入权重,取
B = ∑ k = 1 n α k y k x k T σ = tr ( B ) S = B + B T Z = ∑ k = 1 n α k y k × x k \begin{aligned} B =& \sum_{k=1}^n \alpha_k y_k x_k^\text{T} \\ \sigma =& \text{tr}(B) \\ S =& B+B^\text{T} \\ Z =& \sum_{k=1}^n \alpha_k y_k \times x_k \end{aligned} B=σ=S=Z=k=1nαkykxkTtr(B)B+BTk=1nαkyk×xk

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值