このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
モデル ワークスペース
モデル ワークスペースは、MATLAB ワークスペースとは異なります。
各モデルには、変数値を保存するためのワークスペースが用意されています。
モデル ワークスペースは、MATLAB® のベース ワークスペースに似ていますが、以下の点が異なります。
モデル ワークスペースの変数は、モデルの範囲内でしか可視になりません。
MATLAB ワークスペースとモデル ワークスペースで同じ名前の変数が定義されており、介在するマスク サブシステムやモデル ワークスペースに変数が表示されない場合、Simulink® は、モデル ワークスペースの変数の値を使用します。モデル ワークスペースは、独自の名前の領域を効果的に提供できるため、ユーザーは、他のモデルとの干渉の危険を心配せずにモデル用の変数を作成することができます。
モデルが読み込まれる際に、ワークスペースはデータ ソースから初期化されます。
データ ソースとなり得るのは、Model ファイル、MAT ファイル、MATLAB ファイル、モデル ファイルに保存されている MATLAB コードのいずれかです。詳細については、データ ソースを参照してください。
MAT ファイル、MATLAB ファイル、およびMATLAB コード データ ソースを手動操作で再度読み込んで保存することができます。
信号オブジェクトをモデル ワークスペースに保存するには、オブジェクトのストレージ クラスを
Auto
に設定します。信号オブジェクトにはSimulink.Signal
と作成したサブクラスが含まれます。Auto
以外のストレージ クラスを指定する場合は、信号オブジェクトが Simulink コンテキスト全体で一意であり、すべてのモデルから確実にアクセスできるようにするために、これらのオブジェクトをベース ワークスペースまたはデータ ディクショナリに保存しなければなりません。MATLAB 変数およびパラメーター オブジェクト (
Simulink.Parameter
など) をモデル ワークスペースに保存すると、調整可能性にいくつかの制限が適用されます。その他のモデル化の目的に関する調整可能性の考慮事項と制限を参照してください。また、モデル ワークスペース内にAUTOSAR.Parameter
オブジェクトを保存した場合、コード ジェネレーターはオブジェクトに対して指定したストレージ クラスを無視します。
メモ
参照モデルで使用されている変数の参照先を解決するとき、親モデルが存在しないかのように参照モデルの変数が解決されます。たとえば、参照先モデルが、親モデルのワークスペースと MATLAB ワークスペースの両方で定義されているが、参照モデルのワークスペースでは定義されていないような変数を参照する場合を考えてみてください。このような場合は、MATLAB ワークスペースが使用されます
メモリの問題のトラブルシューティング
ワークスペース変数をブロック パラメーターとして使用する場合、Simulink はシミュレーションのコンパイル中に変数のコピーを作成し、変数をメモリに保存します。これにより、シミュレーション中、またはコード生成プロセス中にシステムのメモリが足りなくなる場合があります。この問題は、次の場合に発生することがあります。
多数のパラメーターを含む大規模モデル
多数の要素をもつパラメーターを含むモデル
この問題は、生成されるコード内でパラメーターを表すのに使用されるメモリ量には影響を与えません。
プログラムによるモデル ワークスペースの操作
Simulink.ModelWorkspace
クラスのオブジェクトは、モデル ワークスペースを表します。Simulink は、Simulink のセッション中にユーザーが開く各モデルに対して、このクラスのインスタンスを作成します。このクラスに関連付けられたメソッドを使用すると、次のようなモデル ワークスペースに関連したさまざまなタスクを実行できます。
モデル ワークスペースの変数のリスト
変数への値の割り当て
式の評価
モデル ワークスペースのクリア
データ ソースからのモデル ワークスペースの再読み込み
指定した MAT ファイルまたは MATLAB ファイルへのモデル ワークスペースの保存
ワークスペースがデータ ソースとして指定する MAT ファイルまたはMATLAB ファイルへのワークスペースの保存