ルックアップ テーブルを使用した MATLAB Function ブロックでの関数の置換
この例では、MATLAB® Function ブロック内で使用される関数をより効率的な実装で置換する方法を示します。コード ビューを使用して、組み込みの関数 sin
をルックアップ テーブル近似に置き換えます。
モデルを開く
ex_mySin
モデルを開きます。
open_system("ex_mySin.slx")
このモデルには、入力の正弦を計算する MATLAB Function ブロックが含まれます。
function y = my_sin(u) %#codegen y = sin(u);
正弦関数からルックアップ テーブル近似への置き換え
固定小数点ツールを開くには、[アプリ] タブで [アプリ] ギャラリーを展開し、[固定小数点ツール] を選択します。
固定小数点ツールの [新規] ボタンの矢印を展開し、
[固定小数点の反復的変換]
を選択します。[設計対象のシステム (SUD)] で、変換するシステムとしてモデル
ex_mySin
を選択します。[範囲の収集モード] で、範囲の収集方法として [シミュレーション範囲] を選択します。これにより、理想的な浮動小数点データ型を使用して範囲を収集するようにモデルが設定されます。
ツールストリップの [準備] セクションで、[準備] をクリックします。
[範囲の収集] ボタンの矢印を展開して
[倍精度]
を選択します。[範囲の収集] をクリックして、シミュレーションを開始します。固定小数点ツールは、
BaselineRun
というタイトルの実行にシミュレーション データを格納します。スプレッドシートで MATLAB 変数の範囲情報を確認します。コード ビューを起動するには、ツールストリップの [変換] セクションで [MATLAB 関数] をクリックします。
[関数の置き換え] タブを選択します。
置換する関数の名前を入力します。この例では、
sin
と入力します。[ルックアップ テーブル]
を選択して、 をクリックします。固定小数点の変換プロセスで関数の値域が推定され、内挿されたルックアップ テーブルを使用してその関数が置き換えられます。既定では、ルックアップ テーブルは線形内挿と、1000 個の点、テスト ファイルの実行によって求めた最小値と最大値を使用します。
[推奨] をクリックして、変数に対するデータ型の推奨を取得します。
[適用] をクリックしてデータ型の推奨を適用して、固定小数点ルックアップ テーブルを生成します。
生成された固定小数点コードの動作が元のコードの動作を十分に近似していない場合は、ルックアップ テーブルで使用する内挿法と点の数を変更してから、固定小数点コードを生成し直してください。
固定小数点ツールに戻ります。ツールストリップの [検証] セクションで [組み込み型によるシミュレーション] ボタンをクリックし、新しく適用された固定小数点データ型を使用してモデルをシミュレートします。モデルは、固定小数点のバリアントをアクティブなバリアントとして使用してシミュレーションを実行します。