| 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 | ![]() |