Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

6DOF ECEF (Quaternion)

地心地球固定(ECEF)座標系における6自由度の運動方程式の四元数表現を実装する

  • 6DOF ECEF (Quaternion) block

ライブラリ:
Aerospace Blockset / Equations of Motion / 6DOF

説明

6DOF ECEF (Quaternion) ブロックは、地心地球固定 (ECEF) 座標における 6 自由度の運動方程式の四元数表現を実装します。これは、地球中心の慣性 (ECI) 参照フレーム (XECI, YECI, ZECI) を中心とした地球中心の地球固定 (ECEF) 座標フレーム (XECEF, YECEF, ZECEF) の回転を考慮します。ECEF 座標フレームの原点は地球の中心です。ECEF 座標フレームの詳細については、アルゴリズム を参照してください。

制限

  • この実装では、適用される力が物体の重心に作用し、質量と慣性が一定であると想定しています。

  • この実装では、±90 度の範囲にある測地緯度と、±180 度の範囲にある経度が生成されます。なお、MSL 高度はおおよそのものです。

  • 地球は楕円体であると仮定されています。平坦化を 0.0 に設定すると、球形の惑星を実現できます。地球の歳差運動、章動運動、極運動は無視されます。グリニッジの天経度はグリニッジ平均恒星時 (GMST) であり、恒星時の大まかな近似値を提供します。

  • ECEF 座標系の実装では、原点が惑星の中心にあり、x 軸がグリニッジ子午線と赤道と交差し、z 軸が惑星の平均回転軸で北が正であり、y 軸が右手系を完成させると想定されています。

  • ECI 座標系の実装では、原点が惑星の中心にあり、x 軸が地球の中心から春分点に向かう線の延長であり、z 軸が平均赤道面の北極の方向を指し、北が正であり、y 軸が右手系を完成させると想定されています。

端子

入力

すべて展開する

適用される力。3 要素ベクトルとして指定されます。

データ型: double

適用されたモーメント。3 要素ベクトルとして指定されます。

データ型: double

グリニッジ子午線の初期天経度角度。スカラーとして指定されます。

依存関係

このポートを有効にするには

  • Celestial longitude of GreenwichExternal に設定します。

  • Planet modelEarth に設定します。

データ型: double

本初子午線の初期天経度角度。スカラーとして指定されます。

依存関係

このポートを有効にするには

  • Celestial longitude of prime meridianExternal に設定します。

  • Planet modelCustom に設定します。

データ型: double

出力

すべて展開する

ECEF フレームに対する物体の速度。ECEF フレームで表され、3 要素ベクトルとして返されます。

データ型: double

ECEF 参照フレーム内の位置。3 要素のベクトルとして返されます。

データ型: double

測地緯度、経度、高度の位置(度単位)。それぞれ、選択した長さの単位で、3 要素のベクトルまたは M 行 3 列の配列として返されます。

データ型: double

ボディの回転角度 [ロール、ピッチ、ヨー] が、ラジアン単位の 3 要素ベクトルとして返されます。オイラー回転角は、ボディ座標系と NED 座標系間の回転角です。

データ型: double

ECI 軸からボディ固定軸への座標変換。3 行 3 列の行列として返されます。

データ型: double

NED 軸からボディ固定軸への座標変換。3 行 3 列の行列として返されます。

データ型: double

固定フレーム軸から NED 軸への座標変換。3 行 3 列の行列として返されます。

データ型: double

固定フレームに対する物体の速度。3 要素のベクトルとして返されます。

データ型: double

NED フレームに対するボディの相対角速度。ボディ座標系で表現され、ラジアン/秒単位の 3 要素ベクトルとして返されます。

データ型: double

慣性フレームに対するボディの角速度。ボディ座標系で表現され、ラジアン/秒単位の 3 要素ベクトルとして返されます。

データ型: double

慣性フレームに対するボディの角加速度。ボディ座標系で表現され、ラジアン/秒の 2 乗で 3 要素ベクトルとして返されます。

データ型: double

固定フレームに対するボディの加速度。3 要素ベクトルとして返されます。

データ型: double

固定フレームに対するボディ固定軸の加速度が、3 要素ベクトルとして返されます。

依存関係

この点を有効にするには、Include inertial acceleration

データ型: double

パラメーター

すべて展開する

メイン

入力および出力単位。Metric (MKS)English (Velocity in ft/s)、または English (Velocity in kts) として指定されます。

単位一瞬加速度速度位置質量慣性
Metric (MKS) ニュートンニュートンメートルメートル毎秒メートル/秒メートルキログラムキログラムメートルの2乗
English (Velocity in ft/s) ポンドフットポンドフィート毎秒平方フィート/秒スラッグスラッグフィートの平方
English (Velocity in kts) ポンドフットポンドフィート毎秒平方節点スラッグスラッグフィートの平方

プログラムでの使用

ブロック パラメーター: units
型: 文字ベクトル
値: Metric (MKS) | English (Velocity in ft/s) | English (Velocity in kts)
既定値: Metric (MKS)

使用する質量のタイプを選択します:

Fixed の選択は、前述の運動方程式に準拠します。

プログラムでの使用

ブロック パラメーター: mtype
型: 文字ベクトル
値: Fixed | Simple Variable | Custom Variable
既定値: 'Simple Variable'

測地基準フレーム内の剛体の初期位置。3 要素ベクトルとして指定されます。緯度と経度の値は任意の値にすることができます。ただし、緯度値が +90 および -90 の場合、極での特異性により予期しない値が返される可能性があります。

プログラムでの使用

ブロック パラメーター: xg_0
型: 文字ベクトル
値: '[0 0 0]' | 3 要素ベクトル
既定値: '[0 0 0]'

ボディ固定座標フレーム内の 3 要素ベクトルとして指定されたボディ軸の初期速度。

プログラムでの使用

ブロック パラメーター: Vm_0
型: 文字ベクトル
値: '[0 0 0]' | 3 要素ベクトル
既定値: '[0 0 0]'

初期のオイラー方向角度 [ロール、ピッチ、ヨー]。ラジアン単位で 3 要素ベクトルとして指定されます。オイラー回転角は、物体座標系と北東下 (NED) 座標系間の回転角です。

プログラムでの使用

ブロック パラメーター: eul_0
型: 文字ベクトル
値: '[0 0 0]' | 3 要素ベクトル
既定値: '[0 0 0]'

NED フレームに対する初期のボディ固定角速度。ラジアン/秒単位で 3 要素ベクトルとして指定されます。

プログラムでの使用

ブロック パラメーター: pm_0
型: 文字ベクトル
値: '[0 0 0]' | 3 要素ベクトル
既定値: '[0 0 0]'

剛体の初期質量。double スカラーとして指定されます。

プログラムでの使用

ブロック パラメーター: mass_0
型: 文字ベクトル
値: '1.0' | ダブルスカラー
既定値: '1.0'

物体の慣性。二重スカラーとして指定されます。

依存関係

このパラメータを有効にするには、Mass typeFixed に設定します。

プログラムでの使用

ブロック パラメーター: inertia
型: 文字ベクトル
値: eye(3) | ダブルスカラー
既定値: eye(3)

慣性加速ポートを追加するには、このチェックボックスをオンにします。

依存関係

Ab ff ポートを有効にするには、このパラメータを選択します。

プログラムでの使用

ブロック パラメーター: abi_flag
型: 文字ベクトル
値: 'off' | 'on'
既定値: off

惑星

使用する惑星モデル、Custom または Earth (WGS84)

プログラムでの使用

ブロック パラメーター: ptype
: 文字ベクトル
: 'Earth (WGS84)' | 'Custom'
既定の設定: 'Earth (WGS84)'

惑星の赤道における半径。ECEF 位置の希望単位と同じ単位で、二重スカラーとして指定されます。

依存関係

このパラメータを有効にするには、惑星モデルCustomに設定します。

プログラムでの使用

ブロック パラメーター: R
: 文字ベクトル
: double スカラー
既定の設定: '6378137'

惑星の平坦化。二重スカラーとして指定されます。

依存関係

このパラメータを有効にするには、惑星モデルCustomに設定します。

プログラムでの使用

ブロック パラメーター: F
: 文字ベクトル
: double スカラー
既定の設定: '1/298.257223563'

惑星の回転速度。スカラー値(rad/s)で指定します。

依存関係

このパラメータを有効にするには、惑星モデルCustomに設定します。

プログラムでの使用

ブロック パラメーター: w_E
: 文字ベクトル
: double スカラー
既定の設定: '7292115e-11'

グリニッジ子午線の初期天経度のソース。次のように指定します:

Internal

Celestial longitude of Greenwich からの天経値を使用します。

External

天経値には外部入力を使用します。

依存関係

  • このパラメータを有効にするには、Planet modelEarth に設定します。

  • このパラメータを External に設定すると、LG(0) ポートが有効になります。

  • Planet modelCustom に設定されている場合、パラメータ名は Celestial longitude of prime meridian source に変更されます。

プログラムでの使用

ブロック パラメーター: angle_in
: 文字ベクトル
: 'Internal' | 'External'
既定の設定: 'Internal'

グリニッジ子午線と慣性フレームの x 軸間の初期角度。double スカラーとして指定されます。

依存関係

  • このパラメーターを有効にするには、次のように設定します。

    • Celestial longitude of Greenwich source から Internal へ。

    • Planet model から Earth (WGS84) へ。

  • Planet modelCustom に設定されている場合、パラメータ名は Celestial longitude of prime meridian [deg] に変更されます。

プログラムでの使用

ブロック パラメーター: LPM0
: 文字ベクトル
: double スカラー
既定の設定: '0'

本初子午線の初期天経度のソース。次のように指定します:

Internal

Celestial longitude of prime meridian からの天経値を使用します。

External

天経値には外部入力を使用します。

依存関係

  • このパラメータを有効にするには、Planet modelCustom に設定します。

  • このパラメータを External に設定すると、LPM(0) ポートが有効になります。

  • Planet modelEarth (WGS84) に設定されている場合、パラメータ名は Celestial longitude of Greenwich source に変更されます。

プログラムでの使用

ブロック パラメーター: angle_in
: 文字ベクトル
: 'Internal' | 'External'
既定の設定: 'Internal'

本初子午線と ECI フレームの x 軸間の初期角度。double スカラーとして指定されます。

依存関係

  • このパラメーターを有効にするには、次のように設定します。

    • Celestial longitude of prime meridian source から Internal へ。

    • Planet model から Custom へ。

  • Planet modelEarth (WGS84) に設定されている場合、パラメータ名は Celestial longitude of Greenwich [deg] に変更されます。

プログラムでの使用

ブロック パラメーター: LPM0
: 文字ベクトル
: double スカラー
既定の設定: '0'

状態属性

各状態に固有名を割り当てます。線形化中にブロック パスの代わりに状態名を使用できます。

  • 単一の状態に名前を割り当てるには、引用符で囲んだ一意の名前を入力します (例: 'velocity')。

  • 複数の状態に名前を割り当てるには、中括弧で囲んだコンマ区切りのリストを入力します (例: {'a', 'b', 'c'})。各名前は固有でなければなりません。

  • パラメータが空の場合 (' ')、名前は割り当てられません。

  • 状態名は、名前パラメータで選択されたブロックにのみ適用されます。

  • 状態の数は状態名の数で割り切れなければなりません。

  • 指定する名前の数は状態の数より少なくできますが、その逆はできません。

    たとえば、4 つの状態を含むシステムで 2 つの名前を指定することは可能です。最初の名前は最初の 2 つの状態に適用され、2 番目の名前は最後の 2 つの状態に適用されます。

  • MATLAB® ワークスペース内の変数を状態名に割り当てる場合は、引用符なしで変数を入力します。変数には文字ベクトル、cell 配列、構造体が使用できます。

四元数ベクトルの状態名。中括弧で囲まれたコンマ区切りのリストとして指定されます。

プログラムでの使用

ブロック パラメーター: quat_statename
型: 文字ベクトル
値: '' | 中括弧で囲まれたコンマ区切りのリスト
既定値: ''

ボディの回転速度の状態名。中括弧で囲まれたコンマ区切りのリストで指定します。

プログラムでの使用

ブロック パラメーター: pm_statename
型: 文字ベクトル
値: '' | 中括弧で囲まれたコンマ区切りのリスト
既定値: ''

速度状態名。中括弧で囲まれたコンマ区切りのリストとして指定されます。

プログラムでの使用

ブロック パラメーター: Vm_statename
型: 文字ベクトル
値: '' | 中括弧で囲まれたコンマ区切りのリスト
既定値: ''

ECEF 位置状態名。中括弧で囲まれたコンマ区切りのリストとして指定されます。

プログラムでの使用

ブロック パラメーター: posfixedframe_statename
型: 文字ベクトル
値: '' | 中括弧で囲まれたコンマ区切りのリスト
既定値: ''

慣性位置状態名。中括弧で囲まれたコンマ区切りのリストとして指定されます。

既定値は '' です。

プログラムでの使用

ブロック パラメーター: posinertial_statename
型: 文字ベクトル
値: '' | 中括弧で囲まれたコンマ区切りのリスト
既定値: ''

グリニッジ州名の天経度。文字ベクトルとして指定されます。

依存関係

  • このパラメータを有効にするには、Planet modelEarth (WGS84) に設定します。

  • Planet modelCustom に設定されている場合、パラメータ名は Celestial longitude of prime meridian: e.g., 'LPM' に変更されます。

プログラムでの使用

ブロック パラメーター: LPM_statename
型: 文字ベクトル
値: '' | スカラー
既定値: ''

本初子午線州名の天経度。文字ベクトルとして指定されます。

依存関係

  • このパラメータを有効にするには、Planet modelCustom に設定します。

  • Planet modelEarth (WGS84) に設定されている場合、パラメータ名は Celestial longitude of Greenwich: e.g., 'LG' に変更されます。

プログラムでの使用

ブロック パラメーター: LPM_statename
型: 文字ベクトル
値: '' | スカラー
既定値: ''

アルゴリズム

ECEF 座標フレームの原点は地球の中心です。さらに、対象物体は剛体であると仮定されるため、個々の質量要素間に作用する力を考慮する必要がなくなります。ECIフレームからのECEFフレームの回転の表現は、初期の天球経度(LG(0))を含む楕円体地球(ω e)の一定回転のみを考慮するように簡略化されています。この優れた近似により、「恒星」に対する地球の複雑な動きによる力を無視することができます。

ECEF 座標フレームの並進運動は以下に示されます。ここで、適用された力 [Fx Fy Fz]T はボディ座標系内にあり、ボディの質量 m は一定であると仮定されます。

F¯b=[FxFyFz]=m(V¯˙b+ω¯b×V¯b+DCMbfω¯e×V¯b+DCMbf(ω¯e×(ω¯e×X¯f)))

ここで、ECEF x¯˙fの位置の変化は次のように計算されます。

x¯˙f=DCMfbV¯b

ECEF フレームに対する物体の速度はボディ座標系 (V¯b) で表され、ECI フレームに対する物体の角速度はボディ座標系 (ω¯b) で表されます。地球の自転速度 (ω¯e) と、北東下 (NED) フレームに対するボディの相対角速度 (ボディ座標系 (ω¯rel)で表現) は次のように定義されます。

V¯b=[uvw],ω¯rel=[pqr],ω¯e=[00ωe],ω¯b=ω¯rel+DCMbfω¯e+DCMbeω¯nedω¯ned=[l˙cosμμ˙l˙sinμ]=[VE/(N+h)VN/(M+h)VEtanμ/(N+h)]

物体固定フレームで定義された物体の回転ダイナミクスは以下に示されます。ここで、適用されるモーメントは [L M N]T であり、慣性テンソル I は原点 O を基準としています。

Abb=[u˙bv˙bω˙b]=1mF¯b[ω¯b×V¯b+DCMbfω¯e×V¯b+DCMbf(ω¯e×(ω¯e×X¯f))]Abecef=FbmM¯b=[LMN]=Iω¯˙b+ω¯b×(Iω¯b)I=[IxxIxyIxzIyxIyyIyzIzxIzyIzz]

四元数ベクトルの変化率の積分は以下のように示されます。

[q˙0q˙1q˙2q˙3]=12[0ωb(1)ωb(2)ωb(3)ωb(1)0ωb(3)ωb(2)ωb(2)ωb(3)0ωb(1)ωb(3)ωb(2)ωb(1)0][q0q1q2q3]

Aerospace Blockset は、スカラー優先規則を使用して定義された四元数を使用します。

参照

[1] Stevens, Brian, and Frank Lewis. Aircraft Control and Simulation, 2nd ed. Hoboken, NJ: John Wiley & Sons, 2003.

[2] McFarland, Richard E. "A Standard Kinematic Model for Flight simulation at NASA-Ames." NASA CR-2497.

[3] "Supplement to Department of Defense World Geodetic System 1984 Technical Report: Part I - Methods, Techniques and Data Used in WGS84 Development." DMA TR8350.2-A.

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a で導入

すべて展開する