Main Content

パラメーター値の初期化とリセット

シミュレーション中、環境センサー値の読み取りなどのイベントへの応答を行ってから新しいパラメーター値を使用してアルゴリズムを更新することができます。

Initialize FunctionReinitialize Function、および Reset Function ブロックは、Parameter Writer ブロックがパラメーター値を変更している間にイベントに応答することができます。Parameter Writer ブロックでは、次の方法でパラメーターを変更できます。

  • シミュレーション中に調整可能なブロックのパラメーターに直接書き込む

  • モデルを参照する Model ブロックに属しているインスタンス パラメーターに書き込むことで、参照モデル内のブロック パラメーターに反映させる

  • マスク サブシステムのパラメーターに書き込むことで、サブシステム内のブロック パラメーターに反映させる

  • モデル ワークスペース変数に書き込むことで、その変数に基づくブロック パラメーターに反映させる

Parameter Writer ブロックの追加

Parameter Writer ブロックを Initialize FunctionReinitialize Function、または Reset Function ブロックの内部で使用して、イベントへの応答でパラメーター値を書き込むことができます。Parameter Writer ブロックを条件付き実行サブシステムの内部で使用することで、サブシステムが実行されるたびにパラメーター値を書き込むこともできます。

Parameter Writer ブロックからパラメーターを書き込むことができるブロックを "パラメーター オーナー ブロック" と呼びます。パラメーター オーナー ブロックは、調整可能なパラメーターをもつブロック、Model ブロック、またはマスク サブシステム ブロックのいずれかになります。

Parameter Writer ブロックをモデルに追加するには、パラメーター オーナー ブロックをクリックして強調表示します。次に、Simulink® ツールストリップの現在のブロックのタブから [パラメーター ライター] をクリックします。あるいは、[リーダー-ライター] をクリックし、リストから [Parameter Writer ブロック] を選択します。

メモ

ツールストリップの現在のブロックのタブには、強調表示するブロックのタイプに応じて、[定数] などの強調表示されたブロックの名前がラベルに使用される場合と [ブロック] というラベルが使用される場合があります。

Block tab of Simulink toolstrip, showing Parameter Writer button. A gain block is highlighted on the canvas.

Block tab of Simulink toolstrip, showing Reader-Writer button with drop-down menu beneath it. List items are Parameter Writer Block and State Reader Block. A Discrete Filter block is highlighted on the canvas.

パラメーター オーナー ブロックに Parameter Writer ブロックから書き込むことができるパラメーターが複数ある場合、Parameter Writer ブロックのダイアログ ボックスが開きます。[パラメーター オーナー セレクター ツリー] からパラメーターを選択します。

Parameter Writer block dialog. In Parameter Owner Selector Tree, "Discrete Filter" is highlighted, with "Denominator" and "Numerator" appearing indented below it.

Parameter Writer ブロックを追加すると、パラメーター オーナー ブロックの上に diamond shape with a p inside it バッジと書き込み先のパラメーターの名前が表示されます。パラメーター オーナー ブロックとパラメーターの名前が Parameter Writer ブロックの横に表示されます。

Simulink canvas showing Gain block named "Mu" with the word "Gain" and a badge above it, and a Parameter Writer block with "Mu.Gain" appearing next to it

Parameter Writer ブロックを作成した後に、そのブロックを切り取り、モデルの階層構造内の目的の場所に貼り付けて移動します。

あるいは、Parameter Writer ブロックを Simulink ライブラリ ブラウザーからモデルに追加し、ブロックのダイアログでパラメーター オーナー ブロックまたはモデル ワークスペース パラメーターを選択できます。

メモ

Parameter Writer ブロックをもつライブラリ ブロックを作成するときは、対応するパラメーター オーナー ブロックもライブラリ ブロックに含めなければなりません。

調整可能なブロック パラメーターへの書き込み

Parameter Writer ブロックでは、シミュレーション中に調整可能なブロックのパラメーターに直接書き込むことができます。シミュレーション中に調整可能なブロック パラメーターを参照してください。パラメーターの値は、端子からではなく、ブロックのダイアログ ボックスから受け取る必要があります。初期条件パラメーターは含まれません。Parameter Writer ブロックは、パラメーターを書き込むブロックと同じモデルに含める必要があります。

モデル インスタンス パラメーターへの書き込み

Parameter Writer ブロックでは、モデルのインスタンス パラメーターに書き込むことで参照モデル内のブロック パラメーターの値を変更できます。この例では、Parameter Writer ブロックを使用して参照モデル内の Gain ブロックのパラメーター値を変更する方法を示します。

  1. 書き込み可能なパラメーター (モデル パラメーターを使用して定義できるブロック パラメーター) を含むモデルを作成します。この例では、ConstantGain、および Outport ブロックを新しいモデルに追加します。ブロックを結線します。モデルを ParamRw_Sub という名前で保存します。

  2. Simulink パラメーターをモデル ワークスペースに追加します。[モデル化] タブの [設計] セクションで、[モデル ワークスペース] を選択します。モデル エクスプローラーのメニューから、[追加][Simulink Parameter] を選択します。[Name]Parameter_1 に設定し、[Value]1 に設定します。[Argument] チェック ボックスをオンにします。[適用] をクリックします。

  3. Gain の [ブロック パラメーター] ダイアログ ボックスを開きます。[Gain]Parameter_1 に設定します。

  4. パラメーターを初期化するモデルを作成します。Initialize Function ブロックと Model ブロックを新しいモデルに追加します。モデルを ParamRw_Top という名前で保存します。

  5. Model ブロックの名前を Model_1 に変更します。Model の [ブロック パラメーター] ダイアログ ボックスを開きます。[モデル名] ボックスに、ParamRw_Sub と入力します。[インスタンス パラメーター] タブを選択します。Parameter_1[Value]1 に設定します。これは、Parameter Writer ブロックがこのパラメーターを新しい値で更新する前にモデルで使用する既定値です。

  6. Initialize Function ブロックをダブルクリックします。ブロックは、State Writer ブロックとともに事前構成されています。

  7. State Writer ブロックを Parameter Writer ブロックで置き換えます。Parameter Writer の [ブロック パラメーター] ダイアログ ボックスを開きます。[パラメーター オーナー セレクター ツリー] から、Parameter_1 を選択します。

  8. Constant の [ブロック パラメーター] ダイアログ ボックスを開きます。[定数値] を 3 に設定します。これは、Parameter Writer ブロックで設定するゲインの値です。

  9. [OK] をクリックしてダイアログを閉じます。Parameter Writer ブロックには、Model_1 のモデル インスタンス パラメーター Parameter_1 に書き込むことを示すラベルが表示されます。

  10. ParamRw_Top タブをクリックします。Model ブロックには、値が Parameter_1 に書き込まれることを示すバッジ が表示されます。

マスク サブシステムのパラメーターへの書き込み

Parameter Writer ブロックでは、サブシステムのパラメーターに書き込むことでマスク サブシステム内のブロック パラメーターの値を変更できます。マスク パラメーターで [評価] が選択され、[調整可能][オン] または [実行ごと] に設定されている必要があります。マスク エディターの概要を参照してください。サブシステムは Atomic でもバーチャルでもかまいません。

Mask Editor dialog. "Evaluate" and "Tunable" attributes are highlighted.

モデル ワークスペース変数への書き込み

Parameter Writer では、モデル ワークスペース変数の値を直接書き込むことができます。ブロックはワークスペース変数と同じモデルに含める必要があり、変数がモデル引数として構成されていてはなりません。モデル ワークスペース変数にのみ書き込むことができ、ベース MATLAB® ワークスペースまたはデータ ディクショナリの変数に書き込むことはできません。書き込むことができる変数は、通常の MATLAB 変数または Simulink.Parameter オブジェクトです。

モデル ワークスペース変数に書き込むには、ブロックのダイアログ ボックスで [モデル ワークスペース パラメーターへのアクセス] を選択し、[モデル ワークスペース パラメーター名] に変数の名前を入力します。[パラメーター オーナー セレクター ツリー] は表示されないことに注意してください。

Block dialog for Parameter Writer block. "Access model workspace parameter" is selected.

参考

| | | | | | |

関連するトピック

外部の Web サイト