主要内容

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

产品

スカラー,非スカラーの乗算と除算,あるいは行列の乗算と逆行列

  • ライブラリ:
  • 金宝appSimulink /常用模块

    金宝appSimulink /数学运算

    HDL编码器/常用模块

    HDL编码器/HDL浮点运算

    HDL编码器/数学运算

  • 产品块

説明

产品ブロックは 2.つの入力を乗算した結果を出力します。入力は、2.つのスカラー、スカラーと非スカラー、あるいは同じ次元をもつ 2.つの非スカラーの場合があります。この動作を指定する既定のパラメーター値は以下のようになります。

  • 乗算:要素単位(.*)

  • 入力数:2.

この表は,既定のブロックパラメーター値を使うサンプル入力に対する产品ブロックの出力を示します。

入力と動作

スカラーXスカラー

2つの入力の積を出力します。

スカラーX非スカラー

入力の非スカラーと同じ次元をもつ非スカラーを出力します。出力の非スカラーの各要素は、入力のスカラーと入力の非スカラーの対応する要素の積です。

非スカラー X非スカラー

入力と同じ次元をもつ非スカラーを出力します。出力の各要素は,入力の対応する要素の積です。

ブロックと产品的元素ブロックは产品ブロックのバリアントです。

  • ブロックの詳細については,を参照してください。

  • 产品的元素ブロックの詳細については,产品的元素を参照してください。

产品ブロック(または適切に構成される場合ブロックまたは产品的元素ブロック)では,以下を行うことができます。

  • スカラー,ベクトル,または行列入力の数を,数値的に乗算や除算します。

  • 行列入力の数に行列の乗算や除算を実行します。

产品ブロックは、[乗算]パラメーターの値に基づいてスカラーまたは行列の乗算を行います。このブロックは、[入力数]パラメーターに基づいて1つ以上の入力を受け入れます。[入力数]パラメーターは,各入力に実行される演算も指定します。

产品ブロックは,実行する演算が数学的に定義される結果をもつ場合,スカラー,ベクトルおよび行列の任意の組み合わせを入力できます。このブロックは,指定した演算を入力に対して実行し,結果を出力します。

产品ブロックには2つのモードがあります。要素単位モードは、2.つの非スカラー入力を要素ごとに処理します。行列モードは、2.つの非スカラー入力を行列として処理します。

要素単位モード

[乗算][要素単位(.*)]に設定する場合、产品ブロックは”要素単位モード”になります。この場合,ブロックは任意の非スカラー入力の個々の数値要素に演算を行います。MATLAB®の等価な演算子は.*です。要素単位モードでは,产品ブロックは,乗算,除算および算術的な逆演算などを実行できます。

[入力数]パラメーターの値は,どれだけの入力数があるか,それぞれが出力を生成するために乗算されるか除算されるかを決めます。要素単位モードの产品ブロックが1つの入力のみをもつ場合は,产品的元素ブロックと機能的に等価です。ブロックが複数の入力をもつ場合、非スカラーの入力は同じ次元をもたなければなりません。ブロックは、これらと同じ次元をもつ非スカラーを出力します。ブロックは、出力を計算するためにスカラー入力を、非スカラー入力と同じ次元をもつ非スカラーにはじめに拡張します。

次の表は,[入力数]パラメーターの値を使って,サンプル入力に対する产品ブロックの出力を示します。

パラメーター値

入力数:2.

入力数:*/

入力数:/**/

入力数:**

入力数:* / *

行列モード

[乗算]パラメーターの値が[行列 (*)]である場合、产品ブロックは "行列モード"になります。この場合,ブロックは非スカラー入力を行列として処理します。MATLABの等価な演算子は*です。行列モードでは,产品ブロックで正方行列の逆行列を計算することも,結果が数学的に定義される次元をもつ,任意の数の行列の乗算や除算を行うこともできます。

[入力数]パラメーターの値は,どれだけの入力数があるか,それぞれの入力行列が出力を生成するために乗算されるか除算されるかを決めます。[入力数]の構文は,要素単位モードの場合と同じです。これらのモードでは,乗算と除算のタイプが異なります。

シミュレーションとコード生成の予想される相違点

複素数の浮動小数点入力に対する要素単位の演算について,近傍オーバーフローの場合は,シミュレーションとコード生成の結果は異なる可能性があります。[コンフィギュレーションパラメーター]ダイアログボックスの[コード生成][インターフェイス]ペインで[複素数]が選択されていて[非有限数]が選択されていない場合でも,コードジェネレーターは中程度のオーバーフローに対する特別なケースコードを出力しません。この方法は,極端な値を含まない一般的なケースの組み込み演算の効率を向上させます。入力に極端な値が含まれる可能性がある場合、これらのケースを明示的に管理しなければなりません。

およびの値が数学的に無意味の場合は,生成コードはシミュレーションとしてこれらの値と同じパターンは生成しない可能性があります。たとえば,シミュレーション出力にが含まれる場合,生成コードからの出力にもが含まれますが,同じ場所に含まれる必要はありません。

端子

入力

すべて展開する

乗算または除算する 1.番目の入力。スカラー、ベクトル、行列または N次元配列として指定します。

データ型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

乗算または除算する N番目の入力。スカラー、ベクトル、行列または N次元配列として指定します。

データ型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

他の入力に乗算する入力信号。

依存関係

1.つ以上のX端子を有効にするには,[入力の数]パラメーターに対して1つ以上の*文字を指定します。

データ型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

除算または逆演算の入力信号。

依存関係

1.つ以上の÷端子を有効にするには,[入力の数]パラメーターに対して1つ以上の/文字を指定します。

データ型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

出力

すべて展開する

入力を乗算、除算、または逆数を求めることで計算される出力。

データ型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

パラメーター

すべて展開する

メイン

ブロックの 2.つのプロパティを制御します。

  • ブロックの入力端子の数

  • 各入力が出力されるときに乗算されるかまたは除算されるか

指定に関する詳細は次の通りです。

  • 1.*,または/

    このブロックは1つの入力端子をもっています。要素単位モードでは,ブロックは产品的元素ブロックで記述されたとおりに入力を処理します。行列モードでは,パラメーター値が1.または*の場合,ブロックは入力値を出力します。値が/である場合、入力は正方行列 (縮退した場合としてスカラーを含む) でなければなりません。ブロックは逆行列を出力します。詳細については、要素単位モードおよび行列モードを参照してください。

  • 整数値 > 1

    ブロックがもつ入力数は整数値で指定されます。[乗算]パラメーターで指定される要素単位モードまたは行列モードによって,入力は互いに乗算されます。詳細については,要素単位モードおよび行列モードを参照してください。

  • 2つ以上の*/から成る単純文字列

    ブロックは文字ベクトルの長さで与えられる入力数をもちます。*に相当する各入力は,乗算され,出力されます。/に対応する各入力は除算され,出力されます。演算は,[乗算]パラメーターで指定されるように,要素単位モードまたは行列モードで行われます。詳細については,要素単位モードおよび行列モードを参照してください。

プログラムでの使用

ブロック パラメーター:投入
型:文字ベクトル
値:'2' | '**' | '*/' | '*/*' |…
既定の設定:'2'

ブロックが[要素単位(.*)]または[行列 (*)]の乗算を実行するかどうかを指定します。

プログラムでの使用

ブロック パラメーター:乘法
型:文字ベクトル
値:Element-wise(. *) |“矩阵(*)”
既定の設定:'按元素(.*)'

乗算範囲の次元を[すべての次元]または[指定した次元]で指定します。[指定した次元]を選択する場合、[次元]1.または2.と指定できます。

依存関係

このパラメーターを有効にするには、[入力の数]*に、[乗算][要素単位(.*)]に設定します。

プログラムでの使用

ブロック パラメーター:CollapseMode
型:文字ベクトル
値:'所有尺寸' | '指定尺寸'
既定の設定:“所有维度”

乗算範囲の次元を入力信号の次元数以下の整数として指定します。

依存関係

このパラメーターを有効にするには、次のように設定します。

  • [入力の数]*に設定

  • [乗算][要素単位(.*)]に設定

  • [乗算範囲][指定した次元]に設定

プログラムでの使用

ブロック パラメーター:羽衣甘蓝
型:文字ベクトル
値:'1' | '2' |…
既定の設定:'1'

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

依存関係

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

プログラムでの使用

ブロック パラメーター:取样时间
型:文字ベクトル
値:スカラーまたはベクトル
既定の設定:' 1 '

信号的属性

すべての入力信号が同じデータ型をもたなければならないかどうかを指定します。このパラメーターを有効にすると、入力信号のデータ型が異なる場合はシミュレーション中にエラーが発生します。

プログラムでの使用

ブロック パラメーター:InputSameDT
型:文字ベクトル
値:”从“|”“
既定の設定:“关闭”

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

金宝app模拟は、最小値を使って以下を行います。

メモ

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

プログラムでの使用

ブロック パラメーター:奥特明
: 文字ベクトル
:“[]”| スカラー
既定の設定:“[]”

金宝app模拟がチェックする出力範囲の上限値。

金宝app仿真软件は,最大値を使って以下を行います。

メモ

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

プログラムでの使用

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

出力のデータ型を選択します。型は継承されるか、直接指定されるか、金宝app仿真软件。NumericTypeなどのデータ型オブジェクトとして表現されます。詳細については、信号のデータ型の制御を参照してください。

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

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

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

    ヒント

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

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

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

    [継承:MSBを保持]および[継承:スケーリングの一致)ルールは,複素信号および非ゼロバイアス間の信号の間の乗算はサポートしません。ルールがサポートするのは,2つの入力の乗算と除算(“* *”“* /”'/*'), 2つの入力の行列乗算およびベクトルの2つの要素の積の変換のみです。

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

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

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

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

    • 独自の継承ルールを指定するには,[継承: 逆伝播による継承]を使用し,数据类型传播ブロックを使用します。このブロックの使い方の例については,信号属性ライブラリの数据类型传播示例ブロックを参照してください。

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

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

依存関係

入力が単精度より小さい浮動小数点データ型の場合,[継承: 内部ルールによる継承]出力データ型は単精度より小さい浮動小数点の出力型を継承するコンフィギュレーションパラメーターの設定によって変わります。データ型の符合化に必要なビット数が単精度データ型の符合化に必要な 32 ビットより少ない場合、データ型は単精度より小さくなります。たとえば、一半int16は単精度より小さくなります。

プログラムでの使用

ブロック パラメーター:OutDataTypeStr
: 文字ベクトル
:'继承:通过内部规则继承|'继承:保留MSB'|“继承:匹配缩放”|“继承:与第一次输入相同”|“继承:通过反向传播继承”|“双人”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|‘uint64’|“int64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|“<数据类型表达式>”
既定の設定:'继承:通过内部规则继承'

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

プログラムでの使用

ブロック パラメーター:LockScale
型:文字ベクトル
値:”从“|”“
既定の設定:“关闭”

固定小数点演算の丸めモードを選択します。以下を選択できます。

正方向

正の無限大方向に正負の値を丸めます。MATLAB関数(用熟石膏、木板等)装天花板と等価です。

最も近い偶数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、最も近い偶数の整数に丸めます。定点设计器™ 関数会聚性的と等価です。

負方向

負の無限大方向に正負の値を丸めます。MATLAB関数地板上と等価です。

最も近い正の整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は,正の無限大方向に丸めます。定点设计师関数最近的と等価です。

最も近い整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の数値を正の無限大方向、負の数値を負の無限大方向に丸めます。定点设计器関数と等価です。

最も簡潔

負方向の丸めとゼロ方向の丸めのいずれかを選択し,できるだけ効率の高い丸めコードを生成します。

ゼロ方向

ゼロ方向に数値を丸めます。MATLAB関数修理と等価です。

詳細については,丸め(定点设计师)を参照してください。

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

プログラムでの使用

ブロック パラメーター:RndMeth
型:文字ベクトル
値:“天花板”|“收敛”|“地板”|“最近”|“圆形”|“最简单”|“零”
既定の設定:“地板”

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

動作 根拠 オーバーフローの影響

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

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

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

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

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

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

ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細については,信号範囲のエラーのトラブルシューティングを参照してください。

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

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

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

プログラムでの使用

ブロック パラメーター:SaturateOnIntegerOverflow
型:文字ベクトル
値:”从“|”“
既定の設定:“关闭”

ブロックの特性

データ型

布尔||不动点|一半|整数|

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

C / c++コード生成
金宝app仿真软件®编码器™を使用してCおよびc++コードを生成します。

可编程逻辑控制器コード生成
金宝app仿真软件®PLC编码器™を使用して構造化テキストコードを生成します。

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

R2006aより前に導入