ドキュメンテーション

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

連続/離散の変換方法

変換手法の選択

c2d コマンド は連続時間モデルを離散化します。その逆に、d2c は離散時間モデルを連続時間モデルに変換します。次の表に示すように、 両方のコマンドで複数の離散化および内挿の方法がサポートされています。

離散化手法使用状況
ゼロ次ホールド階段型入力の時間領域で正確な離散化を行う場合。
1 次ホールド 区分的線形入力の時間領域で正確な離散化を行う場合。
インパルス不変法のマッピング (c2d のみ)

インパルス列入力の時間領域で正確な離散化を行う場合。

Tustin 近似
  • 連続時間と離散時間モデル間の周波数領域に良好なマッチングが必要な場合。

  • 特定の周波数付近のモデルに重要なダイナミクスがある場合。

極-零点マッチング (相当) SISO モデルを使用していて、連続時間と離散時間モデル間の周波数領域に良好なマッチングが必要な場合。

ゼロ次ホールド

ゼロ次ホールド (ZOH) メソッドは、階段型入力の時間領域で連続時間システムと離散時間システムを完全に一致させます。

次のブロック線図は、連続時間線形モデル H(s) のゼロ次ホールド離散化 Hd(z) を示します。

ZOH ブロックは、1 つのサンプル周期で各サンプル値 u(k) を固定し、連続時間入力信号 u(t) を生成します。

u(t)=u[k],kTst(k+1)Ts

信号 u(t) は連続システム H(s) への入力です。出力 y[k]Ts 秒間隔で y(t) をサンプリングした結果です。

一方、離散システム Hd(z) が与えられると、d2c は連続システム H(s) を生成します。H(s) の ZOH 離散化は Hd(z) と一致します。

ZOH の離散化から連続への変換には次の制限があります。

  • d2c は極が z = 0 のときに LTI モデルを変換できません。

  • 負の実数の極をもつ離散時間 LTI モデルでは、ZOH d2c 変換で高次の連続システムを作成します。z 領域の負の実数極が s 領域の純粋な虚数部にマッピングされるため、モデル次数が増えます。このマッピングの結果、複素数データをもつ連続時間モデルができます。これを避けるため、ソフトウェアでは s 領域に複素共役極の組が導入されます。例は、離散時間システムの連続時間システムへの変換を参照してください。

むだ時間をもつシステムでの ZOH メソッド

ZOH メソッドを使用して、むだ時間を含む SISO または MIMO の連続時間モデルも離散化できます。ZOH メソッドでは、入力遅延、出力遅延または伝達遅延をもつシステムで正確な離散化が行われます。

内部遅延 (フィードバック ループに遅延がある) システムの場合、ZOH メソッドによって近似離散化を得ることができます。次の図は、内部遅延をもつシステムを示します。

このようなシステムでは、関数 c2d は次に示すアクションを実行して、近似の ZOH 離散化を計算します。

  1. 遅延 T を、0ρ<Tsτ=kTs+ρ として分解します。

  2. 非整数遅延 ρ を H(s) に吸収します。

  3. H(s) を H(z) に離散化します。

  4. 遅延 kTs の整数部を、内部離散むだ時間 z–k として表現します。最終的な離散化モデルは、次の図に示すように組み立てられます。

1 次ホールド

1 次ホールド (FOH) メソッドは、区分的線形入力の時間領域で連続時間システムと離散時間システムを完全に一致させます。

FOH と ZOH では、基になるホールド メカニズムが異なります。入力サンプル u[k] を連続入力 u(t) に変換するために、FOH ではサンプル間で線形内挿が次のように使用されます。

u(t)=u[k]+tkTsTs(u[k+1]u[k]),kTst(k+1)Ts

この手法は、システムで入力がスムーズに行われる点で一般的に ZOH よりも正確です。

この FOH 法は、標準の因果的な FOH と異なり、"三角形近似" と呼ぶほうが適切です ([2]、p. 228 を参照)。このメソッドは、ランプ不変近似とも呼ばれます。

むだ時間をもつシステムでの FOH メソッド

FOH メソッドを使用して、むだ時間を含む SISO または MIMO の連続時間モデルも離散化できます。FOH メソッドは ZOH メソッドと同じ方法でむだ時間を処理します。むだ時間をもつシステムでの ZOH メソッドを参照してください。

インパルス不変法のマッピング

インパルス不変法のマッピングでは、連続時間システムと同じインパルス応答をもつ離散時間モデルが生成されます。たとえば、1 次連続システムのインパルス応答をインパルス不変法の離散化と比較します。

G = tf(1,[1,1]);
Gd1 = c2d(G,0.01,'impulse');
impulse(G,Gd1)

インパルス応答プロットでは、連続システムと離散システムが一致するインパルス応答が示されます。

むだ時間をもつシステムでのインパルス不変法のマッピング

インパルス不変法のマッピングを使用して、むだ時間をもつ SISO または MIMO の連続時間モデルを離散化できます。ただしこのメソッドは内部遅延をもつ ss モデルはサポートしていません。サポートされているモデルの場合、インパルス不変法のマッピングではむだ時間の正確な離散化結果がもたらされます。

Tustin 近似

Tustin または 双一次近似は、連続時間システムと離散化システム間で最適な周波数領域の一致をもたらします。このメソッドは、近似を使用して、s-領域と z-領域の伝達関数を関連付けます。

z=esTs1+sTs/21sTs/2.

c2d 変換で、連続時間の伝達関数 H(s) の離散化 Hd(z) は、次のようになります。

Hd(z)=H(s),s=2Tsz1z+1

同様に、d2c 変換では逆の対応を使用します。

H(s)=Hd(z),z=1+sTs/21sTs/2

Tustin メソッドを使用して状態空間モデルを変換しても、状態は保持されません。状態変換は、状態空間行列、およびシステムにむだ時間があるかどうかによって異なります。たとえば、むだ時間のない明示的な (E = I) 連続時間モデルでは、離散化モデルの状態ベクトル w[k] が以下によって連続時間の状態ベクトル x(t) に関連付けられます。

w[kTs]=(IATs2)x(kTs)Ts2Bu(kTs)=x(kTs)Ts2(Ax(kTs)+Bu(kTs)).

Ts は離散時間モデルのサンプル時間です。A と B は連続時間モデルの状態空間行列です。

周波数プリワーピングを含む Tustin 近似

システムの特定の周波数に重要なダイナミクスがあり、変換を保持する場合は、Tustin メソッドで周波数プリワーピングを使用することができます。このメソッドを使用すると、連続時間応答と離散時間応答がプリワープ周波数で一致するようになります。

周波数プリワーピングを含む Tustin 近似は、次の変数変換を使用します。

Hd(z)=H(s),s=ωtan(ωTs/2)z1z+1

変数の変更は、次の対応により、プリワープ周波数 ω で連続時間周波数応答と離散時間周波数応答が一致することを保証するものです。

H(jω)=Hd(ejωTs)

むだ時間をもつシステムでの Tustin 近似

Tustin 近似を使用して、むだ時間を含む SISO または MIMO の連続時間モデルも離散化できます。

既定では、Tustin メソッドは、値の最も近いサンプル時間の倍数へとむだ時間を丸めます。このため、むだ時間 tau では、遅延の整数部 k*Ts は離散化モデルの k サンプリング周期の遅延にマップします。この方法は、残りの非整数遅延 tau - k*Ts を無視します。

指定次数の離散オールパス フィルター (Thiran フィルター) を使用して、遅延の非整数部分を近似することができます。これを行うには、c2dOptionsFractDelayApproxOrder オプションを使用します。例は、むだ時間をもつ離散化システムの精度の向上を参照してください。

Tustin メソッドがむだ時間をもつシステムをどのように扱うかを理解するために、次の SISO 状態空間モデル G(s) を考えてみましょう。このモデルは、入力遅延 τi、出力遅延, τo、および内部遅延 τ をもっています。

次の図は、Tustin メソッドを使用して G(s) を離散化した一般的な結果を示しています。

既定では、c2d はむだ時間を純粋な整数むだ時間に変換します。c2d コマンドは、サンプル時間 Ts の最も近い整数倍にむだ時間を丸めて、整数の遅延を計算します。このため、既定の設定では、mi = round(τi/Ts), mo = round(τo/Ts), and m = round(τ/Ts). となります。またこの場合、Fi(z) = Fo(z) = F(z) = 1 になります。

FractDelayApproxOrder を非ゼロの値に設定した場合は、c2d は、Thiran フィルター Fi(z), Fo(z)、および F(z) によってむだ時間の非整数部分を近似します。

Thiran フィルターは、追加の状態をモデルに追加します。各遅延で追加できる状態の最大数は FractDelayApproxOrder です。

たとえば、入力遅延 τi の場合、Thiran フィルター Fi(z) の次数は次のようになります。

order(Fi(z)) = max(ceil(τi/Ts), FractDelayApproxOrder)

ceil(τi/Ts) < FractDelayApproxOrder の場合、Thiran フィルター Fi(z) は入力遅延 τi 全体を近似します。ceil(τi/Ts) > FractDelayApproxOrder の場合、Thiran フィルターは入力遅延の一部分を近似するだけです。この場合は、c2d は、入力遅延の残りの部分を一連の単位遅延 z–mi として表現します。ここで、

mi = ceil(τi/Ts) – FractDelayApproxOrder

c2d は、出力遅延 τo と内部遅延 τ を近似するのと同様の方法で、Thiran フィルターと FractDelayApproxOrder を使用します。

Tustin メソッドを使用して、tf モデルと zpk モデルを離散化するときに、c2d はまず、すべての入力、出力、伝達遅延を、各チャネルごとに 1 つの伝達遅延 τTOT にまとめます。c2d はその後、ss モデルで各むだ時間ごとに説明したのと同じ方法で、τTOT を Triran フィルターと一連の単位遅延として近似します。

Thiran フィルターの詳細は、thiran のリファレンス ページおよび [4] を参照してください。

極-零点マッチング (相当)

極-零点マッチングに相当する計算で変換する方法は、SISO システムにのみ適用されます。連続システムと離散化システムには一致する DC ゲインがあります。極と零点は次の変換に関連しています。

zi=esiTs

ここで、

  • zi は離散時間システムの i 番目の極または零点です。

  • si は連続時間システムの i 番目の極または零点です。

  • Ts はサンプル時間です。

詳細は、[2] を参照してください。

むだ時間をもつシステムでの極-零点マッチング

極-零点マッチングを使用して、むだ時間をもつ SISO の連続時間モデルを離散化できます。ただしこのメソッドは内部遅延をもつ ss モデルはサポートしていません。極-零点マッチング法は、Tustin 近似と同じ方法でむだ時間を処理します。むだ時間をもつシステムでの Tustin 近似を参照してください。

参照

[1] Åström, K.J. and B. Wittenmark, Computer-Controlled Systems: Theory and Design, Prentice-Hall, 1990, pp. 48-52.

[2] Franklin, G.F., Powell, D.J., and Workman, M.L., Digital Control of Dynamic Systems (3rd Edition), Prentice Hall, 1997.

[3] Smith, J.O. III, “Impulse Invariant Method”, Physical Audio Signal Processing, August 2007. http://www.dsprelated.com/dspbooks/pasp/Impulse_Invariant_Method.html.

[4] T. Laakso, V. Valimaki, “Splitting the Unit Delay”, IEEE Signal Processing Magazine, Vol. 13, No. 1, p.30-60, 1996.

参考

| | | | |

関連するトピック