Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

genfrd

一般化周波数応答データ (FRD) モデル

説明

一般化 FRD (genfrd) モデルは、数値 FRD モデルと調整可能なコンポーネント (制御設計ブロック) を含むモデルを組み合わせるときに生じます。genfrd モデルは、調整可能なブロックが調整可能なコンポーネントとどのようにやり取りするのかを記録します。制御設計ブロックの詳細は、一般化モデルを参照してください。

構築

genfrd モデルを構築するには、seriesparallellft、または connect か、算術演算子 +-*/\、および ^ を使用して数値 FRD モデルと制御設計ブロックを組み合わせます。

また、数値 LTI モデルまたは制御設計ブロック sysgenfrd 形式に変換できます。

frdsys = genfrd(sys,freqs,frequnits) は、任意の静的モデルまたは動的システム sys を一般化 FRD モデルに変換します。sysfrd モデル オブジェクトではない場合、genfrd はベクトル freqs の各周波数点の周波数応答を計算します。周波数 freqs は、オプションの引数 frequnits によって指定された単位になります。frequnits が省略された場合、freqs の単位は 'rad/TimeUnit' になります。

frdsys = genfrd(sys,freqs,frequnits,timeunits) は、さらに sysgenfrd 形式に変換するための時間単位を指定します。

genfrd モデルの時間と周波数の単位の詳細については、プロパティを参照してください。

入力引数

sys

静的モデルまたは動的システム モデル オブジェクト。

freqs

周波数点のベクトル。frequnits で指定された単位で周波数を表現します。

frequnits

genfrd モデルの周波数の単位。以下のいずれかの値として指定します。

  • 'rad/TimeUnit'

  • 'cycles/TimeUnit'

  • 'rad/s'

  • 'Hz'

  • 'kHz'

  • 'MHz'

  • 'GHz'

  • 'rpm'

既定値: 'rad/TimeUnit'

timeunits

genfrd モデルの時間単位。以下のいずれかの値として指定します。

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

既定値: 'seconds'

プロパティ

Blocks

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

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

M.Blocks.a.Value = -1;

Frequency

周波数応答データの周波数点。FrequencyUnit プロパティで指定された単位で Frequency 値を指定します。

FrequencyUnit

モデルの周波数単位。

FrequencyUnitFrequency プロパティの周波数ベクトルの単位を指定します。FrequencyUnit に以下のいずれかの値を設定します。

  • 'rad/TimeUnit'

  • 'cycles/TimeUnit'

  • 'rad/s'

  • 'Hz'

  • 'kHz'

  • 'MHz'

  • 'GHz'

  • 'rpm'

単位 'rad/TimeUnit''cycles/TimeUnit' は、TimeUnit プロパティで指定された時間単位に相対的です。

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

既定値: 'rad/TimeUnit'

InputDelay

各入力チャネルの入力遅延。スカラー値または数値ベクトルとして指定します。連続時間システムの場合、TimeUnit プロパティに格納された時間単位で入力遅延を指定します。離散時間システムの場合、サンプル時間 Ts の整数倍で入力遅延を指定します。たとえば、InputDelay = 3 は 3 サンプル時間の遅延を意味します。

Nu 入力のあるシステムの場合、InputDelayNu 行 1 列のベクトルに設定します。このベクトルの各エントリは、対応する入力チャネル用の入力遅延を表す数値です。

InputDelay をスカラー値に設定して、同一の遅延をすべてのチャネルに適用することもできます。

既定値: 0

OutputDelay

出力遅延。OutputDelay は、各出力チャネル用のむだ時間を指定する数値ベクトルです。連続時間システムの場合、TimeUnit プロパティに格納された時間単位で出力遅延を指定します。離散時間システムの場合、サンプル時間 Ts の整数倍で出力遅延を指定します。たとえば、OutputDelay = 3 は 3 サンプリング周期の遅延を意味します。

Ny 出力のあるシステムの場合、OutputDelayNy 行 1 列のベクトルに設定します。ここで、それぞれのエントリは、対応する出力チャネル用の出力遅延を表す数値です。OutputDelay をスカラー値に設定して、同一の遅延をすべてのチャネルに適用することもできます。

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

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.OutputGroup.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® データ型として指定します。

既定値: []

SamplingGrid

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

1 つ以上の独立変数をサンプリングすることによって得られるモデル配列の場合、このプロパティは配列内の各モデルに関連付けられた変数値を追跡します。この情報はモデル配列を表示またはプロットすると表示されます。この情報を使用して、結果を独立変数まで遡ります。

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

たとえば、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)

M を表示する際、配列の各エントリは対応する zetaw の値を取り込みます。

M
M(:,:,1,1) [zeta=0.3, w=5] =
 
        25
  --------------
  s^2 + 3 s + 25
 

M(:,:,2,1) [zeta=0.35, w=5] =
 
         25
  ----------------
  s^2 + 3.5 s + 25
 
...

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

既定値: []

ヒント

  • genfrd モデルは通常の frd モデルとして扱うことができます。bode などの周波数領域解析コマンドは、調整可能な各パラメーターをその現在の値に置き換えることによってモデルを評価します。

バージョン履歴

R2011a で導入