AppDesigner で作成した GUI から Simulink モデルを実行したり、パラメータを変更したりするには、どうすればよいですか?
21 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 20 de Oct. de 2017
Editada: MathWorks Support Team
el 13 de Sept. de 2021
Simulink モデルのパラメータを設定したり、シミュレーションを実行・停止するような、アプリ(GUI)を AppDesigner で作成したいです。作成する方法を教えてください。
Respuesta aceptada
MathWorks Support Team
el 13 de Sept. de 2021
Editada: MathWorks Support Team
el 13 de Sept. de 2021
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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Create Apps to Control Simulations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!