初期化関数
初期化関数 (InitFcn
) は、モデルのコンパイル開始時に実行または評価されるコールバックの一種です。InitFcn
コールバックはモデルまたはブロックのコールバックとして指定できます。
メモ
バリアント制御は、モデル InitFcn
コールバック内でのみ定義できます。
モデル InitFcn
コールバック
モデル InitFcn
コールバックは、次のようなモデルに固有のパラメーターおよび環境設定を初期化するために使用します。
モデル パラメーターで使用される変数
必要なソフトウェアのライセンス チェック
Simulink® ツールストリップの [モデル化] タブで [モデル設定] 矢印をクリックし、[モデル プロパティ] をクリックします。モデル InitFcn
コールバックは、[モデル プロパティ] ダイアログ ボックスの [コールバック] タブにあります。
モデル InitFcn
コールバックは以下には使用しないでください。
シミュレーション ステータスを取得する。関数
slbuild
を使用してモデルをシミュレーションする場合、またはソフトウェアインザループ (SIL) かラピッド アクセラレータ モードを使用する場合、モデルInitFcn
コールバック ステータスは'stopped'
のように表示される場合があります。シミュレーション コマンドを実行する。たとえば、
set_param(ModelName,'SimulationCommand','start')
やset_param(ModelName,'SimulationCommand','update')
などのコマンドはモデルInitFcn
コールバックで使用しないでください。他のモデルを変更する。同様に、Model ブロックのブロック
InitFcn
コールバックは、参照モデルのパラメーターまたは構造を変更してはなりません。参照モデルで使用されている変数を上書きする。たとえば、最上位モデルと参照モデルが変数 k を使用する場合、最上位モデルのモデル
InitFcn
コールバックは、参照モデルの k を変更してはなりません。このようなモデル化パターンでは、異なる変数名またはデータ ディクショナリを使用してください。モデルの構造を編集する (バリアント制御の定義は除く)。たとえば、
add_line
やdelete_line
などの関数はモデルInitFcn
コールバックで使用しないでください。
モデルで InitFcn
コールバックを使用する場合、ブロック パラメーターの欠損している変数の編集時チェックがモデル全体で無効になります。
バリアントをもつモデル InitFcn
コールバックの例については、sldemo_variant_initFcn
モデルを開いてください。次に、緑色のブロックをダブルクリックして、推奨ワークフローを使用するモデルを開きます。開いたモデルには Variant Subsystem ブロックと Variant Source ブロックが含まれています。
このモデルでは、モデル InitFcn
コールバックを使用して、モデルのパラメーターを初期化します。
モデルの PreLoadFcn
コールバックまたは PostLoadFcn
コールバックでこれらのパラメーターを定義できますが、これらのコールバックはモデルが読み込まれる前または読み込まれた後に実行されます。パラメーターを MATLAB® ワークスペースからクリアし、モデルをシミュレートするとします。モデルの PreLoadFcn
コールバックと PostLoadFcn
コールバックはパラメーターを再作成しません。モデル InitFcn
コールバックでパラメーターを定義した場合は、モデルの更新とシミュレーションによってパラメーターが再作成されます。
ブロック InitFcn
コールバック
ブロック InitFcn
コールバックは、ブロックのパラメーターおよび設定を初期化するために使用します。
ブロックを右クリックします。次に、[プロパティ] をクリックします。ブロック InitFcn
コールバックは、[ブロック プロパティ] ダイアログ ボックスの [コールバック] タブにあります。
ブロック InitFcn
コールバックは以下には使用しないでください。
他のブロックのパラメーター (または変数) を変更する。ただし、Subsystem ブロックの
InitFcn
コールバックを使用して直接の子ブロックのパラメーターを変更する場合は除きます。構造を変更する。たとえば、
add_block
やdelete_block
などの関数はブロックInitFcn
コールバックで使用しないでください。別のブロックで使用されるモデル ワークスペース内のグローバル変数または変数を変更する。
Model ブロックが参照しているモデルのパラメーター、構造、または設定を変更する。
ブロックで InitFcn
コールバックを使用する場合、そのブロックでは、ブロック パラメーターの欠落している変数の編集時チェックが無効になります。