ドキュメンテーション

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

slTuner

Simulink モデルの制御システム調整のインターフェイス

構文

st = slTuner(mdl,tuned_blocks)
st = slTuner(mdl,tuned_blocks,pt)
st = slTuner(mdl,tuned_blocks,param)
st = slTuner(mdl,tuned_blocks,op)
st = slTuner(mdl,tuned_blocks,blocksub)
st = slTuner(mdl,tuned_blocks,options)
st = slTuner(mdl,tuned_blocks,pt,op,param,blocksub,options)

説明

st = slTuner(mdl,tuned_blocks) は、Simulink® モデル mdl の制御システム ブロックを調整するための slTuner インターフェイス st を作成します。このインターフェイスにより、モデルでマークされた線形解析ポイントが st解析ポイントとして追加されます。このインターフェイスでは、開始点を示す線形解析ポイントも永続的な開始点として追加されます。たとえば、ブロック調整などのためにインターフェイスが線形化を実行する際、モデルの初期条件が操作点として使用されます。

st = slTuner(mdl,tuned_blocks,pt) は、指定された点を st の解析ポイントのリストに追加します。モデルでマークされた線形解析ポイントは無視します。

st = slTuner(mdl,tuned_blocks,param) は、モデル ブロックを調整する際に値を変化させるパラメーターを指定します。

st = slTuner(mdl,tuned_blocks,op) は、モデル ブロックを調整する際の操作点を指定します。

st = slTuner(mdl,tuned_blocks,blocksub) では、ブロックおよびサブシステムの代替の線形化を指定します。この構文を使用して、たとえば、ブロックのカスタム線形化を指定します。また、不連続性や Triggered Subsystem のあるブロックのように、正常に線形化されないブロックでこの構文を使用することもできます。

st = slTuner(mdl,tuned_blocks,options) は、線形化アルゴリズムのオプションを構成します。

st = slTuner(mdl,tuned_blocks,pt,op,param,blocksub,options) では、入力引数 ptopparamblocksub および options の任意の組み合わせを使用して、st を作成します。たとえば、次のようなことができます。

  • st = slTuner(mdl,tuned_blocks,pt,param)

  • st = slTuner(mdl,tuned_blocks,op,param)

オブジェクトの説明

slTuner は、Simulink モデルと、調整コマンド systune および looptune との間のインターフェイスを提供します。slTuner を使用して以下を行うことができます。

  • 制御アーキテクチャを指定します。

  • 調整するブロックを指定し、パラメーター化します。

  • 制御システムを調整します。

  • (線形化した) 開ループ応答と閉ループ応答を計算して設計を検証します。

  • 調整した値をモデルに書き込みます。

systune などの調整コマンドは線形モデル上で動作するため、slTuner インターフェイスは、使用する Simulink モデルの線形化を自動的に計算し、保存します。この線形化は、slTuner インターフェイスのプロパティのいずれかを変更すると自動的に更新されます。この更新は、インターフェイスに格納されている線形化をクエリするコマンドの呼び出し時に実行されます。そのようなコマンドには、systunelooptunegetIOTransfer および getLoopTransfer があります。線形化の詳細については、線形化とはを参照してください。

すべて折りたたむ

systune または looptune で調整するブロックを指定する Simulink® モデルの slTuner インターフェイスを作成し、設定します。

Simulink モデルを開きます。

mdl = 'scdcascade';
open_system(mdl);

この制御システムは、PI コントローラー C2 をもつ内側のループと、PI コントローラー C1 をもつ外側のループの 2 つのフィードバック ループで構成されています。このモデルを調整し、次の制御目的を達成するとします。

  • システムの出力 y1m において、r の設定値の変化に対して、定常偏差ゼロかつ指定の立ち上がり時間で追従。

  • d2 で表現される外乱を抑制。

systune コマンドを使うと、TuningGoal オブジェクトで指定するこれらの設計要件を満たすようにコントローラー ブロックを同時に調整することができます。slTuner インターフェイスがこの調整タスクを設定します。

モデルの slTuner インターフェイスを作成します。

st = slTuner(mdl,{'C1','C2'});

このコマンドによって slTuner インターフェイスが初期化され、2 つの PI Controller ブロックが調整可能として指定されます。調整可能な各ブロックは、そのタイプに応じて自動的にパラメーター化され、Simulink モデル内の値で初期化されます。モデルにおける調整不可能な残りの部分の線形化が計算され、slTuner インターフェイスに格納されます。

slTuner インターフェイスを設定するには、設計要件に関連する任意の信号箇所を解析ポイントとして指定します。追従要件に対して、出力と基準入力を追加します。また、外乱の抑制箇所も追加します。

addPoint(st,{'r','y1m','d2'});

これにより、モデル内のこれらの箇所は、設計目標を取得する TuningGoal オブジェクトで参照できるようになります。

slTuner インターフェイス構成の概要をコマンド ウィンドウで表示します。

st
 
slTuner tuning interface for "scdcascade":

2 Tuned blocks: (Read-only TunedBlocks property) 
--------------------------
Block 1: scdcascade/C1
Block 2: scdcascade/C2
 
3 Analysis points: 
--------------------------
Point 1: Signal "r", located at port 1 of scdcascade/setpoint
Point 2: Signal "y1m", located at port 1 of scdcascade/Sum
Point 3: Port 1 of scdcascade/d2
 
No permanent openings. Use the addOpening command to add new permanent openings.
Properties with dot notation get/set access:
      Parameters         : [] 
      OperatingPoints    : [] (model initial condition will be used.)
      BlockSubstitutions : []
      Options            : [1x1 linearize.SlTunerOptions]
      Ts                 : 0

画面には、指定された調整ブロック、解析ポイント、インターフェイスに関するその他の情報が表示されます。コマンド ウィンドウで、強調表示されている信号のいずれかをクリックすると、その信号の Simulink モデル内での位置が表示されます。addPoint コマンドでブロック名 'd2' を指定することと、このブロックの単一の出力信号を解析ポイントとして指定することは等価です。

この段階で、TuningGoal オブジェクトによって設計目標を取得し、systune または looptune を使用して、制御システムを設計目標を満たすように調整できます。

設計目標を指定する他に、解析ポイントを使用してシステム応答を抽出することもできます。たとえば、基準信号 'r' と出力 'y1m' の間のステップ応答を抽出し、プロットします。

T = getIOTransfer(st,'r','y1m');
stepplot(T)

入力引数

すべて折りたたむ

Simulink モデル名。文字ベクトルまたは string として指定します。

例: 'scdcascade'

st の調整ブロックのリストに追加するブロック。以下で指定します。

  • 文字ベクトルまたは string — ブロック パス。ブロックの絶対パスまたは部分パスを指定できます。部分パスは、絶対パスの末尾と一致し、追加するブロックを確定的に識別できるものでなければなりません。たとえば、Simulink モデル内で 1 度しか使用されていない名前をもつブロックは、ブロック名で参照できます。

    たとえば、blk = 'scdcascade/C1' とします。

  • 文字ベクトルの cell 配列または string 配列 — 複数のブロック パス。

    たとえば、blk = {'scdcascade/C1','scdcascade/C2'} とします。

st の解析ポイントのリストに追加する解析ポイント。以下で指定します。

  • 文字ベクトルまたは string — 解析ポイントの識別子。次のいずれかを指定できます。

    • 信号名 (pt = 'torque' など)

    • 出力端子が 1 つのブロックのブロック パス (pt = 'Motor/PID' など)

    • 信号の発信元のブロック パスおよび端子 (pt = 'Engine Model/1' など)

  • 文字ベクトルの cell 配列または string 配列 — 複数の解析ポイント識別子を指定します。以下に例を示します。

    pt = {'torque','Motor/PID','Engine Model/1'}
  • 線形化 I/O オブジェクトのベクトル — linio を使用して pt を作成します。以下に例を示します。

    pt(1) = linio('scdcascade/setpoint',1,'input');
    pt(2) = linio('scdcascade/Sum',1,'output');

    ここでは、pt(1) で入力を指定し、pt(2) で出力を指定します。

    このインターフェイスにより、pt で指定されたすべてのポイントが追加され、それらの I/O タイプは無視されます。このインターフェイスでは、'loopbreak' タイプのすべての信号も永続的な開始点として追加されます。

mdl を線形化するためのパラメーター サンプル。以下で指定します。

  • 構造体 — param を次のフィールドをもつ構造体として指定して、単一パラメーターの値を変化させます。

    • Name — パラメーター名。文字ベクトルまたは string として指定します。モデル ワークスペース、MATLAB® ワークスペース、またはデータ ディクショナリ内の変数である任意のモデル パラメーターを指定できます。モデルによって使用される変数がスカラー値でない場合は、スカラー数値に関連付けられた表現としてパラメーター名を指定します。たとえば、ベクトル V の最初の要素をパラメーターとして使用するには、次のようにします。

      param.Name = 'V(1)';
    • Value — パラメーター サンプル値。double の配列として指定します。

    たとえば、パラメーター A の値を 10% の範囲内で変化させます。

    param.Name = 'A';
    param.Value = linspace(0.9*A,1.1*A,3);
  • 構造体配列 — 複数のパラメーターの値を変化させます。たとえば、パラメーター A および b の値を 10% の範囲内で変化させます。

    [A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...
                             linspace(0.9*b,1.1*b,3));
    params(1).Name = 'A';
    params(1).Value = A_grid;
    params(2).Name = 'b';
    params(2).Value = b_grid;

詳細については、バッチ線形化用のパラメーター サンプルの指定を参照してください。

param で調整可能なパラメーターのみを指定する場合、ソフトウェアはモデルのコンパイルを 1 回のみ実行して、モデルをバッチ線形化します。st.OperatingPoints を操作点オブジェクトのみで構成する場合も、ソフトウェアはモデルのコンパイルを 1 回のみ実行します。

パラメーター サンプリングによるバッチ線形化がどのように機能するかを示す例については、パラメーター値を変化させて複数の伝達関数を取得を参照してください。その例では、slLinearizer を使用しますが、プロセスは slTuner と同じです。

LPV System ブロックに必要なオフセットを計算するには、param を指定し、st.Options.StoreOffsetstrue に設定します。その後、getIOTransfer などの線形化関数を呼び出す際に追加の線形化情報を返したり、getOffsetsForLPV を使用してオフセットを抽出したりすることができます。

mdl を線形化するための操作点。以下で指定します。

  • 操作点オブジェクト。findop を使用して単一の操作点仕様または単一のスナップショット時間で作成されます。

  • 操作点オブジェクトの配列。複数の操作点を指定するものです。

    操作点オブジェクトの配列を作成するには、次の方法があります。

  • シミュレーションのスナップショット時間を指定する正のスカラーのベクトル。

st.Parameters を設定する場合、op を以下のいずれかで指定します。

  • 単一の操作点。

  • Parameters プロパティで指定されたパラメーター グリッドのサイズと一致するサイズをもつ操作点オブジェクトの配列。mdl をバッチ線形化する場合、ソフトウェアは 1 つのモデルのコンパイルのみを使用します。パラメーター値の組み合わせに対応する操作点を取得するには、線形化の前に param を使用してモデルをバッチ平衡化します。linearize コマンドを使用する例については、パラメーターの変化から派生した複数の操作点でのモデルのバッチ線形化を参照してください。

  • 複数のスナップショット時間。mdl をバッチ線形化する場合、ソフトウェアはスナップショット時間とパラメーター グリッド点の組み合わせごとにモデルをシミュレートします。この操作では、計算量が増大する場合があります。

ブロックおよびモデル サブシステムの代替の線形化。構造体または n 行 1 列の構造体配列として指定します。n は、線形化を指定するブロックの数です。blocksub を使用して、ブロックまたはサブシステムのカスタム線形化を指定します。たとえば、不連続性や Triggered Subsystem のあるブロックのように解析的な線形化をもたないブロックに線形化を指定できます。

ブロックに複数の代替線形化を指定して、モデルをバッチ線形化することができます。この機能は、たとえば Saturation ブロックの線形化を変化させたときにモデル ダイナミクスが受ける影響を調べるために使用します。

代替線形化の各構造体には次のフィールドがあります。

線形化を指定するブロックのブロック パス。文字ベクトルとして指定します。

ブロックの代替の線形化。次のいずれかとして指定します。

  • double — SISO ブロックの線形化をゲインとして指定します。

  • double の配列 — MIMO ブロックの線形化を nu 行 ny 列のゲイン値の配列として指定します。ここで nu は入力の数、ny は出力の数です。

  • LTI モデル、不確かさをもつ状態空間モデル、または不確かさをもつ実数のオブジェクト — 指定されたモデルの I/O 構成が、Name で指定されるブロックの構成に一致しなければなりません。不確かさをもつモデルの使用には Robust Control Toolbox™ ソフトウェアが必要です。

  • LTI モデルの配列、不確かさをもつ状態空間モデルの配列、または不確かさをもつ実数のオブジェクトの配列 — 複数のブロック置換を使用してモデルをバッチ線形化します。配列にある各モデルの I/O 構成は、カスタム線形化を指定しているブロックの構成に一致しなければなりません。次のように指定します。

    • param でモデル パラメーターを変化させ、Value をモデル配列として指定する場合、Value の次元はパラメーター グリッドのサイズに一致しなければなりません。

    • 複数のブロックでブロック置換を定義し、複数のブロックで Value を LTI モデルの配列として指定する場合、これらの配列の次元が一致しなければなりません。

  • 次のフィールドをもつ構造体。

    フィールド説明
    Specification

    ブロックの線形化。次のいずれかを含む文字ベクトルとして指定します。

    指定された式または関数が次のいずれかを返さなければなりません。

    • D 行列形式の線形モデル

    • Control System Toolbox™ LTI モデル オブジェクト

    • 不確かさをもつ状態空間モデル、または不確かさをもつ実数のオブジェクト (Robust Control Toolbox ソフトウェアが必要)

    返されるモデルの I/O 構成は、Name で指定されたブロックの構成に一致しなければなりません。

    Type

    仕様のタイプ。次のいずれかとして指定します。

    • 'Expression'

    • 'Function'

    ParameterNames

    線形化関数のパラメーター名。文字ベクトルの cell 配列として指定します。ParameterNames は、Type = 'Function' およびブロックの線形化関数が入力パラメーターを必要とする場合にのみ指定します。これらのパラメーターは、指定されたブロックの線形化にのみ影響を与えます。

    対応する blocksub.Value.ParameterValues フィールドも指定しなければなりません。

    ParameterValues

    線形化関数のパラメーター値。double のベクトルとして指定します。パラメーター値の順序は、blocksub.Value.ParameterNames のパラメーター名の順序に一致していなければなりません。ParameterValues は、Type = 'Function' およびブロックの線形化関数が入力パラメーターを必要とする場合にのみ指定します。

slTuner のオプション。slTunerOptions オプション セットとして指定します。

例: options = slTunerOptions('IgnoreDiscreteStates','on')

プロパティ

slTuner オブジェクトのプロパティには、以下が含まれます。

TunedBlocks

mdl 内の調整対象となるブロック。文字ベクトルの cell 配列として指定します。

slTuner インターフェイスを作成すると、tuned_blocks 入力引数で指定したブロックが自動的に TunedBlocks プロパティに設定されます。既存の slTuner インターフェイスに対して追加の調整可能なブロックを指定するには、addBlock を使用します。

Ts

mdl の解析と調整のためのサンプル時間。非負のスカラーとして指定します。

このプロパティはドット表記 (st.Ts = Ts) で設定します。

既定: 0 (連続時間を含意します)

Parameters

mdl を線形化するためのパラメーター サンプル。構造体または構造体の配列として指定します。

param 入力引数またはドット表記 (st.Parameters = param) を使用してこのプロパティを設定します。param は以下のいずれかでなければなりません。

param で調整可能なパラメーターのみを指定する場合、ソフトウェアはモデルのコンパイルを 1 回のみ実行して、モデルをバッチ線形化します。st.OperatingPoints を操作点オブジェクトのみで構成する場合も、ソフトウェアはモデルのコンパイルを 1 回のみ実行します。

OperatingPoints

mdl を線形化するための操作点。操作点オブジェクト、操作点オブジェクトの配列または正のスカラーの配列として指定します。

op 入力引数またはドット表記 (st.OperatingPoints = op) を使用してこのプロパティを設定します。op は以下のいずれかでなければなりません。

  • 操作点オブジェクト。findop を使用して単一の操作点仕様または単一のスナップショット時間で作成されます。

  • 操作点オブジェクトの配列。複数の操作点を指定するものです。

    操作点オブジェクトの配列を作成するには、次の方法があります。

  • シミュレーションのスナップショット時間を指定する正のスカラーのベクトル。

st.Parameters を設定する場合、op を以下のいずれかで指定します。

  • 単一の操作点。

  • Parameters プロパティで指定されたパラメーター グリッドのサイズと一致するサイズをもつ操作点オブジェクトの配列。mdl をバッチ線形化する場合、ソフトウェアは 1 つのモデルのコンパイルのみを使用します。パラメーター値の組み合わせに対応する操作点を取得するには、線形化の前に param を使用してモデルをバッチ平衡化します。linearize コマンドを使用する例については、パラメーターの変化から派生した複数の操作点でのモデルのバッチ線形化を参照してください。

  • 複数のスナップショット時間。mdl をバッチ線形化する場合、ソフトウェアはスナップショット時間とパラメーター グリッド点の組み合わせごとにモデルをシミュレートします。この操作では、計算量が増大する場合があります。

BlockSubstitutions

ブロックおよびモデル サブシステムの代替の線形化。構造体または構造体の配列として指定します。

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

blocksub 入力引数またはドット表記 (st.BlockSubstitutions = blocksubs) を使用してこのプロパティを設定します。必要な構造体の詳細については、blocksub を参照してください。

Options

線形化アルゴリズムのオプション。slTunerOptions を使用して作成されたオプション セットとして指定します。

opt 入力引数またはドット表記 (st.Options = opt) を使用してこのプロパティを設定します。

Model

線形化する Simulink モデルの名前。入力引数 mdl で文字ベクトルとして指定します。

TimeUnit

時間変数の単位。このプロパティは、getIOTransfergetLoopTransfergetSensitivity および getCompSensitivity で返される線形化モデルの時間単位を指定します。以下のいずれかの値を使用します。

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

既定値: 'seconds'

オブジェクト関数

addBlockslTuner インターフェイスの調整ブロックのリストにブロックを追加
addPointslLinearizer または slTuner インターフェイスの解析ポイントのリストに信号を追加
addOpeningslLinearizer または slTuner インターフェイスの開始点リストに信号を追加
getPointsslLinearizer または slTuner インターフェイスの解析ポイントのリストを取得
getOpeningsslLinearizer または slTuner インターフェイスの開始点のリストを取得
getBlockParamslTuner インターフェイス内の調整ブロックのパラメーター化を取得
getBlockValueslTuner インターフェイス内の調整ブロックのパラメーター化の現在値を取得
getTunedValueslTuner インターフェイスにおける調整された変数の現在の値を取得
getBlockRateConversionslTuner インターフェイスの調整ブロックのレート変換設定を取得
setBlockParamslTuner インターフェイス内の調整ブロックのパラメーター化を設定
setBlockValueslTuner インターフェイス内の調整ブロックのパラメーター化の値を設定
setBlockRateConversionslTuner インターフェイスの調整ブロックのレート変換を設定
systuneslTuner を使用して Simulink 内の制御システムのパラメーターを調整
looptuneslTuner インターフェイスを使用して Simulink の MIMO フィードバック ループを調整
showTunableslTuner インターフェイスの調整可能ブロックのパラメーター化の値を表示
getIOTransferslLinearizer または slTuner インターフェイスを使用して指定された I/O セットの伝達関数
getLoopTransferslLinearizer または slTuner インターフェイスを使用した指定点での開ループ伝達関数
getSensitivityslLinearizer または slTuner インターフェイスを使用した指定された点での感度関数
getCompSensitivityslLinearizer または slTuner インターフェイスを使用する、指定された点での相補感度関数
writeBlockValueSimulink モデルのブロック値の更新
writeLookupTableData調整後のルックアップ テーブルの一部を更新

詳細

すべて折りたたむ

解析ポイント

"解析ポイント" は、slLinearizerslTuner インターフェイスで使用され、モデル内で線形解析と制御システムの調整に関連する箇所を示します。解析ポイントは、getIOTransfergetLoopTransfergetSensitivitygetCompSensitivity などの線形化コマンドの入力として使用します。線形化コマンドの入力として、解析ポイントによりモデル内の開ループまたは閉ループの伝達関数を指定できます。また、systune などのコマンドを使って制御システムを調整する際に、解析ポイントを使用して設計要件を指定することもできます。

"場所" とは、モデル内の特定のブロック出力端子か、そのような出力端子にあるバス要素を指します。便宜上、この端子から発信する信号の名前を使って解析ポイントを示すことができます。

解析ポイントは、slLinearizer または slTuner インターフェイス s に対して、インターフェイスの作成時に追加できます。以下に例を示します。

s = slLinearizer('scdcascade',{'u1','y1'});

また、addPoint コマンドを使用することもできます。

s のすべての解析ポイントを表示するには、コマンド プロンプトで s と入力してインターフェイスの内容を表示します。s の各解析ポイントの表示には、ブロック名、端子番号、およびこの解析ポイントから発信される信号の名前が含まれます。getPoints を使用して、すべての解析ポイントのリストをプログラムで取得することもできます。

解析ポイントの使用方法の詳細については、制御システムの解析と設計における対象信号のマークおよびバッチ線形化用に対象の信号をマークするを参照してください。

永続的な開始点

"永続的な開始点" とは、slLinearizer および slTuner インターフェイスで使用され、ソフトウェアがモデル内で信号の流れを中断する箇所を示します。線形化および調整時に、これらの開始点が強制的に適用されます。永続的な開始点は、ある特定のモデル コンポーネントを分離するために使用します。航空機のダイナミクスを取得する大規模なモデルがあり、機体にのみ線形解析を実行するとします。永続的な開始点を使用すれば、このモデルの他のコンポーネントをすべて除外できます。モデル内にカスケード式ループがあり、特定のループを解析する場合などにも使用できます。

"場所" とは、モデル内の特定のブロック出力端子を指します。便宜上、この端子から発信する信号の名前を使って開始点を示すことができます。

永続的な開始点は、slLinearizer または slTuner インターフェイス s に対して、インターフェイスの作成時に追加するか、addOpening コマンドを使用して追加できます。永続的な開始点のリストから場所を削除するには、removeOpening コマンドを使用します。

s のすべての開始点を表示するには、コマンド プロンプトで s と入力してインターフェイスの内容を表示します。s のそれぞれの永続的な開始点の表示には、ブロック名、端子番号、およびこの場所から発信される信号の名前が含まれます。getOpenings を使用して、すべての永続的なループ開始点のリストをプログラムで取得することもできます。

カスタムの線形化関数

MATLAB パスでカスタム関数を使用して、Simulink モデル内のブロックまたはサブシステムの代替の線形化を指定できます。

カスタムの線形化関数は 1 つの入力引数 BlockData をもたなければなりません。これは、ソフトウェアが作成して関数に渡す構造体です。BlockData には次のフィールドがあります。

フィールド説明
BlockNameカスタム線形化の指定対象となるブロックの名前。
Parametersブロック パラメーター値。Name フィールドと Value フィールドをもつ構造体配列として指定します。Parameters には、blocksub.Value.ParameterNames フィールドと blocksub.Value.ParameterValues フィールドで指定するパラメーターの名前と値が含まれます。
Inputs

線形化の定義対象のブロックへの入力信号。各ブロック入力ごとに構造体を 1 つもつ構造体配列として指定します。Inputs の各構造体には次のフィールドがあります。

フィールド説明
BlockName対応するブロック入力に接続する出力をもつブロックの絶対ブロック パス。
PortIndex対応するブロック入力に接続する、BlockName で指定されるブロックの出力端子。
ValuesBlockName および PortIndex で指定される信号の値。この信号がベクトル信号の場合、Values は同じ次元をもつベクトルです。
nyブロック線形化の出力チャネル数。
nuブロック線形化の入力チャネル数。
BlockLinearizationブロックの現在の既定の線形化。状態空間モデルとして指定します。BlockLinearization を使用して既定の線形化に依存するブロック線形化を指定できます。

カスタム関数は nu の入力と ny の出力をもつモデルを返さなければなりません。このモデルは次のいずれかでなければなりません。

  • D 行列形式の線形モデル

  • Control System Toolbox LTI モデル オブジェクト

  • 不確かさをもつ状態空間モデル、または不確かさをもつ実数のオブジェクト (Robust Control Toolbox ソフトウェアが必要)

たとえば、次の関数は現在の既定のブロック線形化を Td = 0.5 秒の遅延で乗算します。遅延はサンプル時間 Ts = 0.1 の Thiran フィルターで表されます。遅延とサンプル時間は BlockData に保存されているパラメーターです。

function sys = myCustomFunction(BlockData)
    Td = BlockData.Parameters(1).Value;
    Ts = BlockData.Parameters(2).Value;
    sys = BlockData.BlockLinearization*Thiran(Td,Ts);
end 

この関数を MATLAB パス上の場所に保存します。

この関数をブロックまたはサブシステムのカスタム線形化として使用するには、blocksub.Value.Specification フィールドと blocksub.Value.Type フィールドを指定します。

blocksub.Value.Specification = 'myCustomFunction';
blocksub.Value.Type = 'Function';

遅延およびサンプル時間のパラメーター値を設定するには、blocksub.Value.ParameterNames フィールドと blocksub.Value.ParameterValues フィールドを指定します。

blocksub.Value.ParameterNames = {'Td','Ts'};
blocksub.Value.ParameterValues = [0.5 0.1];

アルゴリズム

slTuner は、正確な線形化アルゴリズムで説明されているアルゴリズムを使用して、Simulink モデルを線形化します。

R2014a で導入