60歳からの電子工作ノート

生涯学習として取り組んでいます。

ペルチェ制御用ボードの試作(PID制御の学習)

実験をしながらPID制御について調べました。資料1*1 と資料2*2を参考にしています。

フィードバック制御

 制御対象からの出力(測定値 PV)(本実験では温度)をフィードバックして、コントローラは設定値(SV)と測定値(PV)の差(偏差(e))を得ます。演算処理により設定値(SV)と測定値(PV)が等しくなるように操作量(MV)を出力します。

f:id:vABC:20220208155755p:plain

図1. フィードバック制御

設定値(SVまたはSP)は「目標値」とも呼ばれています。

操作量(MV)は「制御出力」「調節計出力」「制御入力」(制御対象に対して)という名称も使用されています。

測定値(PV)は「出力」「制御量」とも呼ばれています。

実験容器の特性

制御対象となる実験容器の特性を調べました。

操作量(MV)の出力値と、容器内の空気の温度の関係です。加熱と冷却があります。

f:id:vABC:20220208161206p:plain

図2. 実験容器の特性

到達温度は、容器の中央で底から5cmの場所で測定しました。

基準接点温度は CPUボード上にある測温抵抗体で測定した温度です。
同一操作量でも基準接点温度(室温)が低いと、到達温度が低くなります。

フィードバックしない制御

「実験容器の特性(図.2)」の加熱制御のグラフより、25℃にするための操作量は50[%]である事がわかります。(基準接点温度 17.5[℃]の場合)

測定値(PV)をフィードバックせずに、コントローラから操作量(MV)=50[%]を出力しました。

f:id:vABC:20220209085237p:plain

図3. フィードバックなし

f:id:vABC:20220208162926p:plain

図4. フィードバックなし(青色:温度 赤色:操作量)

18.5[℃]から25[℃]になるまで5分かかりました。また25[℃]をオーバーして26[℃]となりました。これは実験中の基準接点温度が18.5[℃]であった事が原因だと思います。(特性グラフの基準接点温度は17.5[℃])

ON/OFF制御

ON/OFF制御では測定値 (PV)をフィードバックして、設定値(SV)よりも低ければ、操作量(MV)をON(100%出力)します。(加熱制御時)

 

f:id:vABC:20220209090009p:plain

図5. フィードバックあり

f:id:vABC:20220209090958p:plain

図6. フィードバックあり(ON-OFF制御)

18[℃]から25[℃]になるまで3分かかりました。ON/OFF制御のためPV値が波うっていますが、フィードバックしない時に比較して設定値に早く到達しました。フィードバックすることにより「速応性」が改善されました。

PID制御

測定値 (PV)をフィードバックしPID演算を行い、操作量(MV)を出力します。PID各動作の効き具合はゲインで表せますが本実験ボードでは、比例帯、積分時間、微分時間を使用しています。

f:id:vABC:20220211160314p:plain

図7. PID制御

偏差

ON/OFF 制御では測定値(PV)と設定値(SV )により、出力のON/OFFが判断できますが、PID制御では偏差(e )から出力を計算するのでやや難しいです。

偏差(e )は設定値(SV)と現在の測定値(PV)の差です。

e = SV – PV  (加熱制御時)  , e = PV - SV  (冷却制御時)

P動作

P動作は「比例動作」で、偏差(e)に比例した値が出力されます。

P_MV =  e \times Kp  (Kp:比例ゲイン)

f:id:vABC:20220209101901p:plain

図8. 比例(P)動作

比例ゲイン(Kp)と比例帯(P)の関係は、

 Kp = \dfrac {100}{P}  となります。

比例帯(P)が大きい場合、比例ゲイン(Kp)は小さくなりP動作の出力変化はゆっくりです。

比例帯(P)が小さい場合、比例ゲイン(Kp)は大きくなり、P動作の出力変化は急です。

f:id:vABC:20220209105712p:plain

図9. 比例帯(P)の大きさと出力

I動作

 I動作は「積分動作」で、偏差(e)を積分して積分ゲインを掛けた値が出力されます。

 I_MV =  Ki  \times \displaystyle \int_{0}^{T}  e  dt    (Ki:積分ゲイン)

f:id:vABC:20220209113355p:plain

図10. 積分(I)動作

積分ゲイン(Ki)の代わりに積分時間 Ti [sec]を設定します。

積分時間(Ti)が大きい場合、I動作の出力変化はゆっくりです。

積分時間(Ti)が小さい場合、I動作の出力変化は急です。

f:id:vABC:20220209114229p:plain

図11. 積分時間と出力

積分時間(Ti)とは、偏差が一定の場合に、I動作による出力がP動作と同じ出力になるまでの時間です。このため、

I動作による出力 = P動作による出力

 Ki  \times \displaystyle \int_{0}^{T_i}  e  dt = e \times Kp  

 Ki \times \left( e \times T_i \right)= e \times Kp

積分ゲイン(Ki)は、 Ki = \dfrac {Kp}{Ti}

したがって積分出力は、

 I_MV =   \dfrac {Kp}{Ti}  \times \displaystyle \int_{0}^{T}  e  dt    (Kp:比例ゲイン)

となります。

D動作

 D動作は「微分動作」で、偏差(e)の微分(傾き)に微分ゲインを掛けた値が出力されます。
 D_MV =  Kd \times \dfrac {de}{dt}   (Kd:微分ゲイン)

f:id:vABC:20220209154354p:plain

図12. 微分(D)動作

微分ゲイン(Kd)の代わりに、 微分時間(Td [sec])を設定します。

微分時間(Td)が大きい場合、D動作の出力も大です。

微分時間(Td)が小さい場合、D動作の出力も小です。

f:id:vABC:20220209163520p:plain

図13. 微分時間と出力

微分時間(Td)とは偏差(e)の傾きが一定の場合に、D動作による出力がP動作と同じ出力になるまでの時間です。

P動作による出力は、 P_MV =  Kp\times \dfrac{de}{dt} \times t

t = 微分時間(Td) での出力はD動作とP動作で等しいので、
  Kd \times \dfrac {de}{dt} = Kp\times  \dfrac{de}{dt} \times Td  

微分ゲイン(Kd)は、 Kd = Kp \times Td

 したがって微分出力は、

D_MV =  Kp \times Td \times \dfrac {de}{dt}   (Kp:比例ゲイン) 

となります。

マイコン処理

P動作

サンプリングタイム(Ts)毎に、 Kp \times  en を計算します。I動作を使用しない場合、偏差(e)が0で操作量(MV)も0となるので、バイアス(マニュアルリセット量 Mr)を加算できるようにしています。

f:id:vABC:20220212101921p:plain

図14. P動作のブロック線図
I動作

サンプリングタイム(Ts)毎に、現時点での面積 (Ts x en )を計算し、1サンプリングタイム前までの面積(I_MVn1) と足し合わせて、今回の積分出力としています。

f:id:vABC:20220210160950p:plain

図15. 偏差の積分計算

f:id:vABC:20220212102734p:plain

図16. PI動作のブロック線図
D動作

微分は「傾き」を求めます。現時点での偏差 (en)  から一つ前のサンプリング時の偏差 (en-1)を引いて、サンプリングタイム(Ts)で割ります。しかし偏差の変動やサンプリングタイム値(Ts)が小さい数値のため、微分による出力は大きく変動します。このため不完全微分を使用しています。

f:id:vABC:20220211095914p:plain

図17. 完全微分による出力

f:id:vABC:20220211100136p:plain

図18, 不完全微分による出力

不完全微分による微分出力:

 laggedn =\dfrac {0.125 \times Td}{Ts + 0.125\times Td}\times laggedn1 + \dfrac{Td}{Ts + 0.125\times Td}\times \left(en - en1 \right)  

 DMVn = Kp \times laggedn

 

f:id:vABC:20220212104543p:plain

図19. PD動作のブロック線図

実験結果

PID動作

PID(加熱制御と冷却制御)の実施例です。

f:id:vABC:20220213082727p:plain

図20. 加熱制御と冷却制御のトレンドグラフ

グラフの上側:青色は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[℃]です。

f:id:vABC:20220213083921p:plain

図21. P動作 (比例帯 10%)

f:id:vABC:20220213084158p:plain

図22. P動作(比例帯 5%)

比例帯が小さいと操作量(MV)の変化が大きくなっています。

マニュアルリセット量(Mr)は20%としています。これは、「図2.実験容器の特性」より20%だせば、容器内の温度が20℃になったためです。

I動作

比例積分(PI)動作によるテストです。

積分時間(I)を60[sec]と20[sec]の場合で、PV値の変化を調べました。

f:id:vABC:20220213085740p:plain

図23. PI動作(積分時間 60[sec}と20[sec])


積分時間が20[sec]の場合、オーバシュートし過ぎています。これは、積分動作による出力が200%以上になり、PV>SPの状態でP動作出力が負になっても、PI動作の出力が下がらないために発生しています。

D動作

比例微分(PD)動作によるテストです。

SV=PV=25[℃] の定常状態から外乱を発生させています。(容器の蓋を開ける等)

微分時間(D)を10[sec]と30[sec]として、PV値の変化を調べました。

f:id:vABC:20220213090210p:plain

図24. PD動作(微分時間 10[sec]と30[sec])

同程度の温度変化に対して、微分時間30[sec]の方が出力が大きく変化しています。

不完全微分しない例

不完全微分を使用せずに、完全微分でD動作を行いました。

D動作(完全微分)の出力:

D_MV =  Kp \times \dfrac {Td}{Ts} \times \left( en - en1 \right)  

f:id:vABC:20220213161735p:plain

図 25. PVとMVのトレンド(D動作は完全微分)

D動作による出力が±25%以上振れています。制御はしていますが操作量(MV)の変動が大です。

機材

f:id:vABC:20220213144938p:plain

図26. 実験の器材

 

*1:資料1「MKセミナー PID制御の基礎」(MKウェビナー用参考資料)」 (株)エム・システム技研 

*2:資料2「シュミレーションで学ぶ自動制御技術入門」 CQ 出版社