ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

モデル コールバック

モデルのコールバックは、モデルを読み込んだ後や保存した後など、指定したアクション ポイントで実行されます。

同じコールバックのほとんどをライブラリに対して設定できます。ライブラリに設定できるのはライブラリに対して実行できるコールバックだけです。たとえば、ライブラリはシミュレーションできないため、シミュレーションの一部として呼び出される InitFcn コールバックはライブラリに対しては設定できません。

モデルのコールバックの作成

  1. Simulink® エディターで、プロパティ インスペクターを開きます。[ツール表示][プロパティ インスペクター] を選択します。

  2. モデルの最上位階層で何も選択せずに、[プロパティ] タブの [コールバック] セクションに設定するコールバックを選択します。

  3. ボックス内に、コールバックで実行する関数を入力します。

プログラムによりモデルのコールバックを作成するには、関数 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 を使用するため、StartFcnStopFcn などのコールバックは実行されません。

メモ

シミュレーション出力は、コマンド ライン シミュレーションの StopFcn コールバックでは使用できません。

モデルのコールバック パラメーター

 モデルを読み込むまたは閉じるコールバック パラメーター

 モデルを保存するコールバック パラメーター

 モデル シミュレーションのコールバック パラメーター

関連するトピック