Main Content

getBlockValue

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

説明

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

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

S = getBlockValue(M) は、一般化モデルに含まれるすべての制御設計ブロックの値を取得し、それらを構造体で返します。この構文により、1 つの一般化モデルから同じ制御設計ブロックを使用する別のモデルへとブロックの値を転送できます。たとえば、次のコードはモデル M1 の値 S をモデル M2 に転送します。

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

すべて折りたたむ

一般化状態空間 LTI モデルから制御設計ブロックの現在値を取得します。

systune などの調整コマンドを使用して genss モデルを調整した後に、関数 getBlockValue を使用して制御設計ブロックの調整後の値を取得できます。

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;

制御設計ブロックの名前を関数 getBlockValue の入力引数 blockname として指定して、その現在値を取得します。

Cval = getBlockValue(T,'C')
Cval =
 
        1 
  Ki * ---
        s 

  with Ki = 0.001
 
Name: C
Continuous-time I-only controller.

別の制御設計ブロックの現在値を取得します。

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

一般化状態空間 LTI モデルからすべての制御設計ブロックの現在値を取得します。

systune などの調整コマンドを使用して genss モデルを調整した後に、関数 getBlockValue を使用して制御設計ブロックの調整後の値を取得できます。

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 = struct with fields:
    C: [1x1 pid]
    a: 10

入力引数

すべて折りたたむ

一般化 LTI モデルまたは一般化行列。genss オブジェクト、genfrd オブジェクト、または genmat オブジェクトとして指定します。一般化 LTI モデルの詳細については、一般化 LTI モデルと不確かな LTI モデルを参照してください。一般化行列の詳細については、一般化行列を参照してください。

入力モデル M に含まれる制御設計ブロックの名前。文字ベクトルとして指定します。

例: 入力モデル M に含まれる制御設計ブロックのリストを取得するには、コマンド プロンプトで「M.Blocks」と入力します。

出力引数

すべて折りたたむ

LTI ブロックの数値。スカラーとして返されます。これは、制御設計ブロック blockname の現在値です。

入力モデル M に含まれるすべての制御設計ブロックの現在値。構造体として返されます。構造体には、入力モデル M に含まれるブロックごとに 1 つのフィールドが含まれます。各フィールドの名前は対応するブロックと同じになります。フィールドの値は、対応する制御設計ブロックの現在値と等しい数値 LTI モデルまたは数値です。

バージョン履歴

R2011b で導入