メインコンテンツ

series

2 つのモデルの直列接続

説明

sys = series(sys1,sys2) は、次のブロック線図に示すように、sys1 の出力を sys2 の入力に接続することで、2 つの動的システム モデルの直列相互接続を形成します。

このコマンドは、直接乗算 sys = sys2*sys1 と同等です。MIMO システムの場合、sys2 の入力の数は sys1 の出力の数と等しくなければなりません。結果として得られる sys には、入力 u および出力 y があります。

sys = series(sys1,sys2,out1,in2) は、sys1 の出力のサブセットを sys2 の入力のサブセットに接続することで、次のブロック線図に示すようなより一般的な直列相互接続を形成します。

out1 は、接続する sys1 の出力のインデックスを指定するベクトルです。同様に、in1 は、それらの出力に接続する sys2 の入力のインデックスを指定します。結果として得られる sys には、入力 u と出力 y があります。series は、sys1 の未接続の出力 z1sys2 の未接続の入力 v2 をドロップします。

sys = series(sys1,sys2,"name") は、モデルの OutputName および InputName プロパティで定義されている信号名を一致させることで、sys1 の出力のサブセットを sys2 の入力のサブセットに接続します。series は、sys1 の未接続の出力と sys2 の未接続の入力をドロップします。

すべて折りたたむ

2 つの SISO システムを作成します。1 つは状態空間モデル、もう 1 つは伝達関数です。

sys1 = rss(3);
sys2 = tf(1,[1 1 1]);

2 つのシステムの直列接続を形成します。

sys = series(sys1,sys2);
size(sys)
State-space model with 1 outputs, 1 inputs, and 5 states.

伝達関数を状態空間モデルに接続すると、別の状態空間モデルが生成されます。異なるモデル タイプを組み合わせた結果の詳細については、モデル タイプを決定するルールを参照してください。

直列相互接続は、積 sys2*sys1 と等価です。周波数応答を調べてこの等価性を確認します。

sysm = sys2*sys1;
bodeplot(sys,'-',sysm,'--')

MATLAB figure

2 つの MIMO システムを直列接続します。sys1 の出力数が sys2 の入力数と等しい場合、すべての sys1 出力をすべての sys2 入力に接続できます。

sys1 = rss(3,2,3);
sys2 = rss(3,3,2);
sys = series(sys1,sys2);

結果として得られるシステムには、sys1 と同じ数の入力と、sys2 と同じ数の出力が含まれます。

size(sys)
State-space model with 3 outputs, 3 inputs, and 6 states.

接続する信号に一致する名前を割り当てることで、直列接続を形成できます。4 出力 2 入力のシステム sys1 と 2 出力 3 入力のシステム sys2 から始めて、次のブロック線図に示されているような直列接続を形成します。

2 つのシステムの状態空間モデルを作成し、入力信号と出力信号に名前を付けます。

% sys1: 4-output, 2-input
sys1 = rss(4,4,2);
sys1.InputName = ["in1a","in1b"];
sys1.OutputName = ["out1a","out1b","out1c","out1d"];
% sys2: 2-output, 3-input
sys2 = rss(3,2,3);
sys2.InputName = ["in2a","in2b","in2c"];
sys2.OutputName = ["out2a","out2b"];

このブロック線図に示されている相互接続では、sys1out1aout1c がそれぞれ in2bin2c に接続されています。接続する信号の名前が一致するように信号名を変更します。

sys1.OutputName = ["ua","out1b","ub","out1d"];
sys2.InputName = ["in2a","ua","ub"];

name フラグを指定して series を呼び出して接続を形成します。

sys = series(sys1,sys2,"name");

sys の次元、入力、および出力を調べて、接続がブロック線図のものと一致していることを確認します。

size(sys)
State-space model with 2 outputs, 2 inputs, and 7 states.
sys.InputName
ans = 2×1 cell
    {'in1a'}
    {'in1b'}

sys.OutputName
ans = 2×1 cell
    {'out2a'}
    {'out2b'}

期待どおり、結果として得られた sys には 2 つの出力と 2 つの入力があり、それぞれ sys2 の出力と sys1 の入力に対応しています。

sys は、sys2 の未接続の入力と sys1 の未接続の出力をドロップします。すべての入力と出力を保持してこの相互接続を形成するには、代わりにconnectを使用して、結果として得られるシステムで保持するすべての入力と出力を指定します。

sysc = connect(sys1,sys2,["in1a","in1b","in2a"],["out2a","out2b","out1b","out1d"]);
size(sysc)
State-space model with 4 outputs, 3 inputs, and 7 states.
sysc.InputName
ans = 3×1 cell
    {'in1a'}
    {'in1b'}
    {'in2a'}

sysc.OutputName
ans = 4×1 cell
    {'out2a'}
    {'out2b'}
    {'out1b'}
    {'out1d'}

接続する信号のインデックスを指定することで、モデルの入力と出力のサブセットを使用して直列相互接続を形成できます。4 出力 2 入力のシステム sys1 と 2 出力 3 入力のシステム sys2 から始めて、次のブロック線図に示されているような直列接続を形成します。

2 つのシステムの状態空間モデルを作成します。

% sys1: 4-output, 2-input
sys1 = rss(4,4,2);
% sys2: 2-output, 3-input
sys2 = rss(3,2,3);

直列接続を形成するには、sys1 の出力と、対応する接続先の sys2 の入力を指定するベクトルを作成します。ブロック線図では、sys1 の 1 番目と 3 番目の出力は、それぞれ sys2 の 2 番目と 3 番目の入力に接続されています。したがって、インデックスを次のように指定します。

out1 = [1 3]; % out1a and out1c
in2 = [2 3];  % in2b and in2c

接続を形成し、出力のサイズを調べます。

sys = series(sys1,sys2,out1,in2);
size(sys)
State-space model with 2 outputs, 2 inputs, and 7 states.

期待どおり、結果として得られた sys には 2 つの出力と 2 つの入力があり、それぞれ sys2 の出力と sys1 の入力に対応しています。sys は、sys2 の未接続の入力と sys1 の未接続の出力をドロップします。すべての入力と出力を保持してこの相互接続を形成するには、connectを使用します。

入力引数

すべて折りたたむ

接続するシステム。SISO または MIMO 動的システム モデル、制御設計ブロック、または動的システム モデルの配列として指定します。接続できるモデルとブロックには次のものがあります。

  • tfzpkssfrdpid モデル オブジェクトなど、任意の数値の LTI モデル オブジェクト。

  • genssgenfrduss (Robust Control Toolbox)ufrd (Robust Control Toolbox) モデルなど、一般化された、あるいは不確かさをもつ LTI モデル。

  • tunablePIDtunableSStunableGaintunableTFtunableSurfaceultidyn (Robust Control Toolbox)umargin (Robust Control Toolbox) ブロックなど、調整可能な、あるいは不確かさをもつブロック線図の要素を表す制御設計ブロック。

  • ブロック線図内でシステム応答を抽出する位置を表す AnalysisPoint ブロック。

  • sumblk を使用して作成した加算結合。

  • idtf (System Identification Toolbox)idss (System Identification Toolbox)idproc (System Identification Toolbox) モデルなどの同定された LTI モデル。

  • sparss または mechss モデル オブジェクトで表されたスパース モデル。

  • ltvss または lpvss モデル オブジェクトで表された時変モデルまたはパラメーター変動モデル。

sys1sys2 は両方とも連続システムであるか、または両方とも同じサンプル時間をもつ離散システムでなければなりません。

接続する sys1 の出力。インデックスのベクトルとして指定します。たとえば、sys1 の 2 番目、4 番目、5 番目の出力を sys2 の 3 つの入力に接続する場合は、out1 = [2,4,5] を設定します。

接続する sys2 の入力。インデックスのベクトルとして指定します。たとえば、sys1 の 3 つの出力を sys2 の 1 番目、3 番目、4 番目の入力に接続する場合は、in2 = [1,3,4] を設定します。

出力引数

すべて折りたたむ

相互接続されたシステム。入力が sys1 の入力であり、出力が sys2 の出力である動的システム モデルとして返されます。動的システム モデルのタイプは、接続されたシステム sys1 および sys2 のタイプによって異なります。以下に例を示します。

  • 接続されたシステムの 1 つが ss モデルであり、もう一方が frd モデル以外の数値 LTI モデルである場合、sysss モデルになります。

  • 接続されたシステムの 1 つが frd モデルであり、もう一方が数値 LTI モデルである場合、sysfrd モデルになります。両方のシステムが frd モデルである場合、周波数ベクトルは一致しなければなりません。

  • 接続されたシステムの 1 つが同定された LTI モデルである場合、sys も同定されたモデルになります。

  • 接続されたシステムの 1 つが genssuss モデルなどの一般化 LTI モデルである場合、sys も一般化 LTI モデルになります。

  • 接続されたシステムの 1 つがスパース モデルである場合、sys もスパース モデルになります。

sys1sys2 がモデル配列である場合、sys は同じサイズのモデル配列になります。sys 内の各エントリは、入力配列の対応するエントリを接続することで形成されるモデルです。

バージョン履歴

R2006a より前に導入