Showing posts with label 連続系PID. Show all posts
Showing posts with label 連続系PID. Show all posts

PI制御チューニング手法の比較

PID制御のチューニング手法にはZiegler Nicholsの限界感度法はじめ様々な手法があるが、これらの手法がどのように異なるか簡単なケースについて調べた。

前提

むだ時間あり1次遅れ系(First-order plus deadtime; FOPDT)のPI制御を対象にチューニング手法のパラメータ比較。特に

\[ \rm{P}(s) = \frac{1}{1+\tau s}e^{-Ls} \]

の $ \tau = 1, L=1 $ のケースについてチューニング手法の結果をプロットする。システムをブロック線図で表すと下図。

ベンチマーク環境

現代制御的な手法はむだ時間なしの制御対象を

\[ \rm{\tilde{P}}(s) = \frac{1}{1+\tau s} \]

と表し、モデル化誤差が含まれたプラント$ \tilde{P} $に対してチューニングした上でロバスト性に期待する前提もおいてみる。

モデル化「誤差」が含まれたシステム

パラメータ観測用おもちゃ

複素関数解析を組み合わせて安定条件を解くむだ時間を持つ1次遅れ系のPI制御パラメータの解析的な分析で求めた安定領域(下図 緑の領域)を示したおもちゃがあるので遊んでいってください。 シミュレーションのタイムステップと積分誤差で境界より少し内側で振動し、境界上で発散するけど許して。

制御応答(左)と制御パラメータ(右)

黒円をマウスでグリグリしてみてね

結果とウンチク

古典制御については過去エントリーの二番煎じ。図に書き加えた $ r, q $ は最適制御の重み付けパラメータ。1状態1入力システムの最適制御に導出経緯を掲載した。

パラメータの比較

$ H_\infty $ ノルム

モデル化誤差を含んだプラントのシステムの相補感度関数 $ \frac{\tilde{P}C}{1+\tilde{P}C} $ すなわち

\[ G(s) = \frac{K_p s + K_i}{s^2 + (K_p + 1)s + K_i} \]

をロバスト制御の考えに基づいて $ \vert G \vert_\infty < 1 $ となる $ K_p, K_i $ の領域を求めた。システムの$ L_2 $ゲイン

\[ \vert G(\omega j) \vert = \sqrt{ \frac{K_p^2 \omega^2 + K_i^2}{(K_i - \omega^2)^2 + (K_p + 1)^2 \omega^2} } \]

の最大値が$ \omega \in \mathbb{R}^+ $ によらず1未満であるのでsolve[{(a^2*x+b^2)/((b-x)^2+(a+1)^2*x)<1, a>0, b>0,x>0}] - Wolfram|Alphaから

\[ 0 < K_i \leq K_p + \frac{1}{2} \]

このままだとプラントの前提知識がうすすぎるのでむだ時間をパデ近似で埋めてノルムを求める方法もある。

ナイキストの安定判別法と小ゲイン定理

H∞制御の中心的役割を担う小ゲイン定理で求める制御安定(十分)条件はナイキストの安定判別法などから求まる必要十分な安定条件よりも保守的な条件として知られている。

一巡伝達関数
\[ P(s) = \frac{K_p}{\tau s+1}e^{-Ls} \]
で与えられる閉ループ系が安定であるための$K_p$の条件を求めよ

ナイキスト線図を用いて安定条件を求めます。PI制御チューニング : Ziegler Nicholsの限界感度法 - むだ時間ありの1次遅れ系への適用から、

\[ K_p \in \left[0, \sqrt{(\tau \omega_0)^2 + 1}\right) \qquad s.t. \arctan(\tau \omega_0) = \pi - L \omega_0 \]

小ゲイン定理では

\[ \Vert P(j\omega) \Vert_{\infty} < 1 \]
となる$ K_p $の範囲が求める範囲。線形時不変システムでは
\[ \Vert P(j\omega) \Vert_{\infty} = \sup_\omega \vert P(j\omega) \vert < 1 \]
です。これから
\[ \Vert P(j\omega) \Vert_{\infty} = \sup_\omega \left| \frac{K_p}{\sqrt{(\tau \omega)^2 + 1}} \right| = K_p \]
なので
\[ K_p \in [0, 1) \]
ここで、$\omega, \tau > 0$なので明らかに$[0,1)\subset{\left[0, \sqrt{(\tau \omega_0)^2 + 1}\right)}$であって、 保守的な条件になっていることがわかります。

むだ時間を持つ1次遅れ系のPI制御パラメータの解析的な分析

プラントにむだ時間を持つ系の制御が難しいことを、
Ziegler Nicholsの限界感度法を試すなかで確認しました.

アクチュエータにむだ時間を持つ1次遅れ系をPI制御する場合について、
$ K_p, K_i $の取りうるパラメータの範囲について考えてみます.

この系の特性方程式は、
\[ (K_p + \frac{K_i}{s})(\frac{e^{-L \cdot s}}{\tau \cdot s + 1})+1=0 \] この特性方程式からラウス・フルビッツの安定判別法 (Routh–Hurwitz stability criterion)などから方程式を解かずに安定性を判定できれば良いのだけれど、この方程式は多項式ではなく、つかえません.

しかし、あらためて閉ループ伝達関数を求め、
\[\begin{aligned} G(s) &= \frac{P \cdot C}{1+P \cdot C} \\ &= \frac{(K_p s + K_i)e^{-L \cdot s}}{\tau \cdot s^2 + s +(K_p s + K_i)e^{-L \cdot s}} \end{aligned}\] もし、この伝達関数を部分分数分解できて、ヘヴィサイドの展開定理のように、
\[ G(s) = \sum_{i=1}^{\infty} \sum_{j=1}^{\infty} \frac{A_{ij}}{(s-a_{i})^j} \] などと表せれば、有理関数と同じように考えることができそうです [1].
すると極が全て複素平面の左半面にあれば系は安定と言えます.
⇒ すべての極が複素平面の左半面にある条件を求め、それを元に$ K_p, K_i $の範囲を求める段取りとする.


1. エルミート・ビーラー(Hermite-Biehler)の定理

伝達関数 $ G(s) $の極が全て複素平面の左半面にある条件を求める部分だけが難しそうです.
これについてはエルミート・ビーラーの定理を使って考えることができます[2][3].

先の特性方程式の左辺を変形し、以下のように $ \delta(s) $を定義する.
\[ \delta(s) = \tau s^2 + s + (K_p \cdot s + K_i) e^{-Ls} \] ここで、
\[\begin{aligned} \delta^*(s) &= e^{Ls} \delta(s) \\ &= (K_p \cdot s + K_i) + (\tau s^2 + s) e^{Ls} \end{aligned}\] とし、$ s = \omega i $ を代入して実部 $ \delta_r $と虚部$ \delta_i $で関数を表現すると
\[\begin{aligned} \delta^* (\omega) &= \delta_r(s) + i \delta_i(s) \\ &=(K_p \omega i + K_i) + (-\tau \omega^2 + \omega i) e^{L\omega i} \end{aligned}\] \[ \delta_r(\omega) = K_i - \tau \omega^2 cos(L \omega) - \omega sin (L \omega) \] \[ \delta_i(\omega) = \omega (K_p - \tau \omega sin(L \omega) + cos(L \omega)) \]
ここでエルミート・ビーラー(Hermite-Biehler)の定理から、

1. $ \delta_r(s) $の解と$\delta_i(s)$の解が、すべて実数で、重解はなく、互いに隔離している.

【注:解の隔離】
方程式 f(z) = 0 の解と方程式 g(z) = 0 の解が互いに解を隔離するとは、どちらの方程式も重解を持たず、大小の順において f(z) = 0 の隣接する 2 つの解の間に g(z) = 0 の1 つの解があり、また g(z) = 0 の隣接する 2 つの解の間に f(z) = 0 の 1 つの解があることを言う。

[3] あってよかった複素数
http://izumi-math.jp/F_Yasuda/complex_number/good.pdf

さらに
2. $ z=L \omega$として、
\[ \frac{d\delta_i}{dz}\delta_r - \delta_i \frac{d\delta_r}{dz}>0 \]
以上の1, 2を満たす範囲でG(s)の解は複素平面の左半面にあると言え、G(s)は安定.

これらから $ K_p, K_i $の関係を一般的に解くの私にはできませんでした.
(なので数値解析でお試してみます)


2. 定理を試してみる

実際に$ \tau = 1 $ $ L = 1 $の条件で(つまり$G(s) = \frac{1}{s+1}e^{-s}$)、
安定になる$ K_p, K_i $の範囲(境界線)を数値解析で求めたのが、こちらの範囲.

PI制御のチューニング結果を比較するため、ジーグラ・ニコルスの限界感度法(ZN限界感度法)やジーグラ・ニコルスのステップ応答法(ZNステップ応答法)で求まる結果もプロットしました.

両結果とも安定領域にきっちり入っていますね.
計算した条件ではステップ応答法の方がおとなしいチューニング結果になっていそうです.


もう少し掘り下げて勉強してみます.

参考文献

[1] ヘヴィサイドの展開定理
ヘヴィサイドの展開定理は有理型関数にも拡張できるとのことなので、大丈夫だと思います.

[2] Generalizations of the Hermite–Biehler theorem http://www.sciencedirect.com/science/article/pii/S0024379599000695

[3] PID Controllers for Systems with Time-Delay
http://msc.berkeley.edu/PID/modernPID3-delay.pdf

[4] あってよかった複素数
http://izumi-math.jp/F_Yasuda/complex_number/good.pdf

PI制御チューニング : Ziegler Nicholsの限界感度法 - むだ時間ありの1次遅れ系への適用

PI制御チューニング : Ziegler Nicholsの限界感度法の続きです.

0. むだ時間 - 導入

システムの入力に対する出力の時間遅れの1種で、時間領域で以下のように表現でき、
\[ y(t) = x(t - T_{d}) \] 伝達関数では、
\[ G(s) = e^{-sT_{d}} \] と表される.

このような性質が付与されたシステムを制御する時、
制御コントローラにしてみれば、制御してから結果に反映されるまで時間がかかる状態になるので、
ゲインを高く設定しすぎるとハンチングを起こすなどそわそわしている状態になります。

こういった性質は制御分野以外でも最近とりあげられていて、
「世界はシステムで動く」というドネラさんの本でも、
例えば在庫管理的な場面でむだ時間が生じると現象が振動的になるという話が出ていました。
(制御工学で社会分析している印象を受ける本です. 応用としては面白いかも.)



むだ時間は実世界では必ず存在し、その影響が制御設計やチューニングを難しくします


1. 1次遅れ系とむだ時間

むだ時間が付与された1次遅れ系のベクトル軌跡を見てみる.
1次遅れ系の時定数を時定数1(sec), むだ時間を1(sec)として伝達関数は、
\[G_2(s)=\frac{1}{s+1}e^{-s}\]

これを複素平面で表現するため極形式にすると、
\[G_2(\omega i) = \frac{1}{\omega i + 1}e^{-\omega i }\]
から
\[ z=|G_2(\omega i) | \cdot exp( i \cdot arg(G_2(\omega i))) = \frac{1}{\sqrt{\omega^2+1}} exp(i(-arctan(\omega)+(-\omega))) \]
これを図で表すと分かる通り、時間遅れのない状態(水色)に時間遅れをつけるとオレンジの線のようにぐるぐるができ、不安定点(Re=-1)に近づき、より不安定になっていることがわかります.
水色($ \frac{1}{s+1}$)、オレンジ($\frac{1}{s+1}e^{-s} $)
Note: お絵かきにはエクセルを使い、ω = [0.01, 100] (rad/s)の範囲で計算しました.

$ \omega $r$ \theta $RealIm
0.01 ~ 100
= 1/sqrt(A2^2+1)=- atan2(1, A2) - A2=B2 * cos(C2)=B2 * sin(C2)


2. むだ時間1次遅れ系のPI制御へジーグラ・ニコルス限界感度法を適用

先の$ P(s) = \frac{1}{\tau s+1} $ として、プラント $ P_2(s) =  P(s) e^{-Ls} $ にPI制御 $ C(s) = K_p + \frac{K_i}{s} $ を施すと、
\[ G(s) = \frac{P \cdot C \cdot e^{-Ls}}{1+P \cdot C \cdot e^{-Ls}} = \frac{K_p e^{-Ls} s + K_i e^{-Ls}}{\tau s^2 + (1+K_p e^{-Ls})s + K_i e^{-Ls}} \]
$ K_u $を求めるために、$ K_i = 0 $とすると、
\[ G(s) = \frac{K_p e^{-Ls}}{\tau s + 1+K_p e^{-Ls}} \]
これに対し、当初、$ K_u $を求めるために$ e^{-Ls}$のパデ近似を用いて代数的に範囲を求めようと考えたのですが、文献[2]で検証している通り、特に1次,2次などの低次のパデ近似では良い解にたどりつけないようです.

$ K_u $を求めるにあたってナイキスト線図を使って幾何的に考えることにします.

まず、$ K_p = 1 $として
\[ G(s) = \frac{e^{-Ls}}{\tau s + 1+K_p e^{-Ls}} \]
のナイキスト線図を描きます.

この時
\[ z=|G(\omega i) | \cdot exp( i \cdot arg(G(\omega i))) = \frac{1}{\sqrt{(\tau \omega)^2+1}} exp(i(-arctan(\tau \omega)+(-L \omega))) \]
を描くことになるが、以下図中の緑の点の座標を求めます.


$ \omega $が大きくなるほどゼロ点に近づくので、
zが複素平面左半面の実軸上と交わる正で最小の$ \omega_0 $を求めればよい.

従って 、$ -arctan(\tau \omega_0) + (-L \omega_0) = -\pi $で、最小のものが求める周波数です.
※ この時、$ z(\omega_0) = - \frac{1}{\sqrt{(\tau \omega_0)^2 +1}} $

ここで $ K_p = \sqrt{(\tau \omega_0)^2 +1} $とするとベクトル線図は以下の図の水色の線のようになり、これが $ K_u $となります.


拡大した図
まとめ:
以上の検討から$ K_p $の限界である$ K_u $は、
\[ K_u = \sqrt{(\tau \omega_0)^2 +1} \] ただし、
\[ arctan(\tau \omega_0) = \pi - (L \omega_0) \]
($ \tau \cdot \omega_0 $は、(0,$\pi/2$)の範囲 )

また、この時、振動周期(s)は$T_u = \frac{2\pi}{\omega_0} $である.

$ \omega_0 $は数値解析で求めるほかありませんが、二分法など使うと良いでしょう.

二分法 - 高精度計算サイト http://keisan.casio.jp/exec/system/1180917668

2.1. お試し計算

例えば、\[G(s)=\frac{1}{s+1}e^{-s}\]として$ K_u $を求めると、$ K_u \approx  2.26 (\omega_0 \approx 2.029; T_u \approx 3.097sec) $と求まります.

シミュレーションで、この値を使ってステップ応答を求めると以下の結果になります.


ジーグラ・ニコルスの限界感度法に従って、
制御の種類$ 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} $


から$ K_p = 1.018 $, $ K_i = 0.396 $としてステップ応答を求めたものがこちら.


やっとZNの限界感度法がうまく行きました.

参考

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

[2] PID Controllers for Systems with Time-Delay
http://msc.berkeley.edu/PID/modernPID3-delay.pdf


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

PI制御チューニング : Ziegler Nicholsの限界感度法の続きです.

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

同様に、むだ時間のない2次遅れ系にPI制御を適用することを考える.
まず、
\[ P_1(s) = \frac{\omega_n^2}{s^2+2 \zeta \omega_n s+\omega_n^2} \]
\[ C_1(s) = K_p + \frac{K_i}{s} \]
従って、フィードバック系の伝達関数は、
\[ G_1(s) = \frac{P_1 C_1}{1+P_1 C_1} = \frac{\omega_n^2 K_p s + \omega_n^2 K_i}{s^3+2 \zeta \omega_n s^2+\omega_n^2(1 +K_p)s+\omega_n^2 K_i} \]

0.-1の段取りに従い $ K_i = 0 $として式を整理すると2次遅れ系の形式になる.
\[ G_1(s) = \frac{\omega_n^2 K_p}{s^2+2 \zeta \omega_n s+\omega_n^2 (1+K_p)} \]

ここで新たにP制御を加味した減衰比が定義でき、
\[ \zeta_{1} = \frac{\zeta}{\sqrt{1 + K_p}} \]

従って$ \zeta_{1}=0 $であれば振動的になると言えるのですが([5]最下部)、これが起こるのは $ K_p $ → ∞ の時だけ.
便宜上、 $ \zeta_{1} = 0.02 $ (ほどほどに振動的な減衰振動)を選んで $ K_u $ $ T_u $を決めてやると、
\[ K_u = \frac{\zeta^2}{\zeta_1^2} -1= (2500 \zeta^2 -1) \]
\[ \frac{1}{ T_u} = \frac{1}{2 \pi} (\omega_n \sqrt{1 + K_u}) \sqrt{1-\zeta_1^2} = \frac{1}{2 \pi} \omega_n  \sqrt{1 + K_u} \sqrt{1-(\frac{\zeta}{\sqrt{1 + K_p}})^2} = \frac{1}{2 \pi} \omega_n \sqrt{1-\zeta^2+K_u} \]
となり、
\[ K_p = 0.45 (2500 \zeta^2 - 1) \approx 1125 \zeta^2 \]
\[ K_i  = \frac{1}{2 \pi 0.83} \omega_n K_p \sqrt{1-\zeta^2+K_u}  \approx 10786 \omega_n \zeta^3 \]
と求まります.
(結構大きいゲインですね…)

2.1 お試しのシミュレーション

チューニングの成果を確認がてらシミュレーションしてみることにした.
シミュレーションにはScilab 5.4.1を使用. コードはページ末に付けました.

制御対象 : $ \omega_n = 1 $ [rad/s],  $ \zeta = 1 $ の2次遅れ系.
\[ P(s) = \frac{1}{s^2+2s+1} \]

まず、$ K_u $ を前節に従って求めると $ K_u = 2500 $.

ステップ応答の減衰がいやに早く感じますが結果は以下(コードは[6]).
理論とほぼ等しく約8Hzの振動.

これから、$ Kp = 0.45 Ku = 1125 $, $ Ki = \frac{Kp}{0.83Tu} =  10786 $と求まり、これを適用した結果がこちら.
発振していますね…
(Scilabのコードは[7])

原因を検討すると、特性方程式$ 1+PC=0 $の解(=閉ループ伝達関数の極)が(3.5±34.3i, -9.0 +5.8i)で、
複素平面右側に極がいることが分かります. 発振してしまうわけです.

参考

[5] The 2nd-order lag element
http://www.atp.ruhr-uni-bochum.de/rt1/syscontrol/node31.html

[6] Kuのシミュレーション用コード(Scilab)
s=%s;

w = 1
zeta = 1

Ku = 2500 * zeta^2
Kp = 0.45*Ku
Ki =  10786 * zeta^2 * w

t=linspace(0,3,1000);

G = (w^2*Ku)/(s^2+2*zeta*w*s+w^2*(Ku+1))

sys=syslin('c',G)    
y=csim('step',t,sys);
plot(t,y)
xtitle('Step Response','Time(sec)','')

[7] ジーグラ・ニコルス法適用のコード(Scilab)
s=%s;

w = 1
zeta = 1

Ku = 2500 * zeta^2
Kp = 0.45*Ku
Ki =  10786 * zeta^2 * w

t=linspace(0,3,1000);

G = (w^2*Kp*s+w^2*Ki)/(s^3+2*zeta*w*s^2+w^2*(Kp+1)*s+w^2*Ki)

sys=syslin('c',G)    
y=csim('step',t,sys);
plot(t,y)
xtitle('Step Response','Time(sec)','')

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

PID制御のチューニングの著名なテクニックとしてZiegler Nicholsの限界感度法、Ziegler Nicholsのステップ応答法、CHR法がある。このうち、Ziegler Nicholsの限界感度法(以下ジーグラ・ニコルス法)のチューニング結果がどのようなものか確認した。

Wikipediaや一般的な制御の教科書ではジーグラ・ニコルス法を適用できる制御対象の前提条件が明記されてないことが多い。しかも、「前提条件なく、どんな制御対象にも適用が可能である」とまでしている文献もある。 ところが、実例は後述するが、ジーグラ・ニコルス法は、(むだ時間のない) 積分系・1次遅れ系・2次遅れ系に適用できない。

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

実際、

  • [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. ジーグラ・ニコルスの限界感度法と1次遅れ系」「2. ジーグラ・ニコルスの限界感度法と2次遅れ系」は、それを裏付ける結果になっている。 むだ時間を含む1次遅れ系では有効だが、チューニングの過程における安定限界の求め方などの詳細については「3. ジーグラ・ニコルスの限界感度法とむだ時間のある1次遅れ系」を参照のこと。

チューニング結果の制御パラメータ空間における位置についてはむだ時間を持つ1次遅れ系のPI制御パラメータの解析的な分析に一例を紹介した。

厳密に、むだ時間を含まない制御対象をチューニングする場合は

などを適用すると良い。ただし、デジタル制御においては制御周期によって生じる安定限界もあるので注意。(参考:デジタル制御:最初の最初 ②)

連続系での各種のチューニング手法の比較はこちら

パラメータの比較

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 $ 0 0
    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 $ を上げたいだけ上げても安定な状態になってしまうので、 $ K_u $ が求まらずジーグラ・ニコルスの限界感度法を適用できない。

しかし、実際に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次遅れ系になる。 したがっていくら $ K_p $ を好きなだけ大きく取れるとしても $ \zeta = \frac{K_p + 1}{2T \sqrt{K_i}}$ を小さく取り過ぎると振動が持続的になるので注意。以上、1次遅れ系で、むだ時間なしの場合はジーグラ・ニコルスの限界感度法でKp, Kiは求まらない(但し書きとしてアクチュエータの出力制限がないとか、離散化が無視できるとか云々)

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

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

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

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

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

>>PI制御チューニング : Ziegler Nicholsの限界感度法 - むだ時間ありの1次遅れ系への適用

参考

[1] 古典制御 - 吉川 恒夫
古典制御
古典制御
  • 吉川 恒夫
  • 出版社/メーカー: 昭晃堂
  • 発売日: 2004/2/1
[2] Ziegler-Nichols Tuning Rules for PID
http://www.mstarlabs.com/control/znrule.html
[3]制御工学 (JSMEテキストシリーズ)
制御工学 (JSMEテキストシリーズ)
制御工学 (JSMEテキストシリーズ)
  • 日本機械学会
  • 出版社/メーカー: 日本機械学会
  • 発売日: 2002/11/29
[4] The Time Delay
http://lpsa.swarthmore.edu/BackGround/TimeDelay/TimeDelay.html

連続系PID制御 : DCモータの速度制御

プラントをDCモータに限定して、電圧(PWMなど)で速度制御する場合を考えます.
今回は、PID制御とI+PD制御について伝達関数を求めます.

1. PID制御の場合

このシステムのブロック線図は、

記号LRKeJ
定義・単位電機子インダクタンス
[H]
電機子抵抗
[Ohm]
誘起電圧定数
[V/(rad/s)]

トルク定数
[Nm/A]

※ 両者等しい 
モータ軸イナーシャ
[kg m^2]

これを等価変換すると、バネマスダンパ系にPID制御を適用した場合と同等のシステムと考えられます.

この時の負荷トルクTd[Nm]および速度指令値ω*[rad/s]に対する応答は、

\[ \omega = \frac{K_e K_d s^2+K_e K_p s+K_e K_i}{LJs^3+(RJ+K_e K_d)s^2+(K_e^2+K_e K_p)s+K_e K_i}\omega^{*} - \frac{s}{LJs^3+(RJ+K_e K_d)s^2+(K_e^2+K_e K_p)s+K_e K_i} (Ls+R)Td \]


2. I+PD制御の場合

ブロック線図は、

これを同様に等価変換すると

この時の負荷トルクTd[Nm]および速度指令値ω*[rad/s]に対する応答は、

\[ \omega = \frac{K_e K_i}{LJs^3+(RJ+K_e K_d)s^2+(K_e^2+K_e K_p)s+K_e K_i}\omega^{*} - \frac{s}{LJs^3+(RJ+K_e K_d)s^2+(K_e^2+K_e K_p)s+K_e K_i}(Ls+R)Td \]

となります.

同じ$ K_p, K_d, K_i $のパラメータを使った場合で比較すると、
PID制御と比較してI+PD制御は
  ・ 目標追従の面で少しおとなしい応答
  ・ 外乱に対しては同じ応答性を有する
といえそう.

その分、逆に、その分、$ K_p, K_d, K_i $をもう少し過激にチューニングして、
外乱に対する応答を良くする考え方もできるのではないだろうか?

I+PD制御という構成は状態フィードバック制御で良く使われる考えだと思います.

連続系PID制御 : バネマスダンパ系プラント

一般の制御理論ではいろいろな制御対象に適用できるようプラントを抽象化して議論しますが、ここでは、実際に制御設計をするときに便利なように、公式めいた形でPID制御を適用した伝達関数を求めます.

プラントは単純な物理モデルである2次系を対象としました.

バネマスダンパ系(2次系)とPID制御

バネマスダンパ系のプラントにPID制御によるフィードバック制御を施した時の伝達関数を求たい.まず、システムとして下記を設定します.

このブロック線図(伝達関数)を等価変換すると
という形になります.

このうち、M, c, kの記号については物理システムによる違いで同じように扱うこともできます.この時、 $ K_p, K_d $ の単位は、それぞれk, cに、$ K_i $ は $ N/s $ などに一致。プラントが1次系で、コントローラがPI制御ならば、$ M = 0, K_d = 0 $ を代入して、PI制御の結果を2次遅れ系として扱うことができますね.

Fx'x
(制御目標)
Mck
機械系
[直線運動]
力 f [N]速度 v [m/s]変位 x [m]質量 M [kg]粘性摩擦係数
D [N・s/m]
ばね定数
K [N/m]
機械系
[回転運動]
トルク
T [Nm]
角速度
ω [rad/s]
角変位
Θ [rad]
慣性モーメント
J [$ kg m^2 $]
粘性摩擦係数
D [Nm・s/rad]
ばね定数
K [Nm/rad]
電気系電圧 v [V]電流 i [A]電荷 q [C]キャパシタ
1/C [1/F]
抵抗 R [Ω]インダクタンス
L [H]
伝熱系






外乱が下図のような形で入る場合、

出力xについては、
\[
x = \frac{K_d s^2+K_ps+K_i}{Ms^3+(c+K_d)s^2+(k+K_p)s+K_i}r + \frac{s}{Ms^3+(c+K_d)s^2+(k+K_p)s+K_i}d
\]

プラントが入力に対し係数を持つ場合

DCモータの無負荷の速度制御などが、これにあたります.

この場合、モータへの負荷(=外乱)による安定度への影響評価は別途する必要がありますが、
ファンやポンプがDCモータの負荷の場合は、定常状態では積分項が負荷(外乱)を補償する形に落ち着く
($ 負荷 = \int^{\inf}_{0}e(t)dt $)。


等価変換結果:

Vω'xMckA
DCモータ電圧
v [V]
角加速度
α[rad/s^2]
角速度
ω [rad/s]
電機子インダクタンス x
イナーシャ
L・J
[$ H・kg・m^2 $]
電機子抵抗
x
イナーシャ
R・J
[$ Ω・kg・m^2 $]
トルク定数^2
$ Ke^2 $
[$ Nm^2/A^2 $] 
トルク定数
Ke [Nm/A]