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

replaceBlock

一般化 LTI モデルの制御設計ブロックの置換または更新

構文

Mnew = replaceBlock(M,Block1,Value1,...,BlockN,ValueN)
Mnew = replaceBlock(M,blockvalues)
Mnew = replaceBlock(...,mode)

説明

Mnew = replaceBlock(M,Block1,Value1,...,BlockN,ValueN) は、指定された値 Value1,...,ValueNM制御設計ブロック Block1,...,BlockN を置き換えます。M一般化 LTI モデルまたは一般化行列です。

Mnew = replaceBlock(M,blockvalues) は、構造体 blockvalues のフィールド名と値としてブロック名と置換値を指定します。

Mnew = replaceBlock(...,mode) は、mode で指定された代入モードを使ってモデルの配列 M に対してブロックの置き換えを実行します。

入力引数

M

一般化 LTI モデル一般化行列、またはそのようなモデルの配列。

Block1,...,BlockN

M制御設計ブロックの名前。replaceBlock コマンドは、M のリストされた各ブロックを、指定した対応値 Value1,...,ValueN で置き換えます。

指定された BlockM のブロックではない場合、そのブロックおよび対応する値に対して replaceBlock します。

Value1,...,ValueN

対応するブロック Block1,...,BlockN の置換値。

ブロックの置換値は、異なる制御設計ブロック、数値行列、LTI モデルなど、ブロックのサイズと互換性のある任意の値にすることができます。いずれかの値が [] である場合、対応するブロックはそのノミナル (現在の) 値に置き換えられます。

blockvalues

置き換えのために M のブロックを指定している構造体と、それらのブロックを置き換える値。

blockvalues のフィールド名は M の制御設計ブロックの名前と一致します。このフィールド値を使って M の対応するブロックの置換値を指定します。置換値は、数値、数値 LTI モデル、制御設計ブロック、一般化 LTI モデルのいずれかです。

mode

一般化行列または LTI モデルの入力配列 M に対するブロック置換モード。次のいずれかの値として指定します。

  • '-once' (既定値) — モデル配列 M にわたってブロックの置換をベクトル化します。それぞれのブロックは単一の値で置き換えられますが、その値は配列にわたってモデル間で変わる可能性があります。

    ベクトル化されたブロック置換の場合、入力 blockvalues 用の構造体配列または Value1,...,ValueN 入力用の cell 配列を使用します。たとえば、M がモデルの 2 行 3 列の配列である場合、次のようになります。

    • Mnew = replaceBlock(M,blockvalues,'-once')、ここで blockvalues は 2 行 3 列の構造体配列であり、配列内の各モデル M(:,:,k) に対してブロック値 blockvalues(k) の 1 セットを指定します。

    • Mnew = replaceBlock(M,Block,Value,'-once')、ここで Value は 2 行 3 列の cell 配列であり、配列内のモデル M(:,:,k) 内の Value{k}Block を置き換えます。

  • '-batch' — バッチでのブロックの置換。それぞれのブロックは値の配列によって置き換えられ、値の同じ配列が M 内の各モデルに使用されます。その結果として生じるモデルの配列 Mnew のサイズは [size(M) Asize] になり、このとき、Asize は置換値のサイズを指します。

入力 M は単一のモデルであり、'-once' および '-batch' は同一の結果を返します。

既定値: '-once'

出力引数

Mnew

指定されたブロックが指定された置換値によって置き換えられる行列、線形モデル、または行列。

Mnew は、指定されたすべての置換値が数値または数値 LTI モデルのときに、数値配列または数値 LTI モデルになります。

数値による制御設計ブロックの置き換え

この例は、ゲインのみ、数値 PI コントローラーまたは調整可能なコントローラーの現在の値によって一般化 LTI モデルで調整可能な PID コントローラー (tunablePID) を置き換える方法を示します。

  1. 次のシステムの一般化 LTI モデルを作成します。

    ここで、プラントは G(s)=(s1)(s+1)3、C は調整可能な PID コントローラーです。

    G = zpk(1,[-1,-1,-1],1);
    C = tunablePID('C','pid');
    Try = feedback(G*C,1)
  2. C をゲインのみの 5 で置き換えます。

    T1 = replaceBlock(Try,'C',5);

    T1feedback(G*5,1) と等価の ss モデルです。

  3. 5 の比例ゲインおよび 0.1 の積分ゲインのある PI コントローラーによって C を置き換えます。

    C2 = pid(5,0.1);
    T2 = replaceBlock(Try,'C',C2);

    T2feedback(G*C2,1) と等価の ss モデルです。

  4. 現在の (ノミナル) 値によって C を置き換えます。

    T3 = replaceBlock(Try,'C',[]);

    T3 は、CgetValue(C) によって置き換えられている ss モデルです。

値のグリッド上の調整可能なモデルのサンプリング

以下で表される 2 次フィルターについて考えます。

F(s)=ωn2s2+2ζωns+ωn2.

減衰定数 ζ および固有振動数 ωn の値を変化させてこのフィルターをサンプリングします。ζωn の調整可能な要素を使用してフィルターの調整可能なモデルを作成します。

wn = realp('wn',3);
zeta = realp('zeta',0.8);
F = tf(wn^2,[1 2*zeta*wn wn^2])
F =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 2 states, and the following blocks:
    wn: Scalar parameter, 5 occurrences.
    zeta: Scalar parameter, 1 occurrences.

Type "ss(F)" to see the current value, "get(F)" to see all properties, and "F.Blocks" to interact with the blocks.

サンプル値のグリッドを作成します。

wnvals = [3;5];
zetavals = [0.6 0.8 1.0];
[wngrid,zetagrid] = ndgrid(wnvals,zetavals);
Fsample = replaceBlock(F,'wn',wngrid,'zeta',zetagrid);
size(Fsample)
2x3 array of state-space models.
Each model has 1 outputs, 1 inputs, and 2 states.

ndgrid コマンドは、パラメーターの組み合わせから成る 2 行 3 列のフル グリッドを作成します。したがって、Fsample は状態空間モデルの 2 行 3 列の配列です。配列の各要素は、対応する (wn, zeta) ペアで評価された F を表す状態空間モデルです。たとえば、Fsample(:,:,2,3) には wn = 5 と zeta = 1.0 があります。

damp(Fsample(:,:,2,3))
                                                           
   Pole        Damping       Frequency      Time Constant  
                           (rad/seconds)      (seconds)    
                                                           
 -5.00e+00     1.00e+00       5.00e+00         2.00e-01    
 -5.00e+00     1.00e+00       5.00e+00         2.00e-01    

ヒント

  • replaceBlock を使用して、一般化 LTI モデルをパラメーターのグリッドにわたってサンプリングすることでパラメーターの調査を実行したり、調整可能なブロックの具体的な値に対して調整可能なモデルを評価したりすることができます。を参照してください。

  • 同時サンプリングなどの制御設計ブロックをサンプリングする追加オプションには、sampleBlock を使用します。

  • 制御設計ブロックのサンプルをランダムに取得するには、rsampleBlock を参照してください。

R2011a で導入