最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
モデルのコールバックは、モデルを読み込んだ後や保存した後など、指定したアクション ポイントで実行されます。
同じコールバックのほとんどをライブラリに対して設定できます。ライブラリに設定できるのはライブラリに対して実行できるコールバックだけです。たとえば、ライブラリはシミュレーションできないため、シミュレーションの一部として呼び出される InitFcn
コールバックはライブラリに対しては設定できません。
Simulink® エディターで、プロパティ インスペクターを開きます。[モデル化] タブの [設計] で [プロパティ インスペクター] をクリックします。
モデルの最上位階層で何も選択せずに、[プロパティ] タブの [コールバック] セクションに設定するコールバックを選択します。
ボックス内に、コールバックで実行する関数を入力します。
プログラムによりモデルのコールバックを作成するには、関数 set_param
を使用して、MATLAB® コードをモデル コールバック パラメーターに割り当てます。モデルのコールバック パラメーターを参照してください。
同じモデルの複数のインスタンスをノーマル モードで参照している場合、各インスタンスでコールバックが実行されます。
アクセラレータ モードでのモデル参照のコールバックの実行では、最上位モデルとその参照モデルでそれぞれのコールバックが実行される順序が反映されます。たとえば、以下を仮定します。
モデル A:
アクセラレータ モードでモデル B を参照する。
MATLAB ワークスペース内に変数を作成する PostLoadFcn
コールバックが設定されている。
[Rebuild
] コンフィギュレーション パラメーターが [Always
]、[If changes detected
] または [If any changes in known dependencies detected
] に設定されている。
モデル B:
MATLAB ワークスペースをクリアする CloseFcn
コールバックが設定されている。
ビルドされていない、または期限が切れている。
モデル A のシミュレーションによって、参照モデル B のリビルドがトリガーされます。Simulink がモデル B をリビルドするときに、モデル B を開閉して、モデル B の CloseFcn
コールバックを呼び出します。モデル A OpenFcn
コールバックによって作成された変数を含む、MATLAB ワークスペースを CloseFcn
がクリアします。
モデル B の CloseFcn
コールバックを使用する代わりに、モデル A の StopFcn
コールバックを使用して、モデルによって使用される変数を MATLAB ワークスペースからクリアすることも可能です。または、データのデータ ディクショナリを使用して、ベース ワークスペース内に変数を含める必要性をなくすことができます。
Simulink では、アクセラレータ モードで参照モデルのコールバックは呼び出されません。すべてが最新の状態で、[Rebuild
] コンフィギュレーション パラメーターが [If any changes in known dependencies detected
] に設定されている場合、参照モデルはコンパイルされず、その InitFcn
コールバックは実行されません。アクセラレータ モードの参照モデルは、参照モデルの代わりに開始および停止する S-Function を使用するため、StartFcn
や StopFcn
などのコールバックは実行されません。
メモ
シミュレーション出力は、コマンド ライン シミュレーションの StopFcn
コールバックでは使用できません。