Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

むだ時間をもつ離散化システムの精度の向上

この例では、サンプル時間の非整数倍であるむだ時間をもつシステムで、周波数領域の精度を向上させる方法を示します。

サンプリング時間の整数倍でないむだ時間をもつシステムでは、既定で 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')

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains 2 objects of type line. These objects represent G, Gt. Axes object 2 with ylabel Phase (deg) contains 2 objects of type line. These objects represent G, Gt.

離散化システム Gt と連続時間システム G の間に位相遅れがあり、周波数がナイキスト周波数に近づくほど大きくなります。この位相遅れは、主に非整数むだ時間を丸めたことが原因です。この例では、非整数むだ時間はサンプル時間の半分になります。

3 次離散時間オールパス フィルター (Thiran フィルター) を使用して G を再度離散化し、むだ時間の半周期分を近似します。

discopts.FractDelayApproxOrder = 3;
Gtf = c2d(G,1,discopts);

FractDelayApproxOrder オプションは、むだ時間の非整数部分を近似する Thiran フィルターの次数を指定します。discopts の他のオプションは変更されません。このため、Gtf は 2 rad/s のプリワープで G を Tustin 離散化したものになります。

GtfG および Gt と比較します。

plotopts.PhaseMatching = 'on';
bodeplot(G,Gt,Gtf,plotopts);
legend('G','Gt','Gtf','Location','SouthWest')

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains 3 objects of type line. These objects represent G, Gt, Gtf. Axes object 2 with ylabel Phase (deg) contains 3 objects of type line. These objects represent G, Gt, Gtf.

GtGtf の振幅は同じです。しかし、Gtf の位相は、連続時間システムの位相に対し共振でより良好な一致を見せます。周波数がナイキスト周波数に近づくにつれ、この位相の一致の度合いは低下します。非整数遅延を高次で近似すると、ナイキスト周波数に近づくにつれて位相の一致が向上します。ただし、近似の次数が増えるたびに、離散化システムの次数 (または状態) も増えます。

アプリケーションがナイキスト周波数付近で正確な周波数の一致を必要とする場合は、c2dOptions を使用して、c2d に Thiran フィルターとしてむだ時間の非整数部分を近似させます。

参考

関数

ライブ エディター タスク

関連するトピック