Main Content

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

飛行計器と飛行アニメーションを使用して飛行軌道データを表示する

この例では、飛行計器コンポーネントを使用して、UI 図ウィンドウに飛行軌跡を視覚化する方法を示します。この例では、Aero.Animation オブジェクトと組み合わせて標準の飛行計器を作成および構成します。

飛行軌跡と計器表示の記録データを読み込む

ログに記録された航空機の位置、姿勢、時間をワークスペースに読み込みます。

load simdata
yaw = simdata(:,7);
yaw(yaw<0) = yaw(yaw<0)+2*pi;
simdata(:,7) = yaw;

アニメーションインターフェースを作成する

飛行軌跡データに保存されている飛行軌跡を表示するには、Aero.Animation オブジェクトを作成します。この例で使用される航空機は、パイパー PA24-250 コマンチです。

h = Aero.Animation;
h.createBody('pa24-250_orange.ac','Ac3d');
h.Bodies{1}.TimeSeriesSource = simdata;
h.Camera.PositionFcn = @staticCameraPosition;
h.Figure.Position(1) = h.Figure.Position(1) + 572/2;
h.updateBodies(simdata(1,1));
h.updateCamera(simdata(1,1));
h.show();

飛行計器を作成する

飛行計器を含む UI 図ウィンドウを作成します。

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');

ライブ スクリプトが追加された各 UI 要素に対して新しい画像を追加しないようにするには、可視性プロパティを「オフ」に設定します。

fig.Visible = "off";

パネル画像を軸に読み込みます。

imgPanel = imread('FlightInstrumentPanel.png');
ax = uiaxes('Parent',fig,'Visible','off','Position',[10 30 530 460],...
    'BackgroundColor',[0.2667 0.2706 0.2784]);
image(ax,imgPanel);
disableDefaultInteractivity(ax);

ナビゲーション用の標準飛行計器を作成します。

高度計を作成する:

alt = uiaeroaltimeter('Parent',fig,'Position',[369 299 144 144]);

見出しインジケーターを作成:

head = uiaeroheading('Parent',fig,'Position',[212 104 144 144]);

対気速度計を作成する:

air = uiaeroairspeed('Parent',fig,'Position',[56 299 144 144]);

Piper PA 24-250 Comanche の機能に応じて、対気速度計の制限を変更します。

air.Limits = [25 250];
air.ScaleColorLimits = [0,60; 50,200; 200,225; 225,250];

人工水平線を作成する:

hor = uiaerohorizon('Parent',fig,'Position',[212 299 144 144]);

上昇率インジケーターを作成します。

climb = uiaeroclimb('Parent',fig,'Position',[369 104 144 144]);

航空機の能力に応じて上昇インジケーターの最大上昇率を変更します。

climb.MaximumRate = 8000;

ターンコーディネーターを作成します:

turn = uiaeroturn('Parent',fig,'Position',[56 104 144 144]);

飛行計器とアニメーション図を更新するには、ValueChangingFcn コールバックを FlightInstrumentsAnimationCallback ヘルパー関数に割り当てます。次に、スライダーで時間を選択すると、選択した時間の値に応じて飛行計器とアニメーション図が更新されます。

sl = uislider('Parent',fig,'Limits',[simdata(1,1) simdata(end,1)],'FontColor','white');
sl.Position = [50 60 450 3];
sl.ValueChangingFcn = @(sl,event) flightInstrumentsAnimationCallback(fig,simdata,h,event);

スライダーで選択した時間を表示するには、ラベル コンポーネントを作成します。

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

図を表示するには、Visibility プロパティを「オン」に設定します。

fig.Visible = "on";

参考

クラス

メソッド

関数

プロパティ

関連するトピック