The FIS Structure

The FIS structure is the MATLAB object that contains all the fuzzy inference system information. This structure is stored inside each GUI tool. Access functions such as getfis and setfis make it easy to examine this structure.

All the information for a given fuzzy inference system is contained in the FIS structure, including variable names, membership function definitions, and so on. This structure can itself be thought of as a hierarchy of structures, as shown in the following diagram.

You can generate a listing of information on the FIS using the showfis command, as shown below.

showfis(a)
1.  Name             tipper
2.  Type             mamdani
3.  Inputs/Outputs   [ 2 1 ]
4.  NumInputMFs      [ 3 2 ]
5.  NumOutputMFs     3
6.  NumRules         3
7.  AndMethod        min
8.  OrMethod         max
9.  ImpMethod        min
10. AggMethod        max
11. DefuzzMethod     centroid
12. InLabels         service
13.                  food   
14. OutLabels        tip
15. InRange          [ 0 10 ]
16.                  [ 0 10 ]
17. OutRange         [ 0 30 ]
18. InMFLabels       poor     
19.                  good     
20.                  excellent
21.                  rancid   
22.                  delicious
23. OutMFLabels      cheap   
24.                  average 
25.                  generous
26. InMFTypes        gaussmf
27.                  gaussmf
28.                  gaussmf
29.                  trapmf 
30.                  trapmf 
31. OutMFTypes       trimf
32.                  trimf
33.                  trimf
34. InMFParams       [ 1.5 0 0 0 ] 
35.                  [ 1.5 5 0 0 ] 
36.                  [ 1.5 10 0 0 ]
37.                  [ 0 0 1 3 ]   
38.                  [ 7 9 10 10 ] 
39. OutMFParams      [ 0 5 10 0 ]  
40.                  [ 10 15 20 0 ]
41.                  [ 20 25 30 0 ]
42. Rule Antecedent  [ 1 1 ]
43.                  [ 2 0 ]
44.                  [ 3 2 ]
42. Rule Consequent  1
43.                  2
44.                  3
42. Rule Weigth      1
43.                  1
44.                  1
42. Rule Connection  2
43.                  1
44.                  2

The list of command-line functions associated with FIS construction includes getfis, setfis, showfis, addvar, addmf, addrule, rmvar, and rmmf.

Saving FIS Files on Disk

A specialized text file format is used for saving fuzzy inference systems to a disk. The functions readfis and writefis are used for reading and writing these files.

If you prefer, you can modify the FIS by editing its .fis text file rather than using any of the GUIs. You should be aware, however, that changing one entry may oblige you to change another. For example, if you delete a membership function using this method, you also need to make certain that any rules requiring this membership function are also deleted.

The rules appear in indexed format in a .fis text file. Here is the file tipper.fis.

[System]
Name='tipper'
Type='mamdani'
NumInputs=2
NumOutputs=1
NumRules=3
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'

[Input1]
Name='service'
Range=[0 10]
NumMFs=3
MF1='poor':'gaussmf',[1.5 0]
MF2='good':'gaussmf',[1.5 5]
MF3='excellent':'gaussmf',[1.5 10]

[Input2]
Name='food'
Range=[0 10]
NumMFs=2
MF1='rancid':'trapmf',[0 0 1 3]
MF2='delicious':'trapmf',[7 9 10 10]

[Output1]
Name='tip'
Range=[0 30]
NumMFs=3
MF1='cheap':'trimf',[0 5 10]
MF2='average':'trimf',[10 15 20]
MF3='generous':'trimf',[20 25 30]

[Rules]
1 1, 1 (1) : 2
2 0, 2 (1) : 1
3 2, 3 (1) : 2


© 1994-2005 The MathWorks, Inc.