このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
dlinmod
離散時間線形状態空間モデルを操作点の周りで抽出
構文
argout
= dlinmod('sys
',Ts
)argout
= dlinmod('sys
',Ts
,x
,u
)argout
= dlinmod('sys
',Ts
,x
,u
,para
, 'v5')argout
= dlinmod('sys
',Ts
,x
,u
,para
,xpert
,upert
,'v5')
引数
| 線形モデルから抽出される Simulink® システムの名前。 |
| 状態 ( x = Simulink.BlockDiagram.getInitialState('sys'); すると、 状態に異なったデータ型が含まれている場合 (たとえば、 |
| 離散時間線形化モデルのサンプル時間。 |
| MATLAB® 5.3 より前に作成された摂動アルゴリズムを呼び出すオプションの引数。このオプション引数を呼び出すことは、 |
| 次のオプション引数の 3 要素ベクトル。
|
| モデルのすべての状態と入力の摂動を実行するために使用される摂動の値。既定値は、次のとおりです。 xpert = para(1) + 1e-3*para(1)*abs(x) upert = para(1) + 1e-3*para(1)*abs(u) モデルが Model ブロックを使うモデル参照をもつ場合、 xpert = Simulink.BlockDiagram.getInitialState('sys'); すると、 摂動の入力引数は、関数 |
| 関数
|
説明
メモ
dlinmod
では基本的な線形化の機能のみが提供されています。完全な線形化の機能については、Simulink Control Design™ ソフトウェアを使用してください。詳細については、線形化ツールの選択 (Simulink Control Design)を参照してください。
dlinmod
は、モデルの各ブロックを個別に線形化することで離散時間システムの線形状態空間モデルを計算します。
linmod
は、Simulink モデルで記述されている常微分方程式のシステムから線形モデルを取得します。入力と出力は、Inport ブロックと Outport ブロックを使って Simulink ブロック線図で示されます。
既定のアルゴリズムは、ほとんどのブロックに対し、事前にプログラムされた解析ブロックのヤコビアンを使用します。これは、ブロック入力と状態の数値摂動に比べ、より正確な線形化になる必要があります。事前にプログラムされた解析的なヤコビアンをもつブロックのリストについて、線形化のためのブロックごとの解析アルゴリズムの記述と共に、Simulink Control Design ドキュメンテーションで利用できます。
また、既定のアルゴリズムは Transport Delay ブロックや Quantizer ブロックなどの問題のブロックに対して特殊な処理を行うこともできます。より詳しい情報とオプションについては、これらのブロックのマスク ダイアログを参照してください。
離散時間システム線形化
関数 dlinmod
は、離散システム、マルチレート システム、および連続と離散のハイブリッド システムを、任意の指定されたサンプリング時間において線形化できます。関数 dlinmod
の呼び出しには、関数 linmod
と同じ呼び出し構文を使用しますが、2 番目の引数に線形化を実行するサンプル時間を挿入してください。たとえば、次のようにします。
[Ad,Bd,Cd,Dd] = dlinmod('sys', Ts, x, u);
これは、サンプリング時間 Ts
と、状態ベクトル x
および入力ベクトル u
で指定された操作点において離散状態空間モデルを生成します。離散システムの連続モデル近似を取得するには、Ts
を 0
に設定します。
線形、マルチレート、離散、および連続ブロックから構成されるシステムの場合、関数 dlinmod
は、以下を条件に、変換されたサンプル時間 Ts
における等価周波数と一定入力に対する時間応答をもつ線形モデルを生成します。
Ts
はシステムのすべてのサンプル時間の整数倍数であるシステムは安定している
最初の条件に一致しないシステムの場合、通常、線形化は、関数 dlinmod
で返される [A,B,C,D] 状態空間モデルで表すことができない経時変動システムです。
線形化された行列 Ad
の固有値を計算すると、システムの安定性が示されます。Ts>0
であり、固有値が単位円内にある場合、次のステートメントで判定されるようにシステムは安定しています。
all(abs(eig(Ad))) < 1
同様に、Ts = 0
であり、固有値が左半分面にある場合、次のステートメントで判定されるようにシステムは安定しています。
all(real(eig(Ad))) < 0
システムが不安定であり、サンプル時間がサンプル時間の整数倍ではない場合、関数 dlinmod
は Ad
行列と 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 ブロックを含むモデルの線形化は面倒になる可能性があります。詳細については、モデルの線形化を参照してください。
線形化は、ローカル ソルバーを使用するように構成された参照モデルを 1 つ以上含むモデルに対してはサポートされません。詳細については、Use Local Solvers in Referenced Modelsを参照してください。
バージョン履歴
R2007a で導入