Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Data Type Conversion

入力信号を指定されたデータ型へ変換

  • Data Type Conversion block

ライブラリ:
Simulink / Commonly Used Blocks
Simulink / Signal Attributes
HDL Coder / Commonly Used Blocks
HDL Coder / HDL Floating Point Operations
HDL Coder / Signal Attributes

説明

Data Type Conversion ブロックは、任意の Simulink® データ型の入力信号を、指定されたデータ型に変換します。

メモ

ブロック パラメーターを指定して出力データ型を制御するまたは下流のブロックからデータ型を継承するには、Data Type Conversion ブロックを使用します。モデルの別の信号からデータ型を継承するには、Data Type Conversion Inherited ブロックを使用します。

固定小数点信号の変換

固定小数点データ型間の変換を行うとき、[等価な値をもつ入力と出力] パラメーターはブロックの動作を制御します。このパラメーターでは、次の場合はブロックの動作は変更されません。

  • 入力および出力に固定小数点データ型がない。

  • 入力または出力に自明のスケーリングをもつ固定小数点データ型がある。

固定小数点数の詳細については、Simulink における固定小数点数 (Fixed-Point Designer)を参照してください。

入力信号の実際値の維持を試行することによってあるデータ型から別のデータ型に信号を変換するには、既定の設定である [実際値 (RWV)] を選択します。ブロックは、入力および出力のスケーリングによる制限を考慮し、等価の実際値の出力を生成しようとします。

格納整数値のスケーリング再解釈を実行することによって入力信号の実際値を変更するには、[整数格納 (SI)] を選択します。指定されたデータ型の範囲内で、ブロックは変換中の信号の格納整数値を維持しようとします。ベスト プラクティスは、同じ語長と符号属性を使用して入力および出力のデータ型を指定することです。これにより、ブロックで信号のスケーリングのみが変更されるようになります。入力と出力に異なる符号属性または語長を指定すると、範囲の喪失や予期しない符号拡張など予期しない結果になる可能性があります。例については、Simulink モデルにおけるデータ型の変換を参照してください。

[整数格納 (SI)] を選択する場合、ブロックは浮動小数点入力信号の下位ビット再解釈を実行しません。たとえば、入力が single であり、値 5 をもつ場合、入力をメモリに格納するビットは次のコマンドによって 16 進数で与えられます。

num2hex(single(5))
40a00000

ただし、Data Type Conversion ブロックは格納整数値を 40a00000 ではなく実際値の 5 として扱います。変換後の出力の格納整数値は 5 です。

列挙型信号のキャスト

Data Type Conversion ブロックを使用して、次のように列挙型信号をキャストします。

  1. 列挙型の信号を任意の数値型の信号にキャストする。

    Data Type Conversion ブロックに入力されるすべての列挙値入力の基となる整数は、数値型の範囲内でなければなりません。キャストできない場合は、シミュレーション中にエラーが発生します。

  2. 整数型の信号を列挙型の信号にキャストする。

    Data Type Conversion ブロックに入力される値は、列挙値の元となる値に一致させなければなりません。キャストできない場合は、シミュレーション中にエラーが発生します。

    ブロックへの入力値が列挙値の元となる値に一致しない場合は、[整数オーバーフローで飽和] パラメーターを有効にして Simulink が列挙型の既定値を使えるようにできます。列挙値の型キャスト (Simulink Coder)を参照してください。

Data Type Conversion ブロックは次の場合は使用できません。

  • 非整数の数値信号を列挙型信号にキャストする。

  • 複素信号を列挙型信号にキャストする (実数部および虚数部のデータ型は任意)。

列挙型の操作の詳細は、Simulink 列挙型を参照してください。

端子

入力

すべて展開する

入力信号。スカラー、ベクトル、行列または N 次元配列として指定します。入力は実数信号または複素数信号を受け入れます。入力が実数の場合は出力も実数になり、入力が複素数の場合は出力も複素数です。このブロックでは、入力信号が [出力データ型] で指定したデータ型に変換されます。

固定小数点データ型を変換するときは、[等価な値をもつ入力と出力] パラメーターを使用して、信号の [実際値 (RWV)] または [整数格納 (SI)] のどちらの値に基づいて変換を行うかを指定します。詳細については、固定小数点信号の変換を参照してください。

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

出力

すべて展開する

指定したデータ型に変換された出力信号。次元は入力信号と同じになります。

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

パラメーター

すべて展開する

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

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

メモ

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

プログラムでの使用

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

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

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

メモ

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

プログラムでの使用

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

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

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
型: 文字ベクトル
値: '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)' | 'Enum: <class name>''<data type expression>'
既定の設定: 'Inherit: Inherit via back propagation'

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

プログラムでの使用

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

固定小数点データ表現のコンテキストにおいて等価でなければならない入出力型を指定します。

  • 実際値 (RWV) — 入力の [実際値 (RWV)] を出力の [実際値 (RWV)] と等価にすることを指定します。

  • 整数格納 (SI) — 入力の [整数格納 (SI)] の値を出力の [整数格納 (SI)] の値と等価にすることを指定します。

プログラムでの使用

ブロック パラメーター: ConvertRealWorld
型: 文字ベクトル
値: 'Real World Value (RWV)' | 'Stored Integer (SI)'
既定の設定: 'Real World Value (RWV)'

次のいずれかの丸めモードを選択します。

正方向

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

最も近い偶数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、最も近い偶数の整数に丸めます。Fixed-Point Designer™ 関数 convergent と等価です。

負方向

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

最も近い正の整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の無限大方向に丸めます。Fixed-Point Designer 関数 nearest と等価です。

最も近い整数方向

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

最も簡潔

下限値への丸めとゼロへの丸めのいずれかを自動的に選択し、できるだけ効率の高い丸めコードを生成します。

ゼロ方向

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

プログラムでの使用

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

参考

詳細については、丸め (Fixed-Point Designer)を参照してください。

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

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

    たとえば、数 130 は符号付き 8 ビット整数 1 つに収まりきらないので、-126 にラップされます。

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

    たとえば、符号付き 8 ビット整数に関連付けられたオーバーフローは、-128 または 127 に飽和することができます。

ヒント

  • モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このチェック ボックスをオンにすることを検討してください。

  • 生成コードの効率を最適化する場合には、このチェック ボックスをオフにすることを検討してください。

    このチェック ボックスをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。

  • このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。

  • 通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

プログラムでの使用

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

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。

依存関係

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

プログラムでの使用

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

指定するデータのカテゴリを選択します。

  • 継承 — データ型の規則の継承。Inherit を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になり、そこで継承モードを選択できます。

  • 組み込み — 組み込みデータ型を指定します。Built in を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になり、そこで組み込みデータ型を選択できます。

  • 固定小数点 — 固定小数点データ型。[固定小数点] を選択すると、固定小数点データ型を指定するために使用できる追加のパラメーターが有効になります。

  • — 評価結果がデータ型となる式。[] を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこに式を入力することができます。

詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[データ型アシスタントを表示] ボタンをクリックします。

この信号のデータ型オーバーライド モードを選択します。

  • [継承] を選択すると、Simulink はコンテキストからデータ型オーバーライド設定を継承します。コンテキストとはブロックのことで、信号を使用している Simulink の Simulink.Signal オブジェクトまたは Stateflow® チャートです。

  • [オフ] を選択すると、Simulink はコンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。

詳細については、Simulink ドキュメンテーションのデータ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][組み込み] または [固定小数点] に設定します。

ヒント

個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。

固定小数点データが符号付きであるか符号なしであるかを指定します。符号付きデータでは正の値と負の値を表現できますが、符号なしデータでは正の値のみを表現できます。

  • [符号付き]。符号付き固定小数点データを指定します。

  • [符号なし]。符号なし固定小数点データを指定します。

詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード] を [Fixed point] に設定します。

オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法を指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][固定小数点] に設定します。

量子化された整数をもつ語のビット サイズを指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][固定小数点] に設定します。

固定小数点データ型の小数部の長さを正または負の整数として指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[スケーリング][2 進小数点] に設定します。

固定小数点データ型の勾配を指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[スケーリング][勾配とバイアス] に設定します。

固定小数点データ型のバイアスを任意の実数として指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[スケーリング][勾配とバイアス] に設定します。

ブロックの特性

データ型

Boolean | double | enumerated | fixed point | half | integer | single

直達

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

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

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

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

バージョン履歴

R2006a より前に導入