Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

sumblk

名前ベースの相互接続のための加算結合

構文

S = sumblk(formula)
S = sumblk(formula,signalsize)
S = sumblk(formula,signames1,signames2,...)

説明

S = sumblk(formula) は、formula が記述する加算結合用の伝達関数 S を作成します。文字ベクトル formula は、S のスカラー入力と出力の信号を関連させる方程式を指定します。

S = sumblk(formula,signalsize) はベクトル値の加算結合を返します。入出力の信号は signalsize 要素をもつベクトルです。

S = sumblk(formula,signames1,signames2,...) は、formula 内のエイリアス (% から始まる信号名) を信号名 signames で置き換えます。signames 引数の数は、formula 内のエイリアスの数と一致しなければなりません。formula 内の第 1 のエイリアスは signames1、第 2 のエイリアスは signames2、などに置き換えられます。

入力引数

formula

加算結合伝達関数 S の入力と出力の信号を関連させる方程式。文字ベクトルとして指定します。たとえば、次のコマンド

S = sumblk('e = r - y + d')

入力名 'r''y''d'、出力名 'e'、式 e = r-y+d による加算結合を作成します。

signalsize に 1 より大きい値を指定すると、S の入出力はベクトル値の信号をもちます。sumblkS の信号名のベクトル拡張を自動的に実行します。たとえば、次のコマンド

S = sumblk('v = u + d',2)

は入力名が {'u(1)';'u(2)';'d(1)';'d(2)'} で出力名が {'v(1)';'v(2)'} の加算結合を指定します。この加算結合の式は、v(1) = u(1) + d(1); v(2) = u(2) + d(2) です。

formula 内の 1 つまたは複数のエイリアスを使用して、変数内で定義される信号名を参照します。エイリアスは % から始まる信号名です。formula がエイリアスを含んでいると、sumblk は各エイリアスをそれに対応する signames 引数と置き換えます。

エイリアスはベクトル値の信号の個々のエントリに名前を付けたい場合に便利です。また、エイリアスを使用すると、既存のモデルの入力名と出力名も使用できます。たとえば、CG が動的システム モデルであり、InputNameOutputName プロパティがそれぞれ空ではない場合は、以下の式を使用して、加算結合を作成できます。

S = sumblk('%e = r - %y',C.InputName,G.OutputName)

sumblk は、%e%y の代わりに、それぞれ C.InputNameG.OutputName を使用します。C.InputNameG.OutputName のベクトルの次元は一致しなければなりません。sumblk は信号 r に同じ次元を割り当てます。

signalsize

S の各入力信号と出力信号の要素数。signalsize を 1 より大きく設定すると、ベクトル値の信号で動作する加算結合を指定することができます。

既定値: 1

signames

引数 formula 内の 1 つのエイリアス (% から始まる信号名) を置き換える信号名。formula 内の各エイリアスに 1 つの signames 引数を指定しなければなりません。

signames は、以下のように設定します。

  • 信号名の cell 配列。

  • MATLAB® ワークスペースのモデルの InputName または OutputName プロパティ。以下に例を示します。

    S = sumblk('%e = r - y',C.InputName)

    このコマンドは、MATLAB ワークスペースのモデル C の入力と同じ名前を出力にもつ加算結合を作成します。

出力引数

S

MIMO tf モデル オブジェクトとして表される加算結合のための伝達関数。

スカラー値の信号をもつ加算結合

以下の図に示す加算結合を作成します。すべての信号はスカラー値。

この加算結合には式 u = u1 + u2 + u3 があります。

S = sumblk('u = u1+u2+u3');

S は、和 u = u1 + u2 + u3 の伝達関数 (tf) 表現です。伝達関数 S は式からその入力と出力の名前を取得します。

S.OutputName,S.Inputname
ans = 

    'u'


ans = 

    'u1'
    'u2'
    'u3'

ベクトル値の信号をもつ加算結合

加算結合 v = u - d を作成します。ここで、u,d,v は長さ 2 のベクトル値信号です。

S = sumblk('v = u-d',2);

sumblkS の信号名のベクトル拡張を自動的に実行します。

S.OutputName,S.Inputname
ans = 

    'v(1)'
    'v(2)'


ans = 

    'u(1)'
    'u(2)'
    'd(1)'
    'd(2)'

信号名を指定したベクトル値の信号をもつ加算結合

加算結合の作成

e(1)=setpoint(1)alpha+d(1)e(2)=setpoint(2)q+d(2)

信号 alphaq には、ベクトル拡張された 1 つの信号名のほかにもカスタムの名前があります。そのため、加算結合を指定する式にあるエイリアスを使用します。

S = sumblk('e = setpoint - %y + d', {'alpha';'q'});

sumblk はエイリアス %y を cell 配列 {'alpha';'q'} と置き換えます。

S.OutputName,S.Inputname
ans = 

    'e(1)'
    'e(2)'


ans = 

    'setpoint(1)'
    'setpoint(2)'
    'alpha'
    'q'
    'd(1)'
    'd(2)'

ヒント

  • sumblkconnect を併用して、動的システム モデルを相互に接続し、ブロック線図用の統合モデルを導出します。

R2008a で導入