2015/02/01

PI制御チューニング : Ziegler Nicholsの限界感度法

PID制御のチューニングのテクニックとして、
Ziegler Nicholsの限界感度法(ジーグラ・ニコルス法)が有名なので、
チューニング結果がどのようなものか確認してみることにしました.

ジーグラ・ニコルス法が適用できる前提条件は、
[1]の文献では特に前提がないもの (参考例ではむだ時間のない3次遅れ系)
[2]によるとむだ時間 + 1次遅れ系 ($ \frac{K}{1+Ts}e^{-Ls} $)のときのみ
[3]ではむだ時間+1次遅れ系($ \frac{K}{1+Ts}e^{-Ls} $)ないしはむだ時間+積分系($ \frac{K}{s}e^{-Ls} $)
としている.

むだ時間をパデ近似で有利関数表現するとどこまでも次数を上げることができるので、
[1], [2], [3]を読み合わせるて解釈すると、
むだ時間がある1次遅れ系相当か、
ある程度の次数の有理関数表現ができるプラントになら適用できるということだろう.
(後者を言ってしまうとなんでも…か…?)

追記 : ジーグラ・ニコルス法は、(むだ時間のない) 積分系・1次遅れ系・2次遅れ系に適用できないとのこと.
以降の検討で「1. ジーグラ・ニコルスの限界感度法と1次遅れ系」「2. ジーグラ・ニコルスの限界感度法と2次遅れ系」は、それを裏付ける結果になっている.
むだ時間を含む1次遅れ系では有効ですが結果については「3. ジーグラ・ニコルスの限界感度法とむだ時間のある1次遅れ系」を参照ください.
Note that the Ziegler-Nichols’ closed loop method can be applied only to processes having a time delay or having dynamics of order higher than 3. Here are a few examples of process transfer function models for which the method can not be used:
  • $ H(s) = \frac{K}{s} $ (integrator) (10.5)
  • $ H(s) = \frac{K}{T s + 1} $ (first order system) (10.6)
  • $ H(s) = \frac{K}{(\frac{s}{ω_0})^2 + 2ζ\frac{s}{ω_0} + 1}$ (second order system) (10.7)
http://home.hit.no/~hansha/documents/control/theory/tuning_pid_controller.pdf


ジーグラ・ニコルスの限界感度法は、ステップ応答法やCHR法と行ったチューニング手法と違い、むだ時間がある系のチューニングを明示的には前提としていないものの実態は、むだ時間のある系を対象としていることがわかります。

むだ時間を考えないでチューニングする場合は

などを適用すると良いと思います。
-追記ここまで-


0. ジーグラ・ニコルスの限界感度法の段取り

  1. $ K_i = 0, K_d =0 $として$ K_p $ を0からだんだん大きくしていき、
    系が振動的になったところで止める
    このときの $ K_p $ を $ K_u $とし、
    振動周期を $ T_u $とする
  2. $ K_u, T_u $を使って、$ K_p, K_d, K_i $を定める
    決め方は表の通り
制御の種類$ K_p $$ K_d $$ K_i $
P制御$ 0.5 K_u $00
PI制御$ 0.45 K_u $0$ \frac{0.45 K_u}{0.83 T_u} $
PID制御$ 0.6 K_u $$ 0.075 T_u K_u $$ \frac{0.6 K_u}{0.5 T_u} $



1. ジーグラ・ニコルスの限界感度法と1次遅れ系

まず、むだ時間のない1次遅れ系にPI制御を適用することを考えてみる.

この時、
\[ P_0(s) = \frac{1}{1+Ts} \]
\[ C_0(s) = K_p + \frac{K_i}{s} \]
従って、フィードバック系の伝達関数は、
\[ G_0(s) = \frac{P_0 C_0}{1+P_0 C_0} = \frac{K_p s + K_i}{Ts^2+(1+K_p)s+K_i} \]

すると、段取りに従い、安定限界を求めるべく$ K_i = 0 $とすると、
\[ G_0(s) = \frac{K_p}{Ts + (K_p +1)} \]
とただの1次遅れ系なってしまい安定限界を求めるどころではない.

つまり、この時は、$ K_u $ を求めようにも、
 $ K_p $ を上げたいだけ上げても安定な状態になってしまうので、
ジーグラ・ニコルスの限界感度法を適用するのは少し難しい.

だが実際に1次遅れ系にPI制御を適用するとき($ K_i > 0 $)は、
\[ G_0(s) = \frac{K_p s + K_i}{Ts^2+(1+K_p)s+K_i} = \frac{(2\zeta \omega_n - 1) s + \omega_n^2}{s^2+2 \zeta \omega_n s+\omega_n^2} \]
と、閉ループ伝達関数は2次遅れ系になる.
つまり、$ \zeta = \frac{K_p + 1}{2T \sqrt{K_i}}$ を小さく取り過ぎると振動が持続するので注意.

   以上のことをひとことで言うと、1次遅れ系で、むだ時間なしの場合はジーグラ・ニコルスの限界感度法でKp, Kiは求まらない
   (但し書きとしてアクチュエータの出力制限がないとか、離散化が無視できるとか云々)

2. ジーグラ・ニコルスの限界感度法と2次遅れ系

エントリーが大きくなってきたので、こちらへ分配 ⇒

>> PI制御チューニング : Ziegler Nicholsの限界感度法 - 2次遅れ系への適用 (むだ時間なし)


3. ジーグラ・ニコルスの限界感度法とむだ時間のある1次遅れ系

ジーグラ・ニコルスがそれなりに上手く行く条件です.



参考

[1] 古典制御 - 吉川 恒夫
      

[2] Ziegler-Nichols Tuning Rules for PID
 http://www.mstarlabs.com/control/znrule.html

[3]制御工学 (JSMEテキストシリーズ)
       

[4] The Time Delay
http://lpsa.swarthmore.edu/BackGround/TimeDelay/TimeDelay.html


2状態1入力システム:最適制御入力 (2次遅れ系の状態フィードバック制御)

バネマスダンパ系に対応した状態制御を考えるために、
2状態1入力システムに対する状態フィードバック+積分制御する系を考える
(1状態1入力システムと同様)

バネマスダンパ系プラントを扱ったエントリーと同じM, c, kを使い
$ A\equiv \begin{bmatrix}  0 & 1 \\ -\frac{c}{M}&-\frac{k}{M} \end{bmatrix}\equiv \begin{bmatrix}  0 & 1 \\ -a_1&-a_2 \end{bmatrix}$ ,$ B\equiv  \begin{bmatrix} 0 \\ \frac{b}{M} \end{bmatrix}\equiv  \begin{bmatrix} 0 \\ K \end{bmatrix}$
そして、$ X \equiv \begin{bmatrix} x \\ \dot{x} \end{bmatrix} $とすると、

$ X $を行列のまま扱うと少しわかりにくいので
同伴型[1]に展開してブロック線図を描くと

この時、
\[
\frac{d}{dt} \begin{bmatrix} z \\ x \\ \dot{x} \end{bmatrix}
= \begin{bmatrix}
0 & 1 & 0\\
0 & 0 & 1\\
0 & -a_1 & -a_2
\end{bmatrix}
\begin{bmatrix} z \\ x \\ \dot{x} \end{bmatrix}
+\begin{bmatrix} 0 \\ 0 \\ K \end{bmatrix}u \]

この系に対して最適制御入力を求める。
\[J = \int_{0}^{\infty}\left \{ \begin{bmatrix} z & x & \dot{x} \end{bmatrix}\begin{bmatrix}
1 & 0 & 0 \\
0 & q_1 & 0 \\
0 & 0 & q_2 \\
\end{bmatrix} \begin{bmatrix} z \\ x \\ \dot{x} \end{bmatrix}+ru^2\right \}dt\]

この方程式を満たす対称正定行列 Pはリカッチ方程式
\[A^T P+PA+Q-PBR^{-1}B^TP=0\]
を満たす。

ただし、
\[P\equiv \begin{bmatrix} X_1 & X_2 & X_3 \\ X_2 & X_4 & X_5 \\ X_3 & X_5 & X_6 \\ \end{bmatrix}, X_1,X_2,X_3,X_4,X_5,X_6>0\]

これを解いていくと
\[\begin{bmatrix}
-\frac{K^2 X_3^2}{r}+1 & -\frac{K^2 X_3 X_5}{r}-a_1 X_3 + X_1 & -\frac{K^2 X_3 X_6}{r}-a_2 X_3 + X_2 \\
-\frac{K^2 X_3 X_5}{r}-a_1 X_3 + X_1 & -\frac{K^2 X_5^2}{r}-2 a_1 X_5 + 2 X_2 + q_1 & -\frac{K^2 X_5 X_6}{r}-a_1 X_6 - a_2 X_5 + X_3 + X_4 \\
-\frac{K^2 X_3 X_6}{r}-a_2 X_3 + X_2 &  -\frac{K^2 X_5 X_6}{r}-a_1 X_6 - a_2 X_5 + X_3 + X_4 &  -\frac{K^2 X_6^2}{r}-2 a_2 X_6 + 2 X_5 +q_2  \\
\end{bmatrix}=0 \]

これの一般解が複雑なので、式で表すと、
\[ X_3 = \frac{\sqrt{r}}{K} \]
\[ X_5 = \frac{K^2 X_6^2}{2r}+a_2X_6-\frac{q_2}{2}\]
\[ \frac{K^6}{4r^3}X_6^4 + \frac{K^4a_2}{r^2}X_6^3
+(\frac{K^2 a_2^2}{r}+\frac{a_1 K^2}{r}+\frac{q_2 K^4}{2r^2})X_6^2\\
+(\frac{K^2a_2q_2}{r}+2a_1 a_2+\frac{2}{\sqrt{r}})X_6
+(-\frac{2\sqrt{r}a_2}{K}-q_1+a_1 q_2)=0\]

$ X_6 $は4次方程式. この解を求めるには…>> 四次方程式の解 - 高精度計算サイト 

そして、$ X_6 $は以下を満たすように選ぶ.
\[ (X_2=) \frac{X_6}{\sqrt{r}}+\frac{a_2 \sqrt{r}}{K} > 0 \]
\[ (X_1=) \frac{K X_4}{\sqrt{r}}+\frac{a_1 \sqrt{r}}{K}>0 \]
\[ (X_5=) \frac{K^2 X_4 X_6}{r}+a_1 X_6 + a_2 X_4 - \frac{\sqrt{r}}{K}>0 \]

最適制御フィードバックゲインは
\[FB=-R^{-1}B^TP=-\frac{K}{r}\begin{bmatrix} X_3 & X_5 & X_6 \end{bmatrix}  \]
この行行列の1項目からPID制御でいうところの$ K_i, K_p, K_d $に相当する.
(この場合、最適制御はPID制御チューニングの方法の一種ともいえます)

[1] : 制御工学 (JSMEテキストシリーズ) など