実験をしながらPID制御について調べました。資料1*1 と資料2*2を参考にしています。
フィードバック制御
制御対象からの出力(測定値 PV)(本実験では温度)をフィードバックして、コントローラは設定値(SV)と測定値(PV)の差(偏差(e))を得ます。演算処理により設定値(SV)と測定値(PV)が等しくなるように操作量(MV)を出力します。
設定値(SVまたはSP)は「目標値」とも呼ばれています。
操作量(MV)は「制御出力」「調節計出力」「制御入力」(制御対象に対して)という名称も使用されています。
測定値(PV)は「出力」「制御量」とも呼ばれています。
実験容器の特性
制御対象となる実験容器の特性を調べました。
操作量(MV)の出力値と、容器内の空気の温度の関係です。加熱と冷却があります。
到達温度は、容器の中央で底から5cmの場所で測定しました。
基準接点温度は CPUボード上にある測温抵抗体で測定した温度です。
同一操作量でも基準接点温度(室温)が低いと、到達温度が低くなります。
フィードバックしない制御
「実験容器の特性(図.2)」の加熱制御のグラフより、25℃にするための操作量は50[%]である事がわかります。(基準接点温度 17.5[℃]の場合)
測定値(PV)をフィードバックせずに、コントローラから操作量(MV)=50[%]を出力しました。
18.5[℃]から25[℃]になるまで5分かかりました。また25[℃]をオーバーして26[℃]となりました。これは実験中の基準接点温度が18.5[℃]であった事が原因だと思います。(特性グラフの基準接点温度は17.5[℃])
ON/OFF制御
ON/OFF制御では測定値 (PV)をフィードバックして、設定値(SV)よりも低ければ、操作量(MV)をON(100%出力)します。(加熱制御時)
18[℃]から25[℃]になるまで3分かかりました。ON/OFF制御のためPV値が波うっていますが、フィードバックしない時に比較して設定値に早く到達しました。フィードバックすることにより「速応性」が改善されました。
PID制御
測定値 (PV)をフィードバックしPID演算を行い、操作量(MV)を出力します。PID各動作の効き具合はゲインで表せますが本実験ボードでは、比例帯、積分時間、微分時間を使用しています。
偏差
ON/OFF 制御では測定値(PV)と設定値(SV )により、出力のON/OFFが判断できますが、PID制御では偏差(e )から出力を計算するのでやや難しいです。
偏差(e )は設定値(SV)と現在の測定値(PV)の差です。
e = SV – PV (加熱制御時) , e = PV - SV (冷却制御時)
P動作
P動作は「比例動作」で、偏差(e)に比例した値が出力されます。
P_MV = (Kp:比例ゲイン)
比例ゲイン(Kp)と比例帯(P)の関係は、
となります。
比例帯(P)が大きい場合、比例ゲイン(Kp)は小さくなりP動作の出力変化はゆっくりです。
比例帯(P)が小さい場合、比例ゲイン(Kp)は大きくなり、P動作の出力変化は急です。
I動作
I動作は「積分動作」で、偏差(e)を積分して積分ゲインを掛けた値が出力されます。
I_MV = (Ki:積分ゲイン)
積分ゲイン(Ki)の代わりに積分時間 Ti [sec]を設定します。
積分時間(Ti)が大きい場合、I動作の出力変化はゆっくりです。
積分時間(Ti)が小さい場合、I動作の出力変化は急です。
積分時間(Ti)とは、偏差が一定の場合に、I動作による出力がP動作と同じ出力になるまでの時間です。このため、
I動作による出力 = P動作による出力
積分ゲイン(Ki)は、
したがって積分出力は、
I_MV = (Kp:比例ゲイン)
となります。
D動作
D動作は「微分動作」で、偏差(e)の微分(傾き)に微分ゲインを掛けた値が出力されます。
D_MV = (Kd:微分ゲイン)
微分ゲイン(Kd)の代わりに、 微分時間(Td [sec])を設定します。
微分時間(Td)が大きい場合、D動作の出力も大です。
微分時間(Td)が小さい場合、D動作の出力も小です。
微分時間(Td)とは偏差(e)の傾きが一定の場合に、D動作による出力がP動作と同じ出力になるまでの時間です。
P動作による出力は、 P_MV =
t = 微分時間(Td) での出力はD動作とP動作で等しいので、
微分ゲイン(Kd)は、
したがって微分出力は、
D_MV = (Kp:比例ゲイン)
となります。
マイコン処理
P動作
サンプリングタイム(Ts)毎に、 を計算します。I動作を使用しない場合、偏差(e)が0で操作量(MV)も0となるので、バイアス(マニュアルリセット量 Mr)を加算できるようにしています。
I動作
サンプリングタイム(Ts)毎に、現時点での面積 (Ts x en )を計算し、1サンプリングタイム前までの面積(I_MVn1) と足し合わせて、今回の積分出力としています。
D動作
微分は「傾き」を求めます。現時点での偏差 (en) から一つ前のサンプリング時の偏差 (en-1)を引いて、サンプリングタイム(Ts)で割ります。しかし偏差の変動やサンプリングタイム値(Ts)が小さい数値のため、微分による出力は大きく変動します。このため不完全微分を使用しています。
実験結果
PID動作
PID(加熱制御と冷却制御)の実施例です。
グラフの上側:青色はPV値、灰色はSV値。
グラフの下側: 赤色はMV値、桃色はP動作の出力(P_MV)、茶色はI動作の出力(I_MV)、オレンジ色はD動作の出力(D_MV)です。
MV = P_MV + I_MV + D_MV (MVは0~100[%]に制限)
となっています。
P動作
比例(P)動作だけのテストです。比例帯(P)を変化させて行いました。
比例帯 (P) (0~100%)とは、操作量(MV)が偏差(e)に比例して出力される範囲です。
比例帯をはずれると、操作量(MV)は100%または0%になります。
比例帯(P)=10 は コントローラのレンジの10%を示します。レンジが0~100℃ならば、10[℃]です。
比例帯が小さいと操作量(MV)の変化が大きくなっています。
マニュアルリセット量(Mr)は20%としています。これは、「図2.実験容器の特性」より20%だせば、容器内の温度が20℃になったためです。
I動作
比例積分(PI)動作によるテストです。
積分時間(I)を60[sec]と20[sec]の場合で、PV値の変化を調べました。
積分時間が20[sec]の場合、オーバシュートし過ぎています。これは、積分動作による出力が200%以上になり、PV>SPの状態でP動作出力が負になっても、PI動作の出力が下がらないために発生しています。
D動作
比例微分(PD)動作によるテストです。
SV=PV=25[℃] の定常状態から外乱を発生させています。(容器の蓋を開ける等)
微分時間(D)を10[sec]と30[sec]として、PV値の変化を調べました。
同程度の温度変化に対して、微分時間30[sec]の方が出力が大きく変化しています。
不完全微分しない例
D動作(完全微分)の出力:
D_MV =
D動作による出力が±25%以上振れています。制御はしていますが操作量(MV)の変動が大です。
機材