PID制御

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

PID制御(ピーアイディーせいぎょ = Proportional Integral Derivative Controller)は、フィードバック制御の一種であり、入力値の制御を出力値と目標値との偏差、その積分、および微分の3つの要素によって行う方法のことである。制御理論の一分野をなす古典制御論の枠組みで体系化されたもので長い歴史を持っている。フィードバック制御の基礎ともなっており、様々な制御手法が開発・提案され続けている今に至っても、過去の実績や技術者の経験則の蓄積により調整を行いやすいため、産業界では主力の制御手法であると言われている。

基本的なフィードバック制御として比例制御(P制御)がある。 これは入力値を出力値と目標値の偏差の一次関数として制御するものである。 すなわち、ある時刻tでの入力値をx(t)、出力値をy(t)、目標値をy0とすると

x(t) = K_p (y(t) - y_0) + x_0

となる。 x0は、y(t) = y0のときにそれを維持するために必要な入力値である。

Δx(t) = x(t) - x0、Δy(t) = y(t) - y0とすると

\Delta x(t) = K_p \Delta y(t)

PID制御では、この偏差に比例して入力値を変化させる動作を比例動作あるいはP動作(PはProportionalの略)という。 定数Kp比例ゲインと呼ばれる。

比例制御においてはKpを変えない限り、出力値に対して入力値は常に決まっている。 しかし、実際に制御を行う場合には同じ出力値に対しても周囲の環境などによって入力値を変えなければならないことがある。 例えばある装置の温度を60℃に保ちたいときにその外気温が10℃のときと30℃のときでは加熱に必要な熱量を変えなければならない。 このような状況下で外気温が10℃の時に、外気温が30℃の時に60℃に到達するKpの値を使用して比例制御を行うと、熱量が足りず目標値に到達することができない。 このようにして生じる出力値と目標値との偏差を残留偏差またはオフセットという。

しかし、残留偏差をなくすために周囲の環境が変わるたびに最適のKpを決定しなおすのは難しい。 そこで

\Delta x(t) = K_p \Delta y(t) + K_i \int_{0}^{t} \Delta y(\tau)\, d\tau

と2つ目の項を付け加える。 この項は残留偏差が存在する場合、その偏差の時間積分に比例して入力値を変化させる動作をする。 つまり偏差のある状態が長い時間続けばそれだけ入力値の変化を大きくして目標値に近づけようとする役目を果たす。 この偏差の積分に比例して入力値を変化させる動作を積分動作あるいはI動作(IはIntegralの略)という。 上記のように比例動作と積分動作を組み合わせた制御方法はPI制御という。

定数Ki積分ゲインと呼ばれる。 また式にKi = Kp / Tiを代入すると

\Delta x(t) = K_p (\Delta y(t) +  {1 \over T_i} \int_{0}^{t} \Delta y(\tau)\, d\tau)

このTi積分時間と呼ばれる。 積分時間はある一定の大きさのオフセットが継続した(つまりΔy(t)が一定)のときにP動作とI動作の項が同じになるのに要する時間である。 積分時間が小さいほどI動作の寄与が大きくなり残留偏差の矯正が迅速に行われるが、小さすぎると目標値を行き過ぎたり(オーバーシュート)、目標値の前後を出力値が振動したり(ハンチング)する現象を起こすことがある。

一方、周囲の環境が変化したり制御対象に撹乱が加わったりすることで出力値が急に変動することがある。 このような場合にもPI制御は出力値を目標値に常に近づけようとする。 しかし、I動作はある程度時間が経過しないと働かないため、どうしても出力値を目標値に戻すために時間がかかる。 そこで

\Delta x(t) = K_p \Delta y(t) + K_i \int_{0}^{t} \Delta y(\tau)\, d\tau + K_d {{d \Delta} y(t) \over dt}

と3つ目の項を付け加える。 この項は急激な出力値の変化が起こった場合、その変化の大きさに比例した入力を行うことで、その変化に抗しようとする役目を果たす。 この偏差の微分に比例して入力値を変化させる動作を微分動作あるいはD動作(DはDerivativeまたはDifferentialの略)という。 上記のように比例動作、積分動作、微分動作を組み合わせた制御方法をPID制御という。

定数Kd微分ゲインと呼ばれる。 また式にKd = Kp・Tdを代入すると

\Delta x(t) = K_p (\Delta y(t) +  {1 \over T_i} \int_{0}^{t} \Delta y(\tau)\, d\tau + T_d {{d \Delta y(t)} \over dt})

このTd微分時間と呼ばれる。 微分時間はある一定の変化率の出力値の変動が継続した(つまりΔy(t)/dtが一定)のときにP動作とD動作の項が同じになるのに要する時間である。 微分時間が大きいほどD動作の寄与が大きくなり変動へ対処が迅速に行われるが、大きすぎると今度は逆方向へ変動したりすることになり制御が不安定になる。

PID制御において適切な比例ゲイン、積分ゲイン(または積分時間)、微分ゲイン(または微分時間)を決定するには制御対象の入力に対する応答を調べておく必要がある。 このためには入力値を階段状に変動させた時に出力値が応答しはじめるまでに要する時間(無駄時間)、応答しはじめてからの変化の速度(時定数)、入力値の変化量と出力値の変化量の比(プロセスゲイン)などを測定し、その値から設定する方法がある。 無駄時間が長く時定数が小さい(応答開始に時間がかかるが、応答がはじまると急激に変化する)制御対象にはPID制御は不向きである。

関連項目[編集]