最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
周波数応答データ モデルの作成、周波数応答データ モデルへの変換
sys = frd(response,frequency)
sys = frd(response,frequency,Ts)
sys = frd
sysfrd = frd(sys,frequency)
sysfrd = frd(sys,frequency,units)
sys = frd(response,frequency)
は多次元配列 response
に格納されている周波数応答データから周波数応答データ (frd
) モデル オブジェクトの sys
を作成します。ベクトルの frequency
は周波数応答データの基になっている周波数を表します。応答データ形式の一覧は、FRD モデルで使う引数 response に対応するデータ形式を参照してください。
sys = frd(response,frequency,Ts)
はスカラーのサンプル時間が Ts
の離散時間 frd
モデル オブジェクト sys
を作成します。サンプル時間を指定せずに離散時間 frd
モデル オブジェクトを作成する場合は、Ts
= -1 に設定します。
sys = frd
は、空の frd
モデル オブジェクトを作成します。
これらの構文の入力引数一覧に次のプロパティ名/プロパティ値の組み合わせを続けることができます。
'PropertyName',PropertyValue
これらの追加引数を使用して、モデルにさまざまなプロパティを設定できます。frd
モデルの利用可能なプロパティの詳細は、プロパティを参照してください。
FRD モデルの sys
が既存の LTI モデルの refsys
から強制的にすべての一般 LTI プロパティを継承するようにするには、次の構文を使用します。
sys = frd(response,frequency,ltisys)
sysfrd = frd(sys,frequency)
は、動的システム モデル sys
を周波数応答データ形式に変換します。周波数応答はベクトル frequency
で提供される周波数で rad/TimeUnit
単位で計算されます。このとき、TimeUnit
は sys
の TimeUnit
プロパティで指定される、入力動的システムの時間単位です。
sysfrd = frd(sys,frequency,units)
は動的システム モデルを frd
モデルに変換して、frequency
ベクトル内の周波数が units
によって指定された単位になるように解釈します。units
が取ることができる値のリストについては、プロパティで FrequencyUnit
プロパティを参照してください。
SISO FRD モデルや MIMO FRD モデル、あるいは FRD モデルの配列を指定する場合、入力引数 frequency
は常に長さが Nf
のベクトルになり、Nf
は FRD の周波数データ点の数を示します。入力引数 response
の指定を次の表にまとめます
FRD モデルで使う引数 response に対応するデータ形式
モデル形式 | 応答データ形式 |
---|---|
SISO モデル |
|
MIMO モデル(出力数 |
|
| サイズ [ |
frd
オブジェクトには次のプロパティがあります。
|
周波数応答データの周波数点。 |
|
モデルの周波数単位。
単位 このプロパティを変更すると、システム全体の動作が変更されます。 既定値: |
|
周波数応答データ。 |
|
伝達遅延。 連続時間システムの場合、
既定値: すべての入出力の組み合わせに対して |
|
各入力チャネルの入力遅延。スカラー値または数値ベクトルとして指定します。連続時間システムの場合、
既定値: 0 |
|
出力遅延。
既定値: すべての出力チャネルに対して 0 |
|
サンプル時間。連続時間モデルの場合、 このプロパティを変更してもモデルの離散化やリサンプリングは行われません。 既定値: |
|
モデル内の時間変数、サンプル時間
このプロパティを変更しても他のプロパティには影響しないため、システム全体の動作が変更されます。 既定値: |
|
入力チャネル名。以下のいずれかとして指定します。
または、自動的なベクトル拡張を使用して多入力モデルの入力名を割り当てます。たとえば、 sys.InputName = 'controls'; 入力名は自動的に 省略形表記 以下を含めて、入力チャネル名はいくつかの用途をもちます。
既定値: すべての入力チャネルに対する |
|
入力チャネル単位。以下のいずれかとして指定します。
既定値: すべての入力チャネルに対する |
|
入力チャネル グループ。 sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; これは、入力チャネル 1、2 および 3、5 をそれぞれ含む sys(:,'controls') 既定値: フィールドのない構造体 |
|
出力チャネル名。次のいずれかとして指定されます。
または、自動的なベクトル拡張を使用して多出力モデルの出力名を割り当てます。たとえば、 sys.OutputName = 'measurements'; 出力名は自動的に 省略形表記 以下を含めて、出力チャネル名はいくつかの用途をもちます。
既定値: すべての出力チャネルに対して |
|
出力チャネル単位。次のいずれかとして指定されます。
既定値: すべての出力チャネルに対して |
|
出力チャネル グループ。 sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; これは、出力チャネル 1 および 3、5 をそれぞれ含む sys('measurement',:) 既定値: フィールドのない構造体 |
|
システム名。文字ベクトルとして指定します。たとえば、 既定値: |
|
システムに関連付ける任意のテキスト。string または文字ベクトルの cell 配列として格納されます。プロパティには指定したデータ型が格納されます。たとえば、 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® データ型として指定します。 既定値: |
|
モデル配列のサンプリング グリッド。データ構造として指定されます。 1 つまたは複数の独立変数をサンプリングすることによって得られるモデル配列の場合、このプロパティは配列内の各モデルに関連付けられた変数値を追跡します。この情報はモデル配列を表示またはプロットすると表示されます。この情報を使用して、結果を独立変数まで遡ります。 データ構造のフィールド名をサンプリング変数の名前に設定します。フィールドの値を、配列内の各モデルに関連付けられているサンプリングされた変数の値に設定します。すべてのサンプリング変数は数値でスカラー値でなければならず、サンプル値のすべての配列はモデル配列の次元に一致しなければなりません。 たとえば、 sysarr.SamplingGrid = struct('time',0:10) 同様に、2 つの変数 [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
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® モデルを線形化することにより生成されたモデル配列の場合、 既定値: |
周波数応答モデルの作成
周波数ベクトルおよび応答データから SISO FRD モデルを作成します。
% generate a frequency vector and response data freq = logspace(1,2); resp = .05*(freq).*exp(i*2*freq); % Create a FRD model sys = frd(resp,freq);
chgFreqUnit
| chgTimeUnit
| frdata
| frdfun
| set
| ss
| tf
| zpk
| idfrd
(System Identification Toolbox)