その他のいまどきの制御の概要

最終更新: 2011/02/10 19:32:21 [| ]  最終更新: 2011/02/10 19:32:21

このページは

ものを制御する際、制御工学Iやこれまで扱ってきたような「きっちり数式で表して、きっちり理論をチェックして、きっちり制御する」方法ですまないことは良くあります。最近ではコンピュータの能力も上がってきたので、モデル化がきっちりできれば現代制御理論で大規模に制御もかけられますが、そもそもモデル化できないときに困ります。
モデル化できない物でもある程度性格が単調なら、PID制御のような汎用の方法で制御できますが、そうも行かない物がよくあります。

ところが、機械仕掛けで数式で制御する方策が見あたらなくとも、熟練した人間が操作すれば一発、ということもあります。
また、人間をはじめ、生物は神経系に学習することで、さまざまな行動をとることができます。
制御のパラメータがなかなか見つからなくとも、数打ちゃ当たることもあります。
そういった、これまでの数式理論ベースではない、いまどき使われている制御の概要を見てみることにします。


ファジィ制御の概要

ファジー制御は人間の「こういうときはこうする」という経験則を制御などに活かしやすくした手法です。 一時期、家電で「ファジィ」「ニューロファジィ」というのが流行りましたが(いまもストーブなどについていますが)、それです。 また、仙台市の地下鉄の車両運転制御システムはその代表的な応用例として有名?です。

手法のアイデア

人間がなにかするとき、それまでの経験などから「こういうときはこうする」「ああいうときはああする」のように、状況に対してとるべき行動を持って調整します。ディジタルな場合にはそれぞれ0か1かしかありませんが、実際には「このくらいならこのくらいで」のように「程度」も含めて、多くのルールを持った上で、動作を決めます。
対象をモデル化することなく、制御の数式に載せることなく、人間の持つこうした経験、知識のルールを集めて行う制御です。

手法の概要

まず、現象をファジィ化します。集合(条件)への合致具合をメンバシップ関数と呼ばれる関数で表します。
例:
温度を入力とする「暖かい」という集合のメンバシップ関数:
たとえば
\mu_A(x)=\frac{1}{1+(\frac{x-20}{10})^2}
などと設定。x=20のとき、μA=1.0、x=10(ちと寒い?)、30(暖かいと言うより暑い)のとき、μA=0.5などと分布ができます。

三角型メンバシップ関数の例 実用上は、より計算を簡単にするために、三角型がよく用いられます。
\mbox{max}(\frac{1}{a}(-|x-b|+a),0),~~a>0
(x=bで1.0、b±aで0.0になるような三角型)

ファジィ制御系は制御対象の状態量をファジィ化し、制御の方法をまとめたファジィルールによってファジィ推論を行い、その結果を脱ファジィ化という操作によって操作量にして対象に入力します。以下では、その簡単な例を見てみます。

例:冷房装置
ルール1:寒い(A1)なら、出力を小さくする(B1)
ルール2:快適(A2)なら、出力を中ぐらいにする(B2)
ルール3:暑い(A3)なら、出力を大きくする(B3)
演算方法:
上図のメンバシップ関数に従って、まず、温度から集合Aへの適合度を求めます。
次に、ルールで対応づけられた関数Bにおいて、適合度で山の頭を切ります。
頭を切ったBの関数を重ね合わせ、最大値をとります。
最後にその重心をとって、操作量を決定します。
例:23度の場合
ファジィ制御の例

手法の特徴

利点:

欠点:


ニューラルネットワークの概要

生物の神経回路網を模擬した信号の処理手法です。

手法のアイデア

ある入力を与えたときに、こういう出力が欲しい、という用途に、神経回路網を模擬した物をつかいます。
生物は各種感覚器などの信号を神経細胞に集め、その細胞毎に次の出力がでます。これがまた別の神経細胞に入力されます。 その際、信号がどの程度細胞の出力に寄与するかが、シナプスと呼ばれるところの結合度合で定まり、結果的に各入力の結合度合の組み合わせでその細胞の出力がきまります。また、結合度合は何らかの形で徐々に修正されていきます。これが学習です。
ニューラルネットワークでは、神経細胞とその結合を模した手法を用い、さらに入力と出力のペアを多数与えることで学習もさせます。 あるパターンに対する出力を出す、という機能をもつため、パターン認識などにも用いられる他、学習させた数値と数値の間の入力に対する出力を得るような補間に用いたり、実在のシステムの入出力を与えることで、未知のシステムのモデル化などに使用できます。

手法の概要

ニューラルネットは神経細胞ニューロンとその接続方法の大きく二つの設定箇所があります。

ニューロン 単一のニューロンは多入力1出力の関数として表され、たとえば、
y'&=&\sum^N_{i=1}w_ix_i\nonumber\\y&=&0~(y'<0)~~or~~1(y'>0)
のような関数を用います。ここでxiはi番目の入力、wiはその入力に対する重みです。 ここでは、単純な二値化の出力を例示しましたが、その定義で様々な特性を持たせることができます。

このニューロンに対する学習は、入力信号と出力のセットである学習データを多数与えることで繰り返し行います。
ニューロンの関数を、
y&=&\sum^N_{i=1}w_ix_i+w_0, \vect{W}^T=(w_0,w_1,\cdots,w_N)
とした場合、学習データ
\vect{X}[k]=\Mqo{1}{x_1[k]}{\vdots}{x_N[k]}, d[k]
を与えて、たとえば、
e[k]&=&d[k]-\vect{W}^T\vect{X}[k]\nonumber\\ \vect{W}[k+1]&=&\vect{W}[k]+2\mu \vect{X}[k]e[k]
と、重みベクトルWを修正していきます(eは誤差)。μはどのくらい修正するかを決める学習係数で大きくすると学習は早く進みますが、修正しすぎて発散することもあります。多くのデータを繰り返し与え、学習させることで重みが適当に設定されます。

多層ニューラルネット このニューロンを複数の層状に接続して、多層ニューラルネットワークを構成します。 入力に直結した入力層、出力に直結した出力層と、間に一つ以上の中間層をはさみます。 これだけ複雑になると学習のさせかたがぴんと来ませんが、誤差逆伝播法(back propagation method)などの手法が提案されています。

手法の特徴

利点:

欠点:


遺伝的アルゴリズムの概要

遺伝的アルゴリズム(Genetic Algorithm, GA)は、制御パラメータの決定などを行うために、進化論的な考え方を応用した手法です。

手法のアイデア

生物の進化では

という過程をたどってきたと考えられています。
これをうまく応用すれば、環境に適合した=目的にかなったような、個体=パラメータのセットが得られるように思われます。


手法の概要

  1. まず、目的とするパラメータを遺伝子に置き換えられるように遺伝子を規定します。
    ここで重要なことは、遺伝子からパラメータにも簡単に変換できなければならないという点です。 後に述べるように、遺伝子は適当につなぎ変えたり、乱数をいれたりします。それでもパラメータに復元できる必要があります。 たとえば、単にコンピュータのメモリ上に記録された浮動小数点数値のようなものは不適当で、より単純化した桁数の少ない整数で表したような数値が無難と言えます。

  2. つぎに、初期値となる個体群をつくります。たとえば、個体数を1000として、適当な初期値をエンコードした遺伝子を持った個体を1000個つくります。

  3. 適合度計算: 各個体の遺伝子からパラメータを復元します。復元したパラメータを評価します。評価の仕方は目的に応じて様々考えられますが、たとえば、コンピュータシミュレーション可能な対象であれば、そのパラメータでシミュレーションを行い、結果を評価します。

  4. 選択: その評価結果をもとに、成績の良かった個体を残し、悪かった個体を消します。

    交叉、突然変異

  5. 生殖: 残った個体を繁殖させ、個体を増やします。その際、遺伝子を多様化するため、交叉、突然変異をある確率で起こします。

  6. 2〜4を何世代にも渡って繰り返します。

手法の特徴

利点:

難点:


熊谷正朗 [→連絡]
東北学院大学 工学部 機械知能工学科 RDE
[| ]