メインコンテンツ

parallel

2 つのモデルの並列接続

    説明

    sys = parallel(sys1,sys2) は、同一の入力信号を sys1 および sys2 に接続し、出力を加算することで、図に示すように 2 つの動的システム モデルの並列接続を形成します。

    このコマンドは、直接乗算 sys = sys1 + sys2 と等価です。MIMO システムでは、sys2sys2 は同じ数の入力と出力をもつ必要があります。

    sys = parallel(sys1,sys2,in1,in2,out1,out2) は、次の図に示すより一般的な並列相互接続を形成します。

    ベクトル in1 および 1n2 は、入力 u を受け取る sys1 および sys2 の入力のインデックスを含みます。同様に、out1 および out2 は、出力 y を形成するために加算される sys1 および sys2 の出力を指定するベクトルです。結果として得られる sys は入力 [v1,u,v2] をもちます。ここで、v1 および v2in1 および 1n2 で指定されていない入力です。同様に、sys は出力 [z1,y,z2] をもちます。ここで、z1 および z2out1 および out2 で指定されていない出力です。

    sys = parallel(sys1,sys2,"name") は、モデルの OutputName プロパティおよび InputName プロパティで定義された信号名を一致させることで、sys1sys2 を接続します。一致する名前をもつ入力は接続され、一致する名前をもつ出力は加算されます。

    すべて折りたたむ

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

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

    2 つのシステムの並列相互接続を形成し、得られたモデルを確認します。

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

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

    並列相互接続は、2 つのモデルの算術和と等価です。周波数応答を調べてこの等価性を確認します。

    sysa = sys1 + sys2;
    bodeplot(sys,'-',sysa,'--')

    MATLAB figure

    2 つの MIMO システムを並列に接続します。2 つのシステムの入出力次元が同じ場合、すべての入力と出力を接続できます。たとえば、3 出力 2 入力のシステムを 2 つ作成し、そのような相互接続を形成します。

    sys1 = rss(4,3,2);
    sys2 = rss(4,3,2);
    sys = parallel(sys1,sys2);

    結果として得られるモデルは同じ入出力次元をもちます。

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

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

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

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

    このブロック線図に示されている相互接続では、sys1 の入力 2 と 3 がそれぞれ sys2 の入力 1 と 2 に接続されています。ブロック線図はまた、sys1 の 2 番目の出力が sys2 の 1 番目の出力と加算されることを示しています。接続する信号の名前が一致するように信号名を変更します。

    sys1.InputName = ["in1a","u1","u2","in1d"];
    sys1.OutputName = ["out1a","y1","out1c"];
    sys2.InputName = ["u1","u2","in2c"];
    sys2.OutputName = ["y1","out2b"];

    name フラグを使用して接続を形成します。

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

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

    size(sys)
    State-space model with 4 outputs, 5 inputs, and 7 states.
    
    sys.InputName
    ans = 5×1 cell
        {'in1a'}
        {'in1d'}
        {'u1'  }
        {'u2'  }
        {'in2c'}
    
    
    sys.OutputName
    ans = 4×1 cell
        {'out1a'}
        {'out1c'}
        {'y1'   }
        {'out2b'}
    
    

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

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

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

    相互接続を形成するには、各モデルで接続する入力と出力を指定するベクトルを作成します。たとえば、ブロック線図に示されているように、sys1 の入力 2 と 3 がそれぞれ sys2 の入力 1 と 2 に接続されています。したがって、入力インデックスを次のように指定します。

    inp1 = [2 3];  % indices of in1b and in1c
    inp2 = [1 2];  % indices of in2a and in2b

    ブロック線図はまた、sys1 の 2 番目の出力が sys2 の 1 番目の出力と加算されることを示しています。

    out1 = [2];  % index of out1b
    out2 = [1];  % index of out2a

    これらの値を使用して並列相互接続を形成します。

    sys = parallel(sys1,sys2,inp1,inp2,out1,out2);

    結果として得られるモデルは、予想どおり 4 出力および 5 入力をもちます。

    size(sys)
    State-space model with 4 outputs, 5 inputs, and 7 states.
    

    入力引数

    すべて折りたたむ

    接続するシステム。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 および sys2 の入力。インデックスのベクトルとして指定します。たとえば、sys1 の 1 番目の入力と sys2 の 2 番目の入力、sys1 の 2 番目の入力と sys2 の 3 番目の入力、sys1 の 3 番目の入力と sys2 の 5 番目の入力に同じ入力を与える場合は、in2 = [1,2,3] および in2 = [2,3,5] を設定します。

    加算する sys1 および sys2 の出力。インデックスのベクトルとして指定します。たとえば、sys1 の 1 番目の出力と sys2 の 2 番目の出力、sys1 の 2 番目の出力と sys2 の 3 番目の出力、sys1 の 3 番目の出力と sys2 の 5 番目の出力を加算する場合は、in2 = [1,2,3] および in2 = [2,3,5] を設定します。

    出力引数

    すべて折りたたむ

    相互接続システム。動的システム モデルとして返されます。動的システム モデルのタイプは、接続されたシステム 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 より前に導入