ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Gain

  • ライブラリ:
  • Simulink / Commonly Used Blocks

    Simulink / Math Operations

    HDL Coder / Commonly Used Blocks

    HDL Coder / HDL Floating Point Operations

    HDL Coder / Math Operations

説明

Gain ブロックは、入力に定数値 (ゲイン) を乗算します。入力とゲインには、スカラー、ベクトル、または行列を指定できます。

ゲインの値は [ゲイン] パラメーターで指定します。[乗算] パラメーターによって、要素ごとの乗算または行列乗算を指定することができます。行列乗算の場合、このパラメーターによって乗算の順序も指定できます。

ゲインは、double から、ブロックのパラメーター属性のデータ型アシスタントで指定されたデータ型に、最近傍の丸めと飽和を使用して変換されます。次に、入力とゲインが乗算され、結果は、指定された丸めとオーバーフロー モードを使用して出力データ型に変換されます。

端子

入力

すべて展開する

Gain ブロックは、実数値または複素数値のスカラー、ベクトル、または行列の入力を受け入れます。Gain ブロックは、固定小数点データ型をサポートします。Gain ブロックの入力が実数であり、ゲインが複素数の場合、出力は複素数です。

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

出力

すべて展開する

Gain ブロックは、定数のゲイン値で乗算された入力を出力します。Gain ブロックへの入力が実数であり、ゲインが複素数の場合、出力は複素数です。

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

パラメーター

すべて展開する

メイン

入力に乗算する値を指定します。ゲインは実数値または複素数値のスカラー、ベクトル、または行列のいずれかになります。

プログラムでの使用

ブロック パラメーター: Gain
型: 文字ベクトル
値: '1' | real- or complex-valued scalar, vector, or matrix
既定の設定: '1'

次のいずれかの乗算モードを指定します。

  • 要素単位 (K.*u) — 入力の各要素にゲインの各要素を乗算します。必要に応じてブロックは拡張を行い、入力とゲインを同じ次元にします。

  • 行列 (K*u) — 入力とゲインは、入力を 2 番目のオペランドとして行列乗算されます。

  • 行列 (u*K) — 入力とゲインは、入力を 1 番目のオペランドとして行列乗算されます。

  • 行列 (K*u) (u はベクトル) — 入力とゲインは、入力を 2 番目のオペランドとして行列乗算されます。このモードは [行列 (K*u)] と同じですが、次元の決め方が異なります。

    Km-by-n の行列であるとします。Matrix(K*u)(u vector) は、入力を長さ n のベクトルに設定し、出力を長さ m のベクトルに設定します。それに対して、[行列 (K*u)] は伝播を使用して入力と出力の次元を決定します。m 行 n 列ゲイン行列の場合、入力は n 行 q 列行列に伝播でき、出力は m 行 q 列行列になります。

プログラムでの使用

パラメーター: Multiplication
型: 文字ベクトル
値: 'Element-wise(K.*u)' | 'Matrix(K*u)' | 'Matrix(u*K)' | 'Matrix(K*u) (u vector)'
既定の設定: 'Element-wise(K.*u)'

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

依存関係

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

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル
値: スカラー
既定の設定: '-1'

Signal Attributes

Simulink® がチェックする出力範囲の下限値。

Simulink は、最小値を使って以下を行います。

メモ

[出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

ブロック パラメーター: OutMin
: 文字ベクトル
: '[ ]'| スカラー
既定の設定: '[ ]'

Simulink がチェックする出力範囲の上限値。

Simulink は、最大値を使って以下を行います。

メモ

[出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

プログラムでの使用

ブロック パラメーター: OutMax
: 文字ベクトル
: '[ ]'| スカラー
既定の設定: '[ ]'

出力のデータ型を選択します。型は継承されるか、直接指定されるか、Simulink.NumericType などのデータ型オブジェクトとして表現されます。

継承オプションを選択すると、ブロックは次の動作を示します。

  • 継承: 内部ルールによる継承 — Simulink は、組み込みターゲット ハードウェアのプロパティを考慮しつつ、数値の精度、パフォーマンス、および生成コードのサイズのバランスが取れるように、データ型を選択します。組み込みターゲット ハードウェアの設定を変更すると、内部ルールにより選択されるデータ型が変更される可能性があります。たとえば、ブロックが int8 型の入力に int16 のゲインを乗算し、ターゲット ハードウェア タイプとして [ASIC/FPGA] が指定されている場合、出力データ型は sfix24 です。ターゲット ハードウェアとして [Unspecified (assume 32-bit Generic)] (汎用 32 ビット マイクロプロセッサ) が指定された場合、出力データ型は int32 です。ターゲット マイクロプロセッサによって指定される語長では出力範囲に対応できない場合、Simulink は診断ビューアーにエラーを表示します。

  • 継承: MSB を保持– Simulink は、演算の全範囲を維持するデータ型を選択した後、組み込みターゲット ハードウェアに適したサイズに出力精度を低下させます。

    ヒント

    生成コードの効率を向上させるには、[整数オーバーフローで飽和] パラメーターをオフにします。

    このルールでは、オーバーフローは決して発生しません。

  • 継承: スケーリングの一致 – Simulink は、スケーリングが入力型のスケーリングと一致するデータ型を選択します。型の全範囲が組み込みターゲット ハードウェアに適合しない場合は、その範囲を小さくして組み込みターゲット ハードウェアに適切な型が生成されます。このルールでは、オーバーフローが発生することがあります。

    コードの効率と数値の精度が、ソフトウェアにより同時に最適化されるとは限りません。これらの内部ルールが、数値精度またはパフォーマンスに対する特定の要求を満たさない場合は、以下のいずれかを行ってください。

    • 出力データ型を明示的に指定する。

    • 単に 継承: 入力と同じ を選択します。

    • fixdt(1,32,16) のように既定のデータ型を明示的に指定し、固定小数点ツールを使用してモデルにデータ型を推奨する。詳細については、fxptdlg を参照してください。

    • 独自の継承ルールを指定するには、[継承: 逆伝播による継承] を使用し、Data Type Propagation ブロックを使用します。このブロックの使い方の例については、Signal Attributes ライブラリの Data Type Propagation Examples ブロックを参照してください。

  • 継承: 逆伝播による継承 — 駆動ブロックのデータ型を使用します。

  • 継承: 入力と同じ — 入力信号のデータ型を使用します。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
: 文字ベクトル
: 'Inherit: Inherit via internal rule'|'Inherit: Keep MSB'|'Inherit: Match scaling' | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16', 'int32' | 'uint32'|'int64'|'uint64'| 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
既定の設定: 'Inherit: Inherit via internal rule'

固定小数点ツールが、ブロックに指定した [出力] データ型をオーバーライドしないようにするには、このパラメーターを選択します。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。

ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロックパラメーターの丸めを直接制御するには、MATLAB® の丸め関数を使用する式をマスク フィールドに入力します。

プログラムでの使用

ブロック パラメーター: RndMeth
型: 文字ベクトル
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
既定の設定: 'Floor'

オーバーフローで飽和するかラップするかを指定します。

アクション根拠オーバーフローの影響

このチェック ボックスをオンにする (on)。

モデルでオーバーフローが発生する可能性があるので、生成コードに飽和保護を明示的に組み込むことをお勧めします。

オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

int8 (符号付き、8 ビット整数) データ型が表すことができる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。チェック ボックスがオンになっていると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値である -128 で飽和します。

このチェック ボックスをオンにしない (off)。

生成コードの効率を最適化することをお勧めします。

ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細については、信号範囲のエラーのチェックを参照してください。

オーバーフローは、データ型によって表現される適切な値にラップされます。

int8 (符号付き、8 ビット整数) データ型が表すことができる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。チェック ボックスをオフにすると、オーバーフローを引き起こした値は int8 として解釈され、意図しない結果が引き起こされる可能性があります。たとえば、int8 として表されるブロック結果 130 (バイナリで 1000 0010) は -126 です。

このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

プログラムでの使用

ブロック パラメーター: SaturateOnIntegerOverflow
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

パラメーター属性

ゲインの最小値を指定します。既定値は [] (指定なし) です。Simulink は、以下を行う際にこの値を使用します。

プログラムでの使用

ブロック パラメーター: ParamMin
: 文字ベクトル
: スカラー
既定の設定: '[ ]'

ゲインの最大値を指定します。既定値は [] (指定なし) です。Simulink は、以下を行う際にこの値を使用します。

プログラムでの使用

ブロック パラメーター: ParamMax
: 文字ベクトル
: スカラー
既定の設定: '[ ]'

Gain パラメーターのデータ型を指定します。

プログラムでの使用

ブロック パラメーター: ParamDataTypeStr
: 文字ベクトル
: 'Inherit: Inherit via internal rule | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16', 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
既定の設定: 'Inherit: Inherit via internal rule'

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

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

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

R2006a より前に導入