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

tunableTF

一定数の極と零点をもつ調整可能な伝達関数

構文

blk = tunableTF(name,Nz,Np)
blk = tunableTF(name,Nz,Np,Ts)
blk = tunableTF(name,sys)

説明

固定次の調整可能な SISO 伝達関数モデルを作成するためのモデル オブジェクト。tunableTF では、パラメーターの調査や、systune または looptune などの調整コマンドを使用した自動調整用に、指定された次数の伝達関数をパラメーター化できます。

tunableTF はパラメトリック モデルの制御設計ブロック ファミリの一部です。その他の制御設計ブロックには、tunablePIDtunableSS および tunableGain があります。

構築

blk = tunableTF(name,Nz,Np) は次のようなパラメトリック SISO 伝達関数を作成します。

blk=amsm+am1sm1++a1s+a0sn+bn1sn1++b1s+b0.

n = Npblk の極の最大数であり、m = Nz は零点の最大数です。調整可能なパラメーターは分子と分母の係数 a0, ..., am および b0, ..., bn–1 です。分母の最初の係数は、1 に固定されます。

blk = tunableTF(name,Nz,Np,Ts) は、サンプル時間 Ts をもつ離散時間のパラメトリック伝達関数を作成します。

blk = tunableTF(name,sys) は、tf モデル sys を使用して、極の数、零点の数、サンプル時間および初期パラメーター値を設定します。

入力引数

name

パラメトリック伝達関数 Name'filt' または 'DM' などの文字ベクトルとして指定します (プロパティを参照)。

Nz

パラメトリック伝達関数 blk のゼロの数を指定する非負の整数。

Np

パラメトリック伝達関数 blk の極の数を指定する非負の整数。

Ts

スカラーのサンプル時間。

sys

blk の極の数、零点の数、サンプル時間およびパラメーターの初期値を提供する tf モデル。

プロパティ

Numerator, Denominator

調整可能な伝達関数 blk の分子係数 am, ..., a0 および分母係数 1,bn–1, ..., b0 のパラメーター化。

blk.Numeratorblk.Denominatorparam.Continuous オブジェクトです。これらの param.Continuous オブジェクトに関する一般的な情報は、param.Continuous オブジェクトのリファレンス ページを参照してください。

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

フィールド説明
Value

分子 am, ..., a0 または分母係数 1,bn–1, ..., b0 の現在の値の配列。blk.Numerator.Value の長さは Nz + 1 です。blk.Denominator.Value の長さは Np + 1 です。分母の最初の係数 (blk.Denominator.Value(1)) は常に 1 に固定されます。

既定では、係数は安定して厳密にプロパーな伝達関数になる値に初期化されます。入力 sys を使用して、係数を異なる値に初期化します。

hinfstruct は、Free フィールドが 0 のものを除いてすべての値を調整します。

Free

係数が固定か調整可能かを決定する論理値の配列。以下に例を示します。

  • blk.Numerator.Free(j) = 1 である場合、blk.Numerator.Value(j) は調整可能です。

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

既定: blk.Denominator.Free(1) = 0。他のすべてのエントリは 1 です。

Minimum

パラメーターの最小値。このプロパティは、パラメーターの調整された値に下限を設定します。たとえば、blk.Numerator.Minimum(1) = 0 と設定すると、分子の最初の係数は必ず正になります。

既定: -Inf

Maximum

パラメーターの最大値。このプロパティは、パラメーターの調整された値に上限を設定します。たとえば、blk.Numerator.Maximum(1) = 1 と設定すると、分子の最初の係数が 1 を超えないようになります。

既定: Inf

Ts

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

このプロパティを変更してもモデルの離散化やリサンプリングは行われません。

既定値: 0 (連続時間)

TimeUnit

モデル内の時間変数、サンプル時間 Ts および何らかのむだ時間の単位。以下のいずれかの値として指定します。

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

このプロパティを変更しても他のプロパティには影響しないため、システム全体の動作が変更されます。chgTimeUnit を使用して、システム動作を変更せずに時間単位を変換します。

既定値: 'seconds'

InputName

入力チャネル名。以下のいずれかとして指定します。

  • 文字ベクトル — 単入力モデルの場合 (たとえば 'controls' など)。

  • 文字ベクトルの cell 配列 — 多入力モデルの場合。

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

sys.InputName = 'controls';

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

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

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

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

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

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

既定値: すべての入力チャネルに対する ''

InputUnit

入力チャネル単位。以下のいずれかとして指定します。

  • 文字ベクトル — 単入力モデルの場合 (たとえば 'seconds' など)。

  • 文字ベクトルの cell 配列 — 多入力モデルの場合。

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

出力チャネル名。次のいずれかとして指定されます。

  • 文字ベクトル — 単出力モデルの場合。たとえば、'measurements' とします。

  • 文字ベクトルの cell 配列 — 多出力モデルの場合。

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

sys.OutputName = 'measurements';

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

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

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

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

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

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

既定値: すべての出力チャネルに対して ''

OutputUnit

出力チャネル単位。次のいずれかとして指定されます。

  • 文字ベクトル — 単出力モデルの場合。たとえば、'seconds' とします。

  • 文字ベクトルの cell 配列 — 多出力モデルの場合。

OutputUnit を使用して出力信号単位を追跡します。OutputUnit はシステムの動作に影響しません。

既定値: すべての出力チャネルに対して ''

OutputGroup

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

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

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

sys('measurement',:)

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

Name

システム名。文字ベクトルとして指定します。たとえば、'system_1' とします。

既定値: ''

Notes

システムに関連付ける任意のテキスト。string または文字ベクトルの cell 配列として格納されます。プロパティには指定したデータ型が格納されます。たとえば、sys1sys2 が動的システム モデルである場合、その Notes プロパティを次のように設定できます。

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

既定値: [0×1 string]

UserData

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

既定値: []

2 つの零点、4 つの極、および少なくとも 1 つの積分器のあるパラメトリック SISO 伝達関数を作成します。

積分器のある伝達関数には、1/s の因子があります。そのため、パラメーター化された伝達関数がパラメーター値に関係なく少なくとも 1 つの積分器を必ずもつようにするために、分母の最下位の係数をゼロに固定します。

  blk = tunableTF('tfblock',2,4);  % two zeros, four poles
  blk.Denominator.Value(end) = 0;   % set last denominator entry to zero
  blk.Denominator.Free(end) = 0;    % fix it to zero

パラメトリック伝達関数を作成して、名前を入力と出力に割り当てます。

blk = tunableTF('tfblock',2,3);   
blk.InputName = {'error'};      % assign input name
blk.OutputName = {'control'};    % assign output name

ヒント

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

互換性についての考慮事項

すべて展開する

R2016a での動作変更

R2016a で導入