N.Y.Cityのまちかど
Introduction of PID
PID入門
―イメージをつかむ―
はじめに
PID制御は、入門レベルの制御理論の中でも、最も重要かつ実用的な理論と言っても過言ではありません。
大学で制御理論を学ぶと、どうも難解な数式がたくさん出てくる事が多く、それだけで苦手意識を持っている人がいるようです。
しかし人間は、視覚や聴覚など多数のセンサをフル活用し、この世で最も複雑な制御をいともたやすくこなしています。「人間ならどうやっているだろうか」という基本に常に立ち返りながら、イメージを膨らませる事で、PIDの理解はぐっとしやすくなります。
この資料は、PID制御の動作イメージをやさしく段階を踏みながらつかみとってもらい、さらなる制御理論の学習につなげていってもらう事を目的としています。
制御 基礎の基礎
寒い部屋はイヤ、暑い部屋もイヤ。
そもそもの「制御」の意味を考えてみましょう。機械(制御対象)に命令を与えれば、その機械は「利用者の命令に従って」動きますが、「利用者の命令(意図)通りに」動くとは限りません。理想と現実には「ズレ」があります。
簡単な例を使って説明します。寒い時期に、ストーブやファンヒーターを使って暖をとる家庭は多いでしょう。このストーブを使った室温制御を考えます。ストーブの機能は「部屋を暖めて快適な温度にすること」です。ストーブのスイッチを付ければ部屋は暖まりますから、ストーブは「命令に従って」動いています(そうでなければ、もはやストーブとしての役割を果たしていない)。
しかし、ストーブのスイッチを付けた直後の部屋はどうでしょう。ストーブが部屋全体を暖めるには時間がかかるので、スイッチを付けた直後は(ストーブは働いているにも関わらず)部屋は暖まっていません。また、ストーブを動かしたままにしておくと、そのうち適温を通り過ぎて部屋は暑くなりすぎてしまいます。これは、ストーブの利用者の意図通りには動いていないことを意味します。
希望通り、すなわちできるだけ部屋を快適にするにはどうすれば良いか、利用者は考えます。普通なら、次のような行動をすることでしょう。
-
問題1:部屋が暖まるのが遅い→暖まるまで寒い思いをしなくてはならず不快
- 解決策1:つけ始めはストーブを最大出力にして可能な限り早く部屋を暖める
- 解決策2:タイマー機能を活用して、自分が部屋に帰る少し前に部屋を暖めはじめる
- 問題2:つけっぱなしにすると、暑くなりすぎる。
- 解決策1:適温に近づいたらスイッチを切る。ただし、スイッチを切った後も余熱で部屋は暖まり続けるので「早めに」スイッチを切る。
- 解決策2:暑くなってしまったら、ドアを開けたり、窓を開けたりして冷気を取り込み、調節する
理想と現実のズレ
理想と現実の「ズレ」には、代表的な形がいくつかあります。
-
偏差
- 理想値に対し、現実の観測値が一定の「ズレ」を維持する状態。
- 振動(ハンチング)
- 理想値に対し、現実の観測値が(±に)上下すること。
- オーバーシュート/アンダーシュート
- 目標値に観測値が下(-方向)から接近する時、目標値を一旦行きすぎてから目標値に収束することをオーバーシュートという。
- 逆に目標値に観測値が上(+方向)から接近して、目標値を一旦行きすぎてから目標値に収束することをアンダーシュートという。
これらの形は単独で出ることもあれば、組み合わさって出る事もあります。例えば目標値から一定量ずれた位置で振動したり(偏差+振動)目標値に接近した後、収束しきらずに振動を続ける場合(オーバーシュート+振動)などが代表的です。
ズレの代表例 |
「過去を振り返り/明日に活かす」
思い通りにならないものを、思い通りに動かすためには、どうすれば良いのでしょう。こんな例を考えてみましょう。
あなたは、高校バスケットボール部の3年生です。体育館で練習を終えた後、3年生は後輩にボールの片づけと体育館の清掃を命じて、先に更衣室へ戻ります。2つのケースを考えてみましょう。
先輩は、練習後に一言「お前たち、ちゃんと片付けておけよ」と一声かければ、更衣室でゆっくり汗を拭いて、着替えることができます。着替え終わって体育館に戻ることには、ボールは倉庫に入れられ、床はモップで磨かれているはずです。
先輩は練習後に一言「お前たち、ちゃんと片付けておけよ」と一声かけますが、3分も持たずに遊びだすかサボるかするでしょう。当然、そのままでは体育館は片付きません。
さて、ケース1ならばみんなハッピーですが、ケース2の場合どうすれば後輩に体育館の掃除をさせられるでしょう?答えは簡単で、3年生が後輩を監視すれば良いわけです。「後輩は3年生の目が3分途切れるとサボる」ならば、3分以内(例えば2分おきに)交代で3年生が様子を見に来て、「片付けが進んでいれば褒め/サボっていれば叱る」を繰り返せば、多少時間はかかっても片付けは終わります。
フィードフォワードとフィードバック
このケース1、2に、制御理論の基礎中の基礎である考え方「フィードフォワード」と「フィードバック」が隠されています。
ケース1に当てはまる「フィードフォワード」はいわば「命令投げっぱなし」という方法です。制御者(3年生)は制御対象(後輩)に対し、一度命令(片付けておけ)を出したらそれっきり面倒を見ません。とても簡単で労力の少ない方法ですが、受けた命令を確実に実行してくれるような制御対象でないと、この方法は上手くいきません。そのため、純粋なフィードフォワードが使用されることはめったにありません。
ケース2に当てはまる「フィードバック」は、フィードフォワードで上手くいかないような制御対象、すなわち命令通りに動かない制御対象をきちんと制御するための方法です。制御者は、制御対象に対して命令を出した後、その結果を常に検知・監視して制御者に送り返します。制御者は送り返された情報を元に、制御対象がきちんと働くような命令を再度制御対象に出す…これを繰り返す形で行う制御です。フィードフォワードに比べると複雑ですが、様々な対象を制御することが可能になります。通常、制御と言えばこのフィードバックの考え方を採用します。
フィードバックは言い換えれば「過去を振り返り/明日に活かす」方法と言えるでしょう。あらゆる制御対象を上手く制御するためには、フィードバックの考え方が不可欠です。
もっとも単純な制御 ON-OFF制御・ヒステリシス制御・バンバン制御
最も単純で、しかし身の回りのあちこちで使用されている制御をおさえましょう。ここで扱うのはON-OFF制御、ヒステリシス制御、バンバン制御の3つですが、これら3つは基本的には似たような考え方で制御を行います。
ON-OFF制御
自転車のを一定速度で走らせる事を例に考えます。自転車はペダルの回転速度に応じて加速します(厳密には正しくありませんが、話を単純にするためにこう仮定します)。ペダルを回さないと、空気抵抗や路面抵抗の働きで徐々に減速していきます。(ブレーキは使用しないものとします)このような自転車を速度一定で走らせるためにはどうすれば良いでしょうか。
速度0をスタートとして、ペダルをこいで自転車を加速させます。目標速度に到達したところで、ペダルを止めます。すると自転車はしばらく慣性で目標速度を維持した後、徐々に減速していきます。ある程度まで下がったらまたペダルをこいで加速させ…を繰り返すと、おおむね目標速度を維持する事ができます。このような制御をON-OFF制御と言います。
下の図はON-OFF制御のイメージ図です。オレンジのグラフは自転車速度、青のグラフはペダルの回転速度とします。制御開始と同時にペダルを全力で動かし、目標速度(10km/h)に達したところでこぐのをやめます。速度が9km/hまで自然減速すると再びこぎます。ペダルは全力でこぐ(=ON)かまったくこがない(=OFF)かのどちらかです。
ON-OFF制御 |
もう少し賢い制御 PID
ON-OFF制御やヒステリシス制御はとても簡単で、しかも有用な制御方法です。しかし欠点もあり、その欠点が無視できない場合も多々あります。
- 目標値に対して、どうしても制御結果が振動してしまいます。
- ON-OFFを切り替えるヒステリシスの幅を狭めれば振動は抑えられますが、代わりにON-OFFの回数が増えます。制御対象によっては大きなダメージとなります。
- そもそも、単純なON-OFFでは困る場合もあります。自転車だって、全力加速と全力停止を繰り返されたら乗り心地悪いですよね。
この欠点を克服する、大変便利な制御理論がPID制御です。長い歴史を持ち、PIDが発案されてから今まで、多数の制御理論が考えられてきましたが、PIDは未だにあちこちで利用されています。
先ほどは自転車の速度制御で説明しましたが、PIDは自転車の位置制御で説明するのが分かりやすいと思います。
スタート地点から、自転車を走らせ、目標ラインに沿って走ることを目的とします。 条件として自転車の速度は一定とし、ハンドルは±45度の範囲で動かせるものとします。
現在ご覧のページの最終更新日時は2015/03/15 00:51:42です。
Copyright (C) N.Y.City ALL Rights Reserved.
Email: info[at]nycity.main.jp