Fuzzy Control System: History and Applications Fuzzy Sets
Fuzzy Control System: History and Applications Fuzzy Sets
A fuzzy control system is a control system based on fuzzy logic—a mathematical system that analyzes analog input values in terms
of logical variables that take on continuous values between 0 and 1, in contrast to classical or digital logic, which operates on discrete
values of either 1 or 0 (true or false, respectively).[1][2]
Contents
Overview
History and applications
Fuzzy sets
Fuzzy control in detail
Building a fuzzy controller
Antilock brakes
Logical interpretation of fuzzy control
Fuzzy qualitative simulation
See also
References
Further reading
External links
Overview
Fuzzy logic is widely used in machine control. The term "fuzzy" refers to the fact that the logic involved can deal with concepts that
cannot be expressed as the "true" or "false" but rather as "partially true". Although alternative approaches such as genetic algorithms
and neural networks can perform just as well as fuzzy logic in many cases, fuzzy logic has the advantage that the solution to the
problem can be cast in terms that human operators can understand, so that their experience can be used in the design of the controller.
This makes it easier to mechanize tasks that are already successfully performed by humans.[1]
Interest in fuzzy systems was sparked by Seiji Yasunobu and Soji Miyamoto of Hitachi, who in 1985 provided
simulations that demonstrated the feasibility of fuzzy control systems for the Sendai Subway. Their ideas were
adopted, and fuzzy systems were used to control accelerating, braking, and stopping when the Namboku Line
opened in 1987.
In 1987, Takeshi Yamakawa demonstrated the use of fuzzy control, through a set of simple dedicated fuzzy logic
chips, in an "inverted pendulum" experiment. This is a classic control problem, in which a vehicle tries to keep a
pole mounted on its top by a hinge upright by moving back and forth. Yamakawa subsequently made the
demonstration more sophisticated by mounting a wine glass containing water and even a live mouse to the top of
the pendulum: the system maintained stability in both cases. Yamakawa eventually went on to organize his own
fuzzy-systems research lab to help exploit his patents in the field.
Japanese engineers subsequently developed a wide range of fuzzy systems for both industrial and consumer
applications. In 1988 Japan established the Laboratory for International Fuzzy Engineering (LIFE), a cooperative
arrangement between 48 companies to pursue fuzzy research. The automotive company Volkswagen was the only
foreign corporate member of LIFE, dispatching a researcher for a duration of three years.
Japanese consumer goods often incorporate fuzzy systems. Matsushita vacuum cleaners use microcontrollers
running fuzzy algorithms to interrogate dust sensors and adjust suction power accordingly. Hitachi washing
machines use fuzzy controllers to load-weight, fabric-mix, and dirt sensors and automatically set the wash cycle for
the best use of power, water, and detergent.
Canon developed an autofocusing camera that uses a charge-coupled device (CCD) to measure the clarity of the
image in six regions of its field of view and use the information provided to determine if the image is in focus. It also
tracks the rate of change of lens movement during focusing, and controls its speed to prevent overshoot. The
camera's fuzzy control system uses 12 inputs: 6 to obtain the current clarity data provided by the CCD and 6 to
measure the rate of change of lens movement. The output is the position of the lens. The fuzzy control system uses
13 rules and requires 1.1 kilobytes of memory.
An industrial air conditioner designed by Mitsubishi uses 25 heating rules and 25 cooling rules. A temperature
sensor provides input, with control outputs fed to an inverter, a compressor valve, and a fan motor. Compared to the
previous design, the fuzzy controller heats and cools five times faster, reduces power consumption by 24%,
increases temperature stability by a factor of two, and uses fewer sensors.
Other applications investigated or implemented include: character and handwriting recognition; optical fuzzy
systems; robots, including one for making Japanese flower arrangements; voice-controlled robot helicopters
(hovering is a "balancing act" rather similar to the inverted pendulum problem); rehabilitation robotics to provide
patient-specific solutions (e.g. to control heart rate and blood pressure [4]); control of flow of powders in film
manufacture; elevator systems; and so on.
Work on fuzzy systems is also proceeding in the United States and Europe, although on a less extensive scale than in Japan.
The US Environmental Protection Agency has investigated fuzzy control for energy-efficient motors, and NASA has
studied fuzzy control for automated space docking: simulations show that a fuzzy control system can greatly reduce
fuel consumption.
Firms such as Boeing, General Motors, Allen-Bradley, Chrysler, Eaton, and Whirlpool have worked on fuzzy logic for
use in low-power refrigerators, improved automotive transmissions, and energy-efficient electric motors.
In 1995 Maytag introduced an "intelligent" dishwasher based on a fuzzy controller and a "one-stop sensing module"
that combines a thermistor, for temperature measurement; a conductivity sensor, to measure detergent level from the
ions present in the wash; a turbidity sensor that measures scattered and transmitted light to measure the soiling of
the wash; and a magnetostrictive sensor to read spin rate. The system determines the optimum wash cycle for any
load to obtain the best results with the least amount of energy, detergent, and water. It even adjusts for dried-on
foods by tracking the last time the door was opened, and estimates the number of dishes by the number of times the
door was opened.
Research and development is also continuing on fuzzy applications in software, as opposed to firmware, design, including fuzzy
expert systems and integration of fuzzy logic with neural-network and so-called adaptive "genetic" software systems, with the ultimate
goal of building "self-learning" fuzzy-control systems.[5] These systems can be employed to control complex, nonlinear dynamic
plants,[6] for example, human body.[4][5][7]
Fuzzy sets
The input variables in a fuzzy control system are in general mapped by sets of membership functions similar to this, known as "fuzzy
sets". The process of converting a crisp input value to a fuzzy value is called "fuzzification".
A control system may also have various types of switch, or "ON-OFF", inputs along with its analog inputs, and such switch inputs of
course will always have a truth value equal to either 1 or 0, but the scheme can deal with them as simplified fuzzy functions that
happen to be either one value or another.
Given "mappings" of input variables into membership functions and truth values, the microcontroller then makes decisions for what
action to take, based on a set of "rules", each of the form:
In this example, the two input variables are "brake temperature" and "speed" that have values defined as fuzzy sets. The output
variable, "brake pressure" is also defined by a fuzzy set that can have values like "static" or "slightly increased" or "slightly
decreased" etc.
Fuzzy controllers are very simple conceptually. They consist of an input stage, a processing stage, and an output stage. The input stage
maps sensor or other inputs, such as switches, thumbwheels, and so on, to the appropriate membership functions and truth values. The
processing stage invokes each appropriate rule and generates a result for each, then combines the results of the rules. Finally, the
output stage converts the combined result back into a specific control output value.
The most common shape of membership functions is triangular, although trapezoidal and bell curves are also used, but the shape is
generally less important than the number of curves and their placement. From three to seven curves are generally appropriate to cover
the required range of an input value, or the "universe of discourse" in fuzzy jargon.
As discussed earlier, the processing stage is based on a collection of logic rules in the form of IF-THEN statements, where the IF part
is called the "antecedent" and the THEN part is called the "consequent". Typical fuzzy control systems have dozens of rules.
This rule uses the truth value of the "temperature" input, which is some truth value of "cold", to generate a result in the fuzzy set for
the "heater" output, which is some value of "high". This result is used with the results of other rules to finally generate the crisp
composite output. Obviously, the greater the truth value of "cold", the higher the truth value of "high", though this does not
necessarily mean that the output itself will be set to "high" since this is only one rule among many. In some cases, the membership
functions can be modified by "hedges" that are equivalent to adverbs. Common hedges include "about", "near", "close to",
"approximately", "very", "slightly", "too", "extremely", and "somewhat". These operations may have precise definitions, though the
definitions can vary considerably between different implementations. "Very", for one example, squares membership functions; since
the membership values are always less than 1, this narrows the membership function. "Extremely" cubes the values to give greater
narrowing, while "somewhat" broadens the function by taking the square root.
In practice, the fuzzy rule sets usually have several antecedents that are combined using fuzzy operators, such as AND, OR, and
NOT, though again the definitions tend to vary: AND, in one popular definition, simply uses the minimum weight of all the
antecedents, while OR uses the maximum value. There is also a NOT operator that subtracts a membership function from 1 to give the
"complementary" function.
There are several ways to define the result of a rule, but one of the most common and simplest is the "max-min" inference method, in
which the output membership function is given the truth value generated by the premise.
Rules can be solved in parallel in hardware, or sequentially in software. The results of all the rules that have fired are "defuzzified" to
a crisp value by one of several methods. There are dozens, in theory, each with various advantages or drawbacks.
The "centroid" method is very popular, in which the "center of mass" of the result provides the crisp value. Another approach is the
"height" method, which takes the value of the biggest contributor. The centroid method favors the rule with the output of greatest area,
while the height method obviously favors the rule with the greatest output value.
The diagram below demonstrates max-min inferencing and centroid defuzzification for a system with input variables "x", "y", and "z"
and an output variable "n". Note that "mu" is standard fuzzy-logic nomenclature for "truth value":
Notice how each rule provides a result as a truth value of a particular membership function for the output variable. In centroid
defuzzification the values are OR'd, that is, the maximum value is used and values are not added, and the results are then combined
using a centroid calculation.
Fuzzy control system design is based on empirical methods, basically a methodical approach to trial-and-error. The general process is
as follows:
As a general example, consider the design of a fuzzy controller for a steam turbine. The block diagram of this control system appears
as follows:
The input and output variables map into the following fuzzy set:
—where:
In practice, the controller accepts the inputs and maps them into their membership functions and truth values. These mappings are then
fed into the rules. If the rule specifies an AND relationship between the mappings of the two input variables, as the examples above
do, the minimum of the two is used as the combined truth value; if an OR is specified, the maximum is used. The appropriate output
state is selected and assigned a membership value at the truth level of the premise. The truth values are then defuzzified. For example,
assume the temperature is in the "cool" state, and the pressure is in the "low" and "ok" states. The pressure values ensure that only
rules 2 and 3 fire:
The two outputs are then defuzzified through centroid defuzzification:
__________________________________________________________________
| Z P2
1 -+ * *
| * * * *
| * * * *
| * * * *
| * 222222222
| * 22222222222
| 333333332222222222222
+---33333333222222222222222-->
^
+150
__________________________________________________________________
The output value will adjust the throttle and then the control cycle will begin again to generate the next value .
If the error ranges from -1 to +1, with the analog-to-digital converter used having a resolution of 0.25, then the input variable's fuzzy
set (which, in this case, also applies to the output variable) can be described very simply as a table, with the error / delta / output values
in the top row and the truth values for each membership function arranged in rows beneath:
_______________________________________________________________________
LN SN ZE SP LP
+------------------------------------------------------------------+
| |
-1.0 | XXXXXXXXXX XXX : : : |
-0.75 | XXXXXXX XXXXXXX : : : |
-0.5 | XXX XXXXXXXXXX XXX : : |
-0.25 | : XXXXXXX XXXXXXX : : |
0.0 | : XXX XXXXXXXXXX XXX : |
0.25 | : : XXXXXXX XXXXXXX : |
0.5 | : : XXX XXXXXXXXXX XXX |
0.75 | : : : XXXXXXX XXXXXXX |
1.0 | : : : XXX XXXXXXXXXX |
| |
+------------------------------------------------------------------+
These rules are typical for control applications in that the antecedents consist of the logical combination of the error and error-delta
signals, while the consequent is a control command output. The rule outputs can be defuzzified using a discrete centroid computation:
e = 0.25
delta = 0.5
________________________
e delta
________________________
mu(LP) 0 0.3
mu(SP) 0.7 1
mu(ZE) 0.7 0.3
mu(SN) 0 0
mu(LN) 0 0
________________________
Plugging this into rule 1 gives:
-- where:
mu(1): Truth value of the result membership function for rule 1. In terms of a centroid calculation, this is the "mass" of
this result for this discrete case.
output(1): Value (for rule 1) where the result membership function (ZE) is maximum over the output variable fuzzy set
range. That is, in terms of a centroid calculation, the location of the "center of mass" for this individual result. This
value is independent of the value of "mu". It simply identifies the location of ZE along the output range.
—for the final control output. Simple. Of course the hard part is figuring out what rules actually work
correctly in practice.
If you have problems figuring out the centroid equation, remember that a centroid is defined by summing all the moments (location
times mass) around the center of gravity and equating the sum to zero. So if is the center of gravity, is the location of each
mass, and is each mass, this gives:
In our example, the values of mu correspond to the masses, and the values of X to location of the masses (mu, however, only
'corresponds to the masses' if the initial 'mass' of the output functions are all the same/equivalent. If they are not the same, i.e. some are
narrow triangles, while others maybe wide trapezoids or shouldered triangles, then the mass or area of the output function must be
known or calculated. It is this mass that is then scaled by mu and multiplied by its location X_i).
This system can be implemented on a standard microprocessor, but dedicated fuzzy chips are now available. For example, Adaptive
Logic INC of San Jose, California, sells a "fuzzy chip", the AL220, that can accept four analog inputs and generate four analog
outputs. A block diagram of the chip is shown below:
+---------+ +-------+
analog --4-->| analog | | mux / +--4--> analog
in | mux | | SH | out
+----+----+ +-------+
| ^
V |
+-------------+ +--+--+
| ADC / latch | | DAC |
+------+------+ +-----+
| ^
| |
8 +-----------------------------+
| | |
| V |
| +-----------+ +-------------+ |
+-->| fuzzifier | | defuzzifier +--+
+-----+-----+ +-------------+
| ^
| +-------------+ |
| | rule | |
+->| processor +--+
| (50 rules) |
+------+------+
|
+------+------+
| parameter |
| memory |
| 256 x 8 |
+-------------+
Antilock brakes
As an example, consider an anti-lock braking system, directed by a microcontroller chip. The microcontroller has to make decisions
based on brake temperature, speed, and other variables in the system.
The variable "temperature" in this system can be subdivided into a range of "states": "cold", "cool", "moderate", "warm", "hot",
"very hot". The transition from one state to the next is hard to define.
An arbitrary static threshold might be set to divide "warm" from "hot". For example, at exactly 90 degrees, warm ends and hot begins.
But this would result in a discontinuous change when the input value passed over that threshold. The transition wouldn't be smooth, as
would be required in braking situations.
The way around this is to make the states fuzzy. That is, allow them to change gradually from one state to the next. In order to do this,
there must be a dynamic relationship established between different factors.
With this scheme, the input variable's state no longer jumps abruptly from one state to the next. Instead, as the temperature changes, it
loses value in one membership function while gaining value in the next. In other words, its ranking in the category of cold decreases
as it becomes more highly ranked in the warmer category.
At any sampled timeframe, the "truth value" of the brake temperature will almost always be in some degree part of two membership
functions: i.e.: '0.6 nominal and 0.4 warm', or '0.7 nominal and 0.3 cool', and so on.
The above example demonstrates a simple application, using the abstraction of values from multiple values. This only represents one
kind of data, however, in this case, temperature.
Adding additional sophistication to this braking system, could be done by additional factors such as traction, speed, inertia, set up in
dynamic functions, according to the designed fuzzy system.[8]
In Gerla 2005 [9] another logical approach to fuzzy control is proposed based on fuzzy logic programming: Denote by f the fuzzy
function arising of an IF-THEN systems of rules. Then this system can be translated into a fuzzy program P containing a series of
rules whose head is "Good(x,y)". The interpretation of this predicate in the least fuzzy Herbrand model of P coincides with f. This
gives further useful tools to fuzzy control.
Using Fuzzy logic and ANFIS systems (Adaptive network based fuzzy inference system) for creating the forward model for a domain
has many disadvantages.[11] A qualitative simulation isn't able to determine the correct follow up state, but the system will only guess
what will happen if the action was taken. The Fuzzy qualitative simulation can't predict the exact numerical values, but it's using
imprecise natural language to speculate about the future. It takes the current situation plus the actions from the past and generates the
expected follow up state of the game.
The output of the ANFIS system isn't providing correct information, but only a Fuzzy set notation, for example [0,0.2,0.4,0]. After
converting the set notation back into numerical values the accuracy get worse. This makes Fuzzy qualitative simulation a bad choice
for practical applications.[12]
See also
Dynamic logic
Bayesian inference
Function approximation
Fuzzy concept
Fuzzy markup language
Hysteresis
Neural networks
Neuro-fuzzy
Fuzzy control language
Type-2 fuzzy sets and systems
References
1. Pedrycz, Witold (1993). Fuzzy control and fuzzy systems (2 ed.). Research Studies Press Ltd.
2. Hájek, Petr (1998). Metamathematics of fuzzy logic (4 ed.). Springer Science & Business Media.
3. Zadeh, Lotfi A. (1965). "Fuzzy sets" (http://dml.cz/bitstream/handle/10338.dmlcz/102045/CzechMathJ_35-1985-4_5.
pdf) (PDF). Information and Control. 8 (3): 338–353. doi:10.1016/S0019-9958(65)90241-X (https://doi.org/10.1016%
2FS0019-9958%2865%2990241-X).
4. Sarabadani Tafreshi, Amirehsan; Klamroth-Marganska, V.; Nussbaumer, S.; Riener, R. (2015). "Real-time closed-
loop control of human heart rate and blood pressure". IEEE Transactions on Biomedical Engineering. 62 (5): 1434–
1442. doi:10.1109/TBME.2015.2391234 (https://doi.org/10.1109%2FTBME.2015.2391234). PMID 25594957 (https://
pubmed.ncbi.nlm.nih.gov/25594957). S2CID 32000981 (https://api.semanticscholar.org/CorpusID:32000981).
5. Mamdani, Ebrahim H (1974). "Application of fuzzy algorithms for control of simple dynamic plant". Proceedings of
the Institution of Electrical Engineers. 121 (12): 1585–1588. doi:10.1049/piee.1974.0328 (https://doi.org/10.1049%2
Fpiee.1974.0328).
6. Lugli, A. B.; Neto, E. R.; Henriques, J. P. C.; Hervas, M. D. A.; Santos, M. M. D.; Justo, J. F. (2016). "Industrial
Application Control With Fuzzy Systems" (http://www.ijicic.org/ijicic-120225.pdf) (PDF). Int. J. Innovative Computing
Information and Control. 12 (2): 665–676.
7. Bastian, Andreas (2000). "Identifying fuzzy models utilizing genetic programming" (http://sci2s.ugr.es/keel/pdf/specifi
c/articulo/science2_27.pdf) (PDF). Fuzzy Sets and Systems. 113 (3): 333–350. doi:10.1016/S0165-0114(98)00086-
4 (https://doi.org/10.1016%2FS0165-0114%2898%2900086-4).
8. Vichuzhanin, Vladimir (12 April 2012). "Realization of a fuzzy controller with fuzzy dynamic correction". Central
European Journal of Engineering. 2 (3): 392–398. doi:10.2478/s13531-012-0003-7 (https://doi.org/10.2478%2Fs135
31-012-0003-7). S2CID 123008987 (https://api.semanticscholar.org/CorpusID:123008987).
9. Gerla, Giangiacomo (2005). "Fuzzy logic programming and fuzzy control". Studia Logica. 79 (2): 231–254.
CiteSeerX 10.1.1.103.1143 (https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.1143).
doi:10.1007/s11225-005-2977-0 (https://doi.org/10.1007%2Fs11225-005-2977-0). S2CID 14958568 (https://api.sem
anticscholar.org/CorpusID:14958568).
10. Shen, Qiang (1991). "Fuzzy qualitative simulation and diagnosis of continuous dynamic systems". University of
Edinburgh.
11. Guglielmann, Raffaella and Ironi, Liliana (2005). Generating fuzzy models from deep knowledge: robustness and
interpretability issues. European Conference on Symbolic and Quantitative Approaches to Reasoning and
Uncertainty. Springer. pp. 600–612. doi:10.1007/11518655_51 (https://doi.org/10.1007%2F11518655_51).
12. Liu, Honghai and Coghill, George M and Barnes, Dave P (2009). "Fuzzy qualitative trigonometry" (http://pure.aber.a
c.uk/ws/files/124705/Published_Fuzzy_Qualitative_Trigonometry_IJAR.pdf) (PDF). International Journal of
Approximate Reasoning. Elsevier. 51 (1): 71–88. doi:10.1016/j.ijar.2009.07.003 (https://doi.org/10.1016%2Fj.ijar.200
9.07.003). S2CID 47212 (https://api.semanticscholar.org/CorpusID:47212).
Further reading
Kevin M. Passino and Stephen Yurkovich, Fuzzy Control, Addison Wesley Longman, Menlo Park, CA, 1998 (522
pages) (http://www.ece.osu.edu/~passino/FCbook.pdf)
Kazuo Tanaka; Hua O. Wang (2001). Fuzzy control systems design and analysis: a linear matrix inequality
approach. John Wiley and Sons. ISBN 978-0-471-32324-2.
Cox, E. (Oct. 1992). Fuzzy fundamentals. IEEE Spectrum, 29:10. pp. 58–61.
Cox, E. (Feb. 1993) Adaptive fuzzy systems. IEEE Spectrum, 30:2. pp. 7–31.
Jan Jantzen, "Tuning Of Fuzzy PID Controllers", Technical University of Denmark, report 98-H 871, September 30,
1998. [1] (https://web.archive.org/web/20070703072116/http://www.iau.dtu.dk/~jj/pubs/fpid.pdf)
Jan Jantzen, Foundations of Fuzzy Control. Wiley, 2007 (209 pages) (Table of contents) (http://eu.wiley.com/WileyC
DA/WileyTitle/productCd-0470029633,descCd-tableOfContents.html)
Computational Intelligence: A Methodological Introduction by Kruse, Borgelt, Klawonn, Moewes, Steinbrecher, Held,
2013, Springer, ISBN 9781447150121
External links
Introduction to Fuzzy Control (http://inside.mines.edu/~msimoes/documents/Intro_Fuzzy_Logic.pdf)
Fuzzy Logic in Embedded Microcomputers and Control Systems (http://www.bytecraft.com/downloads/fuzlogic.pdf)
IEC 1131-7 CD1 (http://www.fuzzytech.com/binaries/ieccd1.pdf) IEC 1131-7 CD1 PDF
Online interactive demonstration of a system with 3 fuzzy rules (http://demonstrations.wolfram.com/InferenceWithFuz
zyIFTHENRules/)
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the
Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.