[執筆途中]6自由度非線形剛体運動汎用コンポーネント -飛行機の非線形剛体シミュレーションの中核となるパーツ-

*執筆途中だが公開ポリシーに則り公開。

 

記事を通して言いたいこと(結論)

 例によって、冒頭で述べておく。

  • 6自由度非線形剛体運動の基礎コンポーネントを作成し,動作を確認した.これは力・モーメントをインターフェイスを介して与えて1つの剛体の運動を計算する汎用コンポーネントであり,非線形飛行運動シミュレーションモデルを作る上で中核となるもの.

モデル化対象(とその周辺について)

    6自由度非線形剛体運動

     

     実装するのは下記12個の微分方程式.これを実装し,汎用性を持たせて力・モーメントをインターフェイスを介して与えるようにすれば,あとは造りたい飛行機運動モデルの複雑さに応じて適宜,力・モーメントを生むコンポーネントを作る良くなる.

    1. Linear momentum equations
    2. m ( u ˙ + qw rv ) = X m ( v ˙ + ur pw ) = Y m ( w ˙ + pv qu ) = Z { m} ( dot u +qw -rv ) = sum X newline { m} ( dot v +ur -pw ) = sum Y newline { m} ( dot w +pv -qu ) = sum Z newline
    3. Angular momentum equations
    4. p ˙ I xx q ˙ I xy r ˙ I zx + prI xy + ( r 2 q 2 ) I yz pqI zx + ( I zz I yy ) rq = L q ˙ I yy p ˙ I xy r ˙ I yz + pr ( I xx I zz ) + ( p 2 r 2 ) I zx qrI xy + pqI yz = M r ˙ I zz p ˙ I zx q ˙ I yz + pq ( I yy I xx ) + ( q 2 p 2 ) I xy + qrI zx pr I yz = N dot p I_{xx} – dot q I_{xy} -dot r I_{zx} + prI_{xy} + (r^{2} – q^{2}) I_{yz} – pqI_{zx} + (I_{zz}-I_{yy})rq = sum L newline dot q I_{yy} – dot p I_{xy} – dot r I_{yz} + pr(I_{xx}-I_{zz})+(p^{2}-r^{2})I_{zx}-qrI_{xy}+pqI_{yz} = sum M newline dot r I_{zz} – dot p I_{zx} – dot q I_{yz} + pq(I_{yy}-I_{xx}) + (q^{2}-p^{2})I_{xy}+qrI_{zx}-pr I_{yz} = sum N newline
    5. Linear kinematics (flight path equations)
    6. { X G ˙ Y G ˙ Z G ˙ } = [ cos ψ sin ψ 0 sin ψ cos ψ 0 0 0 1 ] [ cos θ 0 sin θ 0 1 0 sin θ 0 cos θ ] [ 1 0 0 0 cos ϕ sin ϕ 0 sin ϕ cos ϕ ] { u v w } left lbrace stack{dot X_{G} # dot Y_{G} # dot Z_{G}} right rbrace= left [ matrix{cos %ipsi # -sin %ipsi # 0 ## sin %ipsi # cos %ipsi # 0 ## 0 # 0 # 1} right] left [ matrix{ cos %itheta # 0 # sin %itheta ## 0 # 1 # 0 ## -sin %itheta # 0 # cos %itheta} right] left [ matrix{1 # 0 # 0 ## 0 # cos %iphi # -sin%iphi ## 0 # sin %iphi # cos %iphi} right] left lbrace stack{u # v # w} right rbrace
    7. Angular kinematics (flight attitude equations)
    8. { ϕ ˙ θ ˙ ψ ˙ } = [ 1 sin ϕ tan θ cos ϕ tan θ 0 cos ϕ sin ϕ 0 sin ϕ sec θ cos ϕ sec θ ] { p q r } left lbrace stack{dot %iphi # dot %itheta # dot %ipsi} right rbrace= left [ matrix{1 # sin %iphi tan %itheta # cos %iphi tan%itheta ## 0 # cos %iphi # -sin%iphi ## 0 # sin %iphi sec %itheta # cos %iphi sec %itheta} right] left lbrace stack{p # q # r} right rbrace

コンポーネント

    Aircraft_RigidBody6DoF00

シミュレーション実行モデル

    Diagram

     実行モデルにて行おうとしている動作を表したものが下図.ただ回転初速を与えて落ちていくだけの単純な動きを期待するシミュレーション.

     下図が実行モデルのdiagram.

    ●シミュレーションモデル情報

シミュレーション実行

    アニメーション動画

     やろうとしている事はシンプルであり,グラフや数値をマジマジと見るより,先ずは動きを可視化したものを観るのが早い.

    Input

    1. srcGravity.outCntrSrcForceMoment.F
    2.  重力コンポーネントが出力するのは,回転する機体に固定された軸に対する力ベクトル.

    Variables

    1. 機体位置ベクトル(地上座標系)
    2. 機体速度ベクトル(地上座標系)
    3. 機体加速度ベクトル(地上座標系)
    4.  ここまでの図から,機体は高度方向にのみ動いているように見えるが,南北方向(XG)の位置,速度,加速度を拡大すると,非常に小さいが,わずかに動いている事が確認された.これは恐らく微分方程式の非線形項を解く時に生じる数値誤差の蓄積と考えられる.時間と共に大きくなるという共通の挙動以外,何らの規則性も見られない.

    5. 南北方向の機体位置,拡大(地上座標系)
    6. 南北方向の速度(地上座標系)
    7. 南北方向の加速度(地上座標系)

後書き・まとめ

  毎度のごとく、最初に述べた結論とほぼ同じだ。

  • 6自由度非線形剛体運動の基礎コンポーネントを作成し,動作を確認した.これは力・モーメントをインターフェイスを介して与えて1つの剛体の運動を計算する汎用コンポーネントであり,非線形飛行運動シミュレーションモデルを作る上で中核となるもの.

以上

コメント

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