モータのPID制御法

【PID制御とは?】

自動制御方式の中でもっとも良く使われる制御方式にPID制御
という方式があります。
このPIDとは
  P:Proportinal(比例)
  I:Integral(積分)
  D:Differential(微分)

の3つの組み合わせで制御するもので木目細かな制御を実現でき、
スムーズな制御が可能となります。


【単純On/Off制御】

単純なOn/Off制御の場合には、制御操作量は0%と100%の間を
行ったり来たりするので、操作量の変化が大きすぎ、実際の目標値
に対し、行き過ぎを繰り返すため、目標値の近くで、凸凹を繰り返す
制御となってしまいます。
この様子を図にすると下図のようになります。


【比例制御】

これに対し、操作量を目標値と現在地との差に比例した大きさとする
ようにして、徐々に調節する制御方法が比例制御と言われる方式です。
こうすると、目標値に近づくと微妙な制御を加えることが出来るので
細かく目標値に近づけることが可能となります。
この様子は下図の様に表すことができます。




【PI制御】

比例制御でうまく制御出来るように考えられますが、実際には、制御量
が目標値に近づくと問題がおきます。
それは、操作量が小さくなりすぎ、それ以上細かくは制御出来ない状態
が発生します。結果は、目標値に極めて近い制御量の状態で安定した
状態になってしまいます。
こうなると、目標値に近くはなるのですが、いつまでたっても制御量に
ピッタリとはならない状態となってしまいます。
このわずかの誤差のことを「残留偏差」といいます。この残留偏差を
無くすために使われるのが積分制御です。
つまり、わずかの残留偏差を時間的に累積し、ある大きさになった所で
操作量を増して偏差を無くすように動作させます。
このように、比例動作に積分動作を加えた制御を「PI制御」と呼びます。
これを図で示すと下図のようになります。




【微分制御とPID制御】

PI制御で実際の目標値に近づける制御は完璧に出来ます。しかしもう
一つ改善の余地があります。
それは、制御応答の速さです。PI制御では確かに目標値に制御できます
が、一定の時間(時定数)が必要です。
この時定数が大きいと、外乱があった時の応答性能が悪くなります。
つまり、外乱に対しすばやく反応できず、すぐには元の目標値には戻せ
ないということになります。
そこで、必要になるのが微分動作です。
これは、急激に起きる外乱に対し、偏差を見て、前回偏差との差が大きい
時には、思い切って操作量を多くし機敏に反応する様にします。
この前回との偏差の変化差をみることが「微分」に相当します。
この微分動作を加えたPID制御の場合の制御特性は下図の様になります。
これで分かるように最初はかなりオーバードライブ気味に制御し、早く
目標値になるように積極的に制御して行きます。





【コンピュータによるPID制御アルゴリズム】

もともとPID制御は、連続したアナログ量を制御することが基本になって
います。しかし、コンピュータのプログラムでPID制御を実現しようとする
時には、連続した量を扱うことができません。なぜなら、コンピュータの
データの入出力は一定時間間隔でしか出来ないからです。
しかも微積分演算をまともにやっていては、演算に要する能力のために
高性能のコンピュータが必要になってしまいます。
そこで考えられたのが、サンプリング方式(離散値)に適したPID演算
方式です。

まず、サンプリング方式のPID制御の基本の式は下記で表されます。

操作量=Kp×偏差+Ki×偏差の累積値+Kd×前回偏差との差
     (比例項)  (積分項)   (微分項)

記号で表すと
 
 MVn = MVn-1 + ΔMVn
 ΔMV
n = Kp(en-en-1) + Ki en + Kd((en-en-1) - (en-1-en-2))

MVn、MVn-1:今回、前回操作量  ΔMVn:今回操作量差分
en,en-1,en-2:今回、前回、前々回の偏差



これをプログラムで実現するには、今回と前回の偏差値さえ測定でき
れば操作量を求めることが出来ます。

【パラメータの求め方】

PID制御方式での課題は、各項に付く定数、Kp、Ki、Kd の決め方です。
これの最適値を求める方法は幾つかありますが、いずれも難解で、小型
のマイコンで実現するにはやっかいなものです。
(チューニングと呼ばれる)
そこで、このパラメータはカットアンドトライで実際に制御した結果から
最適な値を求め、その値を設定するようにします。
参考までにチューニングの手法を紹介しておくと、 ステップ応答法 と
限界感度法 が有名な手法です。

またプロセス制御の分野では、このチューニングを自動的に実行する
オートチューニング機能を持つ自動制御ユニットもあります。これには
制御結果を学習し、その結果から常に最適なパラメータ値を求め、次の
制御サイクルに反映するような機能も実装されています。

ここでステップ応答法でのパラメータの求め方を紹介します。
まず、制御系の入力にステップ信号を加え、その出力結果が下図だと
します。(パラメータは適当に設定しておく)



  

上図のように立ち上がりの曲線に接線を引き、それと軸との交点、定常値
の63%に当たる値になった所の2点から、
  L:無駄時間   T:時定数  K:定常値 の3つの値を求めます。
この値から、各パラメータは下表の様に求めることが出来ます。

制御動作種別

Kpの値

Kiの値

Kdの値

比例制御

0.3〜0.7T/KL

0

0

PI制御

0.35〜0.6T/KL

0.3〜0.6/KL

0

PID制御

0.6〜0.95T/KL

0.6〜0.7/KL

0.3〜0.45T/K


このパラメータに範囲が有りますが、この大きさによる違いは特性の違いに
現われ、下図の様に、パラメータが多きい方の時には、微分、積分効果が
早めに効きますから、下図の赤い特性の様にオーバーシュートが大き目に
なります。パラメータが小さい方の時は、下側のオレンジ色の特性の様に
なります。




  次のページへ     目次ページへ