Main Content

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

飛行計器コンポーネントとアニメーション オブジェクトの作成と構成

標準の飛行計器コンポーネントのいずれかを使用して飛行データを表示できます。

  • 対気速度計

  • 高度計

  • 上昇インジケーター

  • 排気ガス温度(EGT)インジケーター

  • 方位指示器

  • 人工水平線

  • 毎分回転数(RPM)インジケーター

  • ターンコーディネーター

一般的なワークフローとしては、

  1. シミュレーションデータを読み込みます。

  2. アニメーションオブジェクトを作成します。

  3. Figure ウィンドウを作成します。

  4. 飛行計器コンポーネントを格納するための飛行制御パネルを作成します。

  5. 飛行計器コンポーネントを作成します。

  6. 計器パネルにアニメーションの表示をトリガーします。

メモ

Aerospace Toolbox 飛行計器は、uifigure 関数を使用して作成された図形でのみ使用してください。GUIDE または figure 関数を使用して作成されたアプリは、飛行計器コンポーネントをサポートしません。

データの読み込みと可視化

データを読み込んで視覚化するには、このワークフローを検討してください。これは 飛行計器と飛行アニメーションを使用して飛行軌道データを表示する の例に依存します。

  1. シミュレーションデータを読み込みます。たとえば、simdata 変数には、記録されたシミュレートされた飛行軌道データが含まれます。

    load simdata
  2. アニメーション データを視覚化するには、アニメーション オブジェクトを作成します。次に例を示します。

    1. Aero.Animation オブジェクトを作成します。

      h = Aero.Animation;
    2. pa24-250_orange.ac AC3D ファイルとそれに関連するパッチを使用してボディを作成します。

      h.createBody('pa24-250_orange.ac','Ac3d');
    3. アニメーションオブジェクト h の本体を設定します。TimeSeriesSource プロパティを、ロードされた simdata に設定します。

      h.Bodies{1}.TimeSeriesSource = simdata;
    4. カメラとフィギュアの位置を設定します。

      h.Camera.PositionFcn = @staticCameraPosition;
      h.Figure.Position(1) = h.Figure.Position(1) + 572/2;
      
    5. h の図グラフィック オブジェクトを作成して表示します。

      h.updateBodies(simdata(1,1));
      h.updateCamera(simdata(1,1));
      h.show();

飛行計器コンポーネントを作成するには、飛行計器コンポーネントを作成する を参照してください。

飛行計器コンポーネントを作成する

このワークフローでは、データの読み込みと可視化 で説明されているように、データをロードし、アニメーション オブジェクトを作成していることを前提としています。

  1. uifigure 図ウィンドウを作成します。この例では、h の飛行計器を格納する fig を作成します。

    fig = uifigure('Name','Flight Instruments',...
    'Position',[h.Figure.Position(1)-572 h.Figure.Position(2)+h.Figure.Position(4)-502 572 502],...
    'Color',[0.2667 0.2706 0.2784],'Resize','off');
  2. 飛行計器の飛行計器パネル イメージを作成し、PNG ファイルなどのグラフィック ファイルとして保存します。

  3. 飛行計器パネルの画像を MATLAB® に読み込み、uiaxes 関数を使用して App Designer の UI 軸に作成して読み込みます。現在の軸に飛行計器パネルの画像を表示するには、image 関数を使用します。次に例を示します。

    imgPanel = imread('astFlightInstrumentPanel.png');
    ax = uiaxes('Parent',fig,'Visible','off','Position',[10 30 530 460],...
    'BackgroundColor',[0.2667 0.2706 0.2784]);
    image(ax,imgPanel);
  4. 飛行計器コンポーネントを作成します。たとえば、人工水平線コンポーネントを作成します。親オブジェクトを uifigure として指定し、人工水平線の位置とサイズを指定します。

    hor = uiaerohorizon('Parent',fig,'Position',[212 299 144 144]);
  5. 計器パネルにアニメーションを表示するには、時間ステップを入力する必要があります。たとえば、時間を変更できるスライダーやノブなどの時間入力デバイスを接続します。時間入力デバイスで時間を変更すると、飛行計器コンポーネントが更新され、結果が表示されます。この例では、uislider 関数を使用してスライダー コンポーネントを作成します。

    sl = uislider('Parent',fig,'Limits',[simdata(1,1),...
    simdata(end,1)],'FontColor','white');
    sl.Position = [50 60 450 3];
    
  6. スライダー コンポーネントには、スライダーのつまみを動かすと実行される ValueChangingFcn コールバックがあります。飛行計器とアニメーション図を更新するには、ValueChangingFcn コールバックをヘルパー関数に割り当てます。この例では、flightInstrumentsAnimationCallback ヘルパー関数を使用します。これは、Display Flight Trajectory Data Using Flight Instruments and Flight Animation の例で Open Live Script をクリックした場合にのみ使用できます。

    sl.ValueChangingFcn = @(sl,event) flightInstrumentsAnimationCallback(fig,simdata,h,event);
  7. スライダーで選択した時間を表示するには、uilabel 関数を使用してラベル コンポーネントを作成します。このコードは、ラベル テキストを白で作成し、ラベルを [230 10 90 30] の位置に配置します。

    lbl = uilabel('Parent',fig,'Text',['Time: ' num2str(sl.Value,4) ' sec'],'FontColor','white');
    lbl.Position = [230 10 90 30];

完全な例については、飛行計器と飛行アニメーションを使用して飛行軌道データを表示する を参照してください。

参考

関数

プロパティ

関連するトピック