AppDesigner で作成した GUI から Simulink モデルを実行したり、​パラメータを変更した​りするには、どうすれ​ばよいですか?

22 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2017 年 10 月 20 日
編集済み: MathWorks Support Team 2021 年 9 月 13 日
Simulink モデルのパラメータを設定したり、シミュレーションを実行・停止するような、アプリ(GUI)を AppDesigner で作成したいです。作成する方法を教えてください。
 

採用された回答

MathWorks Support Team
MathWorks Support Team 2021 年 9 月 13 日
編集済み: MathWorks Support Team 2021 年 9 月 13 日
AppDesigner で作成した例を回答の冒頭に表示されているリンクからダウンロードすることができます。
動作を確認するには、以下の手順にて行ってください。
(1) 次のファイルをダウンロードします。(R2017b にて作成)
 - Simulink モデル : sim_mdl_17b.slx
 - GUI アプリ: app_runsim.mlapp
(2) 以下のコマンドを入力し、SimulinkモデルとGUIを開きます。
sim_mdl_17b % Simulink モデルのオープン
app_runsim % GUI のオープン
(3) アプリ上の "開始" ボタンをクリックし、シミュレーションを開始します。
(4)エディットボックスで値を変更すると、ゲイン の値が変更されます。同時に、スライダーバーの値も変更されます。
(5) スライダーバーの値を変更すると、ゲインの値が変更されます。同時に、エディットボックスの値も変更されます。
(6) アプリ上の "停止" ボタンをクリックし、シミュレーションを停止します。
AppDesigner の各コンポーネントでは、以下のコールバックを設定しています。
1. シミュレーションの開始・停止の動作
コンポーネントのコールバックルーチン(今回の場合、2 つの Button の ButtonPushedFcn コールバック)に、シミュレーションの開始/停止を行うコマンド、set_param コマンドを記述します。
set_param を使用した場合のコマンド例
function ButtonPushed(app, event)
% 開始ボタン
set_param('sim_mdl_17b', 'SimulationCommand','start') % シミュレーション開始
end
function Button_2Pushed(app, event)
% 停止ボタン
set_param('sim_mdl_17b','SimulationCommand','stop') % シミュレーション停止
end
2. ブロックパラメータの変更
ブロックパラメータの変更も、上記1.と同様に、コンポーネントのコールバックルーチンにコマンドを記述します。
set_param コマンドを用いて直接ブロックパラメータを変更した後、Simulink モデルのアップデートを行います。
下記は、"編集フィールド(数値)"(EDIT FIELD) のコールバック(ValueChangedFcn)の記述例です。 
        % Value changed function: GainEditField
        function GainEditFieldValueChanged(app, event)
            value = app.GainEditField.Value; 
            set_param('sim_mdl_17b/Gain','Gain',num2str(value)) % ブロックパラメータ設定
            set_param('sim_mdl_17b','SimulationCommand','update') % モデルの更新
            app.Slider.Value = value; % スライダー値の更新
        end
​このサンプルでは、EDIT FILED とスライダーを連動させるため、スライダーの値の更新も行っています。
また、同様に、スライダーのコールバック(ValueChangedFcn)も以下のように記述します。
function SliderValueChanged(app, event)
value = app.Slider.Value;
set_param('sim_mdl_17b/Gain','Gain',num2str(value))
set_param('sim_mdl_17b','SimulationCommand','update')
app.GainEditField.Value = value;
end
GUIDE を用いた GUI の作成例は、以下の内容を参考にしてください。
・GUIDE で作成した GUI 上から Simulink のシミュレーションを​スタート/ストップし​たり、シミュレーショ​ン中にブロックパラメ​ータの値を変更するに​はどうすればよいです​か?
AppDesigner の基本的な作成方法については、以下の URL をご覧ください。
・AppDesigner
Simulink モデルに対してのパラメータ設定については、以下の URLをご覧ください。
・ Simulinkヘルプドキュメント:調整可能なパラメータ

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink Function についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!