Main Content

fxpOptimizationOptions クラス

データ型最適化のオプションの指定

説明

fxpOptimizationOptions オブジェクトでは、データ型最適化プロセスで使用するオプションと制約を指定できます。

作成

opt = fxpOptimizationOptions() は、fxpOptimizationOptions オブジェクトを既定の値で作成します。

opt = fxpOptimizationOptions(Name,Value) は、1 つ以上の Name,Value のペアの引数で指定されたプロパティ値を使用して fxpOptimizationOptions オブジェクトを作成します。Name は一重引用符 ('') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

すべて展開する

実行する最大反復回数。スカラー整数として指定します。理想的な解が見つかるか、最大反復回数に達するか、別の停止条件に達するまで、最適化プロセスで異なる解が反復して求められます。

例: opt.MaxIterations = 75;

データ型: double

最適化を実行する最大時間。秒単位のスカラー数値として指定します。指定した時間、理想的な解、または別の停止条件に達するまで最適化が実行されます。

例: opt.MaxTime = 1000;

データ型: double

新しい最適解が見つからない状況での最大反復回数。スカラー整数として指定します。アルゴリズムで新しい最適解を求め続けている限り最適化が続行されます。

例: opt.Patience = 15;

データ型: double

最適化プロセスの実行中にコマンド ラインに表示する情報のレベル。'High''Moderate''Silent' のいずれかとして指定します。

  • 'Silent' - 最適化プロセスが完了するまでコマンド ラインに情報が表示されません。

  • 'Moderate' - 最適化プロセスのメジャー ステップごとに、前処理、モデル化、最適化のいずれのフェーズであるかなどの情報が表示されます。

  • 'High' - 最適化プロセスの反復ごとに、新しい最適解が見つかったかどうかや解のコストなどの情報がコマンド ラインに表示されます。

例: opt.Verbosity = 'Moderate';

データ型: char | string

設計対象の最適化されたシステムで使用できる語長を指定します。このプロパティは、最適化プロセスの近傍探索をターゲットにする場合に使用します。最適化の最終結果で、AllowableWordLengths の交差部分の語長とモデルの [ハードウェア実行] ペインで指定されたハードウェアの制約と互換性がある語長が使用されます。

例: opt.AllowableWordLengths = [8:11,16,32];

データ型: double

最適化探索時に使用する目的関数。次の値のいずれかとして指定します。

  • 'BitWidthSum' — 総ビット幅合計を最小限に抑えます。

  • 'OperatorCount' — 生成される C コードで推定される演算子数を最小限に抑えます。

    このオプションを使用すると、Simulink® モデルから生成される C コード用のプログラム メモリ サイズが小さくなる可能性があります。目的関数 'OperatorCount' は、FPGA または ASIC ターゲットには適していません。

    メモ

    最適化中の目的関数として 'OperatorCount' を使用するには、モデルでコード生成の準備ができていなければなりません。コード生成の準備状態を判断する方法の詳細については、コード生成用のモデルと構成のチェック (Embedded Coder)を参照してください。

データ型: char

最適化の反復を並列に実行するかどうか。logical として指定します。反復を並列に実行するには、Parallel Computing Toolbox™ ライセンスが必要です。Parallel Computing Toolbox ライセンスがない場合、または false を指定すると、反復は逐次実行されます。

データ型: logical

最適化の追加の詳細オプション。AdvancedOptions は最適化に影響する追加プロパティを含むオブジェクトです。

プロパティ説明
PerformNeighborhoodSearch
  • 1 (既定) – 最適化された解の近傍探索を実行します。

  • 0 – 近傍探索を実行しません。このオプションを選択すると、最適化プロセスの速度は向上しますが、理想を下回る解を得る可能性も増加します。

EnforceLooseCoupling

一部のブロックのパラメーターでは、入力のデータ型を共有するように強制されたり、出力を入力と同じデータ型にするように強制される場合があります。

  • 1 (既定) – 設計対象のシステムに含まれるすべてのブロックについて、オプティマイザーではこの制限を緩和することが許可されます。この制限を緩和すると、より適したデータ型をオプティマイザーで指定できるようになります。

  • 0 – 設計対象のシステムに含まれるブロックについて、オプティマイザーではこの制限を緩和することが許可されません。

UseDerivedRangeAnalysis
  • 0 (既定) – オプティマイザーは、解の評価の際に、モデルの設計範囲から派生した範囲を考慮しません。

  • 1 – オプティマイザーは、解の評価の際に、観察したシミュレーション範囲とモデルの設計範囲から派生した範囲の両方を考慮します。

モデル コンフィギュレーションによっては、派生された範囲の解析はモデルのシミュレーションよりも長い時間がかかることがあります。

SimulationScenariosSimulink.SimulationInput オブジェクトを使用して、最適化中に考慮する追加のシミュレーション シナリオを定義します。例については、複数のシミュレーション シナリオを使用したデータ型の最適化を参照してください。
SafetyMargin

収集範囲の範囲内における増加率を示す正のスカラー値として指定される安全余裕を入力します。安全余裕は、シミュレーション範囲、派生範囲、設計範囲を含むすべての収集範囲の和集合に適用されます。

DataTypeOverride

最適化の範囲収集フェーズでシミュレーション時にモデル内で指定されたデータ型をオーバーライドします。

  • 'Off' (既定値) – データ型をオーバーライドしません。

  • 'Single' – single でデータ型をオーバーライドします。

  • 'Double' – double でデータ型をオーバーライドします。

  • 'ScaledDouble' – スケーリングされた double でデータ型をオーバーライドします。

HandleUnsupported

一部のブロックは固定小数点の変換でサポートされていません。詳細については、固定小数点データ型をサポートしないブロックを参照してください。

  • 'Isolate' (既定値) – サポートされていないブロックを Data Type Conversion ブロックで分離します。分離されたブロックはオプティマイザーで無視されます。

  • 'Error' – 固定小数点の変換でサポートされていないブロックがシステムに含まれる場合、最適化を停止してエラーをレポートします。

  • 'Warn' – 固定小数点の変換でサポートされていないブロックがシステムに含まれる場合、警告を表示します。サポートされていないブロックは無視して最適化が続行されます。このオプションを使用すると、最適化の完了後に、サポートされていない構造をルックアップ テーブルなどの他の解に置き換えることができます。

PerformSlopeBiasCancellation
  • 0 (既定値) – 勾配とバイアスのスケーリングのデータ型を伝播しません。

  • 1 – 勾配とバイアスのスケーリングのデータ型を設計対象のシステム外から伝播します。生成コードの複雑度を低減するために勾配とバイアスが選択されます。

InstrumentationContext[model '/Subsystem'] – 最適化の範囲収集ステップにおける最小、最大、オーバーフローのログのインストルメンテーションをサブシステムに制限します。サブシステムは最上位モデルの配下になければならず、設計対象のシステムを含んでいる必要があります。

メソッド

addSpecificationシステムでの既知のデータ型の指定
addTolerance最適化されたシステムの数値許容誤差の指定
showSpecificationsシステムに対する指定の表示
showTolerancesシステムに対して指定された許容誤差の表示

コピーのセマンティクス

ハンドル。ハンドル クラスがコピー操作にどのように影響するかについては、オブジェクトのコピーを参照してください。

すべて折りたたむ

fxpOptimizationObject を既定のプロパティ値で作成します。

options = fxpOptimizationOptions();

作成後にドット構文を使用してプロパティを編集します。

options.Patience = 15;
options.AllowableWordLengths = [8,16,32];
options.AdvancedOptions.UseDerivedRangeAnalysis = true
options = 
  fxpOptimizationOptions with properties:

           MaxIterations: 50
                 MaxTime: 600
                Patience: 15
               Verbosity: High
    AllowableWordLengths: [8 16 32]
       ObjectiveFunction: BitWidthSum
             UseParallel: 0

   Advanced Options
         AdvancedOptions: [1x1 DataTypeOptimization.AdvancedFxpOptimizationOptions]

オブジェクトの作成時にプロパティの名前と値のペアを使用してプロパティを設定します。

options = fxpOptimizationOptions('Patience',15,'AllowableWordLengths',[8,16,32])
options = 
  fxpOptimizationOptions with properties:

           MaxIterations: 50
                 MaxTime: 600
                Patience: 15
               Verbosity: High
    AllowableWordLengths: [8 16 32]
       ObjectiveFunction: BitWidthSum
             UseParallel: 0

   Advanced Options
         AdvancedOptions: [1x1 DataTypeOptimization.AdvancedFxpOptimizationOptions]

詳細オプションを指定します。

options.AdvancedOptions.UseDerivedRangeAnalysis = 1
options = 
  fxpOptimizationOptions with properties:

           MaxIterations: 50
                 MaxTime: 600
                Patience: 15
               Verbosity: High
    AllowableWordLengths: [8 16 32]
       ObjectiveFunction: BitWidthSum
             UseParallel: 0

   Advanced Options
         AdvancedOptions: [1x1 DataTypeOptimization.AdvancedFxpOptimizationOptions]

固定小数点ツールに fxpOptimizationOptions オブジェクトをインポートして、アプリでデータ型最適化を実行できます。設定をアプリで手動で指定する代わりに fxpOptimizationOptions オブジェクトをインポートすることで、簡単に設定を保存して復元できます。

モデルを開きます。

model = 'ex_controllerHarness';
open_system(model);

許容される語長や反復回数などの最適化のオプションを指定するには、fxpOptimizationOptions オブジェクトを使用します。

options = fxpOptimizationOptions('AllowableWordLengths',[2:32],...
    'MaxIterations',3e2,...
    'Patience',50);

Controller サブシステムを選択して固定小数点ツールを開きます。

fxptdlg('ex_controllerHarness/Controller')

固定小数点ツールで、[新規]、[固定小数点の最適化された変換] を選択して、データ型最適化ワークフローを開始します。

[設定] ペインの [詳細オプション] で、インポートする最適化オプション オブジェクトをドロップダウン メニューから選択します。[インポート] をクリックします。

FPT_advancedOptionsOptimization4.png

ツールストリップの [設定] メニューを展開し、最適化オプションが適用されたことを確認します。

FPT_modifiedSettingsOptimization.png

バージョン履歴

R2018a で導入

すべて展開する