Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

初期化関数

初期化関数 (InitFcn) は、モデルのコンパイル開始時に実行または評価されるコールバックの一種です。InitFcn はモデル (モデル InitFcn) またはブロック (ブロック InitFcn) で使用できます。

メモ

バリアント制御は、モデル InitFcn コールバック内でのみ定義できます。

モデル InitFcn

モデル InitFcn コールバックは、使用されているモデルに固有のパラメーターおよび環境設定を初期化するために使用されます。

メモ

モデル InitFcn コールバックを使用してシミュレーション ステータスを取得することは推奨されません。slbuild、または SIL (ソフトウェアインザループ) かラピッド アクセラレータ モードでモデルをシミュレーションする場合、モデル InitFcn コールバック ステータスは 'stopped' のように表示される場合があります。モデル InitFcn コールバックは、使用されているモデルに固有のパラメーターおよび環境設定を初期化するためだけに使用されなければなりません。

モデル InitFcn を使用する場合のベスト プラクティス

  • モデル InitFcn は、モデルに必要なデータを初期化するために使用します。たとえば、以下の項目の初期化です。

    • モデル パラメーターで使用される変数

    • 必要なソフトウェアのライセンス チェック

  • モデル InitFcn は、自分以外のモデルを変更するためには使用しないでください。これは、Model ブロックのブロック InitFcn は、参照モデルのパラメーター (および構造) を変更してはならないという意味でもあります。

  • 参照モデルで使用される任意の変数を上書きするために、最上位モデルでモデル InitFcn を使用してはなりません。たとえば、最上位モデルと参照モデルが変数 ‘k’ を使用する場合、最上位モデルのモデル InitFcn は、参照モデルの ‘k’ を変更してはなりません。このようなモデル化パターンでは、異なる変数名を使用することをお勧めします。あるいは、データ ディクショナリを使用できます。

  • モデル InitFcn ではシミュレーション コマンドを使用しないでください。たとえば、set_param(ModelName, 'SimulationCommand', 'start')set_param(ModelName, 'SimulationCommand', 'update') などのコマンドをモデル InitFcn で使用することは推奨されません。

  • モデルが最上位モデルから参照される場合、モデル関数 InitFcn を使用して add_line または delete_line などのモデルの構造を編集しないでください。

モデルで InitFcn コールバックを使用する場合、ブロック パラメーターの欠損している変数の編集時チェックがモデル全体で無効になります。

モデル InitFcn を含むバリアント

モデルのコールバックを定義するために、モデル プロパティを使用できます。たとえば、PreLoadFcnPostLoadFcnInitFcn コールバックです。モデル情報、説明、履歴およびコールバック関数を表示するには、モデル プロパティを使用します。プロパティ インスペクターを使用して、モデルのバージョン プロパティ、説明履歴、コールバック関数を表示および編集できます。モデル プロパティの詳細については、モデル プロパティの管理を参照してください。

Variant Subsystem ブロックと Variant Source ブロックを含むモデルについて考えます。たとえば、Variant - InitFcn です。

このモデルでは、モデル InitFcn を使用して、モデルのパラメーターを初期化します。

同様に、これらのパラメーターも PreLoadFcn または PostLoadFcn で定義できます。

ただし、パラメーターが InitFcn コールバックで定義されていて、MATLAB® ワークスペースが Clear コマンドを使用してクリアされる場合、ワークスペース内のアイテムはクリアされ、モデルのシミュレーション時に再作成されます。パラメーターが PreLoadFcn または PostLoadFcn で定義されている場合、クリアされるアイテムは再作成されません。

ブロック InitFcn

ブロック InitFcn コールバックは、ブロック固有のパラメーターおよび設定を初期化するために使用されます。

ブロック InitFcn を使用する場合のベスト プラクティス

  • ブロック InitFcn は、自分以外のブロックのパラメーター (または変数) を変更するためには使用しないでください。

  • 親サブシステム ブロックまたは他の子ブロックのパラメーターを変更するために、子ブロック上でブロック InitFcn を使用してはなりません。ただし、親サブシステム ブロックでブロック InitFcn を使用して、直下の子ブロックのパラメーターを変更することはできます。

  • ブロック InitFcn はブロックの追加や削除 (add_block または delete_block) のような構造的な変更を行うためには使用しないでください。

  • 参照モデルのパラメーター (および構造) を変更するために、Model ブロックでブロック InitFcn を使用してはなりません。

ブロックで InitFcn コールバックを使用する場合、そのブロックでは、ブロック パラメーターの欠落している変数の編集時チェックが無効になります。

関連するトピック