ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

dlinmod

離散時間線形状態空間モデルを操作点の周りで抽出

構文

argout = dlinmod('sys', Ts, x, u)
argout = dlinmod('sys', Ts, x, u, para, 'v5')
argout = dlinmod('sys', Ts, x, u, para, xpert, upert, 'v5')

引数

sys

線形モデルから抽出される Simulink® システムの名前。

x, u

状態 (x) と入力 (u) のベクトル。指定した場合、線形モデルが抽出される操作点が設定されます。モデルが Model ブロックを使うモデル参照をもつ場合、x を指定するために、Simulink 構造体の形式を使用しなければなりません。モデルから x の構造体を抽出するには、次のコマンドを使用します。

x = Simulink.BlockDiagram.getInitialState('sys');

すると、x.signals.values を編集することによって、この構造体内の操作点の値を変更できます。

状態に異なったデータ型が含まれている場合 (たとえば、'double''uint8')、この状態の指定にベクトルを使用できません。代わりに構造体を使用しなければなりません。また、状態データ型が 'double' の場合のみ状態をベクトルとして指定できます。

Ts

離散時間線形化モデルのサンプル時間。

'v5'

MATLAB® 5.3 より前に作成された摂動アルゴリズムを呼び出すオプションの引数。このオプション引数を呼び出すことは、linmodv5 を呼び出すことと等価です。

para

次のオプション引数の 3 要素ベクトル。

  • para(1) — デルタの摂動の値。モデルの状態と入力の摂動を実行するために使用される値。この値は、'v5' フラグを使用する線形化に有効です。既定値は 1e-05 です。

  • para(2) — 線形化時間。時間の関数であるブロックの場合、モデルの線形化のときに Simulink が評価する時刻 (t) で非負の値を使って設定できます。既定値は 0 です。

  • para(3)para(3)=1 に設定すると、入力から出力へのパスをもたないブロックに関連する余分な状態が削除されます。既定値は 0 です。

xpert, upert

モデルのすべての状態と入力の摂動を実行するために使用される摂動の値。既定値は、次のとおりです。

xpert = para(1) + 1e-3*para(1)*abs(x)
upert = para(1) + 1e-3*para(1)*abs(u)

モデルが Model ブロックを使うモデル参照をもつ場合、xpert を指定するために、Simulink 構造体の形式を使用しなければなりません。xpert の構造体を抽出するには、次のコマンドを使用します。

xpert = Simulink.BlockDiagram.getInitialState('sys');

すると、xpert.signals.values を編集することによって、この構造体内の摂動の値を変更できます。

摂動の入力引数は、関数 linmodv5 を呼び出すか、または関数 linmod に入力引数 'v5' を指定することによって、MATLAB 5.3 より前に作成された摂動アルゴリズムを呼び出すときに限り使用可能になります。

argout

関数 linmod、関数 dlinmod、関数 linmod2 は、式の出力 (左項) を次のように指定した場合にのみ状態空間を返します。

  • [A,B,C,D] = linmod('sys', x, u) は、指定した状態変数 x と入力 u をもつ操作点の周辺における sys の線形化モデルを取得します。xu を省略した場合、既定値はゼロです。

linmoddlinmod は両方とも伝達関数と線形化されたシステムを表現する MATLAB データ構造体を返しますが、それは式の出力 (左辺) をどう指定したかに依存します。関数 linmod の使用例を次に示します。
  • [num, den] = linmod('sys', x, u) は、伝達関数の形式で線形化モデルを返します。

  • sys_struc = linmod('sys', x, u) は、状態名、入出力名、操作点に関する情報など、線形化モデルを含む構造体を返します。

説明

dlinmod は、モデルの各ブロックを個別に線形化することで離散時間システムの線形状態空間モデルを計算します。

linmod は、Simulink モデルで記述されている常微分方程式のシステムから線形モデルを取得します。入力と出力は、Inport ブロックと Outport ブロックを使って Simulink ブロック線図で示されます。

既定のアルゴリズムは、ほとんどのブロックに対し、事前にプログラムされた解析ブロック Jacobian を使用します。これは、ブロック入力と状態の数値摂動に比べ、より正確な線形化になる必要があります。事前にプログラムされた解析的な Jacobian をもつブロックのリストについて、線形化のためのブロックごとの解析アルゴリズムの記述と共に、Simulink Control Design™ ドキュメンテーションで利用できます。

また、既定のアルゴリズムは Transport Delay ブロックや Quantizer ブロックなどの問題のブロックに対して特殊な処理を行うこともできます。より詳しい情報とオプションについては、これらのブロックのマスク ダイアログを参照してください。

離散時間システム線形化

関数 dlinmod は、離散、マルチレート、連続と離散のハイブリッド システムを指定されたサンプル時間において線形化できます。関数 dlinmod の呼び出しには、関数 linmod と同じ呼び出し構文を使用しますが、2 番目の引数に線形化を実行するサンプル時間を挿入してください。たとえば、次のようにします。

[Ad,Bd,Cd,Dd] = dlinmod('sys', Ts, x, u);

は、サンプル時間 Ts と、状態ベクトル x および入力ベクトル u により指定された操作点における離散状態空間モデルを生成します。離散系の連続モデル近似を取得するには、Ts0 に設定します。

線形、マルチレート、離散、および連続ブロックから構成されるシステムの場合、関数 dlinmod は、以下を条件に、変換されたサンプル時間 Ts における等価周波数と一定入力に対する時間応答をもつ線形モデルを生成します。

  • Ts はシステムのすべてのサンプル時間の整数倍数である

  • システムは安定している

最初の条件に一致しないシステムの場合、通常、線形化は、関数 dlinmod で返される [A,B,C,D] 状態空間モデルで表すことができない経時変動システムです。

線形化された行列 Ad の固有値を計算すると、システムの安定性が示されます。Ts>0 であり、固有値が単位円内にある場合、次のステートメントで判定されるようにシステムは安定しています。

all(abs(eig(Ad))) < 1 

同様に、Ts = 0 であり、固有値が左半分面にある場合、次のステートメントで判定されるようにシステムは安定しています。

all(real(eig(Ad))) < 0 

システムが不安定であり、サンプル時間がサンプル時間の整数倍ではない場合、関数 dlinmodAd 行列と Bd 行列を生成し、これらの行列は複素数です。ただし、この場合の Ad 行列の固有値は安定性を適切に示します。

関数 dlinmod を使ってシステムのサンプル時間を他の値に変換したり、線形離散系を連続系などに変換することができます。

bode コマンドを使って、連続系または離散系の周波数応答を確認できます。

メモ:

既定の設定では、システムの時間はゼロに設定されています。時間に依存するシステムの場合、変数 para を 2 要素のベクトルに設定できます。この場合、線形モデルを取得する t の値に設定するために 2 番目の要素を使用できます。

非線形モデルから線形モデルまでの状態の順序は維持されます。Simulink システムの場合、各状態に関連付けられたブロック名を含む文字列変数は次の式を使って取得できます。

[sizes,x0,xstring] = sys

ここで、xstring は、i 番目の行に i 番目の状態に関連付けられたブロック名をもつ文字列のベクトルです。入力と出力はブロック線図で順に番号が付けられます。

単一入力複数出力のシステムの場合、ss2tf ルーチンを使って伝達関数形式に変換したり、ss2zp を使って零点 - 極形式に変換することができます。また、ss を使って、線形化モデルを LTI オブジェクトに変換できます。この関数は、状態関数形式の LTI オブジェクトを生成します。この状態関数形式は、tf または zpk を使って、さらに伝達関数や零点-極-ゲイン形式に変換できます。

関数 linmod および関数 dlinmod の既定のアルゴリズムは、ブロックの線形化をパデ近似に置き換えることで Transport Delay ブロックを処理します。'v5' アルゴリズムの場合、Derivative または Transport Delay ブロックを含むモデルの線形化は面倒になる可能性があります。詳細は、「モデルの線形化」を参照してください。

参考

| |

この情報は役に立ちましたか?