ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

tf2ss

伝達関数フィルター パラメーターの状態空間形式への変換

構文

[A,B,C,D] = tf2ss(b,a)

説明

tf2ss では、伝達関数型で与えられたシステムのパラメーターが等価な状態空間表現に変換されます。

[A,B,C,D] = tf2ss(b,a) では、以下の単入力伝達関数に対する状態空間行列 ABC、および D が返されます。

から、コントローラーの正準型

入力ベクトル a は、s の次数の降順に並べられた分母の係数です。行列 b の行は、分子係数のベクトルに対応します (各行が 1 つの出力に対応)。離散時間の場合、ba は、z の次数の降順に並べた分子と分母の係数ベクトルです。

離散時間システムでは、b の列数と a の長さは等しくなければなりません。b で表される各分子の長さが (場合によってはベクトル a で表される分母の長さも) 等しくなるようにゼロを付加して調整できます。ba の長さが等しくない場合は、関数 eqtflength を使用して等しくすることができます。

関数 tf2ss は、MATLAB® 基本モジュールに用意されています。

メモ:

参考文献において、正準型の命名法は統一されていません。ただし、ここでの結果を他の形式に変換する相似変換を簡単に生成できます。

すべて折りたたむ

次の伝達関数で記述されるシステムがあるとします。

tf2ss を使用して、これを状態空間に変換します。

b = [0 2 3; 1 2 1];
a = [1 0.4 1];
[A,B,C,D] = tf2ss(b,a)
A = 2×2

   -0.4000   -1.0000
    1.0000         0

B = 2×1

     1
     0

C = 2×2

    2.0000    3.0000
    1.6000         0

D = 2×1

     0
     1

単位弾性定数のバネで壁につながれた単位質量 で構成される 1 次元の離散時間振動システムについて考えます。センサーによりこの質量の加速度 Hz でサンプリングします。

50 個の時間サンプルを生成します。サンプリング間隔は と定義します。

Fs = 5;
dt = 1/Fs;
N = 50;
t = dt*(0:N-1);
u = [1 zeros(1,N-1)];

このシステムの伝達関数の解析式は次のようになります。

系に正の方向の単位インパルスを与えます。伝達関数を使用してシステムの時間発展を計算します。応答をプロットします。

bf = [1 -(1+cos(dt)) cos(dt)];
af = [1 -2*cos(dt) 1];
yf = filter(bf,af,u);

stem(t,yf,'o')
xlabel('t')

このシステムの状態空間表現を求めます。すべてゼロの初期状態からの時間発展を計算します。それを伝達関数予測と比較します。

[A,B,C,D] = tf2ss(bf,af);

x = [0;0];
for k = 1:N
    y(k) = C*x + D*u(k);
    x = A*x + B*u(k);
end

hold on
stem(t,y,'*')
hold off
legend('tf','ss')

R2006a より前に導入