Control System Toolbox関数リファレンス | ![]() ![]() |
表示
sysc = connect(sys,Q,inputs,outputs)
詳細
複雑なダイナミックシステムは、多くの場合、ブロック線図の型で与えられます。システムが若干複雑になってくると、解析ツールや設計ツールで使用するのに必要な状態空間モデルを見つけるのはかなり困難です。ブロック線図の記述から始めて、append
およびconnect
を使って、そのシステムの状態空間モデルを作成することができます。
sys = append(sys1,sys2,...,sysN)
を使って、ブロック線図内の各ブロックsysj
を設定し、ブロック対角化された未結合のLTIモデルsys
を形成します。
sysc = connect(sys,Q,inputs,outputs)
を使って、ブロックを結合し、ブロック全体に渡る相互結合に対して、状態空間モデルsysc
を導きます。引数Q
、inputs
、outputs
は、つぎの目的をもっています。
Q
は、ブロックがどのように結合しているかを示します。それは、sys
の入力毎に行をもっています。ここで、各行の第1要素は入力の番号です。各行の第2要素以降の要素は、そのブロックに入ってくる入力番号を表します。ここで、負の要素は、全体に加算されるのではなく、減算されることを表しています。たとえば、入力7が、2、15、6の出力から構成され、15の出力は減算する場合、Q
の対応する行は[7 2 -15 6]
となります。他の行と比べて、要素数が少ない行は、0要素を加えることにより、同じ列数をもつ行にします (下の例題を参照)。 sys
およびQ
が与えられた場合、connect
は、sys
(すなわち、すべてのブロック入力とブロック出力の連結)として同じ入力数、出力数をもつ相互結合の状態空間モデルを計算します。インデックスベクトルのinputs
とoutputs
は、大きな非結合システムのどの入力と出力が、ブロック線図の外部入力および外部出力であるかを示します。たとえば、外部入力がsys
の入力1、2、15であり、外部出力がsys
の出力2、7である場合、inputs
とoutputs
は、つぎのように設定しなければなりません。 inputs = [1 2 15]; outputs = [2 7];
最終的なモデルsysc
は、これらの特定の入力と出力をもっています。
大きなモデルに必要なすべてのデータを入力する際には、ミスを犯しやすいので、モデルは、必ずできるだけ多くの方法で確認してください。以下に、お勧めするいくつかの方法を示します。
sys
の極が、線図内の様々なブロックの極と一致することを確認します。 sysc
のstep
応答とbode
線図をプロットし、ユーザが期待するものであることを確認します。ブロック線図を使って広範囲の作業を行う必要がある場合、Simulinkは、モデル作成のために、非常に簡単で便利なツールです。
例題
A = [ -9.0201 17.7791 -1.6943 3.2138 ]; B = [ -.5112 .5362 -.002 -1.8470]; C = [ -3.2897 2.4544 -13.5009 18.0745]; D = [-.5476 -.1410 -.6459 .2958 ];
が与えられた場合、まず、3つのブロックを個々のLTIモデルとして定義します。
sys1 = tf(10,[1 5],'inputname','uc') sys2 = ss(A,B,C,D,'inputname',{'u1' 'u2'},... 'outputname',{'y1' 'y2'}) sys3 = zpk(-1,-2,2)
つぎに、これらのブロックを付加して、非結合モデルsys
を形成します。
sys = append(sys1,sys2,sys3)
sys a = x1 x2 x3 x4 x1 -5 0 0 0 x2 0 -9.0201 17.779 0 x3 0 -1.6943 3.2138 0 x4 0 0 0 -2 b = uc u1 u2 ? x1 4 0 0 0 x2 0 -0.5112 0.5362 0 x3 0 -0.002 -1.847 0 x4 0 0 0 1.4142
c = x1 x2 x3 x4 ? 2.5 0 0 0 y1 0 -3.2897 2.4544 0 y2 0 -13.501 18.075 0 ? 0 0 0 -1.4142 d = uc u1 u2 ? ? 0 0 0 0 y1 0 -0.5476 -0.141 0 y2 0 -0.6459 0.2958 0 ? 0 0 0 2 Continuous-time system.
入力と出力の順序は、選択したブロックの順序と同じであることに注意してください。名前のない入力または出力は、 ?
で示されます。
sys
から全体のブロック線図モデルを導くには、相互結合と外部入力および外部出力を設定します。出力1と4を入力3(u2
)に結合し、出力3(y2
)を入力4に結合する必要があります。従って、相互結合行列Q
は、つぎのようになります。
Q = [3 1 -4 4 3 0];
Q
の第2行の3番目の要素が、ゼロで埋められていることに注意してください。ブロック線図は、2つの外部入力uc
とu1
(sys
の入力1と2)と2つの外部出力y1
とy2
(sys
の出力2と3)があります。従って、inputs
とoutputs
を、つぎのように設定してください。
inputs = [1 2]; outputs = [2 3];
ここで、つぎのようにして全体の相互結合に対する状態空間モデルを得ることができます。
sysc = connect(sys,Q,inputs,outputs) a = x1 x2 x3 x4 x1 -5 0 0 0 x2 0.84223 0.076636 5.6007 0.47644 x3 -2.9012 -33.029 45.164 -1.6411 x4 0.65708 -11.996 16.06 -1.6283 b = uc u1 x1 4 0 x2 0 -0.076001 x3 0 -1.5011 x4 0 -0.57391 c = x1 x2 x3 x4 y1 -0.22148 -5.6818 5.6568 -0.12529 y2 0.46463 -8.4826 11.356 0.26283 d = uc u1 y1 0 -0.66204 y2 0 -0.40582 Continuous-time system.
参考
append
LTIシステムの付加
feedback
フィードバック結合
minreal
最小状態空間実現
parallel
並列結合
series
直列結合
参考文献
[1] Edwards, J.W., "A Fortran Program for the Analysis of Linear Continuous and Sampled-Data Systems," NASA Report TM X56038, Dryden Research Center, 1976.
![]() | chgunits | covar | ![]() |