Main Content

frestimateOptions

周波数応答推定のオプション

構文

options = frestimateOptions
options = frestimateOptions('OptionName',OptionValue)

説明

options = frestimateOptions は、既定の設定により、周波数応答推定オプション オブジェクト options を作成します。このオブジェクトを関数 frestimate に渡して、これらのオプションを周波数応答推定に使用します。

options = frestimateOptions('OptionName',OptionValue) コンマで区切った名前/値の組み合わせで指定されたオプションを使用して、周波数応答推定のオプション options オブジェクトを作成します。

入力引数

'OptionName',OptionValue

推定オプション。オプション名とオプション値のコンマ区切りのペアとして指定します。

オプション名オプション値
'BlocksToHoldConstant'

周波数応答の推定中に一定に保つ時変ソース ブロックのブロック パス。Simulink.BlockPath オブジェクトの配列として指定します。周波数応答推定を妨げる可能性のある時変ソース ブロックを特定するには、frest.findSources を使用します。

既定: 空

'UseParallel'

frestimate コマンドでの推定の並列計算を可能にするには、'on' に設定します。

既定: 'off'

'ParallelPathDependencies'

推定するモデルの実行に必要なパスの依存関係を指定する文字ベクトルの cell 配列または string 配列。並列プールのすべてのワーカーは、'ParallelPathDependencies' にリストされたフォルダーにアクセスできなければなりません。

既定: 空

すべて折りたたむ

モデルを開きます。

mdl = 'scdspeed_ctrlloop';
open_system(mdl)

参照サブシステムをノーマル モードに変換します。

set_param('scdspeed_ctrlloop/Engine Model','SimulationMode','Normal');

モデルから入出力ポイントを取得し、sinestream の入力信号を作成します。

io = getlinio(mdl);
in = frest.Sinestream('Frequency',logspace(1,2,10),'NumPeriods',30,...
              'SettlingPeriods',25);

モデル内の時変ソースを特定します。

srcblks = frest.findSources(mdl)
srcblks = 
  1x4 BlockPath array with properties:

    SubPath
    isLoadingModel
    isSavingModel

推定のオプション セットを作成し、時変ソース ブロックを指定します。

opts = frestimateOptions('BlocksToHoldConstant',srcblks);

周波数応答を推定します。

[sysest,simout] = frestimate(mdl,io,in,opts);

現在の作業フォルダーにないファイルへの依存関係について説明するため、モデル ファイルを一時フォルダーに移動し、そのフォルダーのパスを返します。補助関数 pathdepSetup により、一時フォルダーが MATLAB® 検索パスにも追加されます。

tempPath = pathdepSetup;

Simulink® モデルを開きます。

mdl = 'scdpathdep';
open_system(mdl)

モデルの依存関係のパスを取得します。

dirs = frest.findDepend(mdl)
dirs = 1×1 cell array
    {'C:/myTempFiles/tpd02d55f5_8b4c_489e_938c_ea004b9c771d'}

結果のパスはローカル ドライブ C:/ にあります。

リモート ワーカーを使用している場合、すべてのワーカーがローカル ドライブにアクセスできるように指定します。たとえば、次のコマンドは、C ドライブへのすべての参照をリモート ワーカーがアクセスできる等価のネットワーク アドレスに変換します。

dirs = regexprep(dirs,'C:/','\\\\hostname\\C$\\')

並列計算を有効化して、モデルのパスの依存関係を指定します。

options = frestimateOptions(...
    'UseParallel','on',...
    'ParallelPathDependencies',dirs);

これで、並列計算を使用した周波数応答推定のオプションを使用できるようになります。

io = getlinio(mdl);
in = frest.Sinestream('SimulationOrder','OneAtATime');
frd = frestimate(mdl,io,in,options);

周波数応答の推定が完了したら、モデルを閉じることができます。

bdclose(mdl)

モデル ファイルを現在の作業フォルダーに戻し、一時フォルダーをパスから削除します。

pathdepCleanup(tempPath)

代替方法

パスの依存関係をもたないすべてのモデルに対して並列計算を有効化することができます。そのためには、MATLAB® の基本設定ダイアログ ボックスで、[Simulink® Control Design™] をクリックします。次に、["frestimate" コマンドを使用する場合は並列プールを使用する] オプションをオンにします。このグローバル設定は、このオプションが変更されるまでセッション間で保持されます。

このオプションをオンにして frestimate コマンドを使用する際、frestimateOptions オブジェクトを提供する必要はありません。

モデルにパスの依存関係がある場合は、パスの依存関係を指定する独自の周波数応答オプションのオブジェクトを作成しなければなりません。推定を開始する前に ParallelPathDependencies オプションを使用します。

バージョン履歴

R2010a で導入