このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
むだ時間をもつ離散化システムの精度の向上
この例では、サンプル時間の非整数倍であるむだ時間をもつシステムで、周波数領域の精度を向上させる方法を示します。
サンプリング時間の整数倍でないむだ時間をもつシステムでは、既定で Tustin
メソッドと Matched
メソッドによって、値の最も近いサンプル時間の倍数へとむだ時間が丸められます。このようなシステムでこれらのメソッドの精度を高めるため、必要に応じて c2d
で離散時間オールパス フィルター (Thiran フィルター) を使用し、むだ時間の非整数部分を近似できます。この例では、むだ時間の非整数部分を近似したシステムと近似しないシステムを離散化して、結果を比較します。
伝達遅延が 2.5 秒の連続時間伝達関数を作成します。
G = tf(1,[1,0.2,4],'ioDelay',2.5);
1 秒のサンプル時間を使用して G
を離散化します。G
には 2 rad/s で鋭い共振が見られます。1 秒のサンプル時間で、そのピークがナイキスト周波数に近づきます。ピーク付近でダイナミクスが保持されるように周波数領域を一致させるには、プリワープ周波数に 2 rad/s を指定して Tustin メソッドを使用します。
discopts = c2dOptions('Method','tustin','PrewarpFrequency',2); Gt = c2d(G,1,discopts)
Warning: Rounding delays to the nearest multiple of the sampling period. For more accuracy in the time domain, use the ZOH or FOH methods. For more accuracy in the frequency domain, use Thiran filters to approximate the fractional delays (type "help c2dOptions" for more details).
Gt = 0.1693 z^2 + 0.3386 z + 0.1693 z^(-3) * ------------------------------ z^2 + 0.7961 z + 0.913 Sample time: 1 seconds Discrete-time transfer function.
非整数のむだ時間を値の最も近いサンプル時間の倍数に丸めることを知らせる警告が表示されます。この例では、サンプル時間の 2.5 倍のむだ時間 (2.5 秒) が、Gt
における追加因子 z^(-3)
に変換されます。
Gt
を連続時間システム G
と比較します。
plotopts = bodeoptions; plotopts.Ylim = {[-100,20],[-1080,0]}; bodeplot(G,Gt,plotopts); legend('G','Gt')
離散化システム Gt
と連続時間システム G
の間に位相遅れがあり、周波数がナイキスト周波数に近づくほど大きくなります。この位相遅れは、主に非整数むだ時間を丸めたことが原因です。この例では、非整数むだ時間はサンプル時間の半分になります。
3 次離散時間オールパス フィルター (Thiran フィルター) を使用して G
を再度離散化し、むだ時間の半周期分を近似します。
discopts.FractDelayApproxOrder = 3; Gtf = c2d(G,1,discopts);
FractDelayApproxOrder
オプションは、むだ時間の非整数部分を近似する Thiran フィルターの次数を指定します。discopts
の他のオプションは変更されません。このため、Gtf
は 2 rad/s のプリワープで G
を Tustin 離散化したものになります。
Gtf
を G
および Gt
と比較します。
plotopts.PhaseMatching = 'on'; bodeplot(G,Gt,Gtf,plotopts); legend('G','Gt','Gtf','Location','SouthWest')
Gt
と Gtf
のゲインは同じです。しかし、Gtf
の位相は、連続時間システムの位相に対し共振でより良好な一致を見せます。周波数がナイキスト周波数に近づくにつれ、この位相の一致の度合いは低下します。非整数遅延を高次で近似すると、ナイキスト周波数に近づくにつれて位相の一致が向上します。ただし、近似の次数が増えるたびに、離散化システムの次数 (または状態) も増えます。
アプリケーションがナイキスト周波数付近で正確な周波数の一致を必要とする場合は、c2dOptions
を使用して、c2d
に Thiran フィルターとしてむだ時間の非整数部分を近似させます。
参考
関数
c2d
|c2dOptions
|thiran