Main Content

tunableSS

調整可能な固定次状態空間モデル

説明

調整可能な固定次状態空間モデルを作成するためのモデル オブジェクト。

tunableSS では、パラメーターの調査や、systunelooptune などの調整コマンドを使用した自動調整用に、指定された次数の状態空間モデルをパラメーター化できます。

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

作成

説明

blk = tunableSS(name,Nx,Ny,Nu) は、name という名前の連続時間パラメトリック状態空間モデルを作成します。状態空間モデル blk には Nx 状態、Ny 出力、および Nu 入力があります。調整可能なパラメーターは、状態空間モデルの行列 A、B、C、および D のエントリです。

blk = tunableSS(name,Nx,Ny,Nu,Ts) は、サンプル時間 Ts をもつ離散時間パラメトリック状態空間モデルを作成します。

blk = tunableSS(name,sys) は、動的システム sys を使用してパラメトリック状態空間モデルを次元化し、そのサンプル時間を設定して、調整可能なパラメーターを初期化します。

blk = tunableSS(___,Astruct) は、行列 AAstruct で指定されている構造体に制限されるパラメトリック状態空間モデルを作成します。この構文は、前述の任意の構文で使用します。

入力引数

すべて展開する

パラメトリック状態空間モデル Name'C0' などの文字ベクトルとして指定します プロパティを参照してください。

パラメトリック状態空間モデル blk の出力の数。非負の整数として指定します。

パラメトリック状態空間モデル blk の出力の数。非負の整数として指定します。

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

パラメトリック状態空間モデル blk の行列 A の形式に対する制約。'tridiag''full'、または 'companion' として指定します。

Astruct の値行列 A の構造
'tridiag'A は、三角対角です。三角対角形式では、A は、主対角内、主対角より下側の最初の対角、および主対角の上側の最初の対角にのみ自由要素をもちます。A の残りの要素は 0 に固定されます。
'full'A は非スパースです (A のすべてのエントリは自由パラメーターです)。
'companion'A はコンパニオン形式です。コンパニオン形式では、システムの特性多項式は、行列 A の右端の列に明示的に現れます。詳細は、canon を参照してください。

blk の状態の数、入力と出力の数、サンプル時間、およびパラメーターの初期値を提供する動的システム モデル。動的システム モデル オブジェクトとして指定します。次元と初期パラメーター値を取得するため、tunableSSsysAstruct で指定された構造の状態空間モデルに変換します。Astruct を省略した場合、tunableSSsys を三角対角状態空間形式に変換します。

プロパティ

すべて展開する

調整可能な状態空間モデル blk の状態空間行列 A、B、C、および D のパラメーター表現。param.Continuous オブジェクトとして格納されます。これらの param.Continuous オブジェクトのプロパティに関する一般的な情報については、param.Continuous (Simulink Design Optimization) を参照してください。

blk.Ablk.Bblk.C、および blk.D の以下のフィールドは、hinfstruct を使用して blk を調整するときに使用されます。

フィールド説明
Value

パラメーター化された状態空間行列のエントリの現在の値。たとえば、blk.A.Valueblk の行列 A の値を含みます。

hinfstruct (Robust Control Toolbox) は、値が blk.Gain.Free によって固定されたものを除き、blk.A.Valueblk.B.Valueblk.C.Value および blk.D.Value のすべてのエントリを調整します。

Free

対応する状態空間行列パラメーターが固定または自由のどちらのパラメーターかを決定する論理値の 2 次元の配列。以下に例を示します。

  • blk.A.Free(i,j) = 1 である場合、blk.A.Value(i,j) は調整可能なパラメーターです。

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

既定: 既定では、BC および D のすべてのエントリは調整可能です。A の既定の自由エントリは、次のように Astruct の値によって異なります。

  • 'tridiag'blk.A.Free の三重対角のエントリは 1 です。それ以外は 0 です。

  • 'full'blk.A.Free のすべてのエントリは 0 です。

  • 'companion'blk.A.Free(1,:) = 1 および blk.A.Free(j,j-1) = 1。他のすべてのエントリは 0 です。

Minimum

パラメーターの最小値。このプロパティは、パラメーターの調整された値に下限を設定します。たとえば、blk.A.Minimum(1,1) = 0 と設定すると、行列 A の最初のエントリは必ず正になります。

既定: -Inf

Maximum

パラメーターの最大値。このプロパティは、パラメーターの調整された値に上限を設定します。たとえば、blk.A.Maximum(1,1) = 0 と設定すると、行列 A の最初のエントリは必ず負になります。

既定: Inf

状態名。次の値のいずれかとして格納されます。

  • 文字ベクトル — 'velocity' などの 1 次モデルの場合。

  • 文字ベクトルの cell 配列 — 2 つ以上の状態をもつモデルの場合

  • '' — 名前のない状態の場合。

状態単位。次の値のいずれかとして格納されます。

  • 文字ベクトル — 'velocity' などの 1 次モデルの場合

  • 文字ベクトルの cell 配列 — 2 つ以上の状態をもつモデルの場合

  • '' — 単位が指定されない状態の場合

    各状態が表現される単位を記録するために StateUnit を使用します。StateUnit はシステムの動作に影響しません。

サンプル時間。スカラーとして格納されます。連続時間モデルの場合、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

すべて折りたたむ

ゼロの行列 D のあるパラメーター化された 5 次 SISO モデルを作成します。

 blk = tunableSS('ssblock',5,1,1);
 blk.D.Value = 0;      % set D = 0
 blk.D.Free = false;   % fix D to zero

既定では、行列 A は三角対角形式です。コンパニオン形式でモデルをパラメーター化するには、'companion' 入力引数を使用します。

 blk = tunableSS('ssblock',5,1,1,'companion');
 blk.D.Value = 0;      % set D = 0
 blk.D.Free = false;   % fix D to zero

パラメトリック状態空間モデルを作成し、名前を入力に割り当てます。

blk = tunableSS('ssblock',5,2,2) % 5 states, 2 outputs, 2 inputs
Tunable continuous-time state-space model "ssblock".
This model has 2 outputs, 2 inputs, 5 states, and 37 tunable parameters.

Type "ss(blk)" to see the current value.
blk.InputName = {'Xerror','Yerror'} % assign input names
Tunable continuous-time state-space model "ssblock".
This model has 2 outputs, 2 inputs, 5 states, and 37 tunable parameters.

Type "ss(blk)" to see the current value.

ヒント

  • Astruct 入力引数を使用して、パラメトリック状態空間モデルの行列 A の構造を制限します。状態空間行列に追加構造制約を課すには、フィールド blk.A.Freeblk.B.Freeblk.C.Freeblk.D.Free を使用してパラメーター行列の具体的なエントリの値を固定します。

    たとえば、blk.B(i,j) の値を固定するには、blk.B.Free(i,j) = 0 を設定します。hinfstruct (Robust Control Toolbox)blk.B(i,j) を調整できるようにするには、blk.B.Free(i,j) = 1 を設定します。

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

バージョン履歴

R2016a で導入

すべて展開する