【宇宙機制御入門】キネマティクスその1,DCM(方向余弦行列)【第1弾】 | デイビッドの宇宙開発ブログ

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

はじめに

この記事は,宇宙機制御基礎講座の第1弾です.この講座では,宇宙機の主に姿勢力学・制御について,初学者の方が難しい専門書を読まずにサクッとエッセンスが習得できることを目指しています.また,そういった専門書では述べられない,理解の近道やちょっとした工夫なども盛り込むようにしています.

宇宙工学の分野,特に宇宙機の制御に関する専門書は和書にはほとんどないのが現状です.またそういった専門書は,初学者にはあまりにも難解で途方にくれてしまいます.院試や学科の勉強で苦労される方も多いと思います.実際に筆者もそうでしたしなんなら今もよく困ります笑.そのような方が,まずは手軽に学習のとっかかりを得て・概観と本質を上手くつかんでいただくサポートができれば,と考えています.不明点などがあれば,ぜひ気軽にコメントいただければ,追記させていただきます!

キネマティクスとは

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

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

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

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

姿勢表現の方式には

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

などがあります.

DCM(方向余弦行列)

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

さて今回の話題は,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^b\times\end{bmatrix}\end{eqnarray*}

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

2022年1月追記

コメントでこの部分の導出についてご質問がありましたので,追記しておきます.

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

ここで,{\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*}

であるので,

    \begin{eqnarray*} 0=\frac{dC^i_b}{dt}{\bf x^b} +C^i_b(-\omega^b\times{\bf x}^b)\end{eqnarray*}

よって,

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

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

と得られます!

 

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

おわりに

今回は,方向余弦行列DCMについて紹介しました.慣性座標と回転座標の変換は,宇宙機の分野では頻繁に行われますが,初学者にとっては難解です.ゆっくりと自分で式展開を追いながら学習するのがおすすめです.

 

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

参考文献

宇宙機の姿勢関連では以下がおすすめです.

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

[2] 狼ほか,宇宙ステーション入門, 東京大学出版会, 2014.

ほか記事もどうぞ.
【軌道力学入門】二体問題の基本方程式、軌道要素【第1弾】

【圧縮性流体力学入門】音速とマッハ数【第1弾】

コメント

  1. ty より:

    最後のボディ系表示の角速度ベクトルを用いたキネマティク方程式は, 上式から直ちに導けるのでしょうか. この式の導出に悩んでいるのですが, 参考文献などに記述されていたりしますでしょうか.

    • デイビッド より:

      ty様 貴重なコメントありがとうございます.最後の式のオメガの添字が間違っておりました(i-> b)
      ・・・ご指摘のおかげで気づくことができました.ありがとうございます.また,導出を追記させていただきましたので,ご確認いただければと思います.

      • ty より:

        デイビッド様,

        確認いたしました. 非常に参考になりました.

        ありがとうございました.

  2. ぴょん より:

    分かりやすかったです。続き楽しみにしてます!!

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