Control System Toolbox関数リファレンス    
tf

伝達関数を設定するか、LTIモデルを伝達関数型に変換

表示

詳細

tf は、伝達関数モデル(TFオブジェクト)を作成するため、あるいは、状態空間モデルまたは零-極-実数値モデルを伝達関数型に変換するために使用します。

伝達関数の作成

sys = tf(num,den) は、numおよびdenで設定した分子と分母をもつ連続系伝達関数を作成します。出力sysは、伝達関数データを格納するTFオブジェクトです(マニュアルの"伝達関数モデル"を参照)。

SISOの場合、numおよびdenは、のべき乗の降順に並べられた分子と分母係数の実数値行ベクトルです。これらの2つのベクトルは、等しい長さである必要はなく、伝達関数はプロパである必要もありません。たとえば、h = tf([1 0],1) は、微分器を設定します。

MIMO伝達関数を作成するには、SISO要素毎の分子と分母を設定します。この場合、

MIMO伝達関数のすべてのSISO要素が同じ分母をもつ場合、denに共通分母の行ベクトル表現を設定することができます。詳細については、つぎの例題を参照してください。

sys = tf(num,den,Ts) は、サンプル時間Ts(秒単位)の離散時間伝達関数を作成します。サンプル時間を未設定のままにするには、Ts = -1またはTs = []と設定します。入力引数numおよびden は、連続系の場合と同様で、分子、分母係数をのべき乗の降順に表示しなければなりません。

sys = tf(M) は、静的ゲイン M(スカラまたは行列)を作成します。

sys = tf(num,den,ltisys) は、LTIモデルltisys(サンプル時間を含め)から継承した一般的なLTIプロパティをもつ伝達関数を作成します。一般的なLTIプロパティの概要については、マニュアルの"基本的なプロパティ"を参照してください。

伝達関数のLTI配列の作成には、いくつかの方法があります。SISO TFモデルまたはMIMO TFモデルの配列を作成するには、多次元セル配列を使って、各SISOに関する分子と分母を設定するか、または、配列内の各TFモデルをforループを使って連続的に割り与える方法があります。詳細は、マニュアルの"LTI配列の作成"を参照してください。

上記の構文のいずれにも、つぎのプロパティ/値の組み合わせを後に続けることができます。

各組は、たとえば入力名や伝達関数変数などのモデルの特定のLTIプロパティを設定します。詳細については、setの項および、つぎの例題を参照してください。

は、

をまとめたものです。

SまたはZの有理数で表わした伝達関数

実数有理数表現を使って、TFモデルを作成することができます。まず、つぎのどちらかを行います。

これらの変数の内、一つを設定すると、sまたはzで表わした有理数表現として、伝達関数を入力することにより、変数sまたはzで表わした有理数表現として、直接TFモデルを設定することができます。

伝達関数への変換

tfsys = tf(sys) は、任意のSSまたはZPKのLTIモデルsysを伝達関数型に変換します。出力tfsys(TF オブジェクト)は、sysの伝達関数です。デフォルトでは、状態空間モデルを伝達関数型に変換する場合、tfzeroを使って分子を計算します。または、

は、状態空間モデルに対する逆変換式を使って分子を導きます。このアルゴリズムは高速ですが、で低いゲインをもつ高次モデルに対して精度が落ちます。

例題

例題 1

入力として、current 、出力として torqueang velocityをもつ2出力、1入力の伝達関数

を、つぎのように入力してください。

MATLABは、つぎの出力を行います。

'variable'プロパティを'p'に設定すると、結果がどのように変数の伝達関数として表示されるかに注意してください。

例題 2

SISO TFモデルを、有理数表現を使って作成します。

これは、つぎのステートメントと同じ伝達関数を生成します。

h = tf([1 0],[1 2 10]);

例題 3

離散MIMO伝達関数をつぎのように設定します。

ここで、分母は、共通で、で表わし、サンプル時間は0.2秒とします。

例題 4

つぎのデータをもつ状態空間モデルの伝達関数を計算します。

つぎのように入力します。

例題 5

SISO TFモデルの10行1列の配列をforループとして使用します。

この最初のステートメントは、TF配列の前に配置され、ゼロの伝達関数に合わされます。

離散時間変換

制御およびデジタル信号処理(DSP)の世界では、異なる記法を使って離散系伝達関数を設定する傾向があります。ほとんどのエンジニアは、変数を使用して 、のべき乗の降順に分子、分母の項を並べます。たとえば、つぎのとおりです。

この場合、多項式 および は、行ベクトル[1 0 0] および[1 2 3]によって、それぞれ設定されます。これに対して、DSPエンジニアは、この伝達関数を

のように表し、その分子を1と設定し([1 0 0]の代わりに)、その分母を[1 2 3]と設定するほうを好みます。

これら2つの記法は、分子と分母が異なる長さをもっている場合、問題を生じます。2つの表現法での整合性を保ため、tfは選択した変数に基づいて記法を切り替えます('Variable' プロパティの値)。

変数
変換
'z' (デフォルト)
行ベクトル[ak ... a1 a0]を使って多項式(べき乗の降順に並べられた係数を設定する)。
'z^-1', 'q'
行ベクトル[b0 b1 ... bk]を使って多項式(またはのべき乗の昇順に並べられた係数を設定する)。

たとえば、

は、つぎの離散系伝達関数を設定します。

は、デフォルトの記法です。これと対照的に

は、DSP記法を使用し、

を作成します。また、DSP記法を用いる離散系伝達関数の直接設定については、filtも参照してください。

tfは、分子と分母の長さが等しくなるように、変数に独立に表現することに注意してください。特に、tfg(分子には左側にゼロが入ります)に対して値

を格納し、h(分子には右側にゼロが加えられます)に対して値

を格納します。

アルゴリズム

tfは、MATLAB関数polyを使って、零点-極-ゲインモデルに変換し、関数zeroおよびpoleを使って状態空間モデルに変換します。

参考
filt        DSP形式を使った離散伝達関数

frd         周波数応答データモデルの設定

get         LTIモデルのプロパティを抽出

set         LTIモデルのプロパティの設定

ss          状態空間モデルの設定または状態空間モデルへの変換

tfdata      伝達関数データの抽出

zpk         零点-極-ゲインモデルの設定または零点-極-ゲインモデルへの変換


 step tfdata