Detailed instructions for use are in the User's Guide.
[. . . ] Fuzzy Logic ToolboxTM 2 User's Guide
How to Contact The MathWorks
Web Newsgroup www. mathworks. com/contact_TS. html Technical Support
www. mathworks. com comp. soft-sys. matlab suggest@mathworks. com bugs@mathworks. com doc@mathworks. com service@mathworks. com info@mathworks. com
Product enhancement suggestions Bug reports Documentation error reports Order status, license renewals, passcodes Sales, pricing, and general information
508-647-7000 (Phone) 508-647-7001 (Fax) The MathWorks, Inc. 3 Apple Hill Drive Natick, MA 01760-2098
For contact information about worldwide offices, see the MathWorks Web site. Fuzzy Logic ToolboxTM User's Guide © COPYRIGHT 19952010 The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used or copied only under the terms of the license agreement. [. . . ] This section discusses the so-called Sugeno, or Takagi-Sugeno-Kang, method of fuzzy inference. Introduced in 1985 [16], it is similar to the Mamdani method in many respects. The first two parts of the fuzzy inference process, fuzzifying the inputs and applying the fuzzy operator, are exactly the same. The main difference between Mamdani and Sugeno is that the Sugeno output membership functions are either linear or constant. A typical rule in a Sugeno fuzzy model has the form If Input 1 = x and Input 2 = y, then Output is z = ax + by + c For a zero-order Sugeno model, the output level z is a constant (a=b =0). The output level zi of each rule is weighted by the firing strength wi of the rule. For example, for an AND rule with Input 1 = x and Input 2 = y, the firing strength is
wi = AndMethod( F1 ( x), F2 ( y))
where F1, 2 (. ) are the membership functions for Inputs 1 and 2.
2-100
Sugeno-Type Fuzzy Inference
The final output of the system is the weighted average of all rule outputs, computed as
wi zi
Final Output =
i=1 N
N
wi
i=1
where N is the number of rules.
2-101
2
Tutorial
A Sugeno rule operates as shown in the following diagram.
1. Apply implication method (prod).
1.
If
poor
rancid
z 1 (cheap) z1
service is poor
or
food is rancid
then
tip = cheap
2.
good If service is good
rule 2 has no dependency on input 2
z 2 (average)
z2
then
tip = average
3.
If
excellent delicious
z 3 (generous) z3
service is excellent or
food is delicious
then
tip = generous
service = 3
food = 8
input 1
input 2
output
tip = 16. 3%
The preceding figure shows the fuzzy tipping model developed in previous sections of this manual adapted for use as a Sugeno system. Fortunately, it is frequently the case that singleton output functions are completely sufficient for the needs of a given problem. As an example, the system tippersg. fis is
2-102
Sugeno-Type Fuzzy Inference
the Sugeno-type representation of the now-familiar tipping model. If you load the system and plot its output surface, you will see that it is almost the same as the Mamdani system you have previously seen.
a = readfis('tippersg'); gensurf(a)
20
tip
15
10
10 8 6 4 2 food 0 0 2 service 6 4 8 10
The easiest way to visualize first-order Sugeno systems is to think of each rule as defining the location of a moving singleton. That is, the singleton output spikes can move around in a linear fashion in the output space, depending on what the input is. This also tends to make the system notation very compact and efficient. Higher-order Sugeno fuzzy models are possible, but they introduce significant complexity with little obvious merit. Sugeno fuzzy models whose output membership functions are greater than first order are not supported by Fuzzy Logic Toolbox software. Because of the linear dependence of each rule on the input variables, the Sugeno method is ideal for acting as an interpolating supervisor of multiple linear controllers that are to be applied, respectively, to different operating conditions of a dynamic nonlinear system. For example, the performance
2-103
2
Tutorial
of an aircraft may change dramatically with altitude and Mach number. Linear controllers, though easy to compute and well suited to any given flight condition, must be updated regularly and smoothly to keep up with the changing state of the flight vehicle. A Sugeno fuzzy inference system is extremely well suited to the task of smoothly interpolating the linear gains that would be applied across the input space; it is a natural and efficient gain scheduler. Similarly, a Sugeno system is suited for modeling nonlinear systems by interpolating between multiple linear models.
An Example: Two Lines
To see a specific example of a system with linear output membership functions, consider the one input one output system stored in sugeno1. fis.
fismat = readfis('sugeno1'); getfis(fismat, 'output', 1)
This syntax returns:
Name = output NumMFs = 2 MFLabels = line1 line2 Range = [0 1]
The output variable has two membership functions.
getfis(fismat, 'output', 1, 'mf', 1)
This syntax returns:
Name = line1 Type = linear Params = -1 -1 getfis(fismat, 'output', 1, 'mf', 2)
2-104
Sugeno-Type Fuzzy Inference
This syntax returns:
Name = line2 Type = linear Params = 1 -1
Further, these membership functions are linear functions of the input variable. The membership function line1 is defined by the equation
output = (-1) × input + (-1)
and the membership function line2 is defined by the equation
output = (1) × input + (-1)
The input membership functions and rules define which of these output functions are expressed and when:
showrule(fismat) ans = 1. If (input is high) then (output is line2) (1)
The function plotmf shows us that the membership function low generally refers to input values less than zero, while high refers to values greater than zero. [. . . ] Filev, "Generation of Fuzzy Rules by Mountain Clustering, " Journal of Intelligent & Fuzzy Systems, Vol. [21] Zadeh, L. A. , "Fuzzy sets, " Information and Control, Vol. 338-353, 1965.
B-3
B
Bibliography
[22] Zadeh, L. A. , "Outline of a new approach to the analysis of complex systems and decision processes, " IEEE Transactions on Systems, Man, and Cybernetics, Vol. [23] Zadeh, L. A. , "The concept of a linguistic variable and its application to approximate reasoning, Parts 1, 2, and 3, " Information Sciences, 1975, 8:199-249, 8:301-357, 9:43-80. [. . . ]