fuzzy control systems729g43/projekt/studentpapper-12/...5 2. fuzzy logic 2.1fuzzy sets och...
TRANSCRIPT
Institutionen för datavetenskap Artificiell intelligens II, 729g11 Projekt HT-12
LINKÖPING UNIVERSITET
Fuzzy control systems Användning av fuzzy logic I tvättmaskiner
Karolin Nissa
9/17/2012
2
Abstract Den här rapporten är en redovisning av den litteraturstudie som har gjorts på fuzzy logic
control system, med fokusering på tvättmaskiner. En tvättmaskin som programmerats med
fuzzy logic som grund kan med hjälp av inbyggda sensorer mäta variabler som smutsmängd,
smutstyp samt vilken typ av smuts det rör sig om. Dessa variabler kan sedan konverteras till
fuzzy variabler och därmed hanteras i systemet. Med hjälp av fuzzy logic control kan
tvättmaskinen framställa ett individuellt anpassat program för varje tvätt och spara in på ett
flertal faktorer som vatten, ström, tidsåtgång och tvättmedel.
3
Contents
Abstract ................................................................................................................................................... 2
1. Inledning .......................................................................................................................................... 4
1.1 Syfte ............................................................................................................................................. 4
1.2 Metod och källor ......................................................................................................................... 4
2. Fuzzy Logic ........................................................................................................................................... 5
2.1Fuzzy sets och preproccessing........................................................................................................ 5
2.2 Lingvistiska variabler ..................................................................................................................... 6
2.3Medlemsfunktioner och fuzzification ............................................................................................ 7
2.4 Regelbas ............................................................................................................................................ 9
2.5 Inference Engine .............................................................................................................................. 10
2.5.1 Aggregering .............................................................................................................................. 11
2.5.2 Aktivering ................................................................................................................................. 11
2.5.3 Ackumulering ............................................................................................................................ 11
2.6 Defuzzication ................................................................................................................................... 11
2.6.1 Centre of gravity ................................................................................................................... 12
2.6.2 Centre of gravity method for singletons .............................................................................. 12
2.6.3 Mean of Maxima .................................................................................................................. 13
2.7 Postprocessing ................................................................................................................................. 14
Referenser ............................................................................................................................................. 15
4
1. Inledning Fuzzy Logic har kommit att användas allt mer inom den industriella världen. I en värld där
svaren på alla frågor inte alltid är sant eller falskt, ja eller nej, så måste även maskiner besitta
den mänskliga förmågan att kunna granska sin indata, för att utifrån denna utföra den mest
optimala handlingen. Fuzzy logic tar maskinernas funktioner ett steg närmare mänskligt
tänkande. Fuzzy control system är baserade på fuzzy logic och består av 6 stycken olika
deloment; preprocessing, fuzzification, regelbas, inference engine, defuzzification och sist
postprocessing.
Figur1 de olika blocken av en fuzzy controller
1.1 Syfte Min avsikt med den här rapporten är att fördjupa mig i hur man har funnit ett
användningsområde för fuzzy logic control system i tvättmaskiner. Rapporten är resultatet av
min litteraturstudie och det kommer därmed inte tillföras några nya resultat eller upptäckter.
1.2 Metod och källor Som metod har jag använt mig av Biblioteket på Linköpings Universitets internetsökning
efter relevanta artiklar inom Fuzzy Logic och fuzzy logic control systems.
5
2. Fuzzy Logic
2.1Fuzzy sets och preproccessing Till skillnad från första ordningens logik, FOPL, där ett set endast kan vara sant eller falskt så
använder man i fuzzy logic något som kallas för fuzzy sets. I ett fuzzy set så talar man om
medlemskap, i vilket grad ett element är medlem inom en kategori. Denna grad av
medlemskap sträcker sig mellan 0 och 1. Ett element kan med andra ord finna sig någonstans
mellan 0 och 1. Jämfört med FOPL där reglerna säger att om ett element har värdet 0 så är
elementet falskt, och har det värdet 1 så är det sant. Däremot om ett fuzzy set endast har ett
element så kallas detta element för en fuzzy singleton. Detta element får medlemskapet 1, och
är därmed endast sann. Senare i kontrollsystemet så kommer detta fuzzy set få en annan
hantering än de andra i defuzzification-stadiet.
För att ett fuzzy logic system ska kunna fungera måste man först definiera det så kallade
universumet. Universumet innehåller alla objekt som kan existera inom ett fuzzy set.Den
indata som tvättmaskinen får in sitt systemet via sensorerna är ofta ett crisp-värde. Detta värde
är i många fall inte helt optimalt för att kunna hanteras av systemet, utan måste först
konverteras, preprocessas, exempelvis genom att normalisera värdet genom att avrunda det så
det stämmer överens med hur universumet är definierat.
I tvättmaskinens system finns det ett universum för graden av smuts på tvätten.
Bedömningen av hur smutsig tvätten är sker med hjälp av en sensor som mäter hur transparent
vattnet är efter att ha sköljt igenom tvätten. Ju smutsigare tvätten är, ju mindre transparent är
vattnet som blir analyserat.Detta universum är definierat i procentenheter [0-100%]. Utifrån
detta har vi sedan 3 fuzzy sets: låg, mellan, hög. Som representerar 0 %, 50 % och 100 %.
Det ska skapas ytterligare 3 fuzzy sets utifrån vilken typ av smuts det är på kläderna.
Det bestäms utifrån hur lång tid det tar för vattnet att nå mättnad. När vattnet har nått mättnad
så ändras inte längre färgen på vattnet. Om smutsen är av fet sort så tar det mycket längre tid
för vattnet att bli transparent igen eftersom fett är svårlösligare i vatten är andra typer av
smuts. Följaktligen kombineras den ovannämnda funktionen för smutsmängd och denna för
typ av smuts. De 3 sets som skapas är:ickefet, medium, fet. Även här representerade av
procentdelarna 0 %, 50 % och 100 %.
6
Det sista fuzzy setet skapas ur universumet för tvättid. Det definieras i minuter mellan
[0.. 60] givet att maxtiden för ordentligt smutsad tvätt är en timme.
Parametrarna för detta fuzzy set är:
Väldigtkort - [0 8 12] Kort - [8 12 20] Normal - [12 20 40]
Länge - [20 40 60] ExtraLänge - [40 60 60]
2.2 Lingvistiska variabler Ytterligare en skillnad mellan fuzzy logic och andra logiker är att fuzzy logic nyttjar
lingvistiska variabler och inte siffertal för att uttrycka regler och information. Man använder
med fördel dessa lingvistiska variabler för att de är mindre specifika än numeriska och
framförallt påminner de mer om människans naturliga språk. Som till exempel när vi säger
hur lång tid det kommer ta att genomföra en tvätt så säger vi att den kommer ta” lång tid”, i
jämförelse med om vi säger att den kommer ta 40 minuter. I det här fallet kommer
beteckningen ”lång” betraktas som ett lingvistiskt värde för variabeln tvättid, med förståelse
för att det betyder samma sak som det numeriska värdet 40, bara att det är mindre exakt.
I tvättmaskinen blir nu de lingvistiska variablerna Smutsmängd, Smutstyp och Tvättid.
Smutsmängd får term set, M, och innefattar fuzzy seten låg, mellan, hög. En variabels term
set innehåller alla värden som finns i en lingvistisk variabel. Smutstyp får term set Y, och
innefattar fuzzy seten: ickefet, medium, fet. Den tredje variabeln Tvättid med term set V
innefattar fuzzy seten väldigtkort, kort, normal, länge och extralänge. Detta skrivs inom fuzzy
logic som:
M(Smutsmängd ) = {låg, mellan, hög}
Y(Smutstyp) = {ickefet, medium, fet}
V(Tvättid) ={väldigtkort, kort, normal, länge, extralänge}
7
2.3Medlemsfunktioner och fuzzification Alla element i ett fuzzy set besitter en nivå av medlemskap inom intervallet [0-1]. För att först
kunna fastställa om elementet är medlem i ett set så måste element x vara medlem i set X:
𝒙 ∈ 𝑿
Efter det bestämmer man grad av medlemskap. U är universum som x existerar i och µx är
graden av medlemskap som elementet x får inom intervallet [0,1]
µx :U→ [0,1]
I tvättmaskinen använder man sig av en medlemskapsfunktion som kallas för triangulär form,
eller trianglar, om man så vill. X i funktionen är värdet på det element i ett fuzzy set som man
ska beräkna. A betecknar den nedre gränsen på funktionen, med andra ord det första objektet
som är medlem i setet. I exemplet med tvättmaskinens set som tidigare togs fram innebär
detta till exempel element "0min" i setet "VäldigtKort" som är definierat mellan 0-60. B står
för det första värde som har det hösta medlemsvärdet i setet. M är den sista medlemmen i
setet.
Formeln lyder som så att medlemsgraden µ, för x är 0 om värdet x är mindre eller lika
med a. Om x befinner sig mellan a och m räknas istället medlemsgraden ( µ ) ut genom
(x-a)/(m-a). Följande metoder lyder även för de två andra värdena.
Exempel: Beräkning av medlemsgrad för elementet '20minuter' i fuzzy setet 'Normal'
Fuzzy setet: Normal - [12 20 40]
x = 20 min
a = 12 min
m = 40 20 − 12
40 − 12≈ 0,29
8
Figur2: Medlemsfunktion för smutsmängd 1. X-axeln visar den procentuella
mängden smuts på tvätten och y-axeln visar grad av medlemskap .
Figur3: medlemsfunktion för smutstyp 2. X-axeln visar vilken typ av smuts det är
på tvätten i form av vilken fettprocent den innehåller. Y -axeln visar grad av
medlemskap.
1 Agarwal, M. Fuzzy Logic Control of Washing Machines
2Agarwal, M. Fuzzy Logic Control of Washing Machines
9
Figur4: medlemsfunktionen för tvättid
Utifrån medlemsfunktionera för smutsmängd och smutstyp kan tvättmaskinen sedan erhålla
den beräknade tidsåtgången.
2.4 Regelbas En fuzzy regel är formaterad enligt nedanstående exempel. Det här formatet kallas för if-then
format.
If x is A then y is B
A och B är fuzzy sets, definierade från respektive universum x och y. Det här en implikation
där premissen är ”x är A” och implikationen blir då att ”y är B”.
Tvättmaskinen ska utifrån den input den får från sina sensorer avgöra vilket
tvättprogram som den ska köra. De tidigare lingvistiska variablerna smutsmängd, smutstyp
och tvättid kan modifieras med hjälp av en eller flera samlingar bestämmelser. Vanligast är IF
och THEN, som till exempel säger att om (IF) smutsmängden på tvätten är Stor och
smutstypen är Fet så (THEN) ska ett extra långt program köras.Det här sammanställs som en
regel som sen sparas i tvättmaskinens databas. Reglerna består alla av sparade krav som ska
uppfyllas för de olika programmen. Det används alltid samma konnektiv för att kunna
kombinera två eller fler regler och sammanställa dessa till en helt ny regel. I tvättmaskinens
fall används ”and”. Ett annat vanligt konnektiv är ”or”. Det viktigaste är att det är samma
konnektiv för alla regler, så att de inte blandas inom regelbasen.
10
”If” ”and” ”Then”
Regel Smutsmängd Smutstyp Tvättid
1 Hög Fet Extralänge
2 Mellan Fet Länge
3 Låg Fet Länge
4 Hög Mellan Länge
5 Mellan Mellan Normal
6 Låg Mellan Normal
7 Hög IckeFet Normal
8 Mellan IckeFet Kort
9 Låg IckeFet VäldigtKort
Figur 5. Regelbas för tvättmaskin. Modifierad version grundad från Agarwal,
M. Fuzzy Logic Control ofWashing Machines[2]
Den översta raden är headern, med namnen på konnektiven . Raden under
innehåller de tre olika variablerna. De två mittersta kolumnerna är inputs och
den längst till höger är den output som tvättmaskinen ger. Varje rad
representerar en regel i databasen.
2.5 Inference Engine För att kunna dra slutsatser utifrån en regelbas behövs det en funktion som kan producera en
output från samlingen av if-then regler. Inference engine är kopplad till regelbasen och ger
output i form av vilket program som tvättmaskinen ska köra. För varje regel i regelbasen
söker inferensen upp medlemsskapsvärdet i tillståndet av regeln. Inference engine använder
sig av tre steg; aggregering, aktivering och ackumulering.
11
2.5.1 Aggregering
Används för att beräkna graden av uppfyllelse αk för tillståndet av regel k. Reglerna kommer
att generera ett fuzzy medlemskapsvärde µ för villkoren. Aggregering är ekvivalent till
fuzzification, där det endast finns en input till kontrollen. Det kallas även ibland för att man
fullföljer reglerna.
2.5.2 Aktivering
Outputen från aggregeringen når sedan aktiveringen. Beroende på hur reglerna är utformade
så används operatorerna min eller max. Om regeln utgår ifrån flera premisser kommer
min-operatorn att användas, men om regeln lyder till exempel ”if A or B, then”, så används
max-operatorn. Min-operatorn reducerar regelns fuzzy set så att det representerar en output
som gäller för det minsta medlemsvärdet för försatsen. Detta görs eftersom det inte är
troligare att regeln gäller än att försatsen blir sann. Max-operatorn genererar en output som
gäller för det högsta medlemsvärdet genom att klippa av konsekvenssetet. Detta görs eftersom
att om en av försatsens villkor blir sanna så implementeras även detta på konsekvensen.
2.5.3 Ackumulering
Här blir alla aktiverade slutsatser ihopsamlade med hjälp av max-operatorn. Och formulerade
i en graf som skickas vidare till defuzzification.
2.6 Defuzzication Det resulterande fuzzy setet måste bli konverterat till ett nummer, och med andra ord gå
tillbaka till en form av sin ursprungsform som den hade vid input. Outputen måste bestå av ett
bestämt värde eftersom systemet inte kan utföra ändringar som till exempel ”öka
temperaturen lite”. Man genomför detta genom defuzzification där man tar det resulterande
fuzzy setet som kommit från inference engine och konverterar tillbaka det till ett crisp-värde
som skickas till styrsystemet. Detta kan göras genom ett flertal metoder, här tas endast de
metoder som är relevanta för tvättmaskinen upp:
12
2.6.1 Centre of gravity
Grafen som skickades vidare från inference engine används här genom att man räknar ut
arean under grafen. I ekvationen står xi för en flytpunkt i ett bestämt universum och µ(xi)står
för den givna flytpunktens medlemskapsvärde. Ekvationen multiplicerar alla element xi med
sina respektive medlemskapsfunktioner µ(xi), summerar sedan dessa för att vidare divideras
med summan av alla medlemskapsfunktioner.
𝑢 = 𝜇 𝑥𝑖 𝑥𝑖𝑖
𝜇(𝑥𝑖𝑖 )
Räkneexempel: Det här är en relativt komplex beräkningsmetod, så för att visa hur metoden
fungerar så reducerar jag antalet element till endast 3st, samt dess 3st tillhörande
medlemskapsfunktioner. I verkligheten finns det 60st olika element i universumet för tvättid.
Se figur 4.
X1 = 30 minuter från universumet för tvättid. Denna flytpunkt har medlemskapsvärdet 0,64.
Beräkning av medlemskap:
𝑥 − 𝑎
𝑚 − 𝑎 →
30 − 12
40 − 12= 0,64
X2 = 48 minuter med medlemskapsvärdet 0,7
Beräkning av medlemskap: 𝑥 − 𝑎
𝑚 − 𝑎 →
48 − 20
60 − 20= 0,7
X3 = 18 minuter med medlemskapsvärdet 0,83
Beräkning av medlemskap: 𝑥 − 𝑎
𝑚 − 𝑎 →
18 − 8
20 − 8= 0,83
COG:
𝑢 = 0,64 ∗ 30 + 0,7 ∗ 48 + 0,83 ∗ 18
(0,64 + 0,7 + 0,83)
𝑢 = 67,74
2,17 ≈ 31,2
13
Detta värde skulle då vara ekvivalent med grafens mittpunkt. Då jag valde att reducera
universumet avsevärt så stämmer detta värde inte alls med exemplet med tvättmaskinen, utan
det var bara ett räkneexempel för att visa hur metoden fungerar.
2.6.3 Mean of Maxima
Den här metoden har fått sitt namn för att den genererar ett medelvärde för de värdena med
högst medlemskap i outputen från inference engine. Om outputen bara innehåller ett värde
som har utmärkande högt medlemskap så skickas detta enskilda värde vidare. Men om setet
däremot innehåller ett flertal värden med höga medlemskapsnivåer så räknas medelvärdet av
dessa ut.
𝑢 = 𝑥 𝜇 𝑥 = max(𝜇 x )}
𝑚
Summan av alla element x som har högst medlemskapsvärde dividerat med antal element m
som är med i ekvationen.
Alla fuzzy setsen för tvättid; väldigtkort, kort, normal, länge och extralänge innehåller ett
element med utmärkande hög medlemsgrad. (se Figur 4) Dessa är elementen 8, 12, 20, 40, 60.
Alla har medlemskapsvärdet 1.
Räkneexempel: Om vi då tar fuzzy setet ’länge’ där elementet 40 har högst
medlemskapsvärde så är det detta som skickas vidare.
𝑢 = 40 1 40 = max(𝜇 x )}
1
14
2.7 Postprocessing Detta är det sista steget i kontrollsystemet. Här är det viktigt att outputen, som nu är tillbaka i
form av ett crisp-värde, har fått rätt definition inom rätt skala. I tvättmaskinens system gäller
det då till exempel att tvättiden fortfarande är definierat i minuter och inte har råkat
omformuleras till någon annan enhet under defuzzification-stegen.
Tvättmaskinen kommer köra ett program som är helt anpassat efter den tvätt som ska
tvättas för tillfället. I jämförelse med andra tvättmaskiner som har förprogrammerade
tvättprogram med fasta inställningar så kan en tvättmaskinen som använder fuzzy logic spara
in på ett flertal faktorer som vatten, ström, tidsåtgång och tvättmedel.
15
Referenser Chien, L. C. (1990). Fuzzy Logic in control systems: Fuzzy logic controller - Part 1. California: University
of California.
Jantzen, J. (1998). Tutorial On Fuzzy Logic. Lyngby, Denmark: Technical University of Denmark.
Zadeh, L. (1975). The Concept of a Linguistic Variable and its Application to Approximate Reasoning -
I. Berkely, California: University of Calofornia.
Internetkällor
1. Jantzen, J. Design Of Fuzzy Controllers Besökt den 5/9-12kl 11.00
http://site.iugaza.edu.ps/mahir/files/2010/02/design.pdf
2. Agarwal, M. Fuzzy Logic Control of Washing Machines Besökt 30/8 den 30/8-12
kl12.00
http://softcomputing.tripod.com/sample_termpaper.pdf
3. Hellman. M Fuzzy LogicIntroductionBesökt 30/8-12 kl. 12.00
http://epsilon.nought.de/tutorials/fuzzy/fuzzy.pdf