ドキュメンテーション

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

ltiblock.gain

調整可能な静的ゲイン ブロック

構文

blk = ltiblock.gain(name,Ny,Nu)
blk = ltiblock.gain(name,G)

説明

調整可能な静的ゲインを作成するためのモデル オブジェクト。ltiblock.gain では、パラメーターの調査や、systunelooptune など Robust Control Toolbox™ の調整コマンドを使用した自動調整用に、調整可能な静的ゲインをパラメーター化できます。

ltiblock.gain はパラメトリック モデルの「Control Design ブロック」 ファミリの一部です。その他の Control Design ブロックには、ltiblock.pidltiblock.ss、および ltiblock.tf があります。

構築

blk = ltiblock.gain(name,Ny,Nu) は、name という名前のパラメトリック静的ゲイン ブロックを作成します。このブロックには Ny 出力と Nu 入力があります。調整可能なパラメーターは、それぞれの Ny-by-Nu I/O チャンネルにわたるゲインです。

blk = ltiblock.gain(name,G) は、ブロックを次元化して調整可能なパラメーターを初期化するために倍精度配列 G を使用します。

入力引数

name

ブロック Name を指定する文字列(「プロパティ」を参照)。

Ny

パラメトリック静的ゲイン ブロック blk の出力の数を指定する非負の整数。

Nu

パラメトリック静的ゲイン ブロック blk の入力の数を指定する非負の整数。

G

静的ゲイン値の倍精度配列。G の行と列の数は、blk の入力と出力の数を決定します。エントリ G は、パラメトリック ゲイン ブロック パラメーターの初期値です。

プロパティ

Gain

調整可能なゲインのパラメーター化。

blk.Gainparam.Continuous オブジェクトです。param.Continuous オブジェクト blk.Gain のプロパティに関する一般情報については、param.Continuousparam.Continuous オブジェクトのリファレンス ページを参照してください。

blk.Gain の次のフィールドは、hinfstruct を使用して blk を調整するときに使用されます。

フィールド説明
Valueゲイン行列の現在の値。Ny 出力と Nu 入力のあるブロックの場合、blk.Gain.ValueNyNu 列の行列です。
G 入力引数を使って blk を作成する場合、blk.Gain.ValueG の値を初期化します。それ以外の場合、blk.Gain.Value のすべてのエントリは 0 に初期化されます。
hinfstruct は、blk.Gain.Free によって固定化された値を除いて、blk.Gain.Value のすべてのエントリを調整します。
既定の設定:ゼロ値の配列。
Freeblk.Gain.Value のゲイン エントリが固定されるか、自由パラメーターであるかを判断する論理値の配列。
  • blk.Gain.Free(i,j) = 1 である場合、blk.Gain.Value(i,j) は調整可能なパラメーターです。

  • blk.Gain.Free(i,j) = 0 の場合、blk.Gain.Value(i,j) は固定されます。


既定の設定:1 (true) 値の配列。
Minimumパラメーターの最小値。このプロパティは、パラメーターの調整値に下限を設定します。たとえば、blk.Gain.Minimum = 1 と設定すると、ゲイン行列のすべてのエントリが必ず 1 より大きいゲインをもつようになります。
既定値: -Inf.
Maximumパラメーターの最大値。このプロパティは、パラメーターの調整値に上限を設定します。たとえば、blk.Gain.Maximum = 100 と設定すると、ゲイン行列のすべてのエントリが必ず 100 より小さいゲインをもつようになります。
既定値 Inf.

Ts

サンプリング時間。連続時間モデルの場合、Ts = 0。離散時間モデルの場合、Ts はサンプリング周期を表す正のスカラーです。この値は、モデルの TimeUnit プロパティで指定される単位で表されます。指定のないサンプリング時間を伴う離散時間モデルを示すには、Ts = -1 と設定します。

このプロパティを変更してもモデルの離散化やリサンプルは行われません。c2dd2c を使用して、連続時間表現と離散時間表現の間の変換を行います。d2d を使用して、離散時間システムのサンプリング時間を変更します。

既定値: 0 (連続時間)

TimeUnit

時間変数の単位を表す文字列。連続時間モデルの場合、このプロパティはモデルにおける任意のむだ時間を表します。離散時間モデルの場合はサンプリング時間 Ts を表します。以下のいずれかの値を使用します。

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

このプロパティを変更すると、システム全体の動作が変更されます。chgTimeUnit を使用して、システム動作を変更せずに時間単位を変換します。

既定値: 'seconds'

InputName

入力チャンネル名。単入力モデルでは、InputName を文字列に設定します。多入力モデルの場合は、InputName を文字列のセル配列に設定します。

または、自動的なベクトル拡張を使用して多入力モデルの入力名を割り当てます。たとえば、sys が 2 入力モデルである場合は、以下のようになります。

sys.InputName = 'controls';

入力名は自動的に {'controls(1)';'controls(2)'} へと拡張されます。

省略形表記 u を使用して、InputName プロパティを参照できます。たとえば、sys.usys.InputName と同じです。

以下を含めて、入力チャンネル名はいくつかの用途をもちます。

  • モデル表示とプロット上のチャンネルの識別

  • MIMO システムのサブシステムの抽出

  • モデル相互接続時における接続点の指定

既定値: すべての入力チャンネルに対して空の文字列 ''

InputUnit

入力チャンネル単位。InputUnit を使用して入力信号単位を記録します。単入力モデルの場合、InputUnit を文字列に設定します。多入力モデルの場合は、InputUnit を文字列のセル配列に設定します。InputUnit はシステム動作には影響しません。

既定値: すべての入力チャンネルに対して空の文字列 ''

InputGroup

入力チャンネル グループ。InputGroup プロパティによって、MIMO システムの入力チャンネルをグループに割り当て、各グループを名前で参照することができます。入力グループを構造体として指定します。この構造体においてフィールド名はグループ名であり、フィールド値は各グループに属する入力チャンネルです。以下に例を示します。

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

これは、入力チャンネル 1、2 および 3、5 をそれぞれ含む controls および noise という名前の入力グループを作成します。その後、以下を使用して controls 入力からすべての出力にサブシステムを抽出できます。

sys(:,'controls')

既定値: フィールドのない構造体

OutputName

出力チャンネル名。単出力モデルでは、OutputName を文字列に設定します。多出力モデルの場合は、OutputName を文字列のセル配列に設定します。

または、自動的なベクトル拡張を使用して多出力モデルの出力名を割り当てます。たとえば、sys が 2 出力力モデルである場合は、以下のようになります。

sys.OutputName = 'measurements';

出力名は自動的に {'measurements(1)';'measurements(2)'} へと拡張されます。

省略形表記 y を使用して、OutputName プロパティを参照できます。たとえば、sys.ysys.OutputName と同じです。

以下を含めて、出力チャンネル名はいくつかの用途をもちます。

  • モデル表示とプロット上のチャンネルの識別

  • MIMO システムのサブシステムの抽出

  • モデル相互接続時における接続点の指定

既定値: すべての入力チャンネルに対して空の文字列 ''

OutputUnit

出力チャンネル単位。OutputUnit を使用して出力信号単位を記録します。単出力モデルの場合、OutputUnit を文字列に設定します。多出力モデルの場合は、OutputUnit を文字列のセル配列に設定します。OutputUnit はシステム動作には影響しません。

既定値: すべての入力チャンネルに対して空の文字列 ''

OutputGroup

出力チャンネル グループ。OutputGroup プロパティによって、MIMO システムの出力チャンネルをグループに割り当て、各グループを名前で参照できます。出力グループを構造体として指定します。この構造体内においてフィールド名はグループ名であり、フィールド値は各グループに属する出力チャンネルです。以下に例を示します。

sys.OutputGroup.temperature = [1];
sys.InputGroup.measurement = [3 5];

これは、出力チャンネル 1 および 3、5 をそれぞれ含む temperature および measurement という名前の出力グループを作成します。その後、以下を使用してすべての入力から measurement 出力にサブシステムを抽出できます。

sys('measurement',:)

既定値: フィールドのない構造体

Name

システム名。システムをラベル付けする文字列に Name を設定します。

既定値: ''

Notes

システムに関連付ける任意のテキスト。文字列または文字列のセル配列のいずれかに Notes を設定します。

既定値: {}

UserData

システムに関連付ける任意のデータ型。UserData を任意の MATLAB® データ型に設定します。

既定値: []

次の形式の 2 行 2 列のパラメトリック ゲイン ブロックを作成します。

[g100g2]

ここで、g1 と g2 は調整可能なパラメーターであり、非対角要素は 0 に固定されます。

blk = ltiblock.gain('gainblock',2,2);  % 2 outputs, 2 inputs
blk.Gain.Free = [1 0; 0 1];    % fix off-diagonal entries to zero

blk.Gain.Value のすべてのエントリは 0 に初期化されます。次のように対角値を 1 に初期化します。

blk.Gain.Value = eye(2);    % set diagonals to 1

2 入力 3 出力パラメトリック ゲイン ブロックを作成して、すべてのパラメーター値を 1 に初期化します。

これを行うには、パラメトリック ゲイン ブロックを次元化するために行列を作成し、パラメーター値を初期化します。

G = ones(3,2);
blk = ltiblock.gain('gainblock',G);

2 行 2 列のパラメトリック ゲイン ブロックを作成して、名前を入力に割り当てます。

blk = ltiblock.gain('gainblock',2,2)   % 2 outputs, 2 inputs 
blk.InputName = {'Xerror','Yerror'}    % assign input names

詳細

すべて展開する

ヒント

  • blkblk.Gain.Free フィールドを使用すると、追加の構造体を指定するか、ブロックの特定のエントリの値を固定できます。入力 i から出力 j へのゲイン値を固定するには、blk.Gain.Free(i,j) = 0 を設定します。hinfstruct でこのゲイン値の調整を許可するには、blk.Gain.Free(i,j) = 1 を設定します。

  • ltiblock.gain パラメトリック モデルを数値 (調整不可能な) モデル オブジェクトに変換するには、tfzpkss などのモデル コマンドを使用します。

この情報は役に立ちましたか?