This is the second in a series of articles intended
to share information and experience in the realm of fuzzy logic (FL) and
its application. This article will continue the introduction with a more
detailed look at how one might use FL. A simple implementation will be
explained in detail beginning in the next article. Accompanying outside
references are included for interested readers.
In the last article, FL was introduced and the
thrust of this article series presented. The origin of FL was shared and
an introduction to some of the basic concepts of FL was presented. We will
now look a little deeper.
WHY USE FUZZY LOGIC?
Fuzzy Logic offers several unique features that make
it a particularly good choice for many control problems.
1) It is inherently robust since it does not require
precise, noise-free inputs and can be programmed to fail safely if a
feedback sensor quits or is destroyed. The output control is a smooth
control function despite a wide range of input variations.
2) Since the FL controller processes user-defined
rules governing the target control system, it can be modified and changed
easily to improve or drastically alter system performance. New sensors can
easily be incorporated into the system simply by generating appropriate
governing rules.
3) FL is not dependent on a few feedback inputs and
one or two control outputs, nor is it necessary to measure or compute
rate-of-change parameters in order for it to be implemented. Any sensor
data that provides some indication of a system's actions and reactions is
sufficient. This allows the sensors to be inexpensive and imprecise thus
keeping the overall system cost and complexity low.
4) Because of the rule-based operation, any
reasonable number of inputs can be processed (1-8 or more) and numerous
outputs (1-4 or more) generated, although defining the rulebase quickly
becomes complex if too many inputs and outputs are chosen for a single
implementation since rules defining their interrelations must also be
defined. It would be better to break the control system into smaller
chunks and use several smaller FL controllers distributed on the system,
each with more limited responsibilities.
5) FL can control nonlinear systems that would be
difficult or impossible to model mathematically. This opens doors for
control systems that would normally be deemed unfeasible for automation.
HOW IS FL USED?
1) Define the control objectives and criteria: What
am I trying to control? What do I have to do to control the system? What
kind of response do I need? What are the possible (probable) system
failure modes?
2) Determine the input and output relationships and
choose a minimum number of variables for input to the FL engine (typically
error and rate-of-change-of-error).
3) Create FL membership functions that define the
meaning (values) of Input/Output terms used in the rules.
4) Create the necessary pre- and post-processing FL
routines if implementing in S/W, otherwise program the rules into the FL
H/W engine.
5) Test the system, evaluate the results, tune the
rules and membership functions, and retest until satisfactory results are
obtained.
SUMMARY
FL does not require precise inputs, is inherently
robust, and can process any reasonable number of inputs but system
complexity increases rapidly with more inputs and outputs. Distributed
processors would probably be easier to implement. The number of these is
dependent on the number of inputs, outputs, and the designer's control
response goals.
Ref:
http://www.seattlerobotics.org/encoder/
|