このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
飛行計器コンポーネントとアニメーション オブジェクトの作成と構成
標準の飛行計器コンポーネントのいずれかを使用して飛行データを表示できます。
対気速度計
高度計
上昇インジケーター
排気ガス温度(EGT)インジケーター
方位指示器
人工水平線
毎分回転数(RPM)インジケーター
ターンコーディネーター
一般的なワークフローとしては、
シミュレーションデータを読み込みます。
アニメーションオブジェクトを作成します。
Figure ウィンドウを作成します。
飛行計器コンポーネントを格納するための飛行制御パネルを作成します。
飛行計器コンポーネントを作成します。
計器パネルにアニメーションの表示をトリガーします。
メモ
Aerospace Toolbox 飛行計器は、uifigure 関数を使用して作成された図形でのみ使用してください。GUIDE または figure 関数を使用して作成されたアプリは、飛行計器コンポーネントをサポートしません。
データの読み込みと可視化
データを読み込んで視覚化するには、このワークフローを検討してください。これは 飛行計器と飛行のアニメーションを使用して飛行軌跡データを表示 の例に依存します。
シミュレーションデータを読み込みます。たとえば、
simdata変数には、記録されたシミュレートされた飛行軌道データが含まれます。load simdataアニメーション データを視覚化するには、アニメーション オブジェクトを作成します。次に例を示します。
Aero.Animationオブジェクトを作成します。h = Aero.Animation;
pa24-250_orange.acAC3D ファイルとそれに関連するパッチを使用してボディを作成します。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 のプロパティ