5.ファジー理論 5.1 ファジー集合とは Fuzzy: はっきりしない、ぼやけた、 ぼんやりした 何らかの事象に対しての判定が あいまいな場合に有効 高い、低い、中程度 低い 中程度 もっともらしさ 測定値 高い (例)室内の温度と湿度による エアコンの運転 もし温度が高く湿度が高いときは、高速運転をする。 もし温度が低く湿度が低いときは、低速運転をする。 湿度が高い(集合の境界が明確に定義できない) 湿度の変化範囲 0%~100%の中で 80%~100% 但し、境界となる湿度が正確に80%ではなく、ほぼ80%程度を示す場合 成立度(degree of membership)を示すメンバーシップ関数(Membership Function)の例 1.0 1.0 成 立 度 成 立 度 0 0 湿度 (%) 滑らかな曲線による近似 100 湿度 (%) 区分線形関数による近似 100 言葉の定義(1) ファジー集合(Fuzzy Set):集合の境界が明確に定義できない集合 クリスプ集合(Crisp Set):通常の集合 ファジー集合で区分線形で表現した場合の傾きが垂直(無限大)のときに 相当する。 成立度(Degree of Membership): 全体集合(Universe of Discourse) をXとしたとき、X上で定義されるファ ジー集合に属する程度 シングルトン(Singleton): 全体集合の1点を除いてメンバーシップ関数の値が0となるファジー集合 1 mA ( s) 0, s X mA ( x) 0, x s, x X 言葉の定義(2) ファジーラベル(Fuzzy Label):ファジー集合を表わす言葉 (例) ファジー命題「湿度が高い」→ファジーラベル「高い」 全体集合の名称「湿度」 ファジー命題(Fuzzy Proposition): 全体集合の名称とファジーラベルで表現した命題。 ファジー命題Pを式で表現すると、 P : x is A ここで、x : 全体集合の名前、A :ファジーラベル 5.2 ファジー集合の演算 (1) 全体集合が同一の場合 和集合 A∪B⇔mA∪B(x)=mA(x)∨mB(x), ∀x∈X ∨ :2つの値のうち大きい方の値をとる演算子 積集合 A∩B⇔mA∩B(x)=mA(x)∧mB(x), ∀x∈X ∧ :2つの値のうち小さい方の値をとる演算子 補集合 Ac⇔mAc(x)=1-mA(x), ∀x∈X 全体集合が同じ場合の演算イメージ 和集合 中 高 積集合 1.0 中 高 1.0 成 立 度 成 立 度 0 0 湿度 (%) 湿度 (%) 100 補集合 中 高 1.0 成 立 度 0 湿度 100 100 (2) 全体集合が異なる場合 和集合 A∪B⇔mA∪B(x, y)=mA(x)∨mB(y), ∀x∈X, ∀y∈Y ∨ :2つの値のうち大きい方の値をとる演算子 積集合 A∩B⇔mA∩B(x, y)=mA(x)∧mB(y), ∀x∈X, ∀y∈Y ∧ :2つの値のうち小さい方の値をとる演算子 全体集合が異なる場合の和集合イメージ Aのメンバーシップ関数 Bのメンバーシップ関数 1.0 1.0 成 立 度 成 立 度 0 0 1.0 x 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1.0 y 0.9-1 0.8-0.9 0.7-0.8 0.6-0.7 0.5-0.6 0.4-0.5 0.3-0.4 0.2-0.3 0.1-0.2 0-0.1 y=0.5のとき 1.0 成 y=0.5 立 度 0 x 1.0 全体集合が異なる場合の積集合イメージ Aのメンバーシップ関数 Bのメンバーシップ関数 1.0 1.0 成 立 度 成 立 度 0 0 1.0 x 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0.95-1.05 0.85-0.95 0.75-0.85 0.65-0.75 0.55-0.65 0.45-0.55 0.35-0.45 0.25-0.35 0.15-0.25 0.05-0.15 -0.05-0.05 1.0 y y=0.5のとき 1.0 成 立 度 y=0.5 0 x 1.0 全体集合が異なる場合の 演算の二次元的イメージ y D y D C∩D C x C∪D C x 述語修飾(やや、とても、でない) X is A X is M A 1 ややA 述語修飾の例 M : とても A = A2 やや A = A1/2 not A = 1-A A とてもA x 5.3 ファジー推論 (1) マムダニ(Mamdani)の方法 If 前件部(Premise Part) then 後件部(Consequent Part) If x1 is Ai1 and x2 is Ai2 … xm is Aim then y is Bi, i = 1, …, U m mB ' ( y) mAij ( x j ) mA'ij ( x j ) mBi ( y ) i 1 j 1 U 但し、ファジーシステムに対する入力はクリスプな値であるから入力値はシ ングルトンである。 1, xi ai mA'i ( y) 0, xi ai , xi X (1) 前件部に対しては、Min演算を行ったあと、Max演算を行う。 ↓ Max-Min合成 (2) 後件部のファジー集合B’からクリスプな値を求める。 ↓ 重心(Center of gravity)法 n y m Y mB ' ( y ) ydy Y B' ( y )dy 離散形では y m i 1 n B' m i 1 (ci )ci B' (ci ) マムダニの方法のイメージ b1 Min a1 温度(℃) 湿度(%) 重心 高速運転 Max Min a2 推論出力 b2 温度(℃) 湿度(%) 温度入力 湿度入力 低速運転 If x1 is Ai1 and x2 is Ai2 … xm is Aim then y is Bi, i = 1, …, U m mB ' ( y) mAij ( x j ) mA'ij ( x j ) mBi ( y ) i 1 j 1 U 但し、ファジーシステムに対する入力はクリスプな値であるから 入力値はシングルトンである。 xi ai xi ai , xi X 1, mA'i ( y) 0, m mB ' ( y ) mAij (a j ) mBi ( y ) i 1 j 1 U クリスプな値を求めるために、 重心(Center of Gravity)法を使用 m ( y) ydy yˆ m ( y)dy B' Y Y B' 出力yがn個の区間に分割され、区間Iの中央値をciとして、離 散形で近似すると n yˆ m i 1 n B' m i 1 (ci )ci B' (ci ) (2) ワング(Wang)とメンデル(Mendel)の方法 成立度mRi(a)として、最小値でなく積をとる 後件部Biがn個の区間に分割されたt(i)番目の区間に対応す るものとして、区間Iの中央値をct(i)とすると n yˆ m i 1 Ri (ct (i ) )ct (i ) n m i 1 Ri (ct (i ) ) 積と最小値 (いずれのxiも増加すると値は増加する傾向にある) 最小値 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 積 5.4 ファジー制御の例 以下の例は、「ファジィ制御」菅野道夫著(日刊工業新聞社)からの引用である。 (目標線に沿って直進する:簡単のため、速度は一定とする) Φ : ハンドルの向き Θ : 車の向き d : 目標線と車の中心線までの距離 Θ ファジールール If d = Left and Θ= Middle Then Φ=Right If d = Right and Θ= Middle Then Φ=Left If Θ = Left Then Φ=Right If Θ = Right Then Φ=Left ルールとメンバーシップ関数 Left Middle Right Θ is R1:d is -20 0 20cm Φ is -90° Right 0 90° 20cm 30° Φ is Θ is 0 0 Left Middle R2:d is -20 -30° -90° 0 -30° 90° Left 0 30° Right Φ is R3:Θ is -90° 0 90° -30° 0 30° Left Right Φ is R4:Θ is -90° 0 90° -30° 0 30° 採用した推論方法 前件部は最小値をとる 後件部は、Left,Right毎の最大値をとる Left、Right毎のハンドルの向き(Φ)を計算 近似的にLeftで得られたΦとRightで得られたΦの平均 値を求める。 シミュレーションによる評価 Lt=Lt-1+V・Sin(Θt-1)・Δt Θt=Θt-1+Φt-1 シミュレーションの結果 初期値 Lt0=10cm, Θ0=-10°,Δt=0.1秒, 速度V=2cm/秒 -30 中心軸からの距離 -25 -20 中心軸との角度 -15 ハンドルの向き -10 -5 0 0 5 10 15 1 2 3 4 5 6 (3) 高木(Takagi)と菅野(Sugeno)の方法 後件が入力変数の線形和で表現されるものとする Ri : If x1 is Ai1 and x2 is Ai2 … xm is Aim then y = Pi0 + Pi1 x1 + …+Pim xm , i = 1 , …, U 前件部はマムダニの方法と同じ m mRi (a) mAij (a j ) j 1 yi = Pi0 + Pi1 a1 + …+Pim am n yˆ m i 1 n Ri m i 1 ( y i ) yi Ri ( yi ) 特徴: 入出力データがあれば最小自乗法によりPijを求めることができる 演習 目標速度に近づける あらかじめ設定された目標速度で運転するためのファジールールを考 案せよ。速度は、中速、低速、高速の3区間別に区切られていることを 前提とし、最初は停止しているものとする。 (1) 簡単のため路線は直線であり、傾斜がなく、路面摩擦係数および 空気抵抗係数も一定とする。 (2) 路面摩擦および空気抵抗は速度のみに比例するものとし、次の 式が成り立つものとして、適当なプログラミング言語や表計算等 を用いてシミュレーションし、考案したファジールールが適切であ ることを確認すること。但し、路面摩擦係数、空気抵抗係数は、次 のようにまとめてシミュレーションして良い。 Vt=Vt-1+(At-1 ー C・Vt-1)・Δt At-1 : アクセルまたはブレーキによる加速度 C : 路面摩擦係数および空気抵抗係数をまとめた値 レポートに記述する内容 1.学籍番号、氏名 2.本レポート課題名 3.ファジールール 4.各メンバーシップ関数 5.推論方法 6.シミュレーション方法とシミュレーションに用いたツール 7.シミュレーションの前提とした各定数値と初期値 8.シミュレーション結果(ハードコピーでよい) 9.プログラム言語を用いた場合はソースリスト、表計算等 を用いた場合は、ワークシートのハードコピー シミュレーション結果のヒント 速度 100 目標速度 Accelerator Brake 50 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13
© Copyright 2024 ExpyDoc