Simulink の参照モデルや保護モ​デルに対し、内部のパ​ラメータを変更するに​はどうすればよいです​か?

10 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
編集済み: MathWorks Support Team 2022 年 11 月 4 日
参照モデル、あるいはモデルリファレンス保護モードで隠蔽化した保護モデルに対し、内部のパラメータを変更したいです。
隠蔽化を行うモデルの変数をモデルワークスペースで定義し、この変数を隠蔽化した後から変更する方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2022 年 11 月 4 日
編集済み: MathWorks Support Team 2022 年 11 月 4 日
保護モデルで、子モデルの変数を変数として設定可能にするためには、子モデルの変数を Simulink.Paramter として設定するか、参照モデルのモデルワークスペースにモデルの引数となる変数を定義する必要があります。
モデル引数を使用した簡単な例題を元に、説明します。child5.mdl は子モデルで、変数 A と K を持ちます。
1.参照モデル側の設定
child5 モデルを開き、[表示] > [モデルエクスプローラ] を選択すると、モデルエクスプローラの画面が開きます。さらに[モデルの階層構造]から child5 > Model Workspace をクリックします。
画面の右側に変数 A、K が設定されています。
a) Simulink R2017a以後のバージョンの場合
変数が表示されている部分の右端にある、Argumentというチェックボックスにチェックを入れることで、指定した変数が参照モデルの引数に設定されます。
b) Simulink R2016b以前のバージョンの場合
右端の[モデル引数(このモデルの参照用)]の箇所に A,K と入力します。
2. 親モデル側の設定
child5.mdlに対して以下のコマンドを実行し、保護モデルを作成します。
[~, neededVars] = Simulink.ModelReference.protect('child5')
あるいは、親モデルであるparent5.mdlを開き、child5.mdlを指定しているmodelブロックを右クリック>サブシステムとモデル参照>選択したModelブロックの保護モデルの作成 をクリックして保護モデルを作成します。(GUI操作による方法は、比較的新しいバージョンのみ対応しています)
a) Simulink R2017a以後のバージョンの場合
Modelブロックを右クリック>ブロック パラメーターを選択し、「引数」タブを左クリックすると、モデルに引き渡す変数を設定するGUIが表示されます。Nameが参照モデル内に定義されている変数、Valueが親モデルから引き渡す値(今回はMATLABワークスペースで定義した変数)を意味します。
b) Simulink R2016b以前のバージョンの場合
Model ブロックを右クリックし、[モデルリファレンスパラメータ]を選択すると、モデル名に上記で作成した保護モデル child5.mdlp が設定され、また、グレーアウトしていますが、[モデルの引数]に A,K が入力されているのが確認できます。[モデル引数の値(このインスタンスに対して)]には、A,K に対応した順番でパラメータ変数(ここではX1,X2)を設定します。
3. 引き渡す変数の設定とモデルの実行
ベースワークスペースでX1,X2の値を定義し、parent5.mdlを実行します。
本ページで使用しているサンプルモデル(R2010aで作成)は回答欄上部からダウンロード頂けます。
参照モデルのパラメータ化の詳細は、以下のドキュメントリンクからご参照頂けます。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeモデル参照 についてさらに検索

製品


リリース

R2010a

Community Treasure Hunt

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

Start Hunting!