主要内容

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

マスクの初期化

マスクエディターの[初期化]ペインで,マスクブロックを初期化するMATLAB®コードを追加できます。これらの初期化コマンドは,モデルの読み込み時やシミュレーションの開始時などの重要なタイミングでマスクサブシステムを初期化するために仿真金宝app软件®で実行されます。詳細については,初期化コマンドの実行を参照してください。

次のような場合にマスク初期化コードを追加できます。

  • マスクパラメーターの初期値を指定する。たとえば,パラメーター一个の初期値を指定するには,(初期化]ペインで”一个= 5“のように入力します。

  • 子ブロックの値を指定する。以下に例を示します。

    set_param('子块名称','参数名称','参数值')
  • 自己修正可能なマスクを作成する。詳細については,自動変更マスクを参照してください。

マスクサブシステムの初期化コードで参照できるのは,対応するローカルワークスペース内の変数だけです。

ブロックをモデルで参照する場合やモデルにコピーする場合は,マスクダイアログボックスに,指定した既定値が表示されます。マスク初期化コードは,ライブラリブロックまたはその他のブロック内でマスクパラメーターの既定値を変更するためには使用できません。

マスク初期化コードで使用されているマスクパラメーターが定義されていることを確認します。マスク初期化コマンドの編集時にマスク初期化のエラーが表示されますが,これはすべてのマスクパラメーター値がエラーなしで評価された場合にのみ可能です。

メモ

  • 初期化コードを含むブロックは,モデル参照を使用した場合は想定どおりに起動しません。

  • 子系统ブロックのマスク初期化コードでset_paramを使用する場合,すべての子ブロックも評価されます。

マスクエディターの[初期化]ペインを使用して,マスクブロックを初期化するMATLABコマンドを追加します。

[初期化]ペインには次のセクションがあります。

  • ダイアログ変数

  • 初期化コマンド

ダイアログ変数

[ダイアログ変数)セクションには,[パラメーター]ペインで定義されたマスクブロックのマスクパラメーターに関連付けられた変数の名前が表示されます。

このリストからパラメーター名をコピーして(初期化コマンド]セクションに貼り付けることができます。

このリストでダブルクリックして編集することで,マスクパラメーターの変数の名前を変更できます。

初期化コマンド

このセクションで初期化コマンドを追加できます。初期化コードは,MATLAB関数およびスクリプト,演算子,マスクワークスペースで定義済みの変数で構成された有効なMATLAB式でなければなりません。初期化コマンドは,ベースワークスペース変数にはアクセスできません。

結果がMATLABコマンドウィンドウにエコーされないように,初期化コマンドの最後にはセミコロンを付けてください。

関連する例については,次を参照してください。

マスクの初期化のベストプラクティス

マスク初期化コマンドには,以下の規則があります。

  • 初期化コードは,動的なマスクダイアログボックス(他のコントロールの設定に行った変更によって外観やコントロールの設定が変化するダイアログボックス)の作成には使用しないでください。代わりに,この目的のために用意されているマスクコールバックを使用してください。詳細については,動的なマスクダイアログボックスを参照してください。

  • モデルの読み込み時に初期化コードを使用してブロックを追加または削除しないでください。

  • 入れ子にされたマスクサブシステムの場合,子ブロックから親ブロックに対してset_paramを使用しないでください。子ブロックのマスクと親ブロックのマスクの両方がブロックの同じパラメーターを初期化し,予期しない結果になる可能性があります。詳細については。”安全でないマスクコールバックエラー“を参照してください。

  • set_paramコマンドは,初期化している別のマスクサブシステム内のブロックで使用しないでください。下位レベルのマスクサブシステムが上位レベルのマスクサブシステムによって定義される記号を参照する場合に,下位レベルのマスクサブシステムにあるブロックのパラメーターの設定を試みると未解決の記号によるエラーを引き起こす可能性があります。

    たとえば,マスクサブシステム一个がマスクサブシステムBを含み,このサブシステムが获得ブロックCを含み,その获得パラメーターがBで定義されている変数を参照していると仮定します。また,サブシステム一个には次のコマンドを含む初期化コードがあると仮定します。

    set_param([gcb '/B/C'], '采样时间','-1');

    一个を含むモデルのシミュレーションまたは更新を実行すると,未解決の記号によるエラーが発生します。

  • マスク初期化コードを使用してデータオブジェクトを作成することはできません。データオブジェクトは次のクラスのオブジェクトです。

    • 金宝app仿真软件。参数とサブクラス

    • 金宝app仿真软件。信号とサブクラス

  • 同じマスクブロックを削除する初期化コードは追加しないでください。

  • マスク初期化コードを使用して制御するのは,直接の子ブロックだけにしてください。

メモ

マスク初期化コードは,ブロックのコメント化やコメント解除には使用しないでください。

関連するトピック