*執筆途中だが,最低限の情報を集約したので,公開ポリシーに則り公開。
記事を通して言いたいこと(結論)
例によって、冒頭で述べておく。
- この記事にて飛行機6自由度運動モデルをModelicaのアニメーション機能で姿勢儀の表示で可視化した.しかし,下記の課題を抱えていた.そこでこれらを解決すべく,インタラクティブシミュレーションを行う可視化ユーティリティを作成した.
- 機体の姿勢角状態・その動き方だけでなく,速度・高度・昇効率という数値情報も可視化したい.
- 一度実行完了したシミュレーションの結果再生だけでなく,結果を観ながらリアルタイムでinputを変化させてシミュレーションを実行したい.
- 可視化ユーティリティをPythonの外部プログラムで作成した.このユーティリティは航空機のPrimary Flight Displayと呼ばれる計器表示を模した表示形式で飛行状態をユーザに与える.これとModelica_DeviceDriversライブラリを併せてモデルを組む事で,ビデオゲームの様にシミュレーションを現実時間と同期させて実行し,出力を見つつ入力を変化させる事が可能になる.作成したユーティリティは一通り意図通り動作しており,簡易かつ原始的ではあるが,Modelicaの飛行力学モデルを用いたフライトシミュレータを実現した.
可視化ユーティリティ
- Pythonスクリプト:AircraftDynamics/Visualizers/pyPFD01.py
- Modelicaコンポーネント:AircraftDynamics.Visualizers.interactive_pyPFD01_00
- データ仲介テキストデータ:AircraftDynamics/dataTemp/currentFlightStates00.csv
ユーティリティの構成とデータ授受
Modelicaコンポーネントインターフェイス
Output表示の見方
ユーティリティプログラムの情報
必要なものは3つは総てAircraftDynamics library内に収録しており,他に準備するものは後述のPython環境以外には無い.
*これを実行する為にはPython実行環境&NumPyライブラリのインストール,python pathの環境変数登録(Pythonインストール時に自動で為される)が必要.
pyPFD01.pyのkick-startとテキストファイルへのデータ書き出しを担うModelicaコンポーネント.
飛行状態を一時保持するテキストデータ.ユーザが本ユーティリティを使うにあたり,これに触れる必要は無い(中が空でも良い).
コメント