最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

getBlockValue

一般化モデルの制御設計ブロックの現在値

構文

val = getBlockValue(M,blockname)
[val1,val2,...] = getBlockValue(M,blockname1,blockname2,...)
S = getBlockValue(M)

説明

val = getBlockValue(M,blockname) は、一般化モデル M 内の制御設計ブロック blockname の現在の値を返します。(不確かさをもつブロックについては、「現在の値」がブロックのノミナル値です。)

[val1,val2,...] = getBlockValue(M,blockname1,blockname2,...) は、指定した制御設計ブロックの値を返します。

S = getBlockValue(M) は、構造体にある一般化モデルのあらゆる制御設計ブロックの値を返します。この構文により、次のようにして、1 つの一般化モデルから同じ制御設計ブロックを使用する別のモデルへとブロックの値を転送できます。

S = getBlockValue(M1);
setBlockValue(M2,S);

入力引数

M

一般化 LTI (genss) モデルまたは一般化行列 (genmat)。

blockname

現在の値が評価されるモデル M 内の制御設計ブロックの名前。

M 内の制御設計ブロックのリストを得るには、M.Blocks と入力します。

出力引数

val

制御設計ブロック blockname の現在の値と等しい数値 LTI モデルまたは数値。

S

M にあるすべての制御設計ブロックの現在値。構造体として返されます。S にあるフィールドの名前は、M にあるブロックの名前です。フィールドの値は、対応する制御設計ブロックの現在値と等しい数値 LTI モデルまたは数値です。

単一ブロックの現在値の取得

調整可能な genss モデルを作成し、そのモデルの制御設計ブロックの現在の値を評価します。

通常は、systune などの調整コマンドを使用して genss モデルを調整してから、getBlockValue を使用して制御設計ブロックの調整された値を取得します。この例では、モデルを作成してブロックの初期値を取得します。

G = zpk([],[-1,-1],1);
C = tunablePID('C','PID');
a = realp('a',10);  
F = tf(a,[1 a]);
T = feedback(G*C,1)*F;

Cval = getBlockValue(T,'C')
Continuous-time I-only controller:
 
      1 
Ki * ---
      s 
 
With Ki = 0.001

Cval は数値 pid コントローラー オブジェクトです。

aval = getBlockValue(T,'a')
aval =

    10

a が実数のスカラー パラメーターであるので、aval は数値のスカラーです。

すべての現在値を構造体として取得

先の例の genss モデルを使用して、モデルにあるすべてのブロックの現在値を取得します。

G = zpk([],[-1,-1],1);
C = tunablePID('C','PID');
a = realp('a',10);  
F = tf(a,[1 a]);
T = feedback(G*C,1)*F;

S = getBlockValue(T)
S = 

    C: [1x1 pid]
    a: 10

R2011b で導入