Main Content

単一パラメーターが変化するモデル配列

この例は、stack コマンドを使用して伝達関数の 1 次元配列を作成する方法を示しています。伝達関数の 1 つのパラメーターは、配列内のモデルによって変化します。感応度解析などのモデルでパラメーターが変化したときの影響を調べるためにそのような配列を使用できます。

次のローパス フィルターを表す伝達関数の配列を、ロールオフ周波数 a の 3 つの値で作成します。

F(s)=as+a.

ロールオフ周波数 a = 3、5、7 のフィルターを表す伝達関数モデルを作成します。

F1 = tf(3,[1 3]);
F2 = tf(5,[1 5]);
F3 = tf(7,[1 7]);

stack コマンドを使用して配列を作成します。

Farray = stack(1,F1,F2,F3);

stack の最初の引数は、stack が配列を作成する配列次元を指定します。残りの引数は、その次元に沿って調整するようにモデルを指定します。したがって、Farray は、伝達関数の 3 行 1 列の配列です。

stack の代わりに MATLAB® 配列連結コマンドでモデルを連結すると、モデル配列ではなく、多入力多出力 (MIMO) モデルが作成されます。以下に例を示します。

G = [F1;F2;F3];

は 3 行 1 列の配列ではなく、1 入力 3 出力の伝達関数モデルを作成します。

パラメーターの変化を表すモデル配列を処理する場合、対応するパラメーター値を配列の各エントリに関連付けることができます。SamplingGrid プロパティを、パラメーターの名前と、配列の各モデルに対応するサンプリングされたパラメーター値を含むデータ構造体に設定します。この割り当ては、どのモデルがどのパラメーター値に対応するかを追跡するために役立ちます。

Farray.SamplingGrid = struct('alpha',[3 5 7]);
Farray
Farray(:,:,1,1) [alpha=3] =
 
    3
  -----
  s + 3
 

Farray(:,:,2,1) [alpha=5] =
 
    5
  -----
  s + 5
 

Farray(:,:,3,1) [alpha=7] =
 
    7
  -----
  s + 7
 
3x1 array of continuous-time transfer functions.

Farray.SamplingGrid のパラメーター値が配列の各伝達関数と共に表示されます。

パラメーターの変化がフィルターの挙動に与える影響を調べるために、配列の周波数応答をプロットします。

bodeplot(Farray)

モデル配列に bodeplot などの解析コマンドを使用すると、結果のプロットが配列内の各モデルの応答を示します。したがって、パラメーターの変化から生じた応答の範囲を確認できます。

参考

関連するトピック