Main Content

voidModel

モデル配列内の欠損モデルまたは無関係なモデルをマーク

説明

Mout = voidModel(M,void) は、void で指定したモデルを NaN 静的ゲインに設定します。設計点の多次元グリッド上に定義されたモデル配列を扱う場合、voidModel を使用して、特定のグリッド点で利用できるモデルがないことを示します。たとえば、systune を使ってモデル配列のコントローラー パラメーターを調整する場合、設計エンベロープの外に存在する点や、解析時または設計時に無視する点にあるモデルを削除します。

  • void が整数のベクトルの場合、voidModelM(:,:,void)NaN に設定します。

  • void が logical 配列の場合、voidModelvoid で選択されたモデルを NaN に設定します。

すべて折りたたむ

調整可能な genss モデルの配列を生成します。そのためには、まず 2 次伝達関数内でパラメーターを変化させてプラント モデルの配列を作成します。その後、結果のプラント モデル配列を調整可能なコントローラー要素と相互接続します。

G = tf(zeros(1,1,3,3));
zeta = [0.66,0.71,0.75];
w = [1.0,1.2,1.5];
for i = 1:length(zeta)
    for j = 1:length(w)
        G(:,:,i,j) = tf(w(j)^2,[1 2*zeta(i)*w(j) w(j)^2]);
    end
end

C = tunablePID('C','PID');
M = feedback(C*G,1)
3x3 array of generalized continuous-time state-space models.
Each model has 1 outputs, 1 inputs, 3 states, and the following blocks:
  C: Tunable PID controller, 1 occurrences.

Type "ss(M)" to see the current value and "M.Blocks" to interact with the blocks.

M のすべてのモデルについて PID コントローラー ゲインを調整するとします。ただし、物理システムで (zeta,w) = (0.66,1.0)(zeta,w) = (0.75,1.5) のパラメーターの組み合わせが生じることはありません。これらのモデルを無効にして、モデル配列の調整や解析に寄与しないようにします。これらは 3 行 3 列の配列の最初と最後のモデルで、線形インデックスは 1 と 9 です。

void = [1,9]
void = 1×2

     1     9

Mout = voidModel(M,void)
3x3 array of generalized continuous-time state-space models.
Each model has 1 outputs, 1 inputs, between 0 and 3 states, and between 0 and 1 blocks.

Type "ss(Mout)" to see the current value and "Mout.Blocks" to interact with the blocks.

表示から、Mout のモデルには 0 ~ 3 の状態と 0 ~ 1 個のブロックがあることがわかります。0 状態 0 ブロックのモデルは Mout で無効なエントリになります。たとえば、最初のエントリを調べると NaN 静的ゲインであることが確認されます。

tf(Mout(:,:,1,1))
ans =
 
  NaN
 
Static gain.

線形インデックスを使用して無効にするモデルを指定する代わりに、logical 配列を使用できます。

void = logical([1 0 0;0 0 0;0 0 1]);
Mout1 = voidModel(M,void);

Mout1 の最初と最後のモデルが NaN であることを確認します。

tf(Mout1(:,:,1,1))
ans =
 
  NaN
 
Static gain.
tf(Mout1(:,:,3,3))
ans =
 
  NaN
 
Static gain.

入力引数

すべて折りたたむ

モデル配列。genss モデルの配列など、LTI モデル配列として指定します。

無効にするモデル。整数値のベクトルまたは logical 配列として指定します。

  • void が整数のベクトルの場合、voidModelM(:,:,void)NaN に設定します。たとえば、Void = [1,10] を使用すると、M の配列次元とは関係なく、線形インデックスにより指定された、M モデルの M(:,:,[1 10])、つまり 1 番目と 10 番目のモデルが無効にされます。

  • void が logical 配列の場合、voidModelvoid で選択されたモデルを NaN に設定します。たとえば、M が2 行 2 列のモデル配列の場合、void = logical([0,1;0,0]) を使用すると M の最初の行にある 2 番目のモデルが無効にされます。

出力引数

すべて折りたたむ

NaN に設定された無効なモデルをもつ配列。M と同じタイプとサイズの LTI モデル配列として返されます。

バージョン履歴

R2017b で導入