車の運転制御を風呂の水位制御に置き換える:独学! 機械設計者のための自動制御入門(5)(3/4 ページ)
車の制御フローを風呂の水位制御のフローに置き換えてみたけれど、何だかモヤモヤする……。どうして?
比例制御と積分補償
いま帰ったで
お帰り
どうや、分かったか?
何となく。こうすればうまくいくだろう、という案は思い付いたんだけど、その方法であれば絶対うまく制御できる、……っていう自信が持てないんだよね
草太は、銀二さんに夢での出来事を話した後、草太が考えたブロック線図について説明しました。説明を聞いて、銀二さんは……、
それで、どこに自信が持てない?
目標水位Hoと現在の水位Hとの偏差hを積分した値に比例させて、蛇口のバルブを開閉すれば、漏れ流量qの大きさに関係なく、“自動的”に目標水位にまで到達するというところ。人間の操作だと『目標水位との偏差が大きいときは速くバルブを開けて、目標水位近くなったらゆっくり閉める』という“感覚”を数式に置き換えただけなんだ。それだけでは、必ず“自動的”に目標水位にまで到達する、ということはいえない気がするんだよね
そうやな。確かに、“感覚”を数理モデルに置き換えただけではなぁ……
叔父さん、その辺のモヤモヤしたところを説明してもらえるとうれしいんだけど
そのくらい自分で考えろや、……っていいたいところだけど、せっかく東京から来てくれたんだから、教えたろ
銀二さんは、図8の風呂の水位の時系列グラフを描き、説明を始めました。
図中「tsleep」は「草太が浴槽で居眠りを始めた時刻」、「twake」は「水位が下がっているのに気が付いて、草太が慌ててバルブを開き始めた時刻」です。
まず、浴槽の底から水が漏れているから、必ず漏れ流量qより多くの流量Qで給湯しなければならないよな。給湯流量qに対応するバルブ開度をxAとすると、少なくともバルブ開度xはxAより大きくなければならない
うん、当然だね
もし、お湯の流量がqである開度xAのままバルブを開くのを止めてしまうと、水位曲線は図8のAのようになる。これでは水位は下がったまま元に戻らない。草太は、自分が風邪をひくと困るから、漏れ流量qより多い流量でお湯を足す。つまりバルブを開度xB>xAまで開く
これも当然
では図9に示したように、バルブの開閉をモータにやらせるとして、バルブ開度xを目標水位Hoと現在の水位Hとの差hに比例するようにバルブモータを制御すると曲線Bのようになる
目標水位に達しない。なぜ?
バルブの開度は、コントローラによって偏差hに比例した値になるように設定されている。一方、漏れ流量qを確保するためには、バルブの開度はxAだけ必要だけど、そのためには偏差が0であっては困るわけや
あっ、そうか。コントローラが、偏差hに比例した開度となるようにバルブを制御する比例制御だと、バルブ開度を“0でない値x”に設定しようと思えば、偏差は0であってはならないんだ。だから、絶対に目標水位に到達することはない
そういうことやねん
コントローラーに積分補償機能を持たせるということは、偏差を時間ごとに足していった値がバルブの開度xとなるということだね。偏差を積分しているから時間が経過するにつれてバルブが開いていく。すると水位が上昇するから偏差は小さくなっていく。そしてついに偏差が0となると、0の積分は0だからそれ以上バルブは開かない。つまり水位が目標水位に達しない間は、バルブは勝手に開いていくけど、目標水位に達すると、漏れ流量qを補充するのに必要な開度xAで止まる。こうして、曲線Cのように目標水位に達することができるのか!
草太はしゃべっているうちに、自分の考えたアイデアは正しいという確信が芽生えてきて、うれしくなりました。しかし銀二さんは険しい顔しています。
Copyright © ITmedia, Inc. All Rights Reserved.