Main Content

genmat

調整可能なパラメーターのある一般化行列

説明

一般化行列 (genmat) は、調整可能なパラメーターに依存する行列です (realp を参照)。パラメーターの調査には一般化行列を使用できます。また、一般化行列は、固定および調整可能なコンポーネントが混在している制御システムを表す一般化 LTI モデルを作成する (genss を参照) ためにも使用できます。

一般化行列は、数値を realp オブジェクトなどの静的ブロックと組み合わせるときに生じます。このような組み合わせは、任意の算術演算子 +-*/\、および ^ を使用して作成します。たとえば、ab が調整可能なパラメーターである場合、式 M = a + b は一般化行列で表されます。

genmat オブジェクト M の内部データ構造は、M がパラメーター a および b に依存するしくみを記録します。MBlocks プロパティは、パラメーター a および b の一覧を表示します。

作成

説明

M = genmat(A) は、数値配列または調整可能なパラメーター Agenmat オブジェクトに変換します。

入力引数

すべて展開する

静的な制御設計ブロック。realp オブジェクトなどの数値配列として指定します。

A が数値配列である場合、M は調整可能なパラメーターをもたない、A と同じ次元の一般化行列です。

A が静的制御設計ブロックである場合、MBlocks プロパティが唯一のブロックとして A を示す一般化行列です。

データ型: double

プロパティ

すべて展開する

システム名。文字ベクトルとして指定します。たとえば、'mat_1' とします。tunableSurface のような静的な制御設計ブロックを genmat(blk) を使用して一般化行列に変換する場合、ブロックの Name プロパティは維持されます。

データ型: char

一般化 LTI モデルまたは一般化行列に含まれる制御設計ブロック。構造体として指定します。Blocks のフィールド名は、制御設計ブロックの Name プロパティです。

ドット表記を使用すると、これらの制御設計ブロックのいくつかの属性を変更できます。たとえば、一般化 LTI モデルまたは一般化行列 Mrealp の調整可能なパラメーター a を含んでいる場合、次を使用して a の現在の値を変更できます。

M.Blocks.a.Value = -1;

モデル配列のサンプリング グリッド。構造体配列として指定します。

SamplingGrid を使用して、モデル配列の各モデルに関連付けられている変数値を追跡します。

構造体のフィールド名をサンプリング変数の名前に設定します。フィールドの値を、配列内の各モデルに関連付けられているサンプリングされた変数の値に設定します。すべてのサンプリング変数は数値スカラーでなければならず、サンプル値のすべての配列はモデル配列の次元と一致しなければなりません。

たとえば、t = 0:10 の各時点で線形時変システムのスナップショットを記録することにより、線形モデルの 11 行 1 列の配列 sysarr を作成することができます。次のコードは線形モデルでの時間サンプルを格納します。

 sysarr.SamplingGrid = struct('time',0:10)

同様に、2 つの変数 zetaw を個別にサンプリングすることにより、6 行 9 列のモデル配列 M を作成できます。次のコードは (zeta,w) の値を M にマッピングします。

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)
M.SamplingGrid = struct('zeta',zeta,'w',w)

複数のパラメーター値または操作点で Simulink® モデルを線形化することにより生成されたモデル配列の場合、SamplingGrid には配列の各エントリに対応する変数値が自動的に入力されます。たとえば、Simulink Control Design™ のコマンド linearize (Simulink Control Design) および slLinearizer (Simulink Control Design) により、SamplingGrid が自動的に入力されます。

既定では、SamplingGrid はフィールドのない構造体です。

調整可能なパラメーターの代数的組み合わせを使用した一般化行列の作成

この例は、調整可能なパラメーターの代数的組み合わせを使用して一般化行列を作成する方法を示します。

M=[1a+b0ab],

ここで、a と b はそれぞれ初期値が –1 と 3 である調整可能なパラメーターです。

  1. realp を使用して調整可能なパラメーターを作成します。

     a = realp('a',-1);
     b = realp('b',3);
  2. ab の代数式を使って一般化行列を定義します。

    M = [1 a+b;0 a*b]

    M は、Blocks プロパティに ab を含む一般化行列です。ab の初期値から、M の初期値は M = [1 2;0 -3] です。

  3. (オプション) パラメーター a の初期値を変更します。

    M.Blocks.a.Value = -3;
  4. (オプション) double を使用して M の新しい値を表示します。

    double(M)

    M の新しい値は M = [1 0;0 -9] です。

バージョン履歴

R2011a で導入