固定小数点データ型をサポートしないブロック
問題
一部のブロックは固定小数点データ型をサポートしておらず、固定小数点の変換でエラーの原因になることがあります。
Simulink® ブロックのデータ型のサポート テーブルは、Simulink ブロック ライブラリに含まれるブロックの特性をまとめたもので、固定小数点データ型をサポートするかどうかも記載されています。このテーブルを表示するには、MATLAB® コマンド ラインで次のように入力します。
showblockdatatypetable
考えられる解決策
サポートされていないブロックの分離
固定小数点の変換でサポートされていないブロックがある場合は、そのサポートされていないブロックを Data Type Conversion ブロックで分離することで切り離しできます。この回避方法は、組み込みプロセッサ上でサポートされていないブロックを使用する際に便利です。
この例の 1 つとして、固定小数点出力をサポートしない Chirp Signal ブロックを使用してシミュレーション データの信号を生成する場合があります。
表示されたサブシステムは、組み込みプロセッサ上で使用するように設計されているため、固定小数点に変換しなければなりません。Chirp Signal ブロックはシミュレーション データを作成します。Chirp Signal ブロックは浮動小数点の double の出力のみをサポートします。ただし、Chirp Signal ブロックの後ろに Data Type Conversion ブロックを挿入して Chirp Signal をモデルの残りの部分から分離することで、固定小数点ツールを使用して引き続きサブシステムを固定小数点に変換できます。
固定小数点ツールによるサポートされていないブロックの分離. 変換の準備段階で、固定小数点ツールは、設計対象のシステム内の固定小数点型をサポートしていないブロックまたは構造体を特定します。設計対象のシステムにサポートされていない構造体が含まれている場合、固定小数点ツールは、Data Type Conversion ブロックに囲まれたサポートされていないブロックを含むサブシステム内のサポートされていない要素をカプセル化します。詳細については、固定小数点ツールを使用した変換するシステムの準備を参照してください。
fxpopt
によるサポートされていないブロックの分離. 既定では、fxpopt
は、Data Type Conversion ブロックに囲まれたサブシステム内のサポートされていないブロックをカプセル化することで、サポートされていないブロックを分離します。分離されたブロックはオプティマイザーで無視されます。
メモ
サポートされていないブロックを fxpopt
で分離する場合、最適化の反復を並列実行することはできません。最適化の反復を並列実行するには、準備段階で固定小数点ツールを使用してサポートされていないブロックを分離し、モデルを保存してから、'UseParallel'
を有効にして fxpopt
を実行します。
Lookup Table ブロックの実装
固定小数点ツールでサポートされていない多くのブロックは、Lookup Table ブロックで近似させることができます。ルックアップ テーブル オプティマイザーを使用して、サポートされていないブロックの効率的な固定小数点実装を設計します。例については、浮動小数点モデルから固定小数点モデルへの変換を参照してください。
ユーザーが作成したブロック
固定小数点ツールでサポートされる独自のブロックを User-Defined Functions ライブラリ内のブロックの 1 つから作成できます。
参考
関連するトピック
- ルックアップ テーブルを使用した近似関数
- ユーザー定義の MATLAB 関数 (HDL Coder)