Main Content

非浮動小数点の信号または状態をもつブロックの線形化

非浮動小数点の信号または状態をもち、事前にプログラムされた正確な線形化をもたないブロックを線形化できます。追加コンフィギュレーションを行わないと、このようなブロックは自動的にゼロに線形化されます。たとえば、論理演算子ブロックは Boolean 出力をもち、ゼロに線形化されます。

非浮動小数点の信号をもつブロックを線形化するには、すべての信号を倍精度または単精度に変換する必要があります。この手法は、モデルが完全な倍精度または単精度で正しく動作可能な場合にのみ機能します。

非浮動小数点データ型の影響を受けるブロックが少ない場合は、Data Type Conversion ブロックを使用してこの問題を解決することができます。

非倍精度の信号が多い場合は、固定小数点ツールを使用してすべてのデータ型を倍精度にオーバーライドしてください。

Data Type Conversion ブロックを使用したデータ型のオーバーライド

モデルを線形化する前に、Data Type Conversion ブロックを挿入することによって、個々の信号を倍精度にオーバーライドします。この手法は、影響を受けるブロックが少ないモデルに最適です。

モデルを線形化した後、モデルから Data Type Conversion ブロックを削除してください。

メモ

非浮動小数点データ型のオーバーライドは、整数データ型を使用して浮動小数点数の切り捨てを行うなど、モデルが非浮動小数点データ型を使用している場合は行わないでください。

たとえば、入力が 1 のときに操作点で Square ブロックを線形化するように設定されたモデルを考えてみましょう。線形化された結果のモデルは 2 になるはずですが、Square ブロックに対する入力は Boolean です。非浮動小数点データ型をもつこの信号は、結果としてゼロに線形化されます。

この場合、Data Type Conversion ブロックを挿入すると、Square ブロックに対する入力信号が倍精度に変換されます。これを実行するとこのようになります。

固定小数点ツールを使用したデータ型オーバーライド

非浮動小数点データ型を含み、しかし完全な倍精度または単精度でも正常に動作するモデルを線形化する場合は、固定小数点ツールを使用してすべてのデータ型を倍精度または単精度のいずれかにオーバーライドすることができます。この方法は、非浮動小数点精度の信号が多い場合に使用します。

モデルを線形化した後は、当初の設定に戻してください。

メモ

非浮動小数点データ型のオーバーライドは、整数データ型を使用して浮動小数点数の切り捨てを行うなど、モデルが非浮動小数点データ型を使用している場合は行わないでください。

  1. 固定小数点ツールを開きます。Simulink® モデル ウィンドウの [アプリ] タブで、[アプリ] ギャラリーの下の [コード生成][固定小数点ツール] をクリックします。

  2. [データ型オーバーライド] メニューで [double] または [single] のいずれかを選択します。

  3. 線形化が完了したら設定を元に戻します。

参考

関連するトピック