固定小数点ツール
浮動小数点モデルを固定小数点モデルに変換
説明
固定小数点ツールでは、固定小数点データ型を使用するように浮動小数点モデルを自動的に変換し、モデルの既存のデータ型を最適化し、豊富な統計と可視化を使用してモデルの範囲とデータ型を解析できます。
固定小数点ツールでは、ニーズに応じて 3 つのワークフローを利用できます。
固定小数点の最適化された変換 — 最適化された固定小数点データ型を使用するようにモデルが自動変換されます。
固定小数点の反復的変換 — 固定小数点データ型が自動的に推奨され、モデルに適用するデータ型を手動で選択します。
範囲の収集 — データ型の変換前または変換後のモデルの数値的な動作を確認します。
次の表は、これらの 3 つのワークフローの違いに関する概要を示したものです。これらのオプションについて、以下で詳しく説明します。
ワークフロー | モデルのデータ型の変更 | 使いやすさ | モデルに適用されるデータ型についての制御の量 | システム動作の許容誤差に関する知識の必要性 | コマンド ライン ワークフロー |
---|---|---|---|---|---|
固定小数点の最適化された変換 | あり | 1 ステップ | 低 | あり | fxpopt |
固定小数点の反復的変換 | あり | 複数の反復 | 高 | 推奨 | DataTypeWorkflow.Converter |
範囲の収集 | なし | 1 ステップ | N/A | 推奨 | DataTypeWorkflow.Converter |
その他
[固定小数点の最適化された変換] ワークフロー
固定小数点ツールの [固定小数点の最適化された変換] ワークフローは、Simulink® モデルを固定小数点に変換する完全に自動化された方法を提供します。システムに望む動作がわかっていて、その動作の受け入れ可能な許容誤差を指定できる場合、このワークフローを使用してシステムの最適なデータ型を見つけることができます。追加で既知の範囲を指定したり、追加のシミュレーション入力を提供したりすると、さらに適切な結果が得られます。
このツールでは、許容される語長を指定できるほか、指定したターゲット ハードウェアの制限も考慮されます。また、収集される範囲の限度を指定した量だけ広げるように安全余裕を指定することもできます。最適化されたデータ型が指定した動作の許容誤差内に収まり、設計のコストが最小限に抑えられます。実行可能解が複数見つかる場合は、それぞれの解をモデルに適用して調べ、ニーズに適したものを見つけることができます。ベースライン モデルで収集された範囲と統計を高度な可視化を使用して確認することで、オーバーフローやその他の数値的問題の原因をすばやく特定できます。異なる固定小数点実装の結果をシミュレーション データ インスペクターで比較できます。
固定小数点ツールでデータ型を最適化した後、ワークフローを MATLAB® スクリプトにエクスポートできます。これにより、コマンド ラインで fxpopt
を使用してデータ型最適化を続行することができ、追加の詳細オプションを使用して最適化プロセスをさらにカスタマイズできます。
このワークフローでは、最適化プロセスの完了時にモデルのデータ型が自動的に変更されます。最適化の開始前に準備ステップを完了しておけば、モデルを元の状態に自動的に戻すことができます。
[固定小数点の反復的変換] ワークフロー
固定小数点ツールの [固定小数点の反復的変換] ワークフローは、Simulink モデルの固定小数点データ型を対話形式で指定する自動化された方法です。ツールによって、モデルのオブジェクトの範囲が収集され、精度を最大化し、かつ範囲をカバーする固定小数点データ型が推奨されます。その後、推奨されたデータ型を確認し、モデル内のオブジェクトに選択的に適用することができます。
このツールでは、語長や小数部の長さを推奨することができ、固定精度設計にするオプションが提供されるほか、指定したターゲット ハードウェアの制限も考慮されます。また、収集される範囲の限度を指定した量だけ広げるように安全余裕を指定することもできます。固定小数点へのモデルの変換前と変換後の両方に、高度な可視化を使用してモデルのオブジェクトの範囲を確認し、オーバーフローやその他の数値的問題の原因をすばやく特定できます。推奨されたデータ型がニーズに合わない場合は、このプロセスをさらに繰り返すことができます。異なる固定小数点実装の結果をシミュレーション データ インスペクターで比較できます。
このワークフローでは、推奨されたどのデータ型をモデルに適用するかを必要に応じて完全に制御できます。変換の準備ステップを完了してあれば、モデルを元の状態に自動的に戻すことができます。
このワークフローでは、システムに望む動作の指定は必須ではありませんが、データ型推奨の精度を高め、推奨されたデータ型が指定の設計要件を満たすかどうかを評価できるようにするために、既知の範囲、シミュレーション入力、信号許容誤差がある場合は指定することをお勧めします。
[範囲の収集] ワークフロー
固定小数点ツールの [範囲の収集] ワークフローは、解析およびトラブルシューティング用のツールであり、モデルを変更するためのものではありません。このワークフローは、データ型変換ワークフローに含まれる範囲収集ステップへの独立したアクセスを提供します。
モデル内のログ記録された信号に対して追加のシミュレーション入力や許容誤差を指定することもできます。指定したすべてのシミュレーション入力の範囲がツールで別々に収集され、組み合わせて表示するために結果のマージも行われます。システムの理想的な浮動小数点の動作を調べる場合は、データ型オーバーライドを有効にして範囲を収集することもできます。
固定小数点への変換前または変換後に、高度な可視化を使用してモデルのオブジェクトの範囲を確認し、オーバーフローやアンダーフロー、その他の数値的問題の原因をすばやく特定できます。指定した許容誤差を満たさない信号は、結果で強調表示されます。シミュレーション実行の結果はシミュレーション データ インスペクターを使用して比較できます。
固定小数点ツール を開く
Simulink ツールストリップ: [アプリ] タブの [コード生成] の下で、アプリ アイコンをクリックします。
MATLAB コマンド プロンプト: 「
fxptdlg
('system_name')
」と入力します。ここで、'system_name'
は、変換するモデルまたはシステムの名前であり、文字列として指定します。
例
固定小数点ツールの [固定小数点の最適化された変換]
この例では、[固定小数点ツール] の [固定小数点の最適化された変換] ワークフローの使用方法を示します。この例で使用するモデルは、浮動小数点データ型を使用してモデル化されたシンプルな FIR フィルターです。この例では、フィルターの出力に対して既知の動作の制約を指定し、Embedded Efficient Filter
サブシステムの固定小数点データ型を最適化します。
mSimpleFIR
モデルを開きます。
open_system('mSimpleFIR');
Embedded Efficient Filter
サブシステムを検査します。
open_system('mSimpleFIR/Embedded Efficient Filter');
設計の既知の最小値と最大値がモデル内のブロックで明示的に指定されています。これには、Embedded Efficient Filter
サブシステムの入力と出力も含まれます。
固定小数点ツールを開きます。Simulink® の [アプリ] タブの [コード生成] の下で、アプリ アイコンをクリックします。
固定小数点の最適化された変換のワークフローを開始するには、[固定小数点の最適化された変換] を選択します。
解析するサブシステムを選択します。[設計対象のシステム (SUD)] で、Embedded Efficient Filter
サブシステムを選択します。
使用する範囲収集方法を選択します。[範囲の収集モード] で、[派生範囲を使用したシミュレーション] を選択します。最適化の範囲解析ステップで、シミュレーションの最小値と最大値、モデル内のブロックで明示的に指定された設計の最小値と最大値、およびモデル内のオブジェクトの範囲を派生させる静的解析で計算される派生した最小値と最大値から、ツールによって範囲が組み合わされます。
[シミュレーション入力] を指定します。この例では、既定のモデル入力をシミュレーションに使用します。
ログ記録される信号の信号許容誤差を指定します。output_signal:1
の [絶対許容誤差] と [相対許容誤差] を 0.01
に設定します。
モデルを固定小数点変換用に準備するには、[準備] をクリックします。固定小数点ツールにより、モデルのバックアップ バージョンが作成され、モデルと変換プロセスとの互換性がチェックされます。準備のチェックの詳細については、固定小数点ツールを使用した変換するシステムの準備を参照してください。
次に、[最適化オプション] ボタンの矢印を展開して、データ型の最適化に使用するオプションを構成します。この例では、既定の設定を使用します。
モデルのデータ型を最適化するには、[データ型の最適化] をクリックします。
最適化プロセスにおいて、設計対象のシステム内のオブジェクトの範囲がソフトウェアで解析されます。最適化では、設計の最小値と最大値や信号許容誤差など、指定したすべての動作の制約が考慮され、目的関数を最小化しながら異種混合のデータ型がシステムに適用されます。この例では、目的関数は既定の Bit Width Sum
であり、設計対象のシステムにおける語長の和を最小にするように最適化に指示されます。
最適化プロセスでは、ソフトウェアによっていくつかの設定とモデル コンフィギュレーション パラメーターが変更されます。こうした変更の目的には、診断の非表示、シミュレーション データ インスペクターによるログの有効化、結果によって消費されるメモリの削減、モデルの有効性の確認、最適化プロセスの高速化、データ型オーバーライドの無効化が含まれます。詳細については、データ型最適化によるモデル コンフィギュレーションの変更を参照してください。これらの診断は、最適化の完了後に元に戻すことができます。
最適化プロセスに関する詳細が固定小数点ツールの [最適化の詳細] ペインに出力されます。[停止] をクリックすると、最適化探索が完了する前に最適化ソルバーを一時停止または停止できます。
最適化が完了すると、固定小数点ツールのテーブルに最適化プロセスで見つかったすべての解が表示されます。テーブルの [解 1] が見つかった最適解に相当します。
テーブルにおける解の順序は [コスト] に基づきます。これは、[最適化オプション] メニューで指定した目的関数で定義されます。定義された動作の制約を満たす実行可能解は、解テーブルにおいてステータスがパスとしてマークされます。動作の制約を満たさない解は、失敗のステータスでマークされます。この例では、フィルター サブシステムの出力に対する許容誤差を使用してシステムに望む動作を定義しています。他の種類の動作の制約を定義する方法の詳細については、動作の制約の指定を参照してください。
最適化プロセスでは、モデル内のオブジェクトの範囲と統計がツールで収集されます。それらの範囲を調べるには、[ワークフロー ブラウザー] ペインで BaselineRun
を選択します。
[結果] スプレッドシートに、シミュレーションの最小値とシミュレーションの最大値など、最適化の範囲収集フェーズで収集された統計の概要が表示されます。いずれかの結果をクリックすると、[結果の詳細] ペインに追加の詳細が表示されます。[シミュレーション データの可視化] ペインには、モデル内の各オブジェクトによって使用されているビットのヒストグラムの概要が表示されます。
[結果] スプレッドシートに表示される情報はカスタマイズが可能です。また、[探索] タブを使用すると、それらの結果を追加の基準に基づいて並べ替えたりフィルターしたりできます。詳細については、固定小数点ツールでのビューの制御を参照してください。
最適化で見つかった最適解である [解 1] が自動的にモデルに適用されます。この最適化された解をベースライン実行と比較するには、[比較] をクリックします。Embedded Efficient Filter
サブシステムで、最適化された固定小数点データ型が適用されたことを確認できます。ログ記録された信号をもつモデルの [比較] をクリックすると、ツールで [シミュレーション データ インスペクター] が開きます。シミュレーション データ インスペクターで、比較する信号として output_signal
を選択します。[解 1] のプラント出力信号のプロットは、指定した許容誤差帯域に収まっています。
解テーブルから解を選択して [適用して比較] をクリックすることで、他の解についても調べることができます。
固定小数点ツールでデータ型を最適化した後、最適化ワークフロー ステップを MATLAB® スクリプトにエクスポートすることを選択できます。これにより、現在の最適化ワークフロー ステップを保存し、コマンド ラインで fxpopt
を使用してデータ型最適化を続行できるようになります。
[スクリプトのエクスポート] をクリックすると、fxpOptimizationOptions
という名前のスクリプトが現在の作業ディレクトリにエクスポートされます。
変換プロセス後に、モデルを変換プロセスの開始時の状態に戻す場合は、[元のモデルを復元] をクリックします。変換の準備段階後にモデルに加えられた変更はすべて削除されます。
固定小数点ツールの [固定小数点の反復的変換]
この例では、[固定小数点ツール] の [固定小数点の反復的変換] ワークフローの使用方法を示します。この例で使用するモデルは、固定小数点データ型の初期推定を使用してモデル化されたシンプルな FIR フィルターです。この例では、フィルターの出力に対して既知の動作の制約を指定し、Embedded Efficient Filter
サブシステムの固定小数点データ型を改善します。
mSimpleFIR_fxp
モデルを開きます。
open_system('mSimpleFIR_fxp');
Embedded Efficient Filter
サブシステムを検査します。
open_system('mSimpleFIR_fxp/Embedded Efficient Filter');
設計の既知の最小値と最大値がモデル内のブロックで明示的に指定されています。これには、Embedded Efficient Filter
サブシステムの入力と出力も含まれます。
固定小数点ツールを開きます。Simulink® の [アプリ] タブの [コード生成] の下で、アプリ アイコンをクリックします。
[固定小数点の反復的変換] ワークフローを開始するには、[固定小数点の反復的変換] を選択します。
解析するサブシステムを選択します。[設計対象のシステム (SUD)] で、Embedded Efficient Filter
サブシステムを選択します。
使用する範囲収集方法を選択します。[範囲の収集モード] で、[派生範囲を使用したシミュレーション] を選択します。最適化の範囲解析ステップで、シミュレーションの最小値と最大値、モデル内のブロックで明示的に指定された設計の最小値と最大値、およびモデル内のオブジェクトの範囲を派生させた静的解析で計算される派生した最小値と最大値から、ツールによって範囲が組み合わされます。
[シミュレーション入力] を指定します。この例では、既定のモデル入力をシミュレーションに使用します。
ログ記録される信号の信号許容誤差を指定します。output_signal:1
の [絶対許容誤差] と [相対許容誤差] を 0.01
に設定します。
モデルを固定小数点変換用に準備するには、[準備] をクリックします。固定小数点ツールにより、モデルのバックアップ バージョンが作成され、モデルと変換プロセスとの互換性がチェックされます。準備のチェックの詳細については、固定小数点ツールを使用した変換するシステムの準備を参照してください。
次に、範囲を収集します。[範囲の収集] ボタンの矢印を展開して [倍精度] を選択します。[範囲の収集] をクリックして範囲収集実行を開始します。
範囲の収集モードとして [倍精度] を選択した場合、ツールではデータ型オーバーライドを有効にして設計対象のシステムがシミュレートされます。データ型オーバーライドでは、モデル内の固定小数点データ型がグローバルにオーバーライドされるため、量子化の影響を受けません。これにより、モデルの動作についての理想的な浮動小数点のベースラインを確立できます。
範囲収集の結果は BaselineRun
に格納されます。[結果] スプレッドシートに、モデルで現在指定されているデータ型 ([SpecifiedDT])、シミュレーションの最小値、シミュレーションの最大値など、範囲収集シミュレーションで収集された統計の概要が表示されます。コンパイルされたデータ型の列 ([CompiledDT]) には、Embedded Efficient Filter
サブシステムのすべてのオブジェクトについて double と表示されます。これは、範囲収集シミュレーションでデータ型オーバーライドが適用されたことを示します。
いずれかの結果をクリックすると、[結果の詳細] ペインに追加の詳細が表示されます。[シミュレーション データの可視化] ペインには、モデル内の各オブジェクトによって使用されているビットのヒストグラムの概要が表示されます。シミュレーション データから、モデル内のいくつかのオブジェクトにアンダーフローの可能性があることがわかります。
[結果] スプレッドシートに表示される情報はカスタマイズが可能です。また、[探索] タブを使用すると、それらの結果を追加の基準に基づいて並べ替えたりフィルターしたりできます。詳細については、固定小数点ツールでのビューの制御を参照してください。
次に、[設定] ボタンの矢印を展開して、データ型の推奨に使用する設定を構成します。[推奨] を [語長] に設定します。
収集された範囲と指定したデータ型推奨設定に基づいてデータ型を推奨するには、[データ型を推奨] をクリックします。使用可能なすべての範囲データを使用して、ツールでデータ型推奨が計算されます。これには、設計の最小値と最大値、シミュレーションの最小値と最大値、派生した最小値と最大値が含まれます。設計対象システムのオブジェクトのうち、[固定小数点ツールによる変更に対して出力データ型の設定をロックする] パラメーターがオフになっているすべてのオブジェクトについてデータ型が推奨されます。
推奨されたデータ型をモデルに書き込むには、[データ型を適用] をクリックします。ツールで [SpecifiedDT] 列が更新され、データ型がモデルに適用されたことが示されます。
適用された固定小数点データ型を使用してモデルをシミュレートします。[組み込み型によるシミュレーション] ボタンの矢印を展開して [指定したデータ型] を選択します。その後、[組み込み型によるシミュレーション] をクリックします。
固定小数点ツールで、新しい固定小数点データ型を使用してモデルがシミュレートされ、設計対象システムのすべてのオブジェクトについて、最小値、最大値、およびオーバーフローのデータが記録されます。この情報は EmbeddedRun
という新しい実行名で格納されます。EmbeddedRun
の横のアイコンにステータスがパスとして表示され、設計対象システムのすべての信号が指定された許容誤差を満たすことが示されます。[シミュレーション データの可視化] ペインが更新され、新しい EmbeddedRun
のデータが表示されます。
BaselineRun
に格納された理想の結果を新たに適用された固定小数点データ型と比較するには、[SDI で実行して比較] ドロップダウン メニューから EmbeddedRun
を選択します。その後、[結果の比較] をクリックして [シミュレーション データ インスペクター] を開きます。
シミュレーション データ インスペクターで、比較する信号として output_signal
を選択します。
EmbeddedRun
のフィルター出力信号のプロットは、指定した許容誤差帯域に収まっています。
変換されたシステムの動作が要件を満たさない場合や追加のデータ型の選択について効果を調べる場合は、新しい推奨設定の適用後に新しいデータ型を推奨できます。システムの固定小数点の動作が許容される設定が見つかるまで繰り返します。
変換プロセス後に、モデルを変換プロセスの開始時の状態に戻す場合は、[元のモデルを復元] をクリックします。変換の準備段階後にモデルに加えられた変更はすべて削除されます。
固定小数点ツールの [範囲の収集]
この例では、[固定小数点ツール] の [範囲の収集] ワークフローの使用方法を示します。この例で使用するモデルは、固定小数点データ型を使用してモデル化されたシンプルな FIR フィルターです。この例では、モデルの数値的な動作を解析して、Embedded Efficient Filter
サブシステムのオーバーフローの原因を特定します。
mSimpleFIR_fxp_ovf
モデルを開きます。
open_system('mSimpleFIR_fxp_ovf');
Embedded Efficient Filter
サブシステムを検査します。
open_system('mSimpleFIR_fxp_ovf/Embedded Efficient Filter');
設計の既知の最小値と最大値がモデル内のブロックで明示的に指定されています。これには、Embedded Efficient Filter
サブシステムの入力と出力も含まれます。
固定小数点ツールを開きます。Simulink® の [アプリ] タブの [コード生成] の下で、アプリ アイコンをクリックします。
範囲の収集のワークフローを開始するには、[範囲の収集] を選択します。
解析するサブシステムを選択します。[設計対象のシステム (SUD)] で、Embedded Efficient Filter
サブシステムを選択します。
使用する範囲収集方法を選択します。[範囲の収集モード] で、[派生範囲を使用したシミュレーション] を選択します。範囲の収集で、シミュレーションの最小値と最大値、モデル内のブロックで明示的に指定された設計の最小値と最大値、およびモデル内のオブジェクトの範囲を派生させた静的解析で計算される派生した最小値と最大値から、ツールによって範囲が組み合わされます。
[シミュレーション入力] を指定します。この例では、既定のモデル入力をシミュレーションに使用します。
ログ記録される信号の信号許容誤差を指定します。output_signal:1
の [絶対許容誤差] と [相対許容誤差] を 0.01
に設定します。
次に、[範囲の収集] ボタンの矢印を展開して、範囲の収集に使用する設定を構成します。[倍精度] を選択して、ベースラインの範囲収集実行時にモデル内のデータ型を一時的に double でオーバーライドします。[範囲の収集] をクリックします。
範囲収集実行の結果は BaselineRun
に格納されます。[結果] スプレッドシートに、モデルで現在指定されているデータ型 ([SpecifiedDT])、シミュレーションの最小値、シミュレーションの最大値など、範囲収集で収集された統計の概要が表示されます。コンパイルされたデータ型の列 ([CompiledDT]) には、Embedded Efficient Filter
サブシステムのすべてのオブジェクトについて double と表示されます。これは、範囲収集シミュレーションでデータ型オーバーライドが適用されたことを示します。
いずれかの結果をクリックすると、[結果の詳細] ペインに追加の詳細が表示されます。[シミュレーション データの可視化] ペインには、モデル内の各オブジェクトによって使用されているビットのヒストグラムの概要が表示されます。
[結果] スプレッドシートに表示される情報はカスタマイズが可能です。また、[探索] タブを使用すると、それらの結果を追加の基準に基づいて並べ替えたりフィルターしたりできます。詳細については、固定小数点ツールでのビューの制御を参照してください。
次に、モデルで現在指定されている固定小数点データ型を使用してモデルをシミュレートします。[設定] ボタンの矢印を展開して [指定したデータ型] を選択し、[組み込み型によるシミュレーション] をクリックします。
固定小数点ツールで、シミュレーションの結果が EmbeddedRun
に格納されます。
EmbeddedRun
の横のアイコンに失敗のステータスが表示され、指定された許容誤差を満たさない信号が 1 つ以上あることが示されます。Product
ブロックの結果から、この結果に問題があることがわかります。[結果の詳細] ペインには、ブロックが 1670 回オーバーフローしたことが示され、これは語長の選択が十分でないことを示しています。
BaselineRun
に格納された理想の結果を固定小数点の結果と比較するには、[SDI で実行して比較] ドロップダウン メニューから EmbeddedRun
を選択します。その後、[結果の比較] をクリックして [シミュレーション データ インスペクター] を開きます。シミュレーション データ インスペクターで、比較する信号として output_signal
を選択します。
関連する例
パラメーター
設計対象のシステム (SUD)
— 解析または変換するシステムまたはサブシステム
現在のシステム (既定値)
解析または固定小数点に変換するシステムまたはサブシステム。モデル内の個々のサブシステムを一度に 1 つ選択すると、数値的問題の原因を分離してデバッグしやすくなります。最上位モデルを選択することもできます。
特定のモデル構造を含むシステムを変換する方法の詳細については、以下を参照してください。
範囲の収集モード
— システム内のオブジェクトの範囲をツールで収集する方法
シミュレーション範囲 (既定値) | 派生範囲 | 派生範囲を使用したシミュレーション
システム内のオブジェクトの範囲をツールで収集する方法。次のいずれかとして指定します。
シミュレーション範囲 — シミュレーションを通じて範囲を収集します。複数のシミュレーション実行の範囲を収集してマージするには、シミュレーション入力を指定します。データ型推奨は、指定されるテスト ベンチと同等です。
派生範囲 — "範囲解析" または "派生範囲解析" とも呼ばれる範囲を派生する静的解析を通じて範囲を収集します。このオプションを使用して収集される範囲はモデルで指定された設計範囲のみに基づきます。このオプションは一般的に、より保守的なデータ型推奨を提供します。詳細については、範囲解析の機能についてを参照してください。
派生範囲を使用したシミュレーション — シミュレーションと派生範囲解析を通じて範囲を収集し、それらの結果を組み合わせます。推奨データ型はシミュレーション範囲と派生範囲の組み合わせに基づきます。このオプションは最も包括的な範囲情報を提供します。
詳細については、範囲の収集手法の選択を参照してください。
シミュレーション入力
— シミュレーションの入力
Use default model inputs
(既定値) | Simulink.SimulationInput
オブジェクト
シミュレーションの入力。Simulink.SimulationInput
オブジェクトとして指定します。
範囲の収集モードとして [シミュレーション範囲] または [派生範囲を使用したシミュレーション] を選択する場合、追加のシミュレーション入力を指定すると、収集される範囲とデータ型推奨の精度を高めることができます。範囲収集シミュレーション中、固定小数点ツールは、指定された各シミュレーション シナリオから最小値と最大値を取得します。選択した Simulink.SimulationInput
オブジェクトに複数のシミュレーション シナリオが含まれている場合、固定小数点ツールは、すべてのシミュレーション シナリオからマージされた範囲に基づいてデータ型を推奨します。
設計範囲の全体をカバーするような包括的な入力信号のセットを用意することで、システムのデータ型の推奨の精度は向上します。例については、マージされたシミュレーション範囲に対するデータ型の推奨を参照してください。
信号許容誤差
— 信号のログが有効になっているモデル内の信号の許容誤差
絶対許容誤差 | 相対許容誤差 | 時間の許容誤差
新しい固定小数点実装の数値的な動作が許容可能かどうかを判定するために、ログが有効になっているモデル内の個々の信号について許容誤差を定義できます。以下のいずれかの許容誤差のタイプを指定できます。
絶対許容誤差 — 元の信号と変換された設計の信号との、受容可能な最大の差の絶対値。
相対許容誤差 — 元の出力と新しい設計の出力の間の最大相対差 (パーセンテージで指定)。たとえば、値
1e-2
は元の値と変換された設計の信号の値との 1 パーセントの最大差を示します。時間の許容誤差 (秒) — 最大値と最小値によって比較する上限値と下限値が定義される時間間隔を定義します。
[固定小数点の最適化された変換] ワークフローでは、データ型を最適化するために少なくとも 1 つは動作の制約を指定しなければなりません。信号許容誤差は、指定できる動作の制約のタイプの 1 つです。
[固定小数点の反復的変換] ワークフローでは、データ型の推奨には信号許容誤差は必要ありませんが、組み込み型実行が許容誤差内に収まるかどうかをツールで判定するために必要になります。
[範囲の収集] ワークフローでは、範囲の収集には信号許容誤差は必要ありませんが、収集された範囲が許容誤差内に収まるかどうかをツールで判定するために必要になります。
信号の許容誤差は、有限の非負の値を返す任意の有効な MATLAB 式を使用して入力できます。 (R2023a 以降)
範囲の収集
— 範囲の収集
現在の設定を使用
(既定値) | 倍精度
| 単精度
| スケーリングされた倍精度
モデル内のオブジェクトの範囲を以下を使用して収集します。
現在の設定を使用
— モデルに設定されている現在のデータ型オーバーライドを使用します。倍精度
— モデル内のデータ型を double でオーバーライドします。単精度
— モデル内のデータ型を single でオーバーライドします。スケーリングされた倍精度
— モデル内のデータ型をスケーリングされた double でオーバーライドします。
収集される範囲は、範囲の収集モードとシミュレーション入力の指定によって異なります。
詳細については、固定小数点のインストルメンテーションおよびデータ型オーバーライドおよび範囲収集のためのカスタム データ型オーバーライド設定の使用を参照してください。
設定
— データ型指定のオプション
許容される語長
| 最大反復回数
| 推奨
| 符号属性を推奨
| 次を使用して検証
| ...
[設定] メニューで使用できるデータ型指定のオプションは、選択したワークフローによって異なります。
[固定小数点の最適化された変換] ワークフローのオプション
オプション | 説明 |
---|---|
許容される語長 |
設計対象の最適化されたシステムで使用できる語長。最適化の最終結果で、 |
最大反復回数 |
実行する最大反復回数。スカラー整数として指定します。理想的な解が見つかるか、最大反復回数に達するか、別の停止条件に達するまで、最適化プロセスで異なる解が反復して求められます。 |
最大時間 (秒) |
最適化を実行する最大時間。秒単位のスカラー数値として指定します。指定した時間、理想的な解、または別の停止条件に達するまで最適化が実行されます。 |
許容回数 (反復回数) |
新しい最適解が見つからない状況での最大反復回数。スカラー整数として指定します。アルゴリズムで新しい最適解を求め続けている限り最適化が続行されます。 |
安全余裕 (%) |
安全余裕。収集範囲の範囲内における増加率を示す正のスカラー値として指定します。安全余裕は、すべての収集範囲の和集合に適用されます。 |
目的関数 | 最適化探索時に使用する目的関数。最適化アルゴリズムは、指定された動作の制約を満たしながら、目的関数を最小化しようとします。
メモ 最適化中の目的関数として |
近傍探索の実行 |
最適化された解の近傍探索を実行するかどうか。 このオプションを無効にすると、最適化プロセスの速度は向上しますが、理想を下回る解を得る可能性も増加します。 |
並列の使用 |
最適化の反復を並列に実行するかどうか。 反復を並列に実行するには、Parallel Computing Toolbox™ ライセンスが必要です。Parallel Computing Toolbox ライセンスがない場合やこのオプションを有効にしない場合、反復は逐次実行されます。 |
[固定小数点の反復的変換] ワークフローのオプション
オプション | 説明 |
---|---|
推奨 | 設計対象のシステムのオブジェクトに対して小数部の長さまたは語長を推奨するかどうか。
|
符号属性を推奨 |
収集された範囲情報を使用して符号属性を推奨するかどうか。 |
シミュレーションの最小/最大値に対する安全余裕 (%) |
収集されたシミュレーション範囲に適用する安全余裕を設定します。固定小数点ツールは指定された量を収集された範囲に追加し、このより広い範囲を推奨のベースとします。 |
double/single/half 型の変換 |
倍精度、単精度、または半精度のデータ型が現在指定されているオブジェクトに対して推奨データ型を生成するかどうか。 |
継承された型の変換 |
現在継承されたデータ型が指定されている結果に対して推奨データ型を生成するかどうか。 |
既定の語長 |
データ型の推奨に使用する既定の語長。スカラー整数として指定します。この設定は |
既定の小数部の長さ |
データ型の推奨に使用する既定の小数部の長さ。スカラー整数として指定します。この設定は |
[範囲の収集] ワークフローのオプション
オプション | 説明 |
---|---|
次を使用して検証 | 組み込みシミュレーションに使用するデータ型オーバーライドの設定。
|
制限
一部のブロックは固定小数点データ型をサポートしておらず、固定小数点の変換でエラーの原因になることがあります。固定小数点データ型をサポートしないブロックを参照してください。
一部のモデル構造はデータ型伝播の問題を引き起こす可能性があります。データ型の伝播エラーを引き起こす可能性のあるモデルを参照してください。
モデルに MATLAB Function ブロックが含まれている場合、正常に変換を行うには、サポートされているモデル構造のみを使用してください。固定小数点の自動変換でサポートされる MATLAB 言語機能を参照してください。
ヒント
ベスト プラクティスおよび推奨事項については、固定小数点の変換ワークフローのベスト プラクティスを参照してください。
固定小数点ツールのビューをカスタマイズするには、固定小数点ツールでのビューの制御を参照してください。
最適化ワークフローのトラブルシューティングのヘルプについては、データ型最適化が成功しないを参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)