このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
飛行軌跡データ
記録された飛行軌跡データの読み込み
この例の飛行軌跡データは、コンマ区切り値形式のファイルに保存されます。このデータを読み取るには、readmatrix を使用します。
tdata = readmatrix('asthl20log.csv');軌跡データから時系列オブジェクトを作成する
時系列オブジェクト ts は、MATLAB® timeseries コマンドを使用して、緯度、経度、高度、オイラー角データ、および tdata の時間配列から作成されます。緯度、経度、オイラー角も、convang 関数を使用して度からラジアンに変換されます。
ts = timeseries([convang(tdata(:,[3 2]),'deg','rad') ...
tdata(:,4) convang(tdata(:,5:7),'deg','rad')],tdata(:,1));FlightGearAnimation オブジェクトの作成
この一連のコマンドは FlightGearAnimation オブジェクトを作成します。
FlightGearAnimation オブジェクトを開きます。
h = fganimation;
時系列の FlightGearAnimation オブジェクトのプロパティを設定します。
h.TimeSeriesSourceType = 'Timeseries'; h.TimeSeriesSource = ts;
FlightGear に関連する FlightGearAnimation オブジェクトのプロパティを設定します。これらのプロパティには、インストール フォルダーへのパス、バージョン番号、航空機のジオメトリ モデル、FlightGear フライト シミュレーターのネットワーク情報が含まれます。
h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear<your_FlightGear_version>'; h.GeometryModelName = 'HL20'; h.DestinationIpAddress = '127.0.0.1'; h.DestinationPort = '5502';
FlightGear フライト シミュレータの初期条件 (場所と方向) を設定します。
h.AirportId = 'KSFO'; h.RunwayId = '10L'; h.InitialAltitude = 7224; h.InitialHeading = 113; h.OffsetDistance = 4.72; h.OffsetAzimuth = 0;
実時間の 1 秒あたりのアニメーション データの秒数を設定します。
h.TimeScaling = 5;
FlightGearAnimation オブジェクトのプロパティとその値を確認します。
get(h)
この例では実行が停止し、FlightGearAnimation オブジェクト h が返されます。
TimeSeriesSource: [1x1 timeseries]
TimeSeriesSourceType: 'Timeseries'
TimeseriesReadFcn: @TimeseriesRead
TimeScaling: 5
FramesPerSecond: 12
FlightGearVersion: '2018.1'
OutputFileName: 'runfg.bat'
FlightGearBaseDirectory: 'C:\Program Files\FlightGear<your_FlightGear_version>'
GeometryModelName: 'HL20'
DestinationIpAddress: '127.0.0.1'
DestinationPort: '5502'
AirportId: 'KSFO'
RunwayId: '10L'
InitialAltitude: 7224
InitialHeading: 113
OffsetDistance: 4.7200
OffsetAzimuth: 0
TStart: NaN
TFinal: NaN
Architecture: 'Default'データ再生用のオブジェクト プロパティを設定できるようになりました (FlightGearAnimation オブジェクトのプロパティの変更 を参照)。
FlightGearAnimation オブジェクトのプロパティの変更
必要に応じて FlightGearAnimation オブジェクトのプロパティを変更します。FlightGear のインストール フォルダーが例のフォルダー以外 (たとえば、FlightGear) の場合は、次のコマンドを発行して FlightGearBaseDirectory プロパティを変更します。
h.FlightGearBaseDirectory = 'C:\Program Files\FlightGear';
同様に、実行スクリプトに特定のファイル名を使用する場合は、OutputFileName プロパティを変更します。
FlightGearAnimation オブジェクトのプロパティを確認します。
get(h)
これで実行スクリプトを生成できます (実行スクリプトの生成 を参照)。
実行スクリプトの生成
必要な初期条件 (場所、日付、時刻、天気、動作モード) で FlightGear を起動するには、GenerateRunScript コマンドを使用して実行スクリプトを作成します。
GenerateRunScript(h)
デフォルトでは、GenerateRunScript は実行スクリプトを runfg.bat という名前のテキスト ファイルとして保存します。前の手順で説明したように、FlightGearAnimation オブジェクトの OutputFileName プロパティを変更することで、別の名前を指定できます。
データを表示するたびにファイルを生成する必要はなく、初期条件または FlightGear 情報が変更されたときのみ生成します。
これで FlightGear を起動する準備が整いました (FlightGearフライトシミュレータの起動 を参照)。
メモ
FlightGearBaseDirectory および OutputFileName プロパティは ASCII 文字で構成されている必要があります。
FlightGearフライトシミュレータの起動
MATLAB コマンド プロンプトから FlightGear を起動するには、system コマンドを使用して実行スクリプトを実行します。GenerateRunScript によって作成された出力ファイルの名前を引数として指定します。
system('runfg.bat &');FlightGear が別のウィンドウで起動します。
ヒント
FlightGear ウィンドウにフォーカスを合わせた状態で、V キーを押すと、コックピット、ヘリコプター、追跡など、さまざまな航空機のビューが切り替わります。
これで、データを再生する準備が整いました (飛行軌跡の再生 を参照)。シーンを表示できない場合は、Installing Additional FlightGear Scenery を参照してください。
ヒント
FlightGear が必要以上にコンピュータ リソースを使用する場合は、スケジュールの優先順位を低いものに変更できます。たとえば、Windows® start や Linux® nice などのコマンド、またはそれらに相当するコマンドを参照してください。
飛行軌跡の再生
FlightGear が実行されると、FlightGearAnimation オブジェクトは FlightGear との通信を開始できます。飛行軌跡データをアニメーション化するには、再生コマンドを使用します。
play(h)
次の図は、ヨーなしのタワービューでの飛行データ再生のスナップショットを示しています。
