旋转变换的一些个人理解

对于坐标系 w w w上的一点 ( x , y ) (x,y) (x,y)经过线性变换 A A A得到的点是 ( x ′ , y ′ ) (x^\prime,y^\prime) (x,y)。注意,这里面的点还是在 w w w坐标系下的。比如,旋转变换 L \bf{L} L,原基底是 ( 1 , 0 ) , ( 0 , 1 ) (1,0),(0,1) (1,0),(0,1),经过旋转变换后得到的是 ( cos ⁡ θ , sin ⁡ θ ) , ( − sin ⁡ θ , cos ⁡ θ ) (\cos \theta,\sin \theta),(-\sin \theta,\cos\theta) (cosθ,sinθ),(sinθ,cosθ),因此旋转矩阵可以写作为:
(1) L = ( cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ) \bf{L}= \left( \begin{matrix} \cos \theta&\sin \theta\\ -\sin \theta&\cos\theta \end{matrix} \right) \tag{1} L=(cosθsinθsinθcosθ)(1)
w w w坐标系下的任何点的坐标经过旋转变换的坐标都可以由下面的式子求得:
(2) x ′ = L x \bf{x^{\prime}} = Lx \tag{2} x=Lx(2)
下面思考的问题是,一个向量在旋转后的坐标系(假设为 b b b),则在此坐标系下的坐标应该怎么求解呢?显然,我们可以根据几何关系很容易得到,我们这里从另外一个角度出发:
对于一个向量 m m m w w w坐标系下的表示为: m = a i ⃗ + b j ⃗ m=a\vec{i}+b\vec{j} m=ai +bj ,在 b b b坐标系下的坐标为: m = a ′ i ′ ⃗ + b j ′ ⃗ m=a^{'}\vec{i^{'}}+b\vec{j^{'}} m=ai +bj 那么这两个向量应该是相同的,表示为矩阵则是:
(3) ( a b ) = P ( a ′ b ′ ) \left( \begin{matrix} a\\ b \end{matrix} \right) =\bf{P} \left( \begin{matrix} a^\prime\\ b^\prime \end{matrix} \right) \tag{3} (ab)=P(ab)(3)
结合23式我们可以看出 P = L − 1 \bf{P}=L^{-1} P=L1,对于一个二维的旋转矩阵:
(4) L = ( cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ) \bf{L}=\left( \begin{matrix} \cos\theta&-\sin\theta\\ \sin\theta&\cos\theta \end{matrix} \right) \tag{4} L=(cosθsinθsinθcosθ)(4)
那么,我们可以求得旋转后的坐标系向量表示变换矩阵:
(5) P = L − 1 = ( cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ) \bf{P}=\bf{L}^{-1}= \left( \begin{matrix} \cos\theta&\sin\theta\\ -\sin\theta&\cos\theta \end{matrix} \right) \tag{5} P=L1=(cosθsinθsinθcosθ)(5)
在询问了数学系的科大学长后才得知,这是两个不同数学角度的表达,前者是代数角度,后者是几何角度。啊,自己还想了一个钟头。=-=。
加速度计测量到的值为(注意是机身坐标系) ( A x b , A y b , A z b ) T (A_x^b,A_y^b,A_z^b)^T (Axb,Ayb,Azb)T,由于在悬停过程中,飞行器在导航坐标系的加速度值为 ( 0 , 0 , g ) T (0,0,g)^T (0,0,g)T,因此有:
R b n A b = ( 0 0 g ) R_b^nA^{b}=\left(\begin{matrix}0\\0\\g\end{matrix}\right) RbnAb=00g
其中, R b n R_b^n Rbn是机身到导航坐标系的变换矩阵:
R b n = ( c θ s ϕ s θ c ψ − c θ s ψ s ϕ s ψ + c ϕ s θ s ψ c θ s ψ c ϕ c ψ + s ϕ s θ s ψ c ϕ s θ s ψ − s ϕ c ψ − s θ c θ s ϕ c ϕ c θ ) R_b^n= \left( \begin{matrix} c\theta &s\phi s\theta c\psi-c\theta s\psi & s\phi s\psi +c\phi s\theta s\psi \\ c\theta s\psi & c\phi c\psi +s\phi s\theta s\psi & c\phi s\theta s\psi -s\phi c\psi\\ -s\theta & c\theta s\phi & c\phi c\theta \end{matrix} \right) Rbn=cθcθsψsθsϕsθcψcθsψcϕcψ+sϕsθsψcθsϕsϕsψ+cϕsθsψcϕsθsψsϕcψcϕcθ
师兄说,手推出姿态角,比较懒,找到MMA求解旋转问题的方法:

ComplexExpand[RotationMatrix[{{0, 0, -g}, {x, y, z}}],  TargetFunctions -> {Re, Im}]//Simplify

比较快速的求解出姿态角。

矩阵的线性变换的再次理解

x 1 , ⋯   , x n \boldsymbol{x_1},\cdots ,\boldsymbol{x_n} x1,,xn以及 y 1 , ⋯ y n \boldsymbol{y_1},\cdots \boldsymbol{y_n} y1,yn是空间 V \boldsymbol{V} V的两组基,那么:
y i = ∑ k = 1 n a k i x i = ( x 1 , ⋯   , x n ) ( a 1 i … a n i ) \boldsymbol{y_i} = \sum_{k = 1}^{n}a_{ki}\boldsymbol{x_i} = (\boldsymbol{x_1,\cdots,x_n}) \left( \begin{matrix} a_{1i}\\ \dots\\ a_{ni} \end{matrix} \right) yi=k=1nakixi=(x1,,xn)a1iani
因此,可以用矩阵来表示:
y = x A \boldsymbol{y} = \boldsymbol{x}A y=xA
称矩阵 A A A为过渡矩阵。

如果基底 x \boldsymbol{x} x采用的是标准正交基,那么 y = A = ( a 1 , ⋯   , a n ) \boldsymbol{y} = A = (\boldsymbol{a_1,\cdots,a_n}) y=A=(a1,,an),即变换矩阵的每一列的就是另外一组基。

下面讨论坐标的变换

对于空间 V \boldsymbol{V} V中的任意一个向量 l = ∑ i = 1 n ξ i x i = ∑ j = 1 n η j y j \boldsymbol{l} = \sum_{i = 1}^{n}\xi_{i}\boldsymbol{x_i} = \sum_{j = 1}^{n}\eta_{j}\boldsymbol{y_j} l=i=1nξixi=j=1nηjyj

那么:
l = ( x 1 , ⋯   , x n ) ( ξ 1 ⋯ ξ n ) = ( y 1 , ⋯   , y n ) A − 1 ( ξ 1 ⋯ ξ n ) = ( y 1 , ⋯   , y n ) ( η 1 ⋯ η n ) \boldsymbol{l} = (\boldsymbol{x_1,\cdots,x_n})\left(\begin{matrix}\xi_{1}\\\cdots\\\xi_{n}\end{matrix}\right)= (\boldsymbol{y_1,\cdots,y_n})A^{-1}\left(\begin{matrix}\xi_{1}\\\cdots\\\xi_{n}\end{matrix}\right) = (\boldsymbol{y_1,\cdots,y_n})\left(\begin{matrix}\eta_{1}\\\cdots\\\eta_{n}\end{matrix}\right) l=(x1,,xn)ξ1ξn=(y1,,yn)A1ξ1ξn=(y1,,yn)η1ηn
那么:
( η 1 ⋯ η n ) = A − 1 ( ξ 1 ⋯ ξ n ) \left(\begin{matrix}\eta_1\\\cdots\\\eta_n\end{matrix}\right) = A^{-1}\left(\begin{matrix}\xi_1\\\cdots\\\xi_{n}\end{matrix}\right) η1ηn=A1ξ1ξn
比如在飞控中,统一物理量在不同坐标系下的表示要需要这个trick。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值