ドキュメンテーション

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

Math Function

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

    HDL Coder / Math Operations

説明

Math Function ブロックは、一般的な各種の数学関数を実行します。

ヒント

平方根の計算を行うには、Sqrt ブロックを使用します。

[関数] パラメーター リストからこれらのいずれかの関数を選択できます。

関数説明数式 MATLAB® 等価
exp

指数

eu

exp
log

自然対数

ln u

log
10^u

基数 10 のべき乗

10u

10.^u
(power を参照)

log10

常用対数 (基底 10)

log u

log10
magnitude^2

複素絶対値の二乗

|u|2

(abs(u)).^2
(abspower を参照)

square

二乗

u2

u.^2
(power を参照)

pow

べき乗

uv

power
conj

複素共役

ū

conj
reciprocal

逆数

1/u

1./u
(rdivide を参照)

hypot

平方和の平方根

(u2+v2)0.5

hypot
rem

除算後の剰余

rem
mod

除算後のモジュラス

mod
transpose

転置

uT

u.'
(配列と行列の演算 (MATLAB) を参照)

hermitian

複素共役転置

uH

u'
(配列と行列の演算 (MATLAB) を参照)

このブロックは、単一または複数の入力に選択された関数演算を実行した結果を出力します。関数はこれらの種類の演算をサポートします。

関数スカラー演算要素単位のベクトル演算と行列演算ベクトル演算と行列演算
exp

あり

あり

log

あり

あり

10^u

あり

あり

log10

あり

あり

magnitude^2

あり

あり

square

あり

あり

pow

あり

あり

conj

あり

あり

reciprocal

あり

あり

hypot

2 つの入力において、あり

2 つの入力 (同じサイズの 2 つのベクトルまたは 2 つの行列、スカラーとベクトル、またはスカラーと行列) において、あり

rem

2 つの入力において、あり

2 つの入力 (同じサイズの 2 つのベクトルまたは 2 つの行列、スカラーとベクトル、またはスカラーと行列) において、あり

mod

2 つの入力において、あり

2 つの入力 (同じサイズの 2 つのベクトルまたは 2 つの行列、スカラーとベクトル、またはスカラーと行列) において、あり

transpose

あり

あり

hermitian

あり

あり

関数の名前は、ブロックに表示されます。適切な数の入力端子が自動的に表示されます。

ヒント

Fcn ブロックはスカラー出力しか生成しないため、ベクトル出力または行列出力が必要な場合は、Fcn ブロックの代わりに Math Function ブロックを使用します。

サポートするデータ型

この表は、ブロックの各関数がサポートできる入力データ型を示しています。

関数singledoubleboolean組み込み整数固定小数点

exp

あり

あり

log

あり

あり

10^u

あり

あり

log10

あり

あり

magnitude^2

あり

あり

あり

あり

square

あり

あり

あり

あり

pow

あり

あり

conj

あり

あり

あり

あり

reciprocal

あり

あり

あり

あり

hypot

あり

あり

rem

あり

あり

あり

mod

あり

あり

あり

transpose

あり

あり

あり

あり

あり

hermitian

あり

あり

あり

あり

端子

入力

すべて展開する

スカラー、ベクトルまたは行列として指定される入力信号。サポートされるすべてのモードは、複素固定小数点入力を受け入れない reciprocal を除き、実数入力と複素数入力を両方とも受け入れます。詳細については、説明を参照してください。

依存関係

このブロックのデータ型のサポートは、選択する [関数] および入力のサイズによって異なります。詳細については、サポートするデータ型を参照してください。

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

スカラー、ベクトルまたは行列として指定される入力信号。サポートされるすべてのモードは、複素固定小数点入力を受け入れない reciprocal を除き、実数入力と複素数入力を両方とも受け入れます。

依存関係

この端子を有効にするには、[関数][hypot][rem]、または [mod] に設定します。

このブロックのデータ型のサポートは、選択する [関数] および入力のサイズによって異なります。詳細については、サポートするデータ型を参照してください。

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

出力

すべて展開する

スカラー、ベクトルまたは行列として指定される出力信号。ブロック出力の次元は、選択する [関数] および入力のサイズによって異なります。ブロック出力は [信号出力タイプ] にどのタイプを選択したかにより、実数または複素数です。詳細については、説明を参照してください。

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

パラメーター

すべて展開する

メイン

数学関数を指定します。このパラメーターのオプションの詳細については、説明を参照してください。

プログラムでの使用

ブロック パラメーター: Operator
型: 文字ベクトル
値: 'exp' | 'log' | '10^u' | 'log10' | 'magnitude^2' | 'square' | 'pow' | 'conj' | 'reciprocal' | 'hypot' | 'rem' | 'mod' | 'transpose' | 'hermitian'
既定の設定: 'exp'

Math Function ブロックの出力信号タイプを [auto]、[real]、または [complex] として選択します。

関数入力信号タイプ出力信号タイプ
自動実数複素数

exp, log, 10u, log10, square, pow, reciprocal, conjugate, transpose, hermitian

real

complex

real

complex

real

error

complex

complex

magnitude squared

real

complex

real

real

real

real

complex

complex

hypot, rem, mod

real

complex

real

error

real

error

complex

error

プログラムでの使用

ブロック パラメーター: OutputSignalType
型: 文字ベクトル
値: 'auto' | 'real' | 'complex'
既定の設定: 'auto'

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

依存関係

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

プログラムでの使用

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

Signal Attributes

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

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

メモ

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

プログラムでの使用

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

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

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

メモ

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

プログラムでの使用

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

出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 逆伝播による継承)

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

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

依存関係

このパラメーターを有効にするには、[関数][magnitude^2][square]、または [reciprocal] に設定します。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
: 文字ベクトル
: | 'Inherit: Inherit via internal rule'Inherit: Same as first input' | 'Inherit: Inherit via back propagation' | 'double' | '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: Same as first input'

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

依存関係

このパラメーターを有効にするには、[関数][magnitude^2][square]、または [reciprocal] に設定します。

プログラムでの使用

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

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

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

依存関係

このパラメーターを有効にするには、[関数][magnitude^2][square]、または [reciprocal] に設定します。

プログラムでの使用

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

動作このアクションを行う理由オーバーフロー発生時に起きること

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

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

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

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

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

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

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

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

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

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

依存関係

このパラメーターを有効にするには、[関数][magnitude^2][square][conj][reciprocal]、または [hermitian] に設定します。

プログラムでの使用

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

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

直接フィードスルー

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

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

R2006a より前に導入