補償器の離散化
この例では、複数の離散化手法を使用して補償器を連続時間から離散時間に変換し、周波数領域の良好な一致が得られる方法を特定します。
連続時間で補償器を設計し、その後でデジタル実装のためにこれを離散時間に変換する必要が生じることがあります。その場合、離散化の際に性能と安定性要件に必要な周波数領域特性を保持するようにします。
次の制御システムでは、G
は約 3 rad/s で鋭い共振をもつ連続時間の 2 次システムです。
このシステムの 1 つの有効なコントローラーとして、積分器と直列のノッチ フィルターがあります。このコントローラーのモデルを作成します。
notch = tf([1,0.5,9],[1,5,9]); integ = pid(0,0.34); C = integ*notch; bodeplot(C)
3 rad/s を中心としたノッチ フィルターは、G
の共振の効果を抑えます。この構成を使用すると、高速の全体の応答に高いループ ゲインを使用できます。
補償器を離散化します。
Cdz = c2d(C,0.5);
c2d
コマンドでは、複数の異なる離散化手法がサポートされています。このコマンドには手法が指定されていないため、c2d
は既定の方法であるゼロ次ホールド (ZOH) を使用します。ZOH メソッドでは、離散化された補償器の時間領域応答が、各タイム ステップの連続時間応答に一致します。
離散化されたコントローラー Cdz
のサンプル時間は 0.5 秒です。実際には、選択したサンプル時間は、コントローラーを実装するシステムにより、あるいは制御システムの帯域幅により制約を受けることがあります。
C
および Cdz
の周波数領域応答を比較します。
bodeplot(C,Cdz) legend('C','Cdz');
縦の線は、ナイキスト周波数 (ここで、 はサンプル時間) をマークします。ナイキスト周波数付近では、離散化された補償器の応答は、連続時間応答に相対して歪みます。この結果、離散化されたノッチ フィルターがプラントの共振を正しく抑制しないことがあります。
これを修正するため、 Tustin メソッドを使用して補償器を離散化し、ZOH の結果と比較します。Tustin 離散化手法では、しばしば周波数領域において ZOH メソッドよりも良好な一致が得られます。
Cdt = c2d(C,0.5,'tustin'); plotopts = bodeoptions; plotopts.Ylim = {[-60,40],[-225,0]}; bodeplot(C,Cdz,Cdt,plotopts) legend('C','Cdz','Cdt')
Tustin メソッドではノッチの深さが保持されます。ただしこのメソッドでは、多くのアプリケーションでは使用できない周波数シフトが起こります。周波数シフトを修正するには、ノッチ周波数を双一次変換のプリワーピング周波数に指定します。
周波数プリワーピング付きの Tustin メソッドを使用して補償器を離散化し、結果を比較します。
discopts = c2dOptions('Method','tustin','PrewarpFrequency',3.0); Cdtp = c2d(C,0.5,discopts); bodeplot(C,Cdt,Cdtp,plotopts) legend('C','Cdt','Cdtp')
この離散化手法以外に追加の離散化オプションを指定するには、c2dOptions
を使用します。ここでは、離散化オプション セット discopts
で Tustin メソッドとプリワープ周波数の両方を指定します。プリワープ周波数は 3.0 rad/s で、補償器応答のノッチの周波数です。
周波数プリワーピング付きの Tustin メソッドを使用すると、プリワーピングのない Tustin よりも高い周波数応答の一致が得られます。