ドキュメンテーション

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

Sqrt

平方根、符号付き平方根、または逆平方根を計算

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

    HDL Coder / HDL Floating Point Operations

    HDL Coder / Math Operations

説明

Sqrt ブロックは入力信号の平方根、符号付き平方根または逆平方根を計算します。[関数] パラメーター リストから以下のいずれかの関数を選択します。

関数説明数式 MATLAB® 等価
sqrt

入力の平方根

u0.5

sqrt
signedSqrt

入力の絶対値の平方根に入力の符合を乗算した値

sign(u)*|u|0.5

rSqrt

入力の平方根の逆

u-0.5

ブロック アイコンが関数に一致するように変わります。

端子

入力

すべて展開する

平方根、符号付き平方根または逆平方根を計算するためのブロックへの入力信号。関数 sqrt は、複素数の固定小数点信号を除く実数入力または複素数入力を受け入れます。signedSqrtrSqrt は複素数入力を受け入れません。

入力が負である場合は、[出力信号] を複素数に設定します。

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

出力

すべて展開する

入力信号の平方根、符号付き平方根または逆平方根である出力信号。入力が整数または固定小数点型である場合、出力は浮動小数点でなければなりません。

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

パラメーター

すべて展開する

メイン

ブロックが計算する数学関数を指定します。ブロック アイコンが選択した関数に一致するように変わります。

関数ブロック アイコン
sqrt
signedSqrt
rSqrt

プログラムでの使用

ブロック パラメーター: Operator
: 文字ベクトル
値: 'sqrt' | 'signedSqrt' | 'rSqrt'
既定の設定: 'sqrt'

ブロックの出力信号タイプを指定します。

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

sqrt

real

非負の入力に対しては real

負の入力に対しては NaN

非負の入力に対しては real

負の入力に対しては NaN

complex

complex

complex

error

complex

signedSqrt

real

real

real

complex

complex

error

error

error

rSqrt

real

real

real

error

complex

error

error

error

プログラムでの使用

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

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

依存関係

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

プログラムでの使用

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

アルゴリズム

平方根の逆数を計算するメソッドを指定します。このパラメーターは関数 rSqrt に対してのみ有効です。

メソッドサポートされるデータ型このメソッドを使用できる場合
Exact

浮動小数点

固定小数点または組み込み整数型を使用する場合は、浮動小数点型へのアップキャストが発生します。

近似は必要ありません。

メモ

入力または出力が浮動小数点である必要があります。

Newton-Raphson

浮動小数点、固定小数点、および組み込み整数型

高速の近似計算が必要な場合。

[Exact] メソッドでは、MATLAB の計算と一致する結果が得られます。

メモ

sqrtsignedSqrt のアルゴリズムは、ブロック ダイアログ ボックスの選択にかかわらず、常に [Exact] タイプです。

プログラムでの使用

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

ニュートン・ラフソン アルゴリズムを実行するには、反復回数を指定します。このパラメーターは関数 rSqrt と、[手法][ニュートン・ラフソン] で有効です。

メモ

0 を入力すると、ブロック出力はニュートン・ラフソン アルゴリズムの初期推定になります。

プログラムでの使用

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

データ型

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

[メイン] ペインで [関数]sqrt または rSqrt に設定するときに、中間結果のデータ型を指定します。

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

平方根関数 sqrt に中間データ型を明示的に設定する際のガイドラインに従ってください。

入力データ型と出力データ型中間データ型
入力または出力が double の場合。double を使用します。
入力または出力が single で単一ではないいずれかのデータ型が double 以外の場合。 single または double を使用します。
入力と出力が固定小数点の場合。固定小数点を使用します。

逆数平方根関数に中間データ型を明示的に設定する際のガイドラインに従ってください。rSqrt:

入力データ型と出力データ型中間データ型
入力が double で出力が single の場合。double を使用します。
入力が single で出力が double の場合。double を使用します。
入力と出力が固定小数点の場合。固定小数点を使用します。

注意

以下の場合は、[中間結果データ型][継承: 出力から継承] に設定しないでください。

  • 平方根の逆数の計算に [Newton-Raphson] を選択した場合。

  • 入力データ型が浮動小数点の場合。

  • 出力データ型が固定小数点の場合。

これらの状況下では、[継承: 出力から継承] を選択すると、準最適なパフォーマンスとなり、エラーが発生します。

このエラーを回避するには、入力信号を浮動小数点データ型から固定小数点データ型に変換します。たとえば、Sqrt ブロックの前に Data Type Conversion ブロックを挿入して変換を実行します。

プログラムでの使用

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

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

プログラムでの使用

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

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

プログラムでの使用

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

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

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

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

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

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

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

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

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

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

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

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

プログラムでの使用

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

ブロックの特性

データ型

double | fixed point | integer | single

直接フィードスルー

いいえ

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

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

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

R2010a で導入