Main Content

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

Math Function

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

    HDL Coder / Math Operations

  • Math Function block

説明

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

real(u).^2 + imag(u).^2
(realimag、および power を参照)

square

二乗

u2

u.^2
(power を参照)

pow

べき乗

sign(u)*|u|v (既定の設定、偶数次根のみに適用) または uv

power
conj

複素共役

ū

conj
Exact メソッドを使用する reciprocal

逆数

1/u

1./u
(rdivide を参照)

ニュートン・ラフソン法を使用する reciprocal

逆数

ニュートン・ラフソンの逆数アルゴリズム メソッドを参照してください。なし
hypot

平方和の平方根

(u2+v2)0.5

hypot
rem

除算後の剰余

rem
mod

除算後のモジュラス

mod
transpose

転置

uT

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

hermitian

複素共役転置

uH

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

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

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

あり

あり

log

あり

あり

10^u

あり

あり

log10

あり

あり

magnitude^2

あり

あり

square

あり

あり

pow

あり

あり

conj

あり

あり

Exact メソッドを使用する reciprocal

あり

あり

ニュートン・ラフソン法を使用する reciprocal

あり

あり

hypot

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

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

rem

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

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

mod

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

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

transpose

あり

あり

hermitian

あり

あり

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

ヒント

ベクトルまたは行列出力を使用する場合は Math Function ブロックを使用します。

ニュートン・ラフソンの逆数アルゴリズム メソッド

ニュートン・ラフソンのアルゴリズム メソッドを使用する関数 reciprocal は、ニュートン・ラフソンの近似法を使用して逆数を計算します。この関数は再帰的近似を使用して、実数値関数のルートにより近い近似値を検出します。

実数 a の逆数は、関数のゼロとして定義されます。

f(x)=1xa

関数の収束の領域であるため、Simulink®0<x0<2a の範囲で初期推定値を選択します。

引き続き関数のルートを計算するには、[反復回数] パラメーターを指定します。プロセスは次のように繰り返されます。

xi+1=xif(xi)f'(xi)=xi+(xiaxi2)=xi.(2axi)

f'(x) は関数 f(x) の導関数です。

サポートするデータ型

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

関数singledoublehalf*boolean組み込み整数固定小数点

exp

あり

あり

あり

log

あり

あり

あり

10^u

あり

あり

あり

log10

あり

あり

あり

magnitude^2

あり

あり

あり

あり

あり

square

あり

あり

あり

あり

あり

pow

あり

あり

あり

conj

あり

あり

あり

あり

あり

Exact メソッドを使用する reciprocal

あり

あり

あり

あり

あり

ニュートン・ラフソン法を使用する reciprocal

出力を参照してください。

hypot

あり

あり

あり

rem

あり

あり

あり

あり

mod

あり

あり

あり

あり

transpose

あり

あり

あり

あり

あり

あり

hermitian

あり

あり

あり

あり

あり

半精度算術演算の詳細については、Simulink の半精度データ型 (Fixed-Point Designer)を参照してください。

端子

入力

すべて展開する

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

依存関係

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

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

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

依存関係

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

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

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

出力

すべて展開する

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

ニュートン・ラフソン法を使用する reciprocal

ニュートン・ラフソン法を使用する reciprocal の出力データ型は、次の入力データ型に応じて異なります。

入力データ型出力データ型
singlesingle
doubledouble
組み込み整数組み込み整数
組み込み固定小数点組み込み固定小数点

fi (value, 0, word_length, fraction_length)

fi (value, 0, word_length, word_length–fraction_length–1)

fi (value, 1, word_length, fraction_length)

fi (value, 1, word_length, word_length–fraction_length–2)

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

パラメーター

すべて展開する

メイン

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

依存関係

[関数][pow] に設定すると [符号付きべき乗] パラメーターが有効になります。

プログラムでの使用

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

関数 reciprocal のアルゴリズム メソッド。[厳密] または [ニュートン・ラフソン] として指定します。ニュートン・ラフソンの近似法を使用して逆数を計算するには、[ニュートン・ラフソン] を選択します。それ以外の場合は [厳密] を選択します。

依存関係

[関数][reciprocal] に設定すると、このパラメーターが有効になります。

プログラムでの使用

ブロック パラメーター: AlgorithmType
型: 文字ベクトル
値: 'Exact' | 'Newton-Raphson'
既定の設定: 'Exact'

べき乗の計算の際に、オンまたはオフとして指定される入力信号の符号を考慮します。このパラメーターは、u1/2、u1/4 などの偶数次根のみに適用されます。

  • オン — 入力の絶対値のべき乗に入力の符合を乗算した値を計算します。

  • オフ — 実際の入力値のべき乗を計算します。最初の入力が負で 2 番目の入力が偶数次根である場合、nan を返します。

依存関係

[関数][pow] に設定するとこのパラメーターが有効になります。

プログラムでの使用

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

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'

ニュートン・ラフソンの反復回数。スカラーとして指定されます。

依存関係

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

  • [関数][reciprocal] に設定。

  • [アルゴリズム メソッド][ニュートン・ラフソン] に設定。

プログラムでの使用

ブロック パラメーター: Iterations
型: 文字ベクトル
値: '3' | scalar
既定の設定: '3'

サンプル時間を -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] に設定します。

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

プログラムでの使用

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

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

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

R2006a より前に導入