ロボットをスムーズに走らせるシステム制御
ライントレースに制御理論を取り入れる
- [吉田]前回はジグザグ版のライントレースまで出来たよね。ロボ太をもっとスムーズに走らせるようにしたいんだけどどうしたら良いのかな?
- [舟元](ロボ太じゃないし。。)それを実現するには「システム制御」について知る必要があるんだ。ちょっと一緒に調べてみようか。
- [吉田]う、うん???
システム制御
システム制御というのは、対象のシステムを望む状態に変化させようとすることです。今回の場合のシステムは「ライントレースシステム」になります。
前回、「白いときは右へ」、「黒いときは左へ」という様に走行体の舵を切りました。この動作が「望む状態に変化させようとする」動作、つまりシステム制御というわけです。
白だったら右、黒だったら左という制御方式は、目標光量より明るいか暗いかによって、「右・左」という逆の動作を繰り返すことから「ON/OFF制御」と言われています。これは単純で分かりやすいのですが、ON/OFFを繰り返すため目標の光量のラインを走り続けることは出来ません。
図1:ライントレースのシステム制御 |
図2:ON-OFF制御 |
ON-OFF制御でのライントレース
これを解決するのに必要なのが、古典制御の雄「PID制御」です。PID制御は、古典制御に位置づけられる広く使われている制御です。「PID」はそれぞれ制御則の構成要素を表す頭文字です。つまり、PID制御は3つの要素で構成されており、P項、I項、D項の和が操作量となります。しかし、常に3つの要素が含まれるとは限らず、用途によってP制御、PI制御、PD制御などもあります。
項目 | 内容 |
---|---|
P 項 (Propotional) | 比例項と呼ばれる。現在生じている誤差を修正する。誤差に比例する動作。 |
I 項 (Integral) | 積分項と呼ばれる。現在までに蓄積された誤差(過去の誤差)を修正する。誤差の積分に比例する動作。 |
D 項 (Derivative) | 微分項と呼ばれる。この先発生するであろう誤差(未来の誤差)を修正する。誤差の微分に比例する動作。 |
今回は話を単純化するために「P制御」のみ考えることにしましょう。
P制御は比例制御と言われ、現時点での目標に対する「誤差」(偏差と言います)を補正するための制御になります。今回の場合「誤差(偏差)」とは目標光量と光センサから得られる光量の差になります。P制御はこの偏差に「比例ゲイン」と呼ばれる定数を乗じたものを操作量として対象を制御し、目標値に近づける方式のことです。
大きな偏差がある場合は大きく制御し、偏差が小さい場合は小さく制御する、つまり、偏差に応じた適切な制御を行うことができ、結果として目標に近い状態を保持することが可能になります。しかし、操作量=偏差×比例ゲインなので、「適切な」制御をするには「適切な」比例ゲインを設計者が決めてやる必要があります。
図3:P制御 |