メインコンテンツ

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

6DOF (Euler Angles)

6自由度の運動方程式のオイラー角表現を実装する

  • 6DOF (Euler Angles) block

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

説明

6DOF (Euler Angles) ブロックは、平面地球基準座標系 (Xe, Ye, Ze) を中心としたボディ固定座標系 (Xb, Yb, Zb) の回転を考慮して、6 自由度の運動方程式のオイラー角表現を実装します。これらの参照ポイントの詳細については、「アルゴリズム」を参照してください。

6DOF (Euler Angles)Simple Variable Mass 6DOF (Euler Angles)、および Custom Variable Mass 6DOF (Euler Angles) ブロックは、同じブロックの代替構成です。

  • 6DOF (Euler Angles) — 6自由度の運動方程式のオイラー角表現を実装する

  • Simple Variable Mass 6DOF (Euler Angles) — 単純な可変質量の6自由度運動方程式のオイラー角表現を実装する

  • Custom Variable Mass 6DOF (Euler Angles) — カスタム可変質量の6自由度運動方程式のオイラー角表現を実装する

制限

ブロックは、加えられた力がボディの重心に作用し、質量と慣性が一定であると仮定します。

端子

入力

すべて展開する

適用された力。機体固定軸の 3 要素ベクトルとして指定されます。フレームの詳細については、Body Coordinates を参照してください。

データ型: double

適用されたモーメント。機体固定軸の 3 要素ベクトルとして指定されます。フレームの詳細については、Body Coordinates を参照してください。

データ型: double

Output

すべて展開する

平面地球基準座標系における速度。3 要素ベクトルとして返されます。

データ型: double

平面地球基準座標系内の位置。3 要素のベクトルとして返されます。

データ型: double

オイラー回転角度 [ロール、ピッチ、ヨー] は、ラジアン単位の 3 要素ベクトルとして、固有の x-y-z 回転を定義します。ヨー、ピッチ、ロールの角度は、z-y-x回転シーケンス(angle2dcm(yaw,pitch,roll,"ZYX") など) を使用して適用されます。

データ型: double

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

データ型: double

ボディ固定座標系内の速度。3 要素ベクトルとして返されます。

データ型: double

機体固定軸の角速度。ラジアン/秒単位で 3 要素ベクトルとして返されます。

データ型: double

質量。スカラーとして返されます。

依存関係

このポートを有効にするには、加速度計算のために質量特性を出力パラメーターを選択します。

データ型: double

慣性テンソル行列。3 行 3 列の行列として返されます。

依存関係

このポートを有効にするには、加速度計算のために質量特性を出力パラメーターを選択します。

データ型: 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)

質量タイプは、次の表に従って指定されます。

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

プログラムでの使用

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

平面地球基準座標系におけるボディの初期位置。3 要素ベクトルとして指定されます。

プログラムでの使用

ブロック パラメーター: xme_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' | double スカラー
既定: '1.0'

物体の空の質量。double スカラーとして指定されます。

プログラムでの使用

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

物体の全質量。double スカラーとして指定されます。

プログラムでの使用

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

double スカラーとして指定されたボディの慣性。

依存関係

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

プログラムでの使用

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

ボディの空の慣性の慣性テンソル行列。3 行 3 列の行列として指定されます。

プログラムでの使用

ブロック パラメーター: inertia_e
型: 文字ベクトル
値: 'eye(3)' | 3行3列の行列
既定: 'eye(3)'

ボディの全慣性の慣性テンソル行列。3 行 3 列の行列として指定されます。

プログラムでの使用

ブロック パラメーター: inertia_f
型: 文字ベクトル
値: '2*eye(3)' | 3行3列の行列
既定: '2*eye(3)'

質量流量相対速度ポートを追加するには、このチェックボックスをオンにします。これは、質量が増加または減少する相対速度です。

プログラムでの使用

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

加速の質量プロパティのポートを有効にするには、このチェック ボックスをオンにします。これらのポートをこれらのブロックの入力として使用できます。

  • 6DOF Accelerationm 出力ポート

  • 6DOF Angular AccelerationI および dI/dt coeff ポート。

プログラムでの使用

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

状態属性

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

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

  • 複数の状態に名前を割り当てる場合は、中かっこ内にコンマで区切って入力します。たとえば、{'a', 'b', 'c'} のようにします。各名前は固有でなければなりません。

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

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

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

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

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

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

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

プログラムでの使用

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

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

プログラムでの使用

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

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

プログラムでの使用

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

オイラー回転角度の状態名。中括弧で囲まれたコンマ区切りのリストとして指定されます。

プログラムでの使用

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

質量状態名。文字ベクトルとして指定されます。

プログラムでの使用

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

代替構成

すべて展開する

Simple Variable Mass 6DOF (Euler Angles) ブロックは、単純な可変質量の 6 自由度の運動方程式のオイラー角表現を実装します。このブロックを有効にするには、質量タイプ単純な変数 に設定します。

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

Custom Variable Mass 6DOF (Euler Angles) ブロックは、カスタム可変質量の 6 自由度の運動方程式のオイラー角表現を実装します。このブロックを有効にするには、質量タイプカスタム変数 に設定します。

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

アルゴリズム

6DOF (Euler Angles) ブロックはこれらの参照フレームの概念を使用します。

  • ボディ固定座標系の原点は物体の重心であり、物体は剛体であると仮定されます。この仮定により、個々の質量要素間に作用する力を考慮する必要がなくなります。

    平面地球基準座標系は慣性フレームであると考えられており、これは「恒星」に対する地球の運動による力を無視できる優れた近似です。

    Flat Earth Reference frame

  • ボディ固定座標系の並進運動。ここで、作用する力 [Fx Fy Fz]T はボディ固定座標系内にあり、ボディの質量 m は一定であると仮定されます。

    F¯b=[FxFyFz]=m(V¯˙b+ω¯×V¯b)Abb=[u˙bv˙bw˙b]=1mF¯bω¯×V¯bAbe=1mFbV¯b=[ubvbwb],ω¯=[pqr]

  • ボディ固定座標系の回転ダイナミクス。適用されるモーメントは [L M N]T であり、慣性テンソル I は原点 O を基準としています。

    M¯B=[LMN]=Iω¯˙+ω¯×(Iω¯)I=[IxxIxyIxzIyxIyyIyzIzxIzyIzz]

  • ボディ固定角速度ベクトル [p q r]T とオイラー角の変化率 [ϕ˙θ˙ψ˙]T の関係は、オイラー角の速度をボディ固定座標系に分解することによって決定されます。

    [pqr]=[ϕ˙00]+[1000cosϕsinϕ0sinϕcosϕ][0θ˙0]+[1000cosϕsinϕ0sinϕcosϕ][cosθ0sinθ010sinθ0cosθ][00ψ˙]J1[ϕ˙θ˙ψ˙]

    J を反転すると、オイラー速度ベクトルを決定するために必要な関係が得られます。

    [ϕ˙θ˙ψ˙]=J[pqr]=[1(sinϕtanθ)(cosϕtanθ)0cosϕsinϕ0sinϕcosθcosϕcosθ][pqr]

参照

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

[2] Zipfel, Peter H., Modeling and Simulation of Aerospace Vehicle Dynamics. Reston, Va: Second Edition, AIAA Education Series, 2007.

拡張機能

すべて展開する

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

バージョン履歴

R2006a で導入

すべて展開する