メインコンテンツ

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

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

この例では、飛行計器コンポーネントを使用して、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();

Figure Aero.Animation contains an axes object. The hidden axes object contains 97 objects of type patch.

飛行計器を作成する

飛行計器を格納する 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";

Figure Flight Instruments contains an axes object and other objects of type uiaeroaltimeter, uiaeroheading, uiaeroairspeed, uiaerohorizon, uiaeroclimb, uiaeroturn, uislider, uilabel. The hidden axes object contains an object of type image.

参考

クラス

メソッド

関数

プロパティ

トピック