このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
飛行計器コンポーネントとアニメーション オブジェクトの作成と構成
標準の飛行計器コンポーネントのいずれかを使用して飛行データを表示できます。
対気速度計
高度計
上昇インジケーター
排気ガス温度(EGT)インジケーター
方位指示器
人工水平線
毎分回転数(RPM)インジケーター
ターンコーディネーター
一般的なワークフローとしては、
シミュレーションデータを読み込みます。
アニメーションオブジェクトを作成します。
Figure ウィンドウを作成します。
飛行計器コンポーネントを格納するための飛行制御パネルを作成します。
飛行計器コンポーネントを作成します。
計器パネルにアニメーションの表示をトリガーします。
メモ
Aerospace Toolbox 飛行計器は、uifigure
関数を使用して作成された図形でのみ使用してください。GUIDE または figure
関数を使用して作成されたアプリは、飛行計器コンポーネントをサポートしません。
データの読み込みと可視化
データを読み込んで視覚化するには、このワークフローを検討してください。これは 飛行計器と飛行アニメーションを使用して飛行軌道データを表示する の例に依存します。
シミュレーションデータを読み込みます。たとえば、
simdata
変数には、記録されたシミュレートされた飛行軌道データが含まれます。load simdata
アニメーション データを視覚化するには、アニメーション オブジェクトを作成します。次に例を示します。
Aero.Animation
オブジェクトを作成します。h = Aero.Animation;
pa24-250_orange.ac
AC3D ファイルとそれに関連するパッチを使用してボディを作成します。h.createBody('pa24-250_orange.ac','Ac3d');
アニメーションオブジェクト
h
の本体を設定します。TimeSeriesSource
プロパティを、ロードされたsimdata
に設定します。h.Bodies{1}.TimeSeriesSource = simdata;
カメラとフィギュアの位置を設定します。
h.Camera.PositionFcn = @staticCameraPosition; h.Figure.Position(1) = h.Figure.Position(1) + 572/2;
h
の図グラフィック オブジェクトを作成して表示します。h.updateBodies(simdata(1,1)); h.updateCamera(simdata(1,1)); h.show();
飛行計器コンポーネントを作成するには、飛行計器コンポーネントを作成する を参照してください。
飛行計器コンポーネントを作成する
このワークフローでは、データの読み込みと可視化 で説明されているように、データをロードし、アニメーション オブジェクトを作成していることを前提としています。
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');
飛行計器の飛行計器パネル イメージを作成し、PNG ファイルなどのグラフィック ファイルとして保存します。
飛行計器パネルの画像を 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);
飛行計器コンポーネントを作成します。たとえば、人工水平線コンポーネントを作成します。親オブジェクトを
uifigure
として指定し、人工水平線の位置とサイズを指定します。hor = uiaerohorizon('Parent',fig,'Position',[212 299 144 144]);
計器パネルにアニメーションを表示するには、時間ステップを入力する必要があります。たとえば、時間を変更できるスライダーやノブなどの時間入力デバイスを接続します。時間入力デバイスで時間を変更すると、飛行計器コンポーネントが更新され、結果が表示されます。この例では、
uislider
関数を使用してスライダー コンポーネントを作成します。sl = uislider('Parent',fig,'Limits',[simdata(1,1),... simdata(end,1)],'FontColor','white'); sl.Position = [50 60 450 3];
スライダー コンポーネントには、スライダーのつまみを動かすと実行される
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);
スライダーで選択した時間を表示するには、
uilabel
関数を使用してラベル コンポーネントを作成します。このコードは、ラベル テキストを白で作成し、ラベルを [230 10 90 30] の位置に配置します。lbl = uilabel('Parent',fig,'Text',['Time: ' num2str(sl.Value,4) ' sec'],'FontColor','white'); lbl.Position = [230 10 90 30];
完全な例については、飛行計器と飛行アニメーションを使用して飛行軌道データを表示する を参照してください。
参考
関数
uiaeroairspeed
|uiaeroaltimeter
|uiaeroclimb
|uiaeroegt
|uiaeroheading
|uiaerohorizon
|uiaerorpm
|uiaeroturn
|uifigure
|uiaxes
|uislider
|uilabel
|imread
プロパティ
- AirspeedIndicator Properties | Altimeter Properties | ArtificialHorizon のプロパティ | ClimbIndicator Properties | EGTIndicator Properties | HeadingIndicator Properties | RPMIndicator Properties | TurnCoordinator のプロパティ