PID制御

PID 制御とは?

PID制御は、古くから産業界で幅広く使用されているフィードバック制御の手法です。制御構造がシンプルであり、とても使いやすく、長年の経験の蓄積からも、実用化されているフィードバック制御方式の中で多くの部分を占めています。例えば、モーター速度制御や温度制御など応用先は様々です。PIDという名称は、比例(P: Proportional)、積分(I: Integral)、微分(D: Differential)の頭文字に由来します。

図1は、一般的なフィードバック制御系のブロック線図を表しています。制御対象、センサー、および、PID制御器から構成されています。PID制御の仕組みは、図2に示すように、制御対象から測定された出力(制御量)と追従させたい目標値との偏差信号に対して、比例演算、積分演算、そして、微分演算の3つの動作を組み合わせて、制御対象への入力(操作量)を決定します。言い換えると、PID制御は、比例制御、積分制御、そして、微分制御を組み合わせたものであり、それぞれの特徴を活かした制御が可能となります。制御理論の立場では、PID制御を含むフィードバック制御系の解析・設計は、古典制御理論の枠組みの中で、つまり、伝達関数を用いた周波数領域の世界の中で体系化されています。

図1: フィードバック制御系

図1: フィードバック制御系

図2: PID制御器

図2: PID制御器

PID制御の仕組み

PID制御は、比例項、積分項、微分項の和として、時間領域では次のように表すことができます。

Pid Control equation 1

また、上式をラプラス変換し、入出力間(偏差-操作量)の伝達特性をs領域で記述すると、次式となります。

Pid Control equation 2

ここで、PID制御の比例項、積分項、微分項のそれぞれの特徴について簡単に説明します。比例項は、瞬間的に偏差を比例倍した大きさの操作量を生成します。ON-OFF制御と比べて、滑らかに偏差を小さくする効果を期待できますが、制御対象によっては、目標値に近づくと操作量自体も徐々に小さくなり、定常偏差(オフセット)を残した状態となります。図3は、ある制御対象に対して比例制御を適用した場合の制御対象の出力応答を表しています。図3の右図のように比例ゲインを大きくすることによって、開ループ系のゲインを全周波数域で高め、定常偏差を小さくする効果が望める一方で、閉ループ系が不安定に近づいたり、応答が振動的になったりと、制御性能を損なう可能性があるため注意が必要です。

図3: 制御対象の出力応答(P制御を適用した場合)

図3: 制御対象の出力応答(P制御を適用した場合)

定常偏差を無くすためには、積分項の働きが有効となります。積分項は、時間積分により過去の偏差を蓄積し、継続的に偏差を無くすような動作をするため、目標値と制御量との定常偏差を無くす効果を持ちます。ただし、積分により位相が全周波数域で90度遅れるため、応答速度や安定性の劣化にも影響します。例えば、オーバーシュートやハンチングといった現象を引き起こす可能性があります。図4は、比例項に積分項を追加した場合の制御対象の出力応答を表しています。積分動作の効果によって、定常偏差が無くなっている様子を確認することができます。

図4: 制御対象の出力応答(PI制御を適用した場合)

図4: 制御対象の出力応答(PI制御を適用した場合)

最後に微分項は、偏差の変化率(傾き)に比例倍した大きさの操作量を生成します。つまり、偏差の変化する方向を予測して制御するという意味を持ちます。実際は厳密な微分演算を実装することは困難なため、通常は、例えば、図5のように、微分器にローパスフィルタを組み合わせた近似微分演算を使用します。図6にPID制御を適用した場合の応答結果を示します。微分項の存在によって、振動的な応答の抑制や応答速度の向上といったメリットが生まれます。その一方で、偏差の変化を敏感に捉えるため、ノイズのような高周波の信号に対しては、過大に信号を増幅し、制御系に悪影響を及ぼす必要があるため注意が必要です。

図5: 近似微分器

図5: 近似微分器

図6: 制御対象の出力応答(PID制御を適用した場合)

図6: 制御対象の出力応答(PID制御を適用した場合)

PID制御のパラメータチューニング

PID制御のパラメータは、基本的に比例ゲイン、積分ゲイン、微分ゲインとなります。所望の応答性を実現し、かつ、閉ループ系の安定性を保つように、それらのフィードバックゲインをチューニングする必要があります。PIDゲインのチューニングは、経験に基づく手作業による方法から、ステップ応答法や限界感度法のような実験やシミュレーション結果を利用しある規則に基づいて決定する方法、あるいは、オートチューニングまで様々な方法があります。

一つの例として、ジーグラ(Ziegler)とニコルス(Nichols)によって提案された限界感度法について説明します。そのために、PID制御の表現を次式のように書き直します。

Pid Control equation 3

ここで、Ti、Tdは、一般的にそれぞれ積分時間、微分時間と呼ばれます。限界感度法は、PID制御を比例制御のみとして、徐々に比例ゲインの値を大きくしてゆき、制御対象の出力が一定の持続振動状態、つまり、安定限界に到達したところで止めます。このときの比例ゲインをKc、振動周期をTcとすると、次の表に従いPIDゲインの値を決定します。

  比例ゲインKp 積分時間Ti 微分時間Td
P 0.5Kc - -
PI 0.45Kc Tc/1.2 -
PID 0.6Kc Tc/2 Tc/8

ジーグラ・ニコルスの限界感度法

PID制御の設計と実装

PID制御器の設計および実装を行うためには、次のようなタスクを行う必要があります。

  • 適切なPID制御構造 (P、PI、PD、または PID) の選択
  • PIDゲインのチューニング
  • 制御対象(プラント)モデルに対するPID制御器のシミュレーション
  • ターゲットプロセッサへのPID制御器の実装

近年、モデルベースデザインと呼ばれる製品開発プロセスが注目を集めています。モデルベースデザイン (モデルベース開発、MBD)とは、ソフト/ハード試作前の製品開発上流からモデルとシミュレーション技術を活用し、制御系の設計・検証を行うことで、開発手戻りの抑制や開発コストの削減、あるいは、品質向上を目指す開発プロセスです。モデルを動く仕様書として扱い、最終的には制御ソフトとなるモデルから、組み込みCプログラムへと自動変換し製品実装を行います(図7参照)。PID制御器の設計と実装にモデルベースデザインを適用することで、より効率的に上記のタスクを推し進めることができます。

図7: モデルとシミュレーション技術を活用した開発

図7: モデルとシミュレーション技術を活用した開発

PID制御とMATLAB, Simulink

MATLAB®とアドオン製品では、ブロック線図表現によるシミュレーションから、組み込み用C言語プログラムへの変換まで、PID制御の効率的な設計・実装を支援する機能を豊富に提供しています。

  • Simulink®で提供される PID Controller ブロックでのPID制御構造 (P、PI、または PID)、PID制御器の形式 (並列または標準)、アンチワインドアップ対策 (オンまたはオフ)、および制御器の出力飽和 (オンまたはオフ) の設定
  • PIDゲインのオートチューニングと設計の対話的な微調整
  • バッチモードでの複数のPID制御器の調整
  • PID Controllerブロックをプラントモデルに接続することによる閉ループ系シミュレーションの実行
  • マイクロコントローラ(マイコン、MCU)へ実装するためのC言語プログラムの自動生成
  • PLCまたはPACへ実装するためのIEC 61131ストラクチャードテキスト(ST言語)の自動生成
  • 固定小数点演算を使用するプロセッサにPID制御器を実装するためのPIDゲインの自動スケーリング

参考: control systems, system design and simulation, physical modeling, linearization, parameter estimation, PID tuning, control design software, Bode plot, root locus, PID control videos, field-oriented control, BLDC motor control, motor simulation for motor control design, power factor correction, small signal analysis, Optimal Control