The objective of this project was to create
a Fuzzy Logic demonstration/evaluation package
which allows comparing fuzzy logic to other
control algorithms.
The software consists of the following parts
(some of them are a complex set of objects,
some of them a single routine.):
 Signal Generator  allows programming required
cycles of command in order to create an empiricallike
situation
 Object Model  mathematical model of the
system to be controlled in the simplest
case some mass that is to be moved with a
force actuator.
 PID  controller, procedural controller 
the emulation of control techniques that
the fuzzy logic controller was to be compared
to
 Fuzzy Logic Controller  Universal, powerful
library, allowing any case of the fuzzy logic
controller with any number of channels and
fuzzification/defuzzification zones and functions
 Optimizer  a universal module that is given
a set of n parameters and an evaluation function.
The objective of the optimizer is to
find a set n parameter values for which the
evaluation function yields the best result
(smallest or highest value, depending upon
application). The way this is accomplished
is by running the evaluation function for
a starting point, then stepping in all possible
directions within the ndimensional space
and running the evaluation there. The
direction of movement that gives the best
evaluation result is chosen as the new origin,
and further stepping is done from there.
Once the best possible set of nparameters
is found for a given step, the step is divided
by two and the process is repeated. The
starting step is large enough to scan through
the entire possible range of each nparameters.
The optimizer is a universal library
that can be used for many different applications.
In this particular application, the
parameters are the fuzzification/defuzzification
boundaries and the evaluation function is
the sum of the error between the command
signal and the response of the controlled
system. The optimizer looks for the
set of parameters where the system response
most closely resembles the command.
 Chart drawing library for presentation of
the system behavior. The charts show
the behavior of the controller every step
of the optimizing process.
