Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Parameter Writer

ブロック パラメーターまたは変数への書き込み

  • Parameter Writer block icon

ライブラリ:
Simulink / Signal Routing

説明

Parameter Writer ブロックは、次のいずれかに書き込むことでブロック パラメーターの値を変更します。

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

  • モデルを参照する Model ブロックに属するインスタンス パラメーター

  • マスク サブシステムのパラメーター

  • モデル ワークスペースの変数

  • ベース ワークスペース変数

  • Simulink.data.Dictionary 内の作成した変数。

Parameter Writer ブロックからパラメーターを書き込むことができるブロックを "パラメーター オーナー ブロック" と呼びます。パラメーター オーナー ブロックのサポートされるパラメーターが Parameter Writer ブロックで検出されるためには、サポートされるパラメーターが有効になっていなければなりません。

Initialize FunctionReinitialize Function、および Reset Function ブロックを含む Parameter Writer ブロックを使用して、イベントに応答します。たとえば、イベントはハードウェア センサーから値を読み取ってから、センサーの値に基づいてブロック パラメーターを更新することができます。

Parameter Writer ブロックの使用の詳細については、パラメーター値の初期化とリセットを参照してください。

それ以外の場合は、Parameter Writer ブロックを次のいずれかと同じタスクに含める必要があります。

  • Parameter Writer ブロックによってパラメーターが直接書き込まれるブロック (Gain ブロック、Model ブロック、マスク Subsystem ブロックなどの組み込みブロック、または S-Function ブロックなどの User-Defined Functions ブロックのいずれか)

  • ワークスペース変数を通じてパラメーターが間接的に書き込まれるブロック

ベース ワークスペース変数、モデル ワークスペース変数、Simulink.data.Dictionary 内の作成した変数、マスク パラメーター、または Model ブロック インスタンス パラメーターに Parameter Writer ブロックで書き込むには、その変数、マスク パラメーター、または Model ブロック インスタンス パラメーターが実行時に調整可能なパラメーターをもつパラメーター オーナー ブロックか C MEX S-Function で使用されていなければなりません。

マスク サブシステムに含まれる Parameter Writer ブロックの場合、Parameter Writer ブロックと対応するパラメーター オーナー ブロックの直接の親が同じマスク サブシステムでなければなりません。

Parameter Writer ブロックが double (既定のデータ型) 以外のデータ型の値をマスク パラメーターに書き込む場合、Parameter Writer ブロックで書き込まれる値と同じデータ型の値でマスク パラメーターを初期化する必要があります。マスク パラメーターを初期化するには、ブロックをダブルクリックしてマスク ダイアログ ボックスを開き、マスク パラメーターのデータ型と値を指定します。あるいは、プログラムによってマスク パラメーターを初期化するには、関数 set_paramMaskValues パラメーターを使用します。詳細については、プログラムによるマスクの制御を参照してください。

この示されている例では、Parameter Writer ブロックが single データ型の値をマスク サブシステム内の Gain ブロック パラメーターに書き込んでいます。マスク パラメーターは、single データ型で 1 に初期化されています。Mask parameter value setting when Parameter Writer block writes data with datatype other then double, to a parameter inside a masked subsystem

Parameter Writer ブロックでストレージ クラスが [モデルの既定の設定] に設定されたインスタンス パラメーターに書き込む場合、コード ジェネレーターでパラメーターのコードを生成する際に [Model parameter arguments] の既定の構成が使用されます。再利用可能な参照モデルへのインスタンス固有パラメーター値の指定 (Simulink Coder)を参照してください。

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

パラメーター オーナー ブロックの特定

ブロックがサポートされるパラメーター オーナー ブロックであるかどうかは、IsParamOwnerBlock ブロック パラメーターの値で確認できます。ブロックの名前またはハンドル (blk) と IsParamOwnerBlock ブロック パラメーターを指定して関数 get_param を使用します。

get_param(blk,'IsParamOwnerBlock')

ブロックがサポートされるパラメーター オーナー ブロックの場合は 'on'、それ以外の場合は 'off' が関数から返されます。

Parameter Writer ブロックとそのブロックが値を書き込むパラメーター オーナー ブロックの組み合わせにより、関連するブロックのセットが形成されます。Parameter Writer ブロックを選択すると関連するパラメーター オーナー ブロックを強調表示できます。その逆も同様です。関連するブロックを強調表示すると、現在のモデル内の関連するブロックを含むブロックも強調表示されます。たとえば、選択したブロックに関連する Parameter Writer ブロックが Initialize Function ブロックに含まれている場合、そのブロックが強調表示されます。モデル キャンバスで強調表示されたブロックはミニマップでも強調表示されます。

開いているブロック線図または新しいタブに関連するブロックを表示するには、選択後に表示される省略記号で一時停止します。その後、操作バーから [関連するブロック] ボタン を選択します。関連するブロックが表示された開いているブロック線図または新しいタブにウィンドウのフォーカスが移ります。

制限

Parameter Writer ブロックを Simulink® 関数内に配置することはできません。

端子

入力

すべて展開する

ブロックで書き込まれるパラメーターの値。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

パラメーター

すべて展開する

R2023a 以降

このブロックのパラメーター検証をローカルで有効にします。

Paramer Writer ブロックに対してパラメーター検証が無効になっている場合、このブロックのノーマル モード シミュレーションは高速になります。

ヒント

Parameter Writer ブロックのパラメーター検証をグローバルに有効または無効にするには、[Parameter Writer ブロックの検証] コンフィギュレーション パラメーターを使用します。

依存関係

このブロックのパラメーター検証を無効にするには、ブロックで Model ブロック インスタンス パラメーターの値を直接的にも間接的にも変更しないようにする必要があります。たとえば、ブロックで Model ブロック インスタンス パラメーターの値を指定する変数またはマスク パラメーターの値を変更しないようにする必要があります。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: IsParameterValidationOn
値: 'on' (既定値) | 'off'

例: set_param(gcb,'IsParameterValidationOn','off')

R2024a 以降

ブロック パラメーター、モデル ワークスペース変数、ベース ワークスペース変数、または Simulink.data.Dictionary 内の作成した変数に書き込みます。以下のオプションのいずれかを選択します。

  • ブロック パラメーター — ブロック パラメーターに書き込みます。

  • モデル ワークスペース変数 — モデル ワークスペース内の変数に書き込みます。

  • ベース ワークスペース変数 — ベース ワークスペース内の変数または Simulink.data.Dictionary 内の作成した変数に書き込みます。

メモ

[保存先] パラメーターは [モデル ワークスペース パラメーターへのアクセス] パラメーターに置き換わるものです。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: Destination
値: 'Block parameter' (既定値) | 'Model workspace variable' | 'Base workspace variable'

例: set_param(gcb, 'Destination','Block parameter')

このブロックが値を書き込むワークスペース変数の名前を指定します。

メモ

[ワークスペース変数名] パラメーターは既存の [モデル ワークスペース パラメーター名] パラメーターに置き換わるものです。 (R2023b 以降)

依存関係

このパラメーターを有効にするには、[保存先] パラメーターのオプションから [モデル ワークスペース変数] または [ベース ワークスペース変数] を選択します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

パラメーター: WorkspaceVariableName
値: '' (既定値) | character vector | string scalar

例: set_param(gcb,'WorkspaceVariableName','var')

このブロックが値を書き込むパラメーター オーナー ブロックのブロック パスとパラメーターの名前を指定します。

[パラメーター オーナー セレクター ツリー] は、書き込み可能なパラメーターを階層ツリー リストで示します。パラメーター オーナー ブロックへのパス上のノードを展開します。次に、パラメーター オーナー ブロックの下のパラメーターを選択します。

ヒント

パラメーター オーナー ブロックの名前にスラッシュ (/) が含まれている場合、Parameter Writer ブロックのパラメーターでは 2 つのスラッシュ (//) として表示されます。この表記法により、ブロックの名前自体に含まれるスラッシュとモデルの階層構造の異なるレベルにある名前を区切るスラッシュが区別されます。

依存関係

このパラメーターを有効にするには、[保存先] パラメーターのリストから [ブロック パラメーター] オプションを選択します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

まず、ParameterOwnerBlock パラメーターを使用して、パラメーター オーナー ブロックのブロック パスを指定します。

パラメーター: ParameterOwnerBlock
値: '' (既定値) | character vector | string scalar
データ型: char | string

例: set_param(gcb,'ParameterOwnerBlock','mymodel/Gain1')

次に、ParameterName パラメーターを使用して、パラメーター オーナー ブロックのブロック パラメーターのプログラム上の名前を指定します。

パラメーター: ParameterName
値: '' (既定値) | character vector | string scalar

例: set_param(gcb,'ParameterName','Gain')

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single

直達

いいえ

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

すべて展開する