技術解説
PID制御の仕組み
1. はじめに
「PID制御とは」のページでは、PID制御のアルゴリズムがどのような考え方で動作するのか、自動車の運転を例にして紹介しました。次のステップとして、PID制御が実際どのように動作するのか、数式と併せてそれぞれの動作について解説していきます。
また、このページ内では説明を分かりやすくするためにPIDシミュレーションの結果をいくつか掲載していますが、グラフの近くに配置された〔PIDシミュレータを開く〕ボタンを押すことで、制御シミュレータを動かすことができます。ぜひご自身で設定値やPID定数を変更してみてください。よりPID制御についての理解が深まるはずです。
2. PID制御と温度制御
ここではPID制御アルゴリズムを搭載している温度調節計が、実際にどのような動きをするのか解説します。制御とは、「ある目的に適合するように、対象となっているものに所要の操作を加えること」を指します。つまり温度制御の場合は「温度目標値と測定点の温度が等しくなるように操作を加えること」となります(図1)。図の破線部は、温度調節計の機能に相当するブロック線図であり、制御部CがPID制御アルゴリズムを有する部分に相当します。
図 1:温度制御の概念図
2.1. PID制御の基本式
PID制御の基本式は、偏差e(=SV-PV)に比例する比例動作(Proportional action:P動作)と、偏差eの積分に比例する積分動作(Integral action:I動作)、偏差eの微分に比例する微分動作(Derivative action:D動作)の和で表されます(式 (1))。
基本的に設定可能なパラメータは比例ゲイン(KP)、積分時間(TI)、微分時間(TD)の3つです。ただし温度調節計では比例ゲインを直接指定するのではなく、比例ゲイン(KP)の逆数をとった比例帯PB=100 / KP [℃](または[%])を指定することが多いです。式 (1) の右辺の第1項から順番に比例項(P動作出力)、積分項(I動作出力)、微分項(D動作出力)を示しています。
2.2. PID制御アルゴリズムの意味
人間が物事を判断する時には、「過去」「現在」「未来」の3要素を考慮し、結論を出します。PID制御アルゴリズムの場合も、「過去⇒I動作」、「現在⇒P動作」、「未来⇒D動作」というように、これらの3要素から操作量を決定するように解釈できます。
2.3. P動作とオフセットについて
2.3.1. P動作
P動作は式 (2) で表され、現在の偏差eに比例した出力を出します。
比例ゲインKPを大きくすると、偏差eが同じでもP動作出力は大きくなることが分かります。ただし実際には物理的な制限が存在するため、操作量MVは0~100 [%] などの有限範囲内でしか動きません。例えば比例帯PB=30 [℃]、目標値SV=100 [℃]、測定値PV=40 [℃]の場合、
となり、操作量MVは200 [%] 出るはずですが、実際には100 [%] までしか出ません(図2 (a))。
簡単で分かり易い動作ですが、P動作だけでは十分な時間が経過してもオフセット(定常偏差)が残ってしまうという問題があります(図2 (a))。比例ゲインKPを大きくするとオフセットは小さくなりますが、PVの応答はより振動的になり、さらに大きくしていくと持続振動を起こすようになります。振動しないようにKPを設定すると必ずオフセットは残りますので、ここがP動作の限界ということになります。
図 2 (a):P動作による温度制御例(比例帯:30 [℃]、SV:100 [℃])
2.3.2. オフセット
図2 (b):P動作出力と負荷特性
偏差eが0のとき、P動作出力は0 [%] となります。これが、P動作だけではオフセットが必ず発生する原因となります。例えば図2 (b) の負荷特性(※1)をもつ制御対象は、PVをSV=100 [℃] で安定させるためにMV(操作量)が50 [%] 必要です。
①最初はPVが周囲温度(25 [℃])とすると、これに応じたP動作出力=100 [%](出力上限値)が出ます。
②比例帯内においてはP動作出力が偏差eに比例します。P動作出力は、SVへ近づくほど減少し、SVから遠ざかるほど増加します。
③SV(100 [℃])≦PVとなった場合、P動作出力は0 [%](出力下限値)となります。図2 (b) の負荷特性からPVは次第に周囲温度まで下がろうとすることが分かります。
④最終的にPVはP動作出力と負荷特性の均衡点(図2 (b) の交点)で安定します。
この均衡点において残る偏差をオフセットと呼びます。
オフセットを除去するためには、負荷特性に合わせてマニュアルリセット値50 [%] を式 (2) に加算する(図2 (c))か、I動作を加える必要があります。
(※1)ここでは、制御対象の温度が安定(熱平衡)状態となった温度 [℃] と、そのときの負荷通電率 [%] の関係を負荷特性と定義します。
図2 (c):P動作出力とマニュアルリセット(50 [%])
2.4. PI動作と積分時間
式 (2) にI動作出力を加えると、PI動作の式 (3) となります。
I動作は過去の偏差eを積算した値であるため、(e>0)であれば次第に増加し、(e<0)であれば次第に減少するということが分かります。I動作出力の初期値を0、偏差が一定としたとき、時刻t1におけるP動作出力およびI動作出力は次式で表せます。
2つの式を比較すると、t1=TIとなったときP動作出力=I動作出力となることが分かります。このことから、「一定の偏差が入力された時点からP動作出力=I動作出力となるまでの時間が積分時間TI」ということになります。P動作が偏差に比例した一定の出力を出すのに対して、I動作は偏差eがゼロでない限り出力を増加(または減少)し続けます。このため、積分時間TIによって収束速度に違いはあってもいつかはオフセットが0になります。ここで大事なのは、偏差eが0になったとしても、それまでの積分値は保持されるということです。I動作出力により、マニュアルリセット値を自動修正したのと同じような効果を得ることができます。〔PIDシミュレータを開く〕
図 3:PI動作の出力
2.5. PD動作と微分時間
式 (2) に偏差eの微分に比例するD動作出力を加えると、PD動作の式 (5) となります。
D動作は偏差eの微分値(変化速度)に比例した出力を与え、未来における偏差の変化速度を抑制します。D動作は変化速度の方向に対して逆向きの抵抗力を発生させるので、ダンパーに例えられることもあります。ダンパーとはショックアブソーバー(振動を減衰する装置)とも呼ばれ、車やバイク等に使用されるサスペンションを構成する部品の一つです。これが無い状態で運転すると車体の振動が抑えられず、乗り心地が悪くなります。D動作も同様に、振動を減衰させる働きをします。例えば、PV=SVで安定していた温度が外乱などにより急降下した(de/dt>0)場合には、D動作出力をプラス方向へ出すことで外乱による変化を抑制します。また、昇温時(de/dt<0)は、D動作出力をマイナス方向へ出すことで過昇温(オーバーシュート)を抑制する働きをします。図4のように偏差が一定速度で増加しているとき、D動作出力(D出力)の値は一定となります。偏差が一定(変化速度がゼロ)のときD動作出力はゼロとなるので、オフセットを除去することはできません。
図 4:PD動作の出力
なお微分時間TDは、ランプ状の偏差(一定の傾きで変化する偏差)を加えたとき、「(P動作出力)=(D動作出力)となるまでの時間」、と定義されます。〔PIDシミュレータを開く〕
D動作出力が振動を減衰させる方向に出力されていることが確認できましたね。なおシミュレータでは、偏差が一定でもD動作出力の値が必ずしも一定にはなりません。これは、(5)式の演算式は一般に「完全微分」と呼ばれるものであり、このままでは実用的ではないからです。シミュレータでは、偏差eを1次遅れフィルタで処理してから微分の演算を行っており、こちらは「不完全微分」と呼ばれます。
3. おわりに
ここでは数式とシミュレータを使って、PID制御それぞれの基本的な動作について説明しました。実用的な制御を行うためには基本的な動作に加えて様々な工夫が必要ですが、この技術解説ページが少しでも皆さまの助けになれば幸いです。