NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

PID制御!(PID制御とは?編)

イメージ 2
 前から興味の有った「PID制御」について調べてみました!
 コレを使えばラジコンのスピードを上り坂でも下り坂でも一定速度で走れる様に制御したり出来そうです!

1. PID制御とは

 PID制御(ピーアイディーせいぎょ、英:Proportional-Integral-Differential Controller)とは、比例(P)積分(I)微分(D)の頭文字を取ってPID制御と言い、古典制御論の枠組みで体系化されたものです。
 制御工学におけるフィードバック制御の一種であり、入力値の制御を出力値と目標値との偏差、その積分、および微分の3つの要素を用いて制御を行います。
 調整を行いやすい事から産業用制御システムでは今でも広く使用されている制御ループフィードバックメカニズムです。
 
1.1 代表的な制御
 船の加速から一定速度でのオートクルーズ・液体の加温から一定温度での保温等、現在の測定値と目標値から適切な操作量を算出し制御する事で行われます。
 制御方式には色々あり、代表的なものを表1に示します。
表1:制御方式の色々
 制御  利点  欠点
 ON・OFF制御 プログラムが簡単! 目標値を行き過ぎてから制御が入るので常に振幅して安定しない。
 比例制御 目標値付近で安定する! 目標値に近づく程制御量が小さくなるので、ON・OFF制御に比べ応答速度が遅い、永遠に目標値に届かない
 PI制御

目標値付近で安定する!

目標値に達する!

比例制御でわずかに残った偏差を時間的に累積し、ある大きさになった所で操作量を増して偏差を無くすように動作させる。しかし応答速度は遅い。
 PID制御 目標値付近で安定する!
目標値に達する!
応答速度が速い!

プログラムが難しい…。そんな時にはライブラリ!

 

 
1.2 PID制御の中身
 Arduino等のマイコンでPID制御を行うにはサンプリング方式を用います。
 PID制御の基本となる式を下記に示します
 
 MV= MVn-1 + Kp(en-en-1) + Ki en + Kd*1・・・式1
※MVn    : 今回操作量
※MVn-1   : 前回操作量
※Kp,Ki,Kd: 比例,積分,微分項のパラメータ
※en    : 今回の偏差
※en-1  : 前回の偏差
※en-2  : 前々回の偏差

 

 
1.3 パラメータの決め方
 上記Kp,Ki,Kdのパラメータを決める方法として限界感度法やステップ応答法やオートチューニング法が有ります。
 ここでは参考にステップ応答法でのパラメータの求め方を下記に示します。
 最初にPID制御の各パラメータを適当に設定し、測定後グラフ化します。

イメージ 1
図1:測定値の経時変化

 図1の様に実測値をグラフにしたものから、無駄時間(L)・時定数(T)・定常値()の3項を求め、その値と表1に示す式から各パラメータを計算し求めます。
表1:PID制御の目安
 Kp  Ki  Kd
 0.60~0.95T/KL  0.60~0.70/KL  0.30~0.45T/K

  

2. まとめ

 サンプリング方式PID制御の使い方は上記の通りですが、プログラムするとなかなか大変そうです
 試しに現在作成中です
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【PID制御!】目次に戻る


 

*1:en-en-1) - (en-1-en-2