Arbiter: General Purpose Fuzzy Control System

What is FUZZY CONTROL?

Imagine how humans reason versus how computers reason. Humans can base their decisions on imprecise, non-numerical information. (ie. If it's cold, then turn the heater high.) On the other hand, computers usually need precise mathematical equations to make decisions. (ie. y = ax + b, where y is value set for the heater, x is the current temperature, and a and b are constants)

Fuzzy logic is the emulation of human reasoning on computers. Since it was introduced by Lofti Zadeh of Berkeley in 1965, it has become popular in various applications, ranging from space shuttle control to industrial process control.

The key concepts in fuzzy logic are the linguistic variable and membership function. A linguistic variable is a variable whose value is not a number but a word. (ie. The linguistic variable "temperature" might have the values "hot," "cold," "freezing," and so on). A membership function describes these linguistic values in terms of numerals. For example, to describe the word "cold", we can say, "Any temperature above 60 degrees is not cold at all; as the temperature lowers, the coldness gradually increases; below 40 degrees, we can say it's definitely cold." To describe the above as a function, we make the x-axis as temperature in degrees, and the y-axis as the "membership" of a given temperature in the definition of "cold." At temperatures above 60, the membership (or "degree of truth") is 0, meaning those temperatures above 60 don't belong to the definition of "cold" at all; at temperatures below 40, membership is 1, meaning that they definitely belong to the definition of cold; we will probably have a line between 60 and 40 degrees, to show the gradual increase in membership of the temperature in the definition of "coldness." The linguistic variables and their membership functions are what allow fuzzy logic to perform the imprecise, non-numerical reasoning performed by humans.

To perform fuzzy logic reasoning, a set of IF-THEN rules that emulate human reasoning needs to be specified. An IF-THEN rule is a simple statement that expresses cause and effect. For example: IF the temperature is cold, THEN turn the heater high; IF the temperature is hot, THEN turn the heater low. When an input is given, each IF statement is evaluated to a degree of truth. This then determines the extent of which the THEN statement will be enacted. For example, suppose the input is temperature = 41 degrees. The n the IF statement "temperature is cold" will probably be true to the degree of .9 and the IF statement "temperature is hot" will be true to the degree of .1. The decision, or output, of the system will then be "turn the heater 90% high and 10% low." Basically, this is how humans reason and how we would like the computer to reason. There basic variables involved in the decision-making are words (ie. hot and cold), not numbers.

What is ARBITER?

Arbiter is a 2-input 1-output general purpose fuzzy logic controller. It has three built-in fuzzy IF-THEN rules. All membership functions can be specified by the user upon setup. In other words, Arbiter can emulate human reasoning for any application that can be described by three IF-THEN rules, each with two linguistic variables for input and one linguistic variable for output.

An example of an application is the control of a robot racer. Suppose a robot is to move through an obstacle course at the fastest speed possible. It has two sensor inputs, an odometer speed reading and a "distance-to-obstacle" sonar reading, available for decision making. If a human were to reason for this robot, he could come up with some IF-THEN rules with "odometer speed" and "distance-to-obstacle" as input linguistic variables and "acceleration" as output linguistic variable:

  1. IF "odometer speed" is fast AND "distance-to-obstacle" is short, THEN "acceleration" is very negative.
  2. IF "odometer speed" is slow OR "distance-to-obstacle" is long, THEN "acceleration" is very positive.
  3. IF "odometer speed" is fast OR "distance-to-obstacle" is short, THEN "acceleration" is slightly positive.

Arbiter encodes the IF-THEN rules and membership functions (for the linguistic values: fast, slow, short, long, very negative, very positive, and slightly positive) such as the ones above during load-phase. During the operational phase, Arbiter can take any two inputs of "odometer speed" and "distance-to-obstacle" and determine the smartest human-like decision for "acceleration."

Fuzzy logic was first implemented in hardware in 1986 by Togai and Watanabe of Bell Labs. The main motivation for implementing fuzzy logic on hardware over software is speed. Most fuzzy logic applications, such as space shuttle control, require decision-making in real-time. In practice, a huge set of IF-THEN rules may slow down the reasoning process in a software implementation. In hardware, IF-THEN rules can be computed in parallel, drastically improving speed performance even as the system scales.

Arbiter is a proof-of-concept testbed for implementing a general purpose fuzzy controller in hardware. The hardware aspect makes it fast; the general-purpose aspect makes it flexible like software. We aim to demonstrate that the best of both worlds can be achieved for fuzzy logic applications.


Overview Description Circuit Design PLA Descriptions
Circuit Layout Timing Analysis Testing Summary
"-"