知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text...

24
SIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院 システム情報工学研究科 知的制御システム 講義資料 1993-2014 (c) [email protected] 1/24

Transcript of 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text...

Page 1: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-1

知的制御システム第3週目

安信誠二筑波大学大学院 システム情報工学研究科

知的制御システム 講義資料

1993-2014 (c) [email protected] 1/24

Page 2: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-2

課題2

(1)入力のファジィ集合 XisL, XisH, YisL, YisH

出力のファジィ集合 ZisP, ZisN を定義せよ。

定義域は、 -10 ~ +10

(2)2入力(x,y)、1出力(z)、の2つのIf-Then ルールを設定せよ。

例えば、 If XisL and YisH then ZisN

If XisH and YisL then ZisP

(3)入力x、yを実数値とし、論理積、論理積、論理和で出力を合成、により出力Zのファジィ集合を求めよ。

重心法により、出力Zの代表値zを求めよ。

(4)入力変数を変化させ、入力x、yと出力zの関係を示せ。

知的制御システム 講義資料

1993-2014 (c) [email protected] 2/24

Page 3: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-3

ファジィ直積の例水温が高い and 圧力が低い: x is H and y is L

H x LX

Y

μH(x)

μL(y)

0.0

1.0

And 論理積

知的制御システム 講義資料

1993-2014 (c) [email protected] 3/24

Page 4: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-4

ファジィ集合の円筒的拡張• 水温が高い: x is H

=[x:0,100,10]<0.0, 0.0, 0.0, 0.0, 0.1, 0.3, 0.5, 0.8, 1.0, 1.0, 0.8>

=[水温]< ... >

• 圧力が低い: y is L=[y:1,4,4]<0.5, 1.0, 0.7, 0.2, 0.0>

=[圧力]< ... >

Y

X

μH(x)0.0

1.0

(a)μH×Y(x,y)

X

Y

μL(y)

0.0

1.0

(b)μX×L(x,y)

知的制御システム 講義資料

1993-2014 (c) [email protected] 4/24

Page 5: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-5

複数のファジィ関係の論理和

• もし,電圧xが10v位なら,温度は50度位.

• もし,電圧xが15v位なら,温度は70度位.

X

Y

A1

A2

B1B2

R1R2

1.0

0.0

(a)2項ファジィ関係の3次元表示

Y

X

0.0

0.250.5

0.751.0

R1

R2

(b)2項ファジィ関係の平面表示

Y

X

R1 ∪R2

(c)2つの2項ファジィ関係の論理和

Aggregation[合成]論理和

知的制御システム 講義資料

1993-2014 (c) [email protected] 5/24

Page 6: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-6

ファジィ関係式の演算(B'=A'○R)前提1:

R = A → B

= ∫X*Y μA(x)∧μB(y) / (x,y)

A'(x)=∫X μA'(x) / x

前提2: 結論:

1.0

0.0

X

Y

μA(x)

μA'(x)

μB(y)

μB'(y)

R

B'= A'○R

= ∫Y μB'(y) / y = ∫Y maxx{ min(μA'(x) / x, μR(x,y) } / y

And論理積- Implication[含意]論理積

知的制御システム 講義資料

1993-2014 (c) [email protected] 6/24

Page 7: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-7

もし,トマトが赤ければ,熟している.

トマトが少し赤い.

トマトは,やや熟している. 1.0

0.0

X

Y

μA(x)

μA'(x)

μB(y)

μB'(y)

R

ファジィ関係式の演算(B'=A'○R)

r

0.0

1.0

X

x is A

推論入力 x is A'

1.0

0.0Y

μo(y)推論結果y is B

結論 y is B'

ファジィ推論の実行例

And論理積- Implication[含意]論理積- Defuzzification重心法

知的制御システム 講義資料

1993-2014 (c) [email protected] 7/24

Page 8: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-8

ファジィ推論

2値論理

P x = 3 x=2

P→Q if x=3 then y=6

Q y=6 y=?

「x=2の入力に対してyが判らない」

ファジィ推論だと

~P’ x= about 2

~P → ~Q if x=about 3 then y=about 6

~Q’ y= 6の近く

=> 近似推論が可能

知的制御システム 講義資料

1993-2014 (c) [email protected] 8/24

Page 9: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-9

関係 y=f(x)

関数による記述

X

Y

y=f(x)

xi

yo

ファジィ関係If 約 x1 then 約 y1If 約 x2 then 約 y2 :

X

Y

約Xi

約yo

知的制御システム 講義資料

1993-2014 (c) [email protected] 9/24

Page 10: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-10

And論理積-Implication[含意]論理積- Aggregation[合成]論理和- Defuzzification重心法-ファジィ推論

And method : min(Or method : max)

Implication : minAggregation : maxDefuzzification :

centrid

推論入力:x 1 is A1'

推論入力:x2 is A2'

1.0

0.0Y

y is B2

r2

1.0

0.0 Y

y is B1

r1

推論入力:x2 is A2'

1.0

0.0X2

x 2 is A22

1.0

0.0 X2

x 2 is A21

推論結果μo(y)

1.0

0.0 Y

推論入力:x 1 is A1'

1.0

0.0 X1

x 1 is A12

1.0

0.0X1

x 1 is A11

論理積

論理積

論理積

論理積

論理和

If部 then部

非ファジィ化

Y = 1.5

If x1 is A11 and x2 is A21 then y is B1.

If x1 is A12 and x2 is A22 then y is B2.

推論結果

μo(y)

知的制御システム 講義資料

1993-2014 (c) [email protected] 10/24

Page 11: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-11

1.0

0.0Y

y is B2

1.0

0.0Y

y is B1

推論結果

μo(y)1.0

0.0Y

r2

r1

推論入力:x2 is A2'

1.0

0.0X2

x 2 is A22

1.0

0.0X2

x 2 is A21

推論入力:x 1 is A1'

1.0

0.0X1

x 1 is A12

1.0

0.0X1

x 1 is A11

論理積

論理積

代数積

論理和

代数積

If部 then部

And論理積-Implication[含意]代数積- Aggregation[合成]論理和- Defuzzification重心法-ファジィ推論

知的制御システム 講義資料

1993-2014 (c) [email protected] 11/24

Page 12: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-2-12

ファジィ制御の概念

ファジィ推論[無限値論理]

1.もし,車間距離が小さく,走行速度が大きいならば, ブレーキを強く.

2.もし,車間距離が大きく,走行速度が小さいならば, ブレーキを弱く.

1

0

μ

速度100Km/h0

大きい

100m0

1

0

μ

距離

小さい

μ

強く

100

1

0ブレーキ力

100m0

1

0

μ

距離

大きい

100Km/h0

1

0

μ

速度

小さい1

0

μ弱く

0 10ブレーキ力

μ

100

1

0

ブレーキ力

非ファジィ化ブレーキ力5.2

車間距離走行速度

[ブレーキ操作] 前の車にぶつからないように,ブレーキをかける.

車間距離

走行速度

時間→

10

0

ブレーキ力

・ファジィ判断 →滑らか・人間的演算・少ないルール

再2-4

知的制御システム 講義資料

1993-2014 (c) [email protected] 12/24

Page 13: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-13

課題2(Matlab)(1-1)

課題2は,ファジィ推論の定義と実行です.

Matlab から,

>> fuzzy

と入力し,ファジィ知識エディタ(FIS Editor)を起動する。

すぐに、ファイルを閉じる。そのとき、ファイル名 ics.fis で格納

ファジィ知識:ics.fisができる。(中身は、骨格だけ。)テキストとして、中身を確認

知的制御システム 講義資料

1993-2014 (c) [email protected] 13/24

Page 14: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-14

課題2(Matlab)(1-2 )

>> fuzzy ics.fis

と入力し,ファジィ知識 ics.fis を編集する。

課題2では,2入力1出力なので,[編集]-[Add Variable]で入力を増やす。

Nameを、 input-X、 input-Y、 output-Z と変更し、各集合の。定義域

を、所定の値に、変更する。例として、-10~+10 としておく。

input-X [-10.0, +10.0]

input-Y [-10.0, +10.0]

output-Z [-10.0, +10.0]

とし,

XisL, XisH,

YisL, YisH,

ZisP, ZisN

のファジィ集合

を定義する.

形状Typeは、

trimf(三角形)

のままで良い。

知的制御システム 講義資料

1993-2014 (c) [email protected] 14/24

Page 15: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-15

課題2(Matlab)(2)

[編集]-[Rules]で、input-X , input-Y, output-Z を選択し、ルールを定義する。

If XisL and YisH then ZisN

If XisH and YisL then ZisP

(or は、使わない。)

知的制御システム 講義資料

1993-2014 (c) [email protected] 15/24

Page 16: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-16

課題2(Matlab)(3-1)

(3)入力x、yを実数値とし、論理積、論理積、論理和で出力を合成、により出力Zのファジィ集合を求めよ。重心法により、出力Zの代表値zを求めよ。

[標準設定だが、推論方法を確認する。]

And method : min

(Or method : max)

Implication : min

Aggregation : max

Defuzzification :

centrid

以上を再度ics.fisに、

格納し、テキストとして

内容を確認せよ。

推論知識は、

これだけ、こんなに、

ある。

知的制御システム 講義資料

1993-2014 (c) [email protected] 16/24

Page 17: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-17

課題2(Matlab)(4-1)

(4)入力変数を変化させ、入力x、yと出力zの関係を示せ。

[View]-[Rules] で、入力変数を変化させ、推論結果を確認する。

知的制御システム 講義資料

1993-2014 (c) [email protected] 17/24

Page 18: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-18

課題2(Matlab)(4-2)

(4)入力変数を変化させ、入力x、yと出力zの関係を示せ。

[View]-[Surface] で、推論結果を確認する。視点を変え、確認する。

知的制御システム 講義資料

1993-2014 (c) [email protected] 18/24

Page 19: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-19

課題2(Matlab)(補足)

今回は、ファジィ知識を記述し、計算機で、2つの入力に対して、

推論結果が得られることを確認する。

知識の内容、推論の方法は、次の課題。

下記により、作成した知識を用いて推論結果を得ることが出来る。

readfis, evalfis 等の関数は、help で確認すること。

% Rgo.m: 知識をワークスペースに格納し

% ファジィ推論結果を得る。

icsKE = readfis('ics_.fis');

disp('ics_.fisファジィ知識を知識をワークスペースicsKEへ格納しました。');

input_x1=2; input_x2=3;

input_x1

input_x2

disp('input_x1, input_x2 からの推論結果は、');

output_z = evalfis([input_x1, input_x2],icsKE );

output_z

知的制御システム 講義資料

1993-2014 (c) [email protected] 19/24

Page 20: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

SIC-3-20

View>Surfaceの結果 fuzzy ics.fishelp readfishelp evalfishelp gensurfkefuzzy = readfis('ics');gensurf(kefuzzy)

Figureのコピーで拡張メタファイルとする。

pptにて、文字の拡大、線の補強など可能。

さらに、EPSとして、TeX論文に使用可能。

-10 -50

510

-10-5

05

10

-3-2-10123

input-X入力-Y

out

put-

Z

スクリーンのビットマップ

Figureコピー>拡張メタファイル> ppt=>epsファイル

知的制御システム 講義資料

1993-2014 (c) [email protected] 20/24

Page 21: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

help fuzzy (1)Fuzzy Logic Toolbox

Version 2.2.6 (R2007b) 02-Aug-2007

Fuzzy Logic Toolbox

Version 2.1.3 (R14) 05-May-2004

GUI エディタ

anfisedit - ANFIS 訓練と検証用のUIツール

findcluster- クラスタリング UI ツール

fuzzy - 基本のFISエディタ

mfedit - メンバシップ関数エディタ

ruleedit - ルールエディタと文法の使い方

ruleview - ルールビューアとファジィ推論ダイアグラム

surfview - 出力サーフェスビューア

メンバシップ関数

dsigmf - 2つのシグモイドメンバシップ関数の差

gauss2mf - 2つのガウス曲線を合わせたメンバシップ関数

gaussmf - ガウス曲線メンバシップ関数

gbellmf - 一般化されたベル曲線メンバシップ関数

pimf - π型曲線メンバシップ関数

psigmf - 2つのシグモイドメンバシップ関数の積

smf - S型曲線メンバシップ関数

sigmf - シグモイド曲線メンバシップ関数

trapmf - 台形メンバシップ関数

trimf - 三角形メンバシップ関数

zmf - Z型曲線メンバシップ関数

SIC-3-21

コマンドラインFIS関数addmf - メンバシップ関数をFISに追加addrule - ルールを FIS に追加addvar - 変数を FIS に追加defuzz - メンバシップ関数の非ファジィ化evalfis - ファジィ推論計算の実行evalmf - 基本的なメンバシップ関数計算gensurf - FIS 出力サーフェスの計算getfis - ファジィシステムプロパティの取得mf2mf - 関数間でのパラメータの変換newfis - 新しい FIS の作成parsrule - ファジィルールの文法説明plotfis - FIS の入力-出力ダイアグラムの表示plotmf - 1つの変数に依存するすべてのメンバシップ関数の表示readfis - ディスクから FIS の読み込みrmmf - メンバシップ関数を FIS から削除rmvar - 変数を FIS から削除setfis - ファジィシステムプロパティの設定showfis - 注釈付きで FIS の表示showrule - FIS ルールの表示writefis - FIS をディスクに保存

•アドバンスト手法•その他の関数•GUI補助関数

知的制御システム 講義資料

1993-2014 (c) [email protected] 21/24

Page 22: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

help fuzzy (2)fuzzy は、ディレクトリと関数の両方です。

FUZZY 基本的な FIS エディタ

FISエディタは、ファジィ推論システムに関する高水準の情報表示を行います。

最上部にあるのは、各入力と出力が明確にラベル付けされたシステムの

ダイアグラムです。入力、あるいは、出力ボックス上をダブルクリックすると、

Membership Function Editor を起動することができます。ダイアグラム中央の

ファジィルールボックスをダブルクリックすると、Rule Editor を起動します。

ダイアグラムの真下にあるのは、カレントの FIS名を表示するテキスト

フィールドです。ウィンドウの左下にあるのは、ファジィ含意過程で使用する

種々の関数を設定することができる一連のポップアップメニューです。また、

右下にあるのは、カレントの変数に関する情報を出力するフィールドです。

カレント変数を決定するには、入力、または、出力ボックスの1つをクリック

します。

参考 mfedit, ruleedit, ruleview, surfview, anfisedit. SIC-3-22

知的制御システム 講義資料

1993-2014 (c) [email protected] 22/24

Page 23: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

MatlabのFuzzy toolBox の活用<21Yasu_FuzzySet.zipを展開>1

これらのファイルは、MATLABのFuzzy ToolBox の中身を理解し、活用するために提示。

p1go.m: % sfc.fis ルールを自分で表示

f2go.m: % ファジィ知識 sfc.fis を、所定の構造体sfcRに格納し、

Yasu_FisRulePrint :ファジィルールをprintの自作関数、

Yasu_FisRes2i1o :ファジィ推論の自作関数

Yasu_FuReIn:メンバシップ値を求める関数

で、求め、さらに、meshz関数で、3次元表示。

----------------------------

自作関数: Yasu_** は、MATLABで準備してある関数と混同しないよう安信のYasu_を付けた。

(なんでも良いが、特異な名前が良い。workなどはダメ。)

実システムへの適用では、c言語で、同様の演算を行う。

アルゴリズムの確認用試作などには、MATLABが便利。

SIC-3-23

知的制御システム 講義資料

1993-2014 (c) [email protected] 23/24

Page 24: 知的制御システム - Coocanttt.akiba.coocan.jp › yasunobu › edu › intconthtms › text › Sic03.pdfSIC-3-1 知的制御システム 第3週目 安信誠二 筑波大学大学院システム情報工学研究科

課題2のfisファイル例

SIC-3-24

% 以下をmファイル ics.fis として保存し,% fuzzy ics.fis で実行。[System]Name='ics'Type='mamdani'Version=2.0NumInputs=2NumOutputs=1NumRules=2AndMethod='min'OrMethod='max'ImpMethod='min'AggMethod='max'DefuzzMethod='centroid'

[Input1]Name='input-X'Range=[-10 10]NumMFs=2MF1='XisL':'trapmf',[-28 -12 -8 5]MF2='XisH':'trapmf',[-5 8 12 28]

[Input2]Name='input-Y'Range=[-10 10]NumMFs=2MF1='YisL':'trapmf',[-28 -12 -8 5]MF2='YisH':'trapmf',[-4 8 12 28]

[Output1]Name='output-Z'Range=[-10 10]NumMFs=2MF1='ZisN':'trapmf',[-28 -12 -5 8]MF2='ZisP':'trapmf',[-8 5 12 28]

[Rules]1 2, 1 (1) : 12 1, 2 (1) : 1

fk2i1o.fis

知的制御システム 講義資料

1993-2014 (c) [email protected] 24/24