ドキュメンテーション
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
伝達関数フィルター パラメーターの状態空間形式への変換
[A,B,C,D] = tf2ss(b,a)
例
[A,B,C,D] = tf2ss(b,a) では、連続時間または離散時間の単入力伝達関数が等価な状態空間表現に変換されます。
A
B
C
D
b
a
すべて折りたたむ
次の伝達関数で記述されるシステムがあるとします。
H(s)=[2s+3s2+2s+1]s2+0.4s+1.
tf2ss を使用して、これを状態空間に変換します。
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
単位弾性定数のバネで壁につながれた単位質量 m で構成される 1 次元の離散時間振動システムについて考えます。センサーによりこの質量の加速度 a を Fs=5 Hz でサンプリングします。
50 個の時間サンプルを生成します。サンプリング間隔は Δt=1/Fs と定義します。
Fs = 5; dt = 1/Fs; N = 50; t = dt*(0:N-1); u = [1 zeros(1,N-1)];
このシステムの伝達関数の解析式は次のようになります。
H(z)=1-z-1(1+cosΔt)+z-2cosΔt1-2z-1cosΔt+z-2
系に正の方向の単位インパルスを与えます。伝達関数を使用してシステムの時間発展を計算します。応答をプロットします。
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')
伝達関数の分子係数。ベクトルまたは行列として指定します。b が行列の場合、b の各行はシステムの出力に対応します。
離散時間システムの場合、b には、z の降べきの順で係数が含まれます。
連続時間システムの場合、b には、s の降べきの順で係数が含まれます。
離散時間システムでは、b の列数と a の長さは等しくなければなりません。数が異なる場合は、ゼロをパディングすることで等しくします。これを実行するには、関数 eqtflength を使用します。
eqtflength
伝達関数分の分母係数。ベクトルとして指定します。
離散時間システムの場合、a には、z の降べきの順で係数が含まれます。
連続時間システムの場合、a には、s の降べきの順で係数が含まれます。
状態行列。行列として返される。システムが n 個の状態変数により記述される場合、A は n 行 n 列になります。
データ型: single | double
single
double
状態への入力行列。行列として返される。システムが n 個の状態変数により記述される場合、B は n 行 1 列になります。
出力への状態行列。行列として返される。システムに q 個の出力があり、n 個の状態変数により記述される場合、C は q 行 n 列になります。
行列として返される直達行列。システムに q 個の出力がある場合、D は q 行 1 列になります。
tf2ss では、伝達関数型で与えられたシステムのパラメーターが等価な状態空間表現に変換されます。
離散時間システムの場合、状態空間の行列は状態ベクトル x、入力 u および出力 y を以下の式により表します。
x(k+1)=Ax(k)+Bu(k),y(k)=Cx(k)+Du(k).
伝達関数は、システムのインパルス応答の Z 変換です。状態空間行列に対しては、以下のように表すことができます。
H(z)=C(zI−A)−1B+D.
連続時間システムの場合、状態空間の行列は状態ベクトル x、入力 u および出力 y を以下の式により表します。
x˙=Ax+Bu,y=Cx+Du.
伝達関数は、システムのインパルス応答のラプラス変換です。状態空間行列に対しては、以下のように表すことができます。
H(s)=B(s)A(s)=b1sn−1+⋯+bn−1s+bna1sm−1+⋯+am−1s+am=C(sI−A)−1B+D.
sos2ss | ss2tf | tf2sos | tf2zp | tf2zpk | zp2ss
sos2ss
ss2tf
tf2sos
tf2zp
tf2zpk
zp2ss
A modified version of this example exists on your system. Do you want to open this version instead? (ja_JP)
MATLAB のコマンドを実行するリンクがクリックされました。
このリンクは、Web ブラウザーでは動作しません。MATLAB コマンド ウィンドウに以下を入力すると、このコマンドを実行できます。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office