単精度へのシステムの変換
この例は、単精度コンバーターを使用してシステムを単精度に変換する方法を説明します。この例では、倍精度モデルのサブシステムを単精度に変換します。モデル内のサブシステムを単精度に変換するには、単精度コンバーターを開く前に、設計対象のサブシステムを Data Type Conversion ブロックで囲みます。
モデルを開く
ex_corner_detection_double
モデルを開いてモデル パラメーターを設定します。
open_system("ex_corner_detection_double.slx") R = 80; C = 80; g = fspecial('gaussian',[5 5],1.5);
モデルは倍精度データ型、boolean データ型、組み込みの整数データ型の組み合わせを使用しています。
単精度への変換
単精度コンバーターを開きます。Simulink® の [アプリ] タブから [単精度コンバーター] を選択します。
[設計対象のシステム] で、単精度に変換するシステムまたはサブシステムを選択します。たとえば、
[Corner Detector]
サブシステムを選択します。[単精度に変換] をクリックします。コンバーターは最初にシステムと変換との互換性を確認し、互換性のないモデル設定を変更します。モデルの言語標準が C99 (ISO) に設定されなければなりません。また、モデルは固定ステップ ソルバーを使用しなければなりません。
コンバーターはシステムを変換し、変換されたすべてのデータ型をリストします。コンバーターは倍精度データ型のみを変換します。boolean データ型、固定小数点データ型または組み込みの整数データ型は単精度に変換されません。
設計対象のシステムに MATLAB® Function ブロックが含まれている場合、コンバーターでは、生成された MATLAB Function ブロックの単精度バージョン、および元の MATLAB Function ブロックを含む Variant Subsystem が作成されます。
変換の最終段階で、コンバーターはモデルを更新することで変換が正常に行われることを確認します。
モデルに戻り、ブロック線図を更新します。Corner Detector サブシステム内のブロックでは倍精度データ型は使用されなくなります。