PID制御
PID制御とは、入力値(目標値)と出力値(制御対象の現在値)の偏差 $e(t)$)をもとに、制御量を計算して制御対象を目標値へ近づけるフィードバック制御の手法です。PIDは、偏差に対する3つの制御(P制御、I制御、D制御) の頭文字を取ったものです。
PID制御は、産業用の温度調節、モーターの位置・速度制御、ドローンの姿勢制御などの分野で広く使われています。
PID制御の基本原理
目標値を \(r(t)\)、制御対象の出力を \(y(t)\) とすると、偏差を以下で定義ます。
$$e(t)=r(t)-y(t) -①$$
PID制御では、この偏差 \(e(t)\) から操作量 \(u(t)\) を計算します。
$$u(t) = K_P\,e(t) + K_I\int_0^t e(\tau)\,d\tau + K_D\frac{de(t)}{dt} -②$$
-
- $K_p$ : 比例ゲイン(Proportional Gain)
- $K_I$ : 積分時間(Integral Time)
- $K_D$ : 微分時間(Derivative Time)
それぞれの要素には以下の役割があります。
| 要素 | P (比例) | I (積分) | D (微分) |
| 時間軸 | 現在の偏差 | 過去の偏差の蓄積 | 未来の変動予測 |
| 役割 | 基本的な修正力を出す | オフセットを解消する | 変化の勢いを抑える |
| 長所 | 応答速度を上げる | 目標値に正確に一致させる | 安定性を高める |
| 短所 | オフセット(定常偏差)が残る | 応答が遅れ、オーバーシュートしやすくなる | 高周波ノイズに弱く、過敏に反応する |
P制御
P制御(Proportional:比例制御)は、現在の偏差の大きさに比例して制御力を出します。比例ゲインを $K_P$ と置くと、
$$u_P(t) = K_P \, e(t)$$
P制御は、偏差が大きいほど制御(戻す力)が大きくなります。ただし、P制御だけでは目標値の手前で力が拮抗し、オフセット(定常偏差:いくら時間をかけても消えないズレ) が残る欠点があります。
例えば、暖房を止めると室温が徐々に下がってしまう系で目標温度 \(25^\circ\mathrm{C}\) を維持する場合を考えます。このとき、必要な出力を得るのに2℃の偏差が要るなら、部屋は 23℃で落ち着き、そこから上がりません。。
I制御
I制御(Integral:積分制御)は、過去から現在までの偏差の累積(時間積分)に比例した制御量を出力します。積分ゲインを $K_I$ と置くと、
$$u_I(t) = K_I \int_0^t e(\tau) d\tau$$
わずかな偏差であっても時間が経つにつれて出力を大きくし、P制御で残ったオフセットをゼロにする働きがあります。一方で、過去の蓄積に反応するため応答が遅れやすく、オーバーシュートや発振の原因になることがあります。
D制御
D制御(Derivative:微分制御)は、偏差の現在の変化率(時間微分)に比例した制御量を出力します。
$$u_D(t) = K_D \frac{d e(t)}{d t}$$
急激に変化しているときにブレーキをかける予測的な役割を果たします。急な外乱に対する急変を抑え、立ち上がり時のI制御によるオーバーシュートを防止して安定化させます。
フィードバック回路
フィードバック回路とは、制御対象の現在の状態(出力)をセンサ等で検出し、目標値と比較して入力側へと書き戻す閉ループ回路(クローズドループ制御)のことを指します。PIDフィードバック回路全体の情報の流れは、以下の構成で成り立っています。

時系列信号 $r(t), e(t), u(t), d(t), y(t)$ をラプラス変換し、それぞれ $R(s), E(s), U(s), D(s), Y(s)$ とします。
| 構成要素 | 信号 | ラプラス変換 |
機能 |
| 目標値 | $r(t)$ | $R(t)$ | システムが目指すべき値(例:設定温度など) |
| 比較器 | $e(t)$ | $E(t)$ | ①より算出された偏差 |
| 制御量 | $u(t)$ | $U(s)$ | ②より算出された制御対象に対する操作量 |
| 外乱 | $d(t)$ | $D(s)$ | 外部からの系を乱す入力 |
| 出力 | $y(t)$ | $Y(s)$ | システムの出力(実際の温度、回転数、位置など) |
各ブロックの伝達関数を以下のように定義します。
| 構成要素 | 伝達関数 | 機能 |
| PID制御器 | $C(s)$ | PID制御器の伝達関数 |
| 制御対象 | $P(s)$ | プロセス(機械・電気・熱システムなど)の動特性を表す伝達関数 |
| 検出器 | $H(s)$ | センサの伝達関数、理想的な場合は $H(s) = 1$ |
伝達関数を用いると、システムの応答や安定性を代数的に取り扱うことができます。②をラプラス変換し、PID制御器への入力を \(E(s)\)、出力を \(U(s)\) とすると、
$$U(s) = \left( K_P+\frac{K_I}{s}+K_D\,s \right)E(s)$$
PID制御器を伝達関数 $G(s)$ で表すと、PID制御器が極と零点を持つ動的なシステムとして理解できます。
$$C(s)=\frac{U(s)}{E(s)}=\frac{K_D\,s^2+K_P\,s+K_I}{s} -②$$
処理の流れ
PIDフィードバック回路内では、以下のサイクルが極めて短い周期(数ミリ秒〜数秒単位)で高速に繰り返されています。
- センサ計測:$y(t)$ を取得
- 偏差の計算:①の $e(t)$ を計算$$E(s) = R(s)-H(s) Y(s) -③$$
- PID演算:②の $u(t)$ を計算$$U(s) = C(s) E(s) -④$$
- 制御対象駆動:$u(t)$ に基いて制御対象を操作$$Y(s) = P(s)\big[ U(s)+D(s) \big] -⑤$$
- 状態の変化:出力 $y(t)$ が変化
⇒ [1. センサ計測] へ戻る
閉ループ伝達関数
閉ループ伝達関数(Closed-Loop Transfer Function)$G_{ry}(s)$ は、外乱を $D(s) = 0$ と仮定し、④⑤⑥を使うと以下が得られます。
$$G_{ry}(s)=\frac{Y(s)}{R(s)}=\frac{P(s)C(s)}{1+P(s)C(s)H(s)} -⑦$$
特に、検出器の応答遅れ $H(s)$ が十分小さい場合(単位フィードバック系)、以下のように簡略化されます。
$$G_{ry}(s) = \frac{P(s) C(s)}{1 + P(s) C(s)} -⑧$$
一巡伝達関数と特性方程式
伝達関数の分母部分は、システムの過渡応答および安定性を評価に使われます。
- 一巡伝達関数(開ループ伝達関数)$L(s)$:
フィードバックループを一周する伝達関数を指す。$$L(s) = P(s) C(s) H(s)$$ - 特性方程式(Characteristic Equation):
閉ループ伝達関数の分母をゼロとおいた方程式。特性方程式の根が全て複素平面の左側(実部が負)に存在することが、フィードバック制御系が安定であるための必要十分条件。$$1 + L(s) = 0$$
外乱抑圧の伝達関数
目標値 $R(s) = 0$ とし、外乱 $D(s)$ が出力 $Y(s)$ に与える影響を表す伝達関数 $G_{dy}(s)$ は、④⑤⑥より以下が得られます。
$$G_{dy}(s) = \frac{Y(s)}{D(s)} = \frac{P(s)}{1 + P(s) C(s) H(s)} -⑨$$
PID制御器 $C(s)$ のゲインを大きくすると、⑨の分母のが大きくなり、$G_{dy}(s)\to0$ となるため、外乱の影響をキャンセルすることができます。


