PID 制御のステップ応答

制御対象とPID のゲイン Kp・Ki・Kd を決めると、目標値を 0 から 1 に変えたときの出力の動きを計算します。P だけで残る定常偏差、I を足すと消えること、ゲインを上げすぎると振動すること、操作量の上限で起きる積分の巻き上がりを、グラフで確かめられます。

制御対象と制御器

結果

最終値
–
定常偏差(目標値 − 最終値)
–
オーバーシュート
–
立ち上がり時間(10→90%)
–
整定時間(±2%)
–
操作量の最大(絶対値)
–

上のグラフの青い線が出力、点線が目標値(1)です。下のグラフの緑の線は制御器が出す操作量で、上限を決めたときは点線で示します。

P・I・D がそれぞれすること

PID 制御は、目標値と出力の差(偏差) e に比例する P、e を時間で積分した値に比例する I、e の変化の速さに比例する D の3つを足して操作量を決めます。P を大きくすると速く応答しますが、一次遅れの対象では偏差が残ります。例の「P 制御だけ」(K = 1、Kp = 4)では、最終値は K·Kp/(1 + K·Kp) = 0.8 で、0.2 の定常偏差が残ります。I を足すと、偏差が残っているあいだ操作量が増え続けるので、定常偏差がなくなります。D は偏差の変化を先回りして抑えるので、オーバーシュートや振動を減らしますが、雑音を大きくしやすいため、一般にフィルタを通して使います。

オーバーシュートと減衰係数

二次遅れの系では、減衰係数 ζ が小さいほどオーバーシュートが大きくなり、ステップ応答の最大のオーバーシュートは exp(−πζ/√(1 − ζ²)) で表されます。例の「二次遅れに P 制御」では、閉ループの ζ が約0.14になり、オーバーシュートは約64%です。ζ = 0.5 では約16%、ζ = 0.7 では約5%が目安です。積分つきの対象(モータの位置など)に P 制御をかける例では、閉ループが ζ = 0.5 の二次遅れになり、オーバーシュートは約16%になります。積分を含む対象では、P 制御だけでもステップ入力に対する定常偏差は残りません。

むだ時間とゲインの上げすぎ

むだ時間は、操作してから出力に効きはじめるまでの遅れで、配管を流れる時間や、測定・通信の遅れなどで生じます。むだ時間があると、制御器は遅れた出力を見て操作量を決めるため、ゲインを上げすぎると振動し、さらに上げると発散します。例の「ゲインが大きすぎる」では、Kp = 20 で出力が発散します。ジーグラ・ニコルスの方法のように、むだ時間と時定数からゲインの目安を決める方法がありますが、実際の装置では、小さめのゲインから始めて応答を見ながら調整するのが安全です。

積分の巻き上がりと対策

操作量には、モータの電圧やバルブの開度のように上限があります。上限に張り付いて出力が追いつかないあいだも、積分は偏差をため続けます。目標値に届いたあとも、ためた積分が減るまで操作量が下がらないため、大きなオーバーシュートが起きます。これが積分の巻き上がり(ワインドアップ)です。例の「巻き上がり」では、上限1.5でオーバーシュートが約35%になり、対策を入れると約7%に減ります。このツールの対策は、操作量が上限に張り付き、偏差がさらに上限を強める向きのあいだ、積分を止める方法です。ほかに、上限との差を積分に戻す方法(バックカリキュレーション)もあります。

制御工学の問題を解く

減衰係数 ζ = 0.5 の二次遅れ系(零点のない標準形)にステップを入力した。オーバーシュート(最大の行き過ぎ量の、最終値に対する割合)に最も近いものはどれか。

  1. A約16%
  2. B約21%
  3. C50%
答えと解説を見る

正解:A. 約16%

標準形の二次遅れ系のオーバーシュートは exp(−πζ/√(1 − ζ²)) で表され、固有角周波数 ωn にはよりません。ζ = 0.5 では exp(−π × 0.5/√0.75) ≈ exp(−1.81) ≈ 0.163 で、約16%です。ζ ≈ 0.707(1/√2)では約4.3%になり、行き過ぎの少ない応答の目安としてよく使われます。行き過ぎが最大になる時刻は π/ωd(ωd = ωn√(1 − ζ²))です。

単位フィードバックの系で、前向きの伝達関数が G(s) = 9/(1 + 2s) である。大きさ1のステップの目標値に対する定常偏差として正しいものはどれか。

  1. A0
  2. B0.1
  3. C約0.11
答えと解説を見る

正解:B. 0.1

単位フィードバックの系のステップに対する定常偏差は 1/(1 + Kp) で、Kp = G(0) を位置偏差定数と呼びます。ここでは Kp = 9 なので、定常偏差は 1/(1 + 9) = 0.1 です。前向きの経路に積分を含まない(0形の)系では、ゲインを上げると偏差は小さくなりますが、0にはなりません。偏差を0にするには、PI制御などで積分を加えます。

積分要素を含まない(0形の)制御対象を比例(P)制御する。比例ゲイン Kp を大きくしたときの一般的な変化として正しいものはどれか。

  1. A定常偏差は小さくなるが0にはならず、大きくしすぎると振動的になったり不安定になったりする
  2. B定常偏差がちょうど0になり、ゲインをいくら大きくしても、応答は振動することなく必ず安定に保たれる
  3. C応答の速さは変わらず、定常偏差だけが大きくなっていく
答えと解説を見る

正解:A. 定常偏差は小さくなるが0にはならず、大きくしすぎると振動的になったり不安定になったりする

比例制御は、偏差に比例した操作量を出す最も基本的な制御です。Kp を大きくすると応答が速くなり、ステップに対する定常偏差 1/(1 + Kp·K)(K は制御対象の定常ゲイン)も小さくなりますが、偏差がなければ操作量も0になるので、偏差は0にはなりません(オフセット)。また、ゲインを上げると位相余裕が減ってオーバーシュートが大きくなり、遅れの大きな系では不安定になります。定常偏差をなくすには、積分動作を加えます。

PI制御で、積分(I)動作を加える主な目的と、その副作用の組み合わせとして正しいものはどれか。

  1. A目的は高い周波数の雑音を取り除くことで、副作用は定常偏差が大きくなること
  2. B目的は一定の目標値や外乱に対する定常偏差をなくすことで、副作用は位相が遅れて振動しやすくなること
  3. C目的は偏差の変化を先読みして応答を速くし、行き過ぎを抑えることで、副作用は高い周波数の雑音を大きく増幅すること
答えと解説を見る

正解:B. 目的は一定の目標値や外乱に対する定常偏差をなくすことで、副作用は位相が遅れて振動しやすくなること

積分動作は偏差を時間で積み重ねて操作量にするので、偏差が少しでも残っている限り操作量を変え続け、最終的に定常偏差を0にします。一方、積分要素は位相を90°遅らせるので、位相余裕が減り、オーバーシュートや振動が起こりやすくなります。そこで、積分時間 Ti を短くしすぎないように調整します。応答を速くして行き過ぎを抑え、雑音を増幅しやすいのは、微分動作の特徴です。

積分ワインドアップの説明として正しいものはどれか。

  1. A微分項が雑音を増幅して、操作量が細かく振動し続ける現象で、微分にローパスフィルタを入れると防げる
  2. B積分の計算でサンプリング周期を長くしすぎたために、定常偏差が残り続ける現象
  3. C操作量が上限に張り付いている間も積分項が偏差を積み重ね続けるため、偏差の符号が変わってもしばらく操作量が下がらず、大きなオーバーシュートが起こる現象
答えと解説を見る

正解:C. 操作量が上限に張り付いている間も積分項が偏差を積み重ね続けるため、偏差の符号が変わってもしばらく操作量が下がらず、大きなオーバーシュートが起こる現象

モータの電圧やバルブの開度のように、操作量には上限と下限があります。大きな偏差が続いて操作量が上限で飽和すると、操作量はそれ以上増えないのに、積分項は偏差を積み重ね続けて大きな値になります。制御量が目標値を超えて偏差の符号が変わっても、ためこんだ積分の値が減るまで操作量は上限に張り付いたままなので、大きなオーバーシュートと長い振動が起こります。対策として、飽和している間は積分を止めたり、積分の値を制限したりするアンチワインドアップが使われます。

マイコンで位置形のPI制御を実装し、PWMのデューティ比(0〜100%)を操作量とする。積分ワインドアップの対策として正しいものはどれか。

  1. A飽和している間は比例ゲインを大きくして、早く飽和から抜け出させる
  2. B積分項を浮動小数点数で計算すれば桁あふれが起きないので、特別な対策はいらない
  3. C出力が飽和している間は、偏差が飽和を深める向きなら積分を止めるか、制限した値との差を積分に戻して、積分の値を抑える
答えと解説を見る

正解:C. 出力が飽和している間は、偏差が飽和を深める向きなら積分を止めるか、制限した値との差を積分に戻して、積分の値を抑える

1つ目の方法は条件付き積分(クランプ)で、出力が飽和していて、偏差がさらに飽和を深める向きのときは積分を更新しません。2つ目はバックカリキュレーションで、制限する前の計算値と実際に出した値の差に係数を掛けて積分に戻し、積分の値を引き戻します。操作量の変化分を計算する速度形のPID制御では、出力を制限するだけでワインドアップが起こりにくくなります。整数の固定小数点で計算するときは、積分の変数そのものの桁あふれにも、飽和演算などで備えます。

よくある質問

PID のゲインはどう決めればよいですか?

まず P だけで、振動しはじめる手前までゲインを上げ、次に I を足して定常偏差をなくし、オーバーシュートが大きければ D を足すのが基本の流れです。むだ時間と時定数が分かっていれば、ジーグラ・ニコルスなどの調整則で目安を決められます。実際の装置では、操作量の上限や雑音も考えて、小さめのゲインから調整します。

P 制御だけだと、なぜ定常偏差が残るのですか?

P 制御では、操作量が偏差に比例するので、操作量を出し続けるには偏差が残っている必要があるからです。一次遅れの対象 K/(Ts+1) では、最終値は K·Kp/(1 + K·Kp) になり、偏差は 1/(1 + K·Kp) です。I を足すか、対象が積分を含めば、ステップ入力に対する定常偏差はなくなります。

微分(D)にフィルタを入れるのはなぜですか?

微分は変化の速い成分ほど大きくするので、測定の雑音を大きくし、目標値を急に変えた瞬間には操作量が大きく跳ね上がります。そこで、一次のローパスフィルタを通して高い周波数を抑えます。このツールでは、フィルタの時定数を Kd/(N·Kp) にしていて、N を小さくするほどフィルタが強く効きます。

関連する用語

PID制御 積分ワインドアップ オーバーシュート 整定時間 定常偏差 一次遅れ系 二次遅れ系 時定数

関連する比較

関連する計算ツール

半導体・電子回路・情報の計算ツール →