ドキュメンテーション

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

Data Type Conversion

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

ライブラリ

Signal Attributes

説明

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

入力は実数信号または複素数信号を受け入れます。入力が実数の場合は出力も実数になり、入力が複素数の場合は出力も複素数です。

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

固定小数点信号の変換

固定小数点データ型間の変換を行うとき、[等価な値をもつ入力と出力] パラメーターはブロックの動作を制御します。入力でも出力でも固定小数点スケーリングを使用しない場合、固定小数点データ型でないか、自明の固定小数点スケーリングがあるため、このパラメーターはブロックの動作を変更しません。固定小数点数の詳細については、「Simulink の固定小数点数」を参照してください。

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

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

[整数格納 (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 が列挙型の既定値を使えるようにできます。「列挙値の型キャスト」を参照してください。

以下の場合には Data Type Conversion ブロックを使用できません。

  • 整数ではない数値信号を列挙型信号にキャストする。

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

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

サポートするデータ型

Data Type Conversion ブロックは、Simulink がサポートする任意のデータ型 (固定小数点データ型や列挙型データなど) を処理します。

詳細は、Simulink ドキュメンテーションの「Simulink でサポートされているデータ型」を参照してください。

パラメーターとダイアログ ボックス

データ型アシスタントを表示

[データ型アシスタント] を表示します。

設定

[データ型アシスタント] を使用すると、[出力データ型] パラメーターを設定できます。

詳細は、「信号のデータ型の制御」を参照してください。

固定小数点ツールによる変更に対して出力データ型の設定をロックする

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。

設定

既定の設定: オフ

オン

このブロックの出力データ型設定をロックします。

オフ

固定小数点ツールや固定小数点アドバイザーがこのブロックの出力データ型の設定を変更できます。

コマンド ライン情報

パラメーター: LockScale
タイプ: 文字列
値: 'off' | 'on'
既定の設定: 'off'

参考

詳細は、「[出力データ型の設定をロックする] の使用」を参照してください。

等価な値をもつ入力と出力

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

設定

既定の設定: 実際値 (RWV)

実際値 (RWV)

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

整数格納 (SI)

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

コマンド ライン情報

コマンド ライン情報については、ブロック固有のパラメーターを参照してください。

整数丸めモード

固定小数点演算の丸めモードを指定します。

設定

既定の設定: 負方向

正方向

正の無限大方向に正負の値を丸めます。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 ドキュメンテーション「丸め」を参照してください。

整数オーバーフローで飽和

オーバーフローで飽和するかどうかを指定します。

設定

既定の設定: オフ

オン

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

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

オフ

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

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

ヒント

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

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

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

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

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

コマンド ライン情報

パラメーター: SaturateOnIntegerOverflow
タイプ: 文字列
値: 'off' | 'on'
既定の設定: 'off'

サンプル時間

出力の最小値

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

設定

既定の設定: [] (指定なし)

有限で実数の double のスカラー値としてこの値を指定します。

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

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

コマンド ライン情報

パラメーター: OutMin
タイプ: 文字列
値: '[ ]'
既定の設定: '[ ]'

出力の最大値

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

設定

既定の設定: [] (指定なし)

有限で実数の double のスカラー値としてこの値を指定します。

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

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

コマンド ライン情報

パラメーター: OutMax
タイプ: 文字列
値: '[ ]'
既定の設定: '[ ]'

出力データ型

出力データ型を指定します。

設定

既定の設定: 継承: 逆伝播による継承

継承: 逆伝播による継承

駆動ブロックのデータ型を使用します。

double

出力データ型は double です。

single

出力データ型は single です。

int8

出力データ型は int8 です。

uint8

出力データ型は uint8 です。

int16

出力データ型は int16 です。

uint16

出力データ型は uint16 です。

int32

出力データ型は int32 です。

uint32

出力データ型は uint32 です。

boolean

出力データ型は boolean です。Data Type Conversion ブロックは、非ゼロの数値 (NaN および Inf を含む) を booleantrue (1) に変換します。

fixdt(1,16,0)

出力データ型は固定小数点 fixdt(1,16,0) です。

fixdt(1,16,2^0,0)

出力データ型は固定小数点 fixdt(1,16,2^0,0) です。

Enum:<class name>

列挙型データを使用します。たとえば、Enum: BasicColors などです。

<data type expression>

データ型オブジェクトを使用します。たとえば、Simulink.NumericType などです。

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

参考

詳細は、「信号のデータ型の制御」を参照してください。

モード

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

設定

既定の設定: 継承

継承

データ型の規則の継承。[継承] を選択すると、[逆伝播による継承] が有効になります。

組み込み

組み込みのデータ型。[組み込み] を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。次の選択肢からいずれかを選択します。

  • double (既定の設定)

  • single

  • int8

  • uint8

  • int16

  • uint16

  • int32

  • uint32

  • boolean

固定小数点

固定小数点データ型。

列挙型

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

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

依存関係

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

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

参考

「データ型アシスタントを利用したデータ型の指定」を参照してください。

データ型のオーバーライド

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

設定

既定の設定: 継承

継承

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

オフ

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

ヒント

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

依存関係

このパラメーターは、[モード]組み込み または 固定小数点 の場合にのみ表示されます。

符号付き/なし

固定小数点データを符号付きにするか、符号なしにするかを指定します。

設定

既定の設定: 符号付き

符号付き

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

符号なし

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

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

語長

量子化された整数をもつ語のビット サイズを指定します。

設定

既定の設定: 16

最小値: 0

最大値: 32

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

スケーリング

オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法を指定します。

設定

既定の設定:最高精度

2 進小数点

2 進小数点の位置を指定します。

勾配とバイアス

勾配とバイアスを入力します。

最高精度

最高精度値を指定します。

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

[2 進小数点] を選択すると、以下が有効になります。

  • 小数部の長さ

  • 最高精度のスケーリングを計算

勾配とバイアス を選択すると、以下が有効になります。

  • 勾配

  • バイアス

  • 最高精度のスケーリングを計算

参考

詳細は、「固定小数点データ型の指定」を参照してください。

小数部の長さ

固定小数点データ型の小数部の長さを指定します。

設定

既定の設定: 0

2 進小数点は正または負の整数になります。

依存関係

[スケーリング][2 進小数点] を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

勾配

固定小数点データ型の勾配を指定します。

設定

既定の設定: 2^0

任意の正の実数を指定します。

依存関係

[スケーリング]勾配とバイアス を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

バイアス

固定小数点データ型のバイアスを指定します。

設定

既定の設定: 0

任意の実数を指定します。

依存関係

[スケーリング]勾配とバイアス を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

実際値と格納整数値

モデル例 ex_data_type_conversion_rwv_si では Data Type Conversion ブロックを使用して、信号の実際値と格納整数値の意味を示します。固定小数点スケーリングの基本情報については、Fixed-Point Designer ドキュメンテーションの「スケーリング」を参照してください。

固定小数点データ型間の変換

Fixed-Point Constant ブロックは、2 進小数点スケーリング 2-5 が設定された固定小数点データ型を使用して実際値 15 を表します。スケーリングにより、出力信号は 480 の格納整数値を使用します。

モデルは Data Type Conversion ブロックを使用して信号を 2 進小数点スケーリング 2-2 が設定された固定小数点データ型に変換します。

  • Fixed to Fixed: Preserve RWV ブロックは、実際値 15 を保持して入力信号を変換します。パラメーター [等価な値をもつ入力と出力][実際値 (RWV)] に設定されます。

    出力信号は入力と同じ実際値 15 をもちます。固定小数点スケーリングにより、出力は 60 の格納整数値を使用します。

  • Fixed to Fixed: Preserve SI ブロックは格納整数値 480 を保持して入力信号を変換します。パラメーター [等価な値をもつ入力と出力][整数格納 (SI)] に設定されます。

    出力信号は、入力と同じ整数値 480 を使用します。固定小数点スケーリングにより、出力は 120 の実際値をもちます。

この図は、2 つのブロックの変換メカニズムを示しています。

浮動小数点データ型と固定小数点データ型間の変換

Double Constant ブロックは、浮動小数点データ型 double を使用して実際値 15 を表します。出力信号は固定小数点スケーリングを使用しません。

モデルは Data Type Conversion ブロックを使用して double 信号を 2 進小数点スケーリング 2-2 が設定された固定小数点データ型に変換します。

  • Float to Fixed: Preserve RWV ブロックは、実際値 15 を保持して入力信号を変換します。出力信号は同じ実際値をもちます。固定小数点スケーリングにより、出力は 60 の格納整数値を使用します。

  • Float to Fixed: Preserve SI ブロックは格納整数値の保持を試行して入力信号を変換します。ただし、ブロックはメモリに浮動小数点信号を格納する基になるビットを使用しません。代わりに、入力の実際値 15 を出力信号の格納整数として使用します。固定小数点スケーリングにより、出力の実際値は 3.75 になります。

この図は、2 つのブロックの変換メカニズムを示しています。ブロックは、入力が浮動小数点データ型 single を使用する場合もこれらのメカニズムを使用します。

固定小数点データ型を使用した信号の再解釈

ハードウェアがデータ型 uint8 を使用して温度センサーからのデータを格納するとします。また、格納された最小の整数値 0 は摂氏 –20 度を表し、最大値 25560 度を表すものとします。以下のモデルでは、Data Type Conversion ブロックを使用して、センサー データの格納された整数値を摂氏の度数に変換します。

Data Type Conversion ブロック パラメーター [等価な値をもつ入力と出力][整数格納 (SI)] に設定されています。ブロックの出力信号は、語長 8、勾配 80/255、バイアス -20 の固定小数点データ型です。

Data Type Conversion ブロックは、整数の入力 127 を摂氏の出力 19.84 度として再解釈します。ブロックの出力は指定された勾配とバイアスを使用して入力の格納された整数をスケーリングします。

特性

データ型

double | single | boolean | 整数 | 固定小数点 | 列挙型

サンプル時間

駆動ブロックから継承

直接フィードスルー

あり

多次元信号

あり

可変サイズの信号

あり

ゼロクロッシング検出

なし

コード生成

あり

R2006a より前に導入

この情報は役に立ちましたか?