主要内容

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

添加减去元素的总和总和

入力の加算または減算

  • ライブラリ:
  • 金宝appSimulink /数学运算

    HDL编码器/ HDL浮点运算

    HDL编码器/数学运算

  • 添加块

説明

总和ブロックは,入力に対して加算または減算を行います。添加ブロック、减去ブロック、元素的总和ブロックおよび总和ブロックは、同一のブロックです。このブロックは、スカラー入力、ベクトル入力、または行列入力を加算または減算できます。また、単一の要素を折りたたむことや、総和を実行することもできます。

ブロックの動作は,[符号リスト]パラメーターをプラス(+),マイナス(-)およびスペーサー(|)とともに使用して指定します。

  • +-文字の数は,入力の数と等しくなります。たとえば,+-+は3つの入力を必要とします。ブロックは最初 (上) の入力から 2 番目 (中央) の入力を減算し、次に 3 番目 (下) の入力を加算します。

  • スペーサー記号は,ブロックのアイコン上の端子間に追加のスペースを作成します。

  • 加算のみを実行する場合,入力の数に等しい数値を使用できます。

  • 入力端子が1つだけの場合のみ,1つの+または-がすべての次元または指定した次元の範囲の要素を加算または減算します。

总和ブロックはまず入力のデータ型をアキュムレータのデータ型に変換し,指定された演算を行います。次に,指定された丸めモードとオーバーフローモードで,計算結果を出力データ型に変換します。

ブロック出力の計算

总和ブロックの出力計算は,ブロック入力の数と入力端子の符号に依存します。

总和ブロックの入力端子 それに伴う処理 出力計算の式 以下の条件

1つの入力端子

入力端子の符号が+

Y = e[0] + e[1] + e[2]…+ e [m]


e[我]は入力uの我番目の要素

入力端子の符号が-

Y = 0.0 - e[0] - e[1] - e[2]…- e [m]


2つ以上の入力端子

すべての入力端子の符号が-

Y = 0.0 - u[0] - u[1] - u[2]…- u [n]


你(我)は我番目の入力端子の入力

k番目の入力端子が符号+の最初の端子

y = u [k] - u [0] - [1] - u [2] - u (k - 1) (+ / -) [k + 1]…(+ / -) u [n]


端子

入力

すべて展開する

[すべての入力が同じデータ型をもつ]パラメーターを選択しない限り,入力のデータ型は異なる可能性があります。

加算または減算演算への入力信号入力信号が1つだけの場合,加算または減算はすべての次元,または1つの指定した次元の範囲の要素に対して実行されます。

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

演算へのn番目の入力信号。入力数は,[符号リスト]パラメーターの符号の数に一致します。ブロックは、リストの順番に従って、入力に演算を適用します。また、[符号リスト]パラメーターとして,入力端子の数に等しい数値を使用することもできます。ブロックは入力端子を作成し,すべての入力に加算を適用します。たとえば,[符号リスト]パラメーターに5を割り当てた場合,ブロックは5つの入力端子を作成し,それらを足し合わせて出力を生成します。

すべての非スカラー入力は同じ次元をもつ必要があります。スカラー入力は,他の入力と同じ次元をもつように拡張されます。

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

出力

すべて展開する

加算演算および/または減算演算によって得られる出力信号出力信号は,入力信号と同じ次元を持ちます。

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

パラメーター

すべて展開する

メイン

ブロックのアイコンの形状を四角形または円形に指定します。

四角形のブロックでは,1番目の入力端子が最上位の端子です。円形の Sum ブロックの場合、最初の入力端子はブロックを反時計回りに回って 12 時の位置に最も近い端子です。同様に、他の入力端子も、ブロックを反時計回りに順番に表示されます。

プログラムでの使用

ブロックパラメーターIconShape
:文字ベクトル
“矩形”|“圆”
既定の設定“圆”

入力に対して実行される加算演算および減算演算を入力します。各演算につき1つの入力端子が作成されます。スペーサー(|)ブロックのアイコン上の入力端子間に追加のスペースを作成します。加算が既定の演算です。入力の加算のみを行う場合、入力端子の数を入力します。リストの順番に従って、演算が実行されます。

要素を1つだけ入力した場合,ブロックで[加算範囲]パラメーターが有効になります。単一ベクトル入力の場合,+または-は,すべての次元,または1つの指定した次元の範囲の要素を加算または減算します。

ヒント

符号リスト]パラメーターの符号の間にスペーサー(|)を挿入することで,ブロックの入力端子の位置を指定できます。たとえば,++|--は2番目の入力端子と3番目の入力端子の間に追加のスペースを生成します。

プログラムでの使用

ブロックパラメーター输入
:文字ベクトル
“+”|“- - -”||| 整数
既定の設定:“+ +”

ブロックが加算範囲演算を実行する次元の範囲を選択します。

[すべての次元)の場合,すべての入力要素が加算されます。(行優先の配列レイアウトに最適化されたアルゴリズムを使用)コンフィギュレーションパラメーターを選択すると,仿金宝app真软件®のシミュレーションでは行優先のアルゴリズムが有効になります。行優先のコードを生成するには,(行優先の配列レイアウトに最適化されたアルゴリズムを使用)を選択するほかに,コンフィギュレーションパラメーター(配列のレイアウト](金宝app仿真软件编码器)[行優先]に設定します。列優先のアルゴリズムと行優先のアルゴリズムで異なる点は加算の順序のみです。場合によっては,同じデータセットに対する演算順序が異なることから,列優先アルゴリズムと行優先アルゴリズムの出力の数値にわずかな差が生じることがあります。

(指定した次元)を選択すると,もう1つのパラメーター,[次元]が表示されます。ベクトル入力を加算するには,特定の次元を選択してください。

依存関係

[符号リスト]パラメーターに符号を1つだけリストした場合に有効になります。

プログラムでの使用

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

[加算範囲]パラメーターに(指定した次元)を選択した場合,演算を実行する次元の範囲を指定します。

このブロックは,MATLAB®の関数总和と同じ加算規則に従います。

2行3列の行列Uがあるとします。

  • [次元]1に設定すると,出的力Yは以下のように計算されます。

    Y 1 2 U j

  • [次元]2に設定すると,出的力Yは以下のように計算されます。

    Y j 1 3. U j

指定した次元が入力の次元より大きい場合,エラーメッセージが表示されます。

依存関係

[加算範囲]パラメーターに(指定した次元)を選択すると有効になります。

プログラムでの使用

ブロックパラメーターCollapseDim
:文字ベクトル
整数
既定の設定:' 1 '

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

依存関係

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

プログラムでの使用

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

信号属性

[データ型アシスタントを表示)ボタンをクリックして,データ型の属性の設定に役立つ[データ型アシスタント]を表示します。詳細については,データ型アシスタントを利用したデータ型の指定を参照してください。

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

プログラムでの使用

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

アキュムレータのデータ型を選択します。型は継承されるか,直接指定されるか,金宝app仿真软件。NumericTypeなどのデータ型オブジェクトとして表現されます。[継承:内部ルールによる継承)を選択した場合,金宝app仿真软件は,組み込みターゲットハードウェアのプロパティを考慮しつつ,数値の精度,パフォーマンスおよび生成コードのサイズのバランスが取れるように,データ型を選択します。

プログラムでの使用

ブロックパラメーターAccumDataTypeStr
:文字ベクトル
继承:通过内部规则继承|“继承:与第一次输入相同”|“双”“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|“< >数据类型表达”
既定の設定:“继承:通过内部规则继承”

金宝app仿真软件がチェックする出力範囲の下限値。

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

メモ

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

プログラムでの使用

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

金宝app仿真软件がチェックする出力範囲の上限値。

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

メモ

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

プログラムでの使用

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

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

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

  • 継承:内部ルールによる継承——金宝appSimulink仿真は組み込みターゲットハードウェアのプロパティを考慮しつつ,数値の精度,パフォーマンス,および生成コードのサイズのバランスが取れるように,データ型を選択します。

    メモ

    アキュムレータの内部ルールは,生成コードの効率が低下するとしても,数値精度がより高いほうを選びます。同じ精度の出力を得るためには,出力データ型を継承:アキュムレータと同じを選択します。

    メモ

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

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

    ヒント

    生成コードの効率を向上するには,[アキュムレータのデータ型)[继承:通过内部规则继承]に設定し,(整数オーバーフローで飽和)パラメーターをオフにします。

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

  • 継承:LSBを保持——金宝app模型は,演算の精度を維持するデータ型を選択しますが,全範囲の型が組み込みターゲットハードウェアに適合しない場合,その範囲を削減します。

    ヒント

    生成コードの効率を向上するには,[アキュムレータのデータ型)[继承:通过内部规则继承]に設定し,(整数オーバーフローで飽和)パラメーターをオフにします。

    このルールでは,オーバーフローが発生することがあります。

    組み込みターゲットハードウェアの設定を変更すると,これらの内部ルールにより選択されるデータ型が変更される可能性があります。コードの効率と数値の精度が,ソフトウェアにより同時に最適化されるとは限りません。ルールが数値精度またはパフォーマンスに対する要求を満たさない場合は,以下のいずれかを行ってください。

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

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

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

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

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

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

  • 継承:アキュムレータと同じ——アキュムレータのデータ型を使用します。

プログラムでの使用

ブロックパラメーターOutDataTypeStr
:文字ベクトル
继承:通过内部规则继承|“继承:保持最高有效位”|继承:保持LSB的|“继承:通过反向传播继承”“继承:与第一次输入相同”|“继承:与累加器相同”|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|“< >数据类型表达”
既定の設定:“继承:通过内部规则继承”

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために,このブロックのデータ型の設定をロックします。詳細については,出力データ型設定のロック(定点设计师)を参照してください。

プログラムでの使用

ブロックパラメーター:LockScale
値:”从“|”“
既定の設定:“关闭”

固定小数点演算の丸めモードを指定します。詳細については,丸め(定点设计师)を参照してください。

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

プログラムでの使用

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

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

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

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

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

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

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

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

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

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

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

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

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

プログラムでの使用

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

ブロックの特性

データ型

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

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

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

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

R2006aより前に導入