Fuzzy Logic Demonstration / Evaluation Software

Year of Completion: 1990
Purchased/Utilized By: Impco Technologies, Cerritos, CA
Application: R&D Project

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 empirical-like 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 n-dimensional 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 n-parameters 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 n-parameters.  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.