【宇宙機制御入門】キネマティクスその1,DCM(方向余弦行列)【第1弾】

今回は,キネマティクスについてです.
キネマティクス(Kinematics)という言葉は,機械系の大学生であっても聞きなれないものだと思います.

日本語では運動学と呼ばれます.運動の幾何学的性質を論じる学問で,並進および回転運動の変位・速度・加速度などが扱う物理量で,長さと時間のみにフォーカスします.

運動とその変化の原因に力を持ち出さないわけです.僕個人のイメージとしてはモノクロな運動方程式ですね.

ここでは,まず姿勢の表記法を紹介します.
姿勢の表記には,座標系が大切です.ある座標での姿勢と別の座標での姿勢は,座標を取っ払えば同じ姿勢です.しかしながら計算していく上で何かしら量を与えなくてはいけません,そこで,どのように姿勢を表記して,どのように二つの座標間で変換計算を行うかを考えるべきです.

その方式には

  1. DCM(Direction cosine matrix)方向余弦行列
  2. オイラー角
  3. クォータニオン

などがあります.

DCM(座標変換行列)

例えば,衛星の姿勢を考える場合によくあるのが,

慣性座標系とボディ座標系の変換です.

つまり,地球を中心にするある座標系から衛星の主には重心を中心とするボディ座標系(決め方はなんでもよいですが,太陽電池パネルの回転軸に沿わせたり,アンテナの軸に合わせたりすると利便性が上がるのでよくなされます.)慣性系での表記\bf x_i ボディ系での表記を\bf x_bとしてみましょう.これは基本的には3成分を有していてベクトルのようですが,ベクトルとは違うので注意してください.ベクトルというと,座標系によらずに定義できる方向を表すものです.

この成分配列どうしの変換行列(3\times3の9成分)をC^i_bとすると,

    \begin{eqnarray*}{\bf x}^i = C^i_b{\bf x}^b\end{eqnarray*}

とかけます.

慣性系の基底ベクトルの列をならべたベクトル配列(行列のような形式)を\bf i, ボディ系を構成するの基底ベクトルの列をならべたベクトル配列\bf b としましょう.

どの座標系であろうが,任意の姿勢を表すベクトル\bf x とするとそれは,ある座標系の基底ベクトルの一次結合(ベクトルの定数倍の和)で表せるので,慣性系,ボディ系では,

    \begin{eqnarray*}\bf{x}&=&\bf{i_1}x_1^i+\bf{i_2}x_2^i+\bf{i_3}x_3^i\\&=&\begin{Bmatrix}\bf{i_1} \bf{i_2} \bf{i_3}\end{Bmatrix}\begin{bmatrix}x_1^i\\x_2^i\\x_3^i \end{bmatrix} \\&=&\begin{Bmatrix}{\bf i}\end{Bmatrix}^Tx^i\\&=&\bf{b_1}x_1^b+\bf{b_2}x_2^b+\bf{b_3}x_3^b\\&=&\begin{Bmatrix}\bf{b_1} \bf{b_2} \bf{b_3}\end{Bmatrix}\begin{bmatrix}x_1^b\\x_2^b\\x_3^b \end{bmatrix} \\&=&\begin{Bmatrix}{\bf b}\end{Bmatrix}^Tx^b\end{eqnarray*}

というふうにかけて,この\bf x^iが慣性系での,\bf x^bがボディ系での,その姿勢の成分表記なわけで,ベクトルではないわけです.この違いが,この分野を学ぶ上ではじめにぶつかる壁なので,おさえておきましょう.

さて,先ほどのC^i_bを求めたいことが多いわけですが,9つのパラメータもどうやって求めるのでしょうか.

実は,この変換は,直交座標系どうしの変換なので,CC^T=C^TC=Iとなります.

この性質を使うと,3つまで減らせます.なので,実際上は,慣性空間で方向がわかっている星を3つスターセンサと呼ばれる衛星ならほぼ必ず持っているセンサで観測し,ボディ系での成分を求めます.

慣性系での成分は,星のカタログがあって,そこからわかるので,これらの情報から,C^i_bそのものを計算できます.

一度この作業で変換行列を計算してしまえば,その後はジャイロセンサーなどで計測した角速度で,この変換行列の時間発展を計算できます.

そのために必要な式を以下で示します.

ボディ座標に固定されたベクトル\bf x を考えます.このときd{\bf x}/dt=\omega\times{\bf x} と計算できて,慣性系表示にすると,d{\bf x^i}/dt=\omega^i\times{\bf x}^i となります.{\bf x^i}=C^i_b{\bf x^b を代入すると,

    \begin{eqnarray*} \frac{d}{dt}C^i_b{\bf x^b} =\frac{dC^i_b}{dt}{\bf x^b} +\frac{d{\bf x^b}}{dt}C^i_b\end{eqnarray*}

であるが,{\bf x}がボディ系に固定なので,  \frac{d{\bf x^b}}{dt}=0 となります.よって,

    \begin{eqnarray*} \frac{dC^i_b}{dt}{\bf x^b} =\omega^i\times C_b^i{\bf x}^i\end{eqnarray*}

ここで,

    \begin{eqnarray*}\omega&=&\begin{bmatrix}\omega_1\\ \omega_2\\ \omega_3\end{bmatrix},\\  \begin{bmatrix}\omega\times\right\end{bmatrix}&=&\begin{bmatrix}0&-\omega_3&\omega_2\\\omega_3&0&-\omega_1\\- \omega_2 &\omega_1&0\end{bmatrix}\end{eqnarray*}

とかくことにすると

    \begin{eqnarray*} \dot{C}^i_b=\begin{bmatrix}\omega^i\times\end{bmatrix}C_b^i\end{eqnarray*}

とかけます.これによって,座標変換行列DCMの時間変化が計算できるようになります.

この式のことを,キネマティック方程式と呼んでいます.

これは,ボディ系表示の角速度ベクトルを用いて,

    \begin{eqnarray*}\dot{C}^i_b=C_b^i\begin{bmatrix}\omega^i\times\end{bmatrix}\end{eqnarray*}

ともかけます.導出は省きます.

実用上は,衛星におけるジャイロで得られるのはボディ系での角速度情報になるので,後者の式の方が便利になります.

 

今回は,座標変換行列DCMについて紹介しました.

次回は,オイラー角についてです.

 

参考:
[1] 茂原,宇宙工学入門,培風館,1994.
(良書なのですが絶版なので高騰化しています,図書館にあればラッキーですね.このことも私が記事を書いているモチベーションだったりします.)
[2] 狼ほか,宇宙ステーション入門, 東京大学出版会, 2014.

コメント

タイトルとURLをコピーしました