Title: Fuzzy Logic Shuttle Controller
Author: David J. Stein, Esq.
Version: 1.0
Written: Fall, 2004


Abstract: This application involves a controller based on fuzzy logic, set in the context of a thrust mechanism for a space shuttle. This model has two components for the movement of the shuttle – thrust and throttle – both of which vary between -1.0 and 1.0. The goal of the algorithm is to attain a thrust of exactly 0.0 via throttle adjustments, and to do so as smoothly as possible. The fuzzy variable sets underlying the simulation modify the throttle to optimize the thrust of the shuttle.

Installation Instructions: Nothing unusual - simply run the enclosed executable. The application depends on a couple of graphics (.png files) collocated with it, so don't move or delete these files.

Operation Instructions: This application is quite simple - the thrust and throttle for the shuttle may be adjusted by clicking in the "Thrust" and "Throttle" control boxes at bottom left. The user may alter both of these in order to adjust the properties of the shuttle, but the underlying control function solely manipulates the throttle control.

This application features four different fuzzy-logic variable sets:

The basic 5x5 set

Throttle:
Thrust:
Negative LargeNegative SmallZeroPositive SmallPositive Large
Negative LargePositive Large
Negative SmallPositive Small
ZeroPositive LargePositive SmallZeroNegative SmallNegative Large
Positive SmallNegative Small
Positive LargeNegative Large

The expanded 5x5 set

Throttle:
Thrust:
Negative LargeNegative SmallZeroPositive SmallPositive Large
Negative LargePositive Large
Negative SmallPositive BigPositive Small
ZeroPositive LargePositive SmallZeroNegative SmallNegative Large
Positive SmallNegative SmallNegative Large
Positive LargeNegative Large

The full 5x5 set

Throttle:
Thrust:
Negative LargeNegative SmallZeroPositive SmallPositive Large
Negative LargePositive LargePositive LargePositive LargePositive SmallZero
Negative SmallPositive LargePositive LargePositive SmallZeroNegative Small
ZeroPositive LargePositive SmallZeroNegative SmallNegative Large
Positive SmallPositive SmallZeroNegative SmallNegative LargeNegative Large
Positive LargeZeroNegative SmallNegative LargeNegative LargeNegative Large

The basic 7x7 set

Throttle:
Thrust:
Negative LargeNegative MediumNegative SmallZeroPositive SmallPositive MediumPositive Large
Negative LargePositive Large
Negative MediumPositive Medium
Negative SmallPositive Small
ZeroPositive LargePositive MediumPositive SmallZeroNegative SmallNegative MediumNegative Large
Positive SmallNegative Small
Positive MediumNegative Medium
Positive LargeNegative Large

Each fuzzy variable control set operates on a different shuttle. Any of the four shuttles can be displayed, and several of them can be displayed at once. This yields the most interesting result, since it demonstrates the effects of different variable sets on the overall movement of the shuttle (the magnitude of the oscillations, the amount of time required to stabilize the shuttle, etc.)

Comments: This is a pretty simple application - quite straightforward. Students of object-oriented design may be interested in the structure of the application, which quite nicely abstracts the problem into the interaction of different kinds of objects.

Application History: This application was written for an artificial intelligence class taught by Dr. Toshinori Munakata in Fall, 2004.

Questions/Comments: Please contact David J. Stein, Esq. via email at djs10@po.cwru.edu.

Terms and Conditions of Use: Please see the enclosed "License.html" file for terms and conditions of use of this software package.