メインコンテンツ

Simulink.ModelWorkspace

R2026b

プログラムを使用したモデルのモデル ワークスペースの操作

説明

Simulink.ModelWorkspace オブジェクトを使用して、モデル ワークスペースを操作します。たとえば、変数を追加および削除したり、ワークスペースのデータ ソースを設定したり、ワークスペースに変更を保存したりできます。

メモ

モデル ワークスペース、Simulink® データ ディクショナリ ([Design Data] セクション)、または MAT ファイルが関連するほとんどの一般的なデータ管理タスクでは、データ ソース固有の関数ではなく、Simulink.data.DataConnection オブジェクトで提供される関数を使用することをお勧めします。これらのオブジェクト関数は、より少ない行数のコードでデータを管理するための共通のコマンド ライン インターフェイスを提供します。Simulink.data.connect 関数を使用してデータ ソースへの接続を作成してから、Simulink.data.DataConnection オブジェクトで提供される一連の共通の関数を使用します。データ ソース固有のタスク (参照データ ディクショナリの削除や追加など) の場合は、データ ソース固有のオブジェクトを作成してから、そのオブジェクトで提供される関数を使用してデータ ソースを管理します。詳細については、Manage Data for Simulink Models Programmaticallyを参照してください。

詳細については、モデル ワークスペースを参照してください。

作成

Simulink.ModelWorkspace を作成するには、関数 get_param を使用してモデル パラメーター ModelWorkspace の値をクエリします。たとえば、myModel.slx という名前のモデルのモデル ワークスペースを表す mdlWks という名前のオブジェクトを作成するには、次を入力します。

mdlWks = get_param('myModel','ModelWorkspace')

プロパティ

すべて展開する

モデル ワークスペース内の変数を初期化するソース。次の文字ベクトルのいずれかとして指定します。

  • 'Model File' — 変数はモデル ファイルに格納されます。モデルを保存する場合は、変数も保存します。

  • 'MATLAB Code' — 変数は、作成してモデル ファイルに保存した MATLAB® コードで作成されます。

  • 'MAT-File' — 変数は MAT ファイルに保存され、モデル ファイルとは別に管理および操作できます。

  • 'MATLAB File' — 変数はスクリプト ファイルの MATLAB コードで作成され、モデル ファイルとは別に管理および操作できます。

DataSource が 'MATLAB Code' または 'MATLAB File' に設定されている場合、以下を含むブロック線図の更新を実行するコマンドは MATLAB コードに含めることはできません。

  • sim

  • codegen

  • slbuild

  • set_param(model,'SimulationCommand','Update')

データ型: char

変数を格納または作成する外部ファイルの名前。文字ベクトルとして指定します。このプロパティを有効にするには、DataSource を 'MAT-File' または 'MATLAB File' に設定します。

例: 'myFile.mat'

例: 'myFile.m'

データ型: char

変数を初期化する MATLAB コード。文字ベクトルとして指定します。このプロパティを有効にするには、DataSource を 'MATLAB Code' に設定します。

以下を含むブロック線図の更新を実行するコマンドは MATLAB コードに含めることはできません。

  • sim

  • codegen

  • slbuild

  • set_param(model,'SimulationCommand','Update')

例: sprintf('%% Create variables that this model uses.\n\nK = 0.00983;\n\nP = Simulink.Parameter(5);')

データ型: char

オブジェクト関数

getVariableモデルのモデル ワークスペース内の変数の値を返す
getVariablePartモデル ワークスペース内の変数プロパティの値を取得する
setVariablePartモデル ワークスペース内の変数のプロパティを設定する
hasVariable変数がモデルのモデル ワークスペースに存在するかどうかを判定する
whosモデルのモデル ワークスペース内の変数リストを返す
saveToSourceモデル ワークスペースの変更をモデル ワークスペースの外部データ ソースに保存する
saveモデル ワークスペースの内容を MAT ファイルに保存する
reloadモデル ワークスペースのデータ ソースから変数を再初期化する
evalinモデルのモデル ワークスペースの式を評価する
clearモデルのモデル ワークスペースから変数をクリアする
assigninモデル ワークスペースの変数に値を代入する

例

すべて折りたたむ

変数をモデルのモデル ワークスペースに作成します。次に、変数を修正して、修正を確認するために変数値をクエリします。

モデル例 vdp を開きます。

openExample('simulink_general/VanDerPolOscillatorExample')

vdp のモデル ワークスペースを表す Simulink.ModelWorkspace オブジェクト mdlWks を作成します。

mdlWks = get_param('vdp','ModelWorkspace');

モデル ワークスペースに値 5.12 の myVar という名前の変数を作成します。

assignin(mdlWks,'myVar',5.12)

新しい値 7.22 を適用します。これを行うには、最初に関数 getVariable を使用して変数の一時コピーを作成します。次に、コピーを変更し、それを使用してモデル ワークスペースの基の変数を上書きします。

temp = getVariable(mdlWks,'myVar');
temp = 7.22;
assignin(mdlWks,'myVar',temp)

変数の値をクエリして、新しい値を確認します。

getVariable(mdlWks,'myVar')
ans =

    7.2200

バージョン履歴

R2006a より前に導入