replaceBlock
一般化モデルの制御設計ブロックの置換または更新
構文
説明
は、構造体 Mnew
= replaceBlock(M
,blockvalues
)blockvalues
のフィールド名と値としてブロック名と置換値を指定します。
例
数値による制御設計ブロックの置き換え
この例は、ゲインのみ、数値 PI コントローラー、または調整可能なコントローラーの現在の値によって一般化 LTI モデルで調整可能な PID コントローラー (tunablePID
) を置き換える方法を示します。
一般化 LTI モデルを作成
次のシステムの一般化 LTI モデルを作成します。
ここで、プラントは 、 は調整可能な PID コントローラーです。
G = zpk(1,[-1,-1,-1],1);
C = tunablePID(C='pid');
Try = feedback(G*C,1)
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 4 states, and the following blocks: C: Tunable PID controller, 1 occurrences. Type "ss(Try)" to see the current value and "Try.Blocks" to interact with the blocks.
PID コントローラーをゲイン値のみで置き換え
C
をゲインのみの 5 で置き換えます。
T1 = replaceBlock(Try,C=5);
T1
は feedback(G*5,1)
と等価のss
モデルです。
PID コントローラーを数値 PI コントローラーで置き換え
5 の比例ゲインおよび 0.1 の積分ゲインのある PI コントローラーによって C
を置き換えます。
C2 = pid(5,0.1); T2 = replaceBlock(Try,C=C2);
T2
は feedback(G*C2,1)
と等価の ss
モデルです。
PID コントローラーを現在値で置き換え
現在の (ノミナル) 値によって C
を置き換えます。
T3 = replaceBlock(Try,C=[]);
T3
は、C
が getValue(C)
によって置き換えられている ss
モデルです。
値のグリッドでの調整可能なモデルのサンプリング
以下で表される 2 次フィルターについて考えます。
減衰定数 および固有振動数 の値を変化させてこのフィルターをサンプリングします。 と の調整可能な要素を使用してフィルターの調整可能なモデルを作成します。
wn = realp('wn',3); zeta = realp('zeta',0.8); F = tf(wn^2,[1 2*zeta*wn wn^2])
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 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
入力引数
M
— 一般化モデル
一般化 LTI モデル | 一般化行列 | モデル配列
一般化モデル。一般化 LTI モデル、一般化行列、あるいはそのようなモデルの配列として指定します。
Block
— 制御設計ブロックの名前
string | 文字ベクトル
M
の制御設計ブロックの名前。string または文字ベクトルとして指定します。関数 replaceBlock
は、M
の指定された各ブロックを Value1,...,ValueN
の対応する値で置き換えます。
指定された Block
が M
のブロックではない場合、replaceBlock
はそのブロックおよび対応する値を無視します。
Value
— 置換ブロック値
制御設計ブロック | 数値行列 | LTI モデル | []
Block1,...,BlockN
の対応するブロックに対する置換ブロック値。ブロックのサイズと互換性のある制御設計ブロック、数値行列、または LTI モデルとして指定します。
値が []
である場合、対応するブロックはそのノミナル値 (現在の値) で置き換えられます。
blockvalues
— ブロック置換
構造体
ブロック置換。構造体として指定します。
blockvalues
のフィールド名は M
の制御設計ブロックの名前と一致します。このフィールド値を使って M
の対応するブロックの置換値を指定します。置換値は、制御設計ブロック、LTI モデル、数値行列のいずれかです。
たとえば、ブロック M
の値をブロック M0
の値と同期します。
M = replaceBlock(M,M0.Blocks);
mode
— 置換モード
'-once'
(既定値) | -batch
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'
は同一の結果を返します。
出力引数
Mnew
— 更新後のモデル
一般化 LTI モデル | 一般化行列 | モデル配列 | 数値 LTI モデル | 数値配列
更新後のモデル。一般化 LTI モデル、一般化行列、あるいはそのようなモデルの配列として返されます。
指定されたすべての置換値が数値または数値 LTI モデルの場合、Mnew
は数値配列または数値 LTI モデルになります。
ヒント
replaceBlock
を使用して、一般化 LTI モデルをパラメーターのグリッドにわたってサンプリングすることでパラメーターの調査を実行したり、調整可能なブロックの具体的な値に対して調整可能なモデルを評価したりすることができます。同時サンプリングなどの制御設計ブロックをサンプリングする追加オプションには、
sampleBlock
を使用します。制御設計ブロックのサンプルをランダムに取得するには、
rsampleBlock
を参照してください。
バージョン履歴
R2011a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)