Main Content

tunableTF

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

説明

固定次の調整可能な SISO 伝達関数モデルを作成するためのモデル オブジェクト。

tunableTF では、パラメーターの調査や、systunelooptune などの調整コマンドを使用した自動調整用に、指定された次数の伝達関数をパラメーター化できます。

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 を使用して、極の数、零点の数、サンプル時間および初期パラメーター値を設定します。

入力引数

すべて展開する

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

パラメトリック伝達関数 blk の零点の数。非負の整数として指定します。

パラメトリック伝達関数 blk の極の数。非負の整数として指定します。

スカラーとして指定されたサンプル時間。

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

プロパティ

すべて展開する

調整可能な伝達関数 blk の分子係数 am, ..., a0 および分母係数 1,bn–1, ..., b0 のパラメーター表現。param.Continuous オブジェクトとして格納されます。これらの param.Continuous オブジェクトのプロパティに関する一般的な情報は、param.Continuous (Simulink Design Optimization) オブジェクトのリファレンス ページを参照してください。

blk.Numerator および blk.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 (Robust Control Toolbox) は、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 = 0。離散時間モデルの場合、Ts はサンプリング周期を表す正のスカラーです。この値は、モデルの TimeUnit プロパティで指定される単位で表されます。指定のないサンプル時間を伴う離散時間モデルを示すには、Ts = -1 と設定します。

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

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

入力チャネル名。文字ベクトルまたは文字ベクトルの cell 配列として格納されます。

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

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

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

sys.InputName = 'controls';

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

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

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

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

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

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

入力チャネル単位。文字ベクトルまたは文字ベクトルの cell 配列として格納されます。

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

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

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

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

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

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

sys(:,'controls')

出力チャネル名。文字ベクトルまたは文字ベクトルの cell 配列として格納されます。

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

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

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

sys.OutputName = 'measurements';

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

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

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

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

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

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

出力チャネル単位。文字ベクトルまたは文字ベクトルの cell 配列として格納されます。

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

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

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

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

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

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

sys('measurement',:)

システム名。文字ベクトルとして格納されます。たとえば、'system_1' とします。

システムに関連付けるテキスト。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.'

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

オブジェクト関数

systuneMATLAB でモデル化された固定構造制御システムの調整
looptune固定構造フィードバック ループの調整
genss一般化状態空間モデル
hinfstruct (Robust Control Toolbox)H tuning of fixed-structure controllers

すべて折りたたむ

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 で導入

すべて展開する