モデル ワークスペース
各モデルには、変数値を保存するための独自のワークスペースが用意されています。モデルが読み込まれるときに、モデル ワークスペースはデータ ソースから初期化されます。このデータ ソースには、モデル ファイル、MATLAB® ファイル、またはモデル ファイルに保存されている MATLAB コードを使用できます。これらのデータ ソースは、対話形式で再度読み込んで保存できます。詳細については、モデル ワークスペース内のデータのソースの指定を参照してください。
モデル ワークスペースの変数は、モデルの範囲内でしか可視になりません。MATLAB ワークスペースとモデル ワークスペースで同じ名前の変数が定義されており、介在するマスク サブシステムやモデル ワークスペースに変数が表示されない場合、Simulink® は、モデル ワークスペースの変数の値を使用します。モデル ワークスペースは、独自の名前の領域を効果的に提供できるため、ユーザーは、他のモデルとの干渉の危険を心配せずにモデル用の変数を作成することができます。
メモ
参照モデルで使用されている変数の参照先を解決するとき、親モデルが存在しないかのように参照モデルの変数が解決されます。たとえば、参照先モデルが、親モデルのワークスペースと MATLAB ワークスペースの両方で定義されているが、参照モデルのワークスペースでは定義されていないような変数を参照する場合を考えてみてください。このような場合は、MATLAB ワークスペースが使用されます
モデル ワークスペース内の変数を変更するには、モデル ワークスペース データの変更を参照してください。
モデル ワークスペースを使用する利点
関連付けられたモデル内でのみ使用するデータを保存するためにはモデル ワークスペースを使用します。このデータには次のものが含まれます。
ブロック パラメーターの値を指定するために使用する数値変数などのモデル パラメーター
パラメーターの特性を制御するために使用する
Simulink.Parameterオブジェクトなどのデータ オブジェクトモデルの引数
データをモデル ワークスペースに保存することにより、モデルの移植性を高めたり、データの所有権を確立したりできます。この場合、データはモデルのファイルに永続的に保存されます。
モデル参照階層内で、各モデル ワークスペースは一意の名前空間として機能します。このため、同じ変数名を複数のモデル ワークスペース内で使用できます。その後、モデルごとに異なる値を代入できます。
メモリの問題のトラブルシューティング
ワークスペース変数をブロック パラメーターとして使用する場合、Simulink はシミュレーションのコンパイル中に変数のコピーを作成し、変数をメモリに保存します。これにより、シミュレーション中、またはコード生成プロセス中にシステムのメモリが足りなくなる場合があります。この問題は、次の場合に発生することがあります。
多数のパラメーターを含む大規模モデル
多数の要素をもつパラメーターを含むモデル
この問題は、生成されるコード内でパラメーターを表すのに使用されるメモリ量には影響を与えません。
モデル ワークスペースの制限事項
信号オブジェクトをモデル ワークスペースに保存するには、オブジェクトのストレージ クラスを
Autoに設定します。信号オブジェクトにはSimulink.Signalと作成したサブクラスが含まれます。Auto以外のストレージ クラスを指定する場合は、信号オブジェクトが Simulink コンテキスト全体で一意であり、すべてのモデルから確実にアクセスできるようにするために、これらのオブジェクトをベース ワークスペースまたはデータ ディクショナリに保存しなければなりません。MATLAB 変数およびパラメーター オブジェクト (
Simulink.Parameterなど) をモデル ワークスペースに保存すると、調整可能性にいくつかの制限が適用されます。その他のモデル化の目的に関する調整可能性の考慮事項と制限を参照してください。また、モデル ワークスペース内にAUTOSAR.Parameterオブジェクトを保存した場合、コード ジェネレーターはオブジェクトに対して指定したストレージ クラスを無視します。Simulink.NumericTypeオブジェクトを保存した場合、このオブジェクトをデータ型エイリアスとして使用することはできません。IsAliasプロパティをfalseに設定しなければなりません。モデル ワークスペースに格納できない他のオブジェクトには、次のものがあります。
Simulink.BusSimulink.DataTypeSimulink.data.DataConnection
参考
Simulink.ModelWorkspace | Simulink.data.DataConnection | Simulink.data.connect