Main Content

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

Assignment

指定された信号要素に値を代入

  • ライブラリ:
  • Simulink / Math Operations

    HDL Coder / Math Operations

  • Assignment block

説明

Assignment ブロックは指定された信号要素に値を代入します。値を代入する要素のインデックスを指定するには、ブロック ダイアログ ボックスにインデックスを入力するか、ソースまたは外部のインデックス ソースをブロックに接続します。U のブロック データ端子の信号は、Y に代入する値を指定します。ブロックは指定された Y の要素をデータ信号の要素と置き換えます。

[出力の次元数] パラメーターに入力した値に基づいて、インデックス オプションの表が表示されます。この表の各行は、[出力の次元数] の各出力次元に対応しています。各次元に処理信号の要素を定義します。ベクトルは 1 次元信号として、行列は 2 次元信号として指定します。外部のインデックス端子を有効にするには、表の対応する行の [インデックス オプション][インデックス ベクトル (端子)] または [開始インデックス (端子)] に設定します。

たとえば、1 ベースのインデックス モードで 5 次元信号を使用します。Assignment ブロック ダイアログの表は、各行が各次元に対応するように変わります。各次元を以下のエントリとして定義する場合の例を示します。

インデックス オプションインデックス
1すべて割り当てる 
2インデックス ベクトル (ダイアログ)[1 3 5]
3開始インデックス (ダイアログ)4
4開始インデックス (端子) 
5インデックス ベクトル (端子) 

代入する値は Y(1:end,[1 3 5],4:3+size(U,3),Idx4:Idx4+size(U,4)-1,Idx5)=U になります。ここで、Idx4Idx5 はそれぞれ 4 次元と 5 次元の入力端子です。

ノーマル モードで Assignment ブロックを使用するときは、ブロックがモデルによって明示的に初期化されない場合でも Simulink® はブロック出力を 0 に初期化します。アクセラレータ モードでは、Simulink はモデルを S-Function に変換します。これにはコード生成が含まれます。生成されたコードではブロック出力の暗黙的な初期化は行われない可能性があります。このような場合はモデル出力を明示的に初期化しなければなりません。

Assignment ブロックを使用して、ベクトル、行列、多次元信号に値を代入できます。

バス配列を Assignment ブロックへの入力信号として使用できます。

条件付きサブシステムでの Assignment ブロック

Assignment ブロックを条件付きサブシステム ブロックに配置すると、多くの場合は非表示の信号バッファー (Signal Copy ブロックと等価) が挿入され、また、部分書き込みによって Assignment ブロックからの信号をマージするとエラーが発生する場合があります。

しかし、条件付きサブシステムの Outport ブロックについて [出力端子がバーチャルであることを確認] パラメーターを選択すると、そうしたケースへの対応ができ、Assignment ブロックを使用した配列への部分書き込みが可能になります。出力端子がバーチャルであることを確認を参照してください。

制限

  • [インデックス] パラメーターはシミュレーション時には調整できません。次元の [インデックス オプション][インデックス ベクトル (ダイアログ)] または [開始インデックス (ダイアログ)] に設定し、ブロック ダイアログで対応する [インデックス] に対して Simulink.Parameter オブジェクトなどのシンボリック値を指定すると、シミュレーションの開始時の瞬間的な値がシミュレーション全体を通して使用され、パラメーターはインライン化された値として生成されたコードに表示されます。ブロック パラメーター値の調整と試行を参照してください。インデックス端子を使用して代入インデックスを動的に調整できます。

端子

入力

すべて展開する

出力信号の初期化信号。要素に別の値が割り当てられていない場合、出力要素の値はこの入力信号値と一致します。

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

指定したときに出力要素に割り当てられた値。

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

対応する出力要素の割り当てのインデックスを指定する外部端子。

依存関係

外部のインデックス端子を有効にするには、[インデックス オプション] 表の対応する行の [インデックス オプション][インデックス ベクトル (端子)] または [開始インデックス (端子)] に設定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

出力

すべて展開する

指定された要素の値が割り当てられている出力信号。

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

パラメーター

すべて展開する

出力信号の次元数を入力します。

プログラムでの使用

パラメーター: NumberOfDimensions
型: 文字ベクトル
値: integer
既定の設定: '1'

インデックス モードを選択します。[1 ベース] を選択した場合、インデックス 1 は入力ベクトルの最初の要素を指定します。[0 ベース] を選択した場合、インデックス 0 は入力ベクトルの最初の要素を指定します。

プログラムでの使用

パラメーター: IndexMode
型: 文字ベクトル
値: 'Zero-based' | 'One-based'
既定の設定: 'One-based'

次元単位で信号の要素のインデックス付けの方法を定義します。リストから以下を選択します。

メニュー項目アクション
すべて割り当てる

すべての要素が代入されます。

インデックス ベクトル (ダイアログ)

[インデックス] 列が有効になります。要素のインデックスを入力します。

インデックス ベクトル (端子)

インデックス端子は、要素のインデックスを定義します。

開始インデックス (ダイアログ)

[インデックス] 列が有効になります。値に代入する要素範囲の開始インデックスを入力します。

開始インデックス (端子)

インデックス端子は、値を代入する要素範囲の開始インデックスを定義します。

テーブル内の次元に [インデックス ベクトル (端子)] または [開始インデックス (端子)] を選択すると、[出力 (Y) の初期化] パラメーターの次のいずれかの値を指定できます。

  • 入力端子 <Y0> を使用して初期化する

  • テーブルの各次元に対するサイズを指定

そうでない場合は、Y0 は常に出力端子 Y を初期化します。

[インデックス] 列と [出力サイズ] 列は、関連付けられて表示されます。

プログラムでの使用

パラメーター: IndexOptionArray
型: 文字ベクトル
値: 'Assign all' | 'Index vector (dialog)' | 'Index option (port)' | 'Starting index (dialog)' | 'Starting index (port)'
既定の設定: 'Index vector (dialog)'

[インデックス オプション][インデックス ベクトル (ダイアログ)] の場合は、対象となる各要素のインデックスを入力します。

[インデックス オプション][開始インデックス (ダイアログ)] の場合は、選択した要素の範囲の開始インデックスを入力します。開始点からの要素の数は、U の次元サイズによって決まります。

プログラムでの使用

パラメーター: IndexParamArray
型: 文字ベクトル
値: cell 配列
既定の設定: '{ }'

ブロックの出力信号のサイズを入力します。

依存関係

この列を有効にするには、[出力 (Y) の初期化] パラメーター用に [テーブルの各次元に対するサイズを指定] を選択します。

プログラムでの使用

パラメーター: OutputSizeArray
型: 文字ベクトル
値: cell 配列
既定の設定: '{ }'

出力信号の初期化方法を指定します。

  • 入力端子 <Y0> を使用して初期化する – 入力端子 Y0 の信号が出力を初期化します。

  • テーブルの各次元に対するサイズを指定[出力サイズ] パラメーターにブロックの出力信号の幅を指定します。出力に代入されていない要素がある場合、それらの要素の値は未定義です。

依存関係

1 つ以上の次元の [インデックス オプション][インデックス ベクトル (端子)] または [開始インデックス (端子)] に設定すると有効になります。

プログラムでの使用

パラメーター: OutputInitialize
型: 文字ベクトル
値: 'Initialize using input port <Y0>' | 'Specify size for each dimension in table'
既定の設定: 'Initialize using input port <Y0>'

割り当てられない出力要素がある場合に、警告またはエラーを生成するかどうかを指定します。オプションは次のとおりです。

  • 警告 — Simulink によって警告が表示され、シミュレーションは続行されます。

  • エラー — Simulink はシミュレーションを終了し、エラーを表示します。

  • なし — Simulink は何のアクションも実行しません。

依存関係

このパラメーターを有効にするには、1 つ以上の次元の [インデックス オプション][インデックス ベクトル (端子)] または [開始インデックス (端子)] に設定してから、[出力 (Y) の初期化][テーブルの各次元に対するサイズを指定] に設定します。

プログラムでの使用

パラメーター: DiagnosticForDimensions
型: 文字ベクトル
値: 'Error' | 'Warning' | 'None'
既定の設定: 'Warning'

サンプル時間を -1 以外の値として指定します。詳細については、サンプル時間の指定を参照してください。

依存関係

このパラメーターは、明示的に -1 以外の値に設定されていない限り表示されません。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: string スカラーまたは文字ベクトル
既定の設定: "-1"

アクセラレータ モードまたはラピッド アクセラレータ モードでのシミュレーション時に、いずれかのインデックス値が入力信号の関連する次元に対して有効なインデックスの範囲外にあるかどうかを Simulink でチェックするには、このチェック ボックスをオンにします。インデックスが範囲外の場合、Simulink はシミュレーションを停止し、エラー メッセージを表示します。

メモ

このチェック ボックスをオンにしない場合、範囲外のインデックス値によって、アクセラレータ モードまたはラピッド アクセラレータ モードのシミュレーション時に未定義の動作が発生する可能性があります。

Simulink はこのチェック ボックスをオンにするかどうかに関係なく、ノーマル モードのシミュレーション時にこのチェックを実行します。

プログラムでの使用

パラメーター: RuntimeRangeChecks
型: 文字ベクトル
: 'Off' | 'On'
既定の設定: 'Off'

ブロックの特性

データ型

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

直達

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入