最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fastRestartForLinearAnalysis

線形解析の高速リスタート

説明

fastRestartForLinearAnalysis(model,'on') は、線形解析の高速リスタートを 'on' にして、1 回のコンパイル ワークフロー用に model を準備します。コンパイルを実行する関数がいったん呼び出されると、関数が実行を終了した後もモデルはコンパイルされたままになります。その後は、追加のコンパイルを行わなくても、コンパイルを実行する関数を呼び出すことができます。コンパイルを実行する関数の以降の呼び出しで線形解析ポイントまたはブロック置換が変更される場合、モデルは再コンパイルされます。

fastRestartForLinearAnalysis(model,'on',Name,Value) は、1 つ以上の Name,Value ペア引数で指定された追加オプションを指定して、1 回のコンパイル ワークフロー用に model を準備します。

fastRestartForLinearAnalysis(model,'off') は、線形解析の高速リスタートをオフにしてモデル パラメーターを元の値に戻します。Simulink® では、コンパイルされた状態にある model を閉じることはできません。線形解析の高速リスタートをオフにして model を閉じるには、この構文を使用します。

コンパイルされた Simulink モデルの上部に表示されるリンクをクリックして fastRestartForLinearAnalysis をオフにすることもできます。詳細については、ヒントを参照してください。

すべて折りたたむ

この例では、fastRestartForLinearAnalysis を使って、閉ループのエンジン速度制御モデルの平衡化と線形化を行います。

エンジン速度の制御モデルを開いて線形化のための解析ポイントを取得します。これを行うのは、findop の最初の呼び出しと linearize の間における再コンパイルを防ぐためです。

model = 'scdspeedctrl';
open_system(model);
io = getlinio(model);
fopt = findopOptions('DisplayReport','off');

ベース ワークスペース変数 kp および ki を使用するように PI コントローラーを設定します。

block = [model,'/PID Controller'];
set_param(block,'P','kp');
set_param(block,'I','ki');

変化させるパラメーターのグリッドを作成します。

vp = 0.0005:0.0005:0.003;
vi = 0.0025:0.0005:0.005;
[KP,KI] = ndgrid(vp,vi);
N = numel(KP);
sz = size(KP);

ベース ワークスペース変数 kp および ki を初期化します。

kp = KP(1);
ki = KI(1);

fastRestartForLinearAnalysis をオンにして 'AnalysisPoints'io を使用します。

fastRestartForLinearAnalysis(model,'on','AnalysisPoints',io);

ループ内で線形解析を実行します。モデルがコンパイルされた状態にある場合、必ずパラメーターが更新された後にブロックの初期化を呼び出すようにしてください。

ops = operspec(model); % operating point specifications
for i = N:-1:1
    kp = KP(i);
    ki = KI(i);
    Simulink.Block.eval(block); % evaluate the block
    op = findop(model,ops,fopt); % trim the model
    [j,k] = ind2sub(sz,i);
    sysFastRestartLoop(:,:,j,k) = linearize(model,io,op); % linearize the model
end

fastRestartForLinearAnalysis をオフにしてモデルを閉じます。

fastRestartForLinearAnalysis(model,'off');
bdclose(model);

入力引数

すべて折りたたむ

Simulink モデル名。文字ベクトル、string、slTuner オブジェクト、または slLinearizer オブジェクトとして指定します。モデルは現在の作業フォルダー内または MATLAB® パス上になければなりません。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペア引数を任意の順序で指定できます。

例: ...,'UseBusSignalLabels','on'

入力、出力、および開始点を含む解析ポイント セット。'AnalysisPoints' と、線形化 I/O オブジェクトまたは線形化 I/O オブジェクトのベクトルで構成されるコンマ区切りのペアとして指定します。'AnalysisPoints' を作成するには次を行います。

  • linio を使用して入力、出力および開始点を定義します。

  • 入力、出力および開始点が Simulink モデルで指定されている場合、getlinio を使用してモデルからこれらの点を抽出します。

'AnalysisPoints' 内の各線形化 I/O オブジェクトは、Simulink モデル model またはモデルの階層構造におけるノーマル モードのモデル参照に対応していなければなりません。

コンパイルを実行する関数の以降の呼び出しで線形解析ポイントが変更される場合、モデルは再コンパイルされます。

線形化の入力、出力、開始点の指定の詳細については、モデルの一部を線形化するよう指定を参照してください。

ブロックおよびモデル サブシステムの代替の線形化。'BlockSubstitutions' と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 構造体配列

  • string 配列

  • 文字ベクトル

  • 文字ベクトルの cell 配列

'BlockSubstitutions' を使用して、ブロックまたはサブシステムのカスタム線形化を指定します。たとえば、不連続性や Triggered Subsystem のあるブロックのように解析的な線形化をもたないブロックに線形化を指定できます。

コンパイルを実行する関数の以降の呼び出しでブロック置換が変更される場合、モデルは再コンパイルされます。

線形化されたモデル内で I/O のラベル付けにバス信号チャネルの番号と名前のどちらを使用するかを示すフラグ。'UseBusSignalLabels' と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'off' — バス信号チャネル番号を使用して、線形化されたモデルのバス信号の I/O にラベルが付けられます。

  • 'on' — バス信号名を使用して、線形化されたモデルのバス信号の I/O にラベルが付けられます。I/O ポイントが次に示すブロックの出力ポイントにある場合、バス信号名が結果に表示されます。

    • バス オブジェクトを含んでいる、ルートレベルの Inport ブロック

    • Bus Creator ブロック

    • ソースが Bus Creator ブロックの出力まで遡って追跡するサブシステム ブロック

    • ソースがバーチャルまたは非バーチャル サブシステムの境界のみのパス スルーにより、ルートレベルの Inport まで遡って追跡するサブシステム ブロック

ヒント

Simulink では、コンパイルされた状態にある model を閉じることはできません。model を閉じるには、線形解析の高速リスタートをオフにします。fastRestartForLinearAnalysis は次のいずれかの方法でオフにすることができます。

  • 構文 fastRestartForLinearAnalysis(model,'off') を使用。

  • Simulink モデルの上部に表示されるリンクをクリック。

R2019a で導入