bitter_engineer: "Like proportional control systems, the fuzzy logic controller I have described above can get really hosed if you have some delay in your system's feedback...there are times when it can still be beaten by the good old PID control."

This is true of a fuzzy logic controller whose inputs are simply one or more error signals (or the equivalent). A fuzzy controller is incapable of calculating derivatives or integrals of its inputs, and thus is working with less information than a classical linear controller. From a frequency domain standpoint, such a controller has neither poles nor zeroes, so there's no hope of compensating for undesirable system dynamics.

However, it is possible to design a fuzzy logic controller that is equivalent to any PID controller within some arbitrary range, by providing three inputs to the controller--the error signal and its integral and derivative--and choosing the fuzzy sets so that the gains are equivalent to the PID gains in the desired range of equivalence. This can be extended to linear control in an arbitrary number of state variables by providing each state variable (or an estimate) as a controller input.

This method can be used to design a nonlinear controller by starting with a linear design (probably based on a nonlinear model linearized about an operating point), creating an equivalent linear fuzzy logic controller, and then tweaking the controller's operation outside of the linear region. The "tweaking" can be done automatically in a program like Matlab by creating a simulation using the full nonlinear model, defining a performance metric for the simulation, and running an optimization routine to find the controller parameters that result in the best performance. (Subject, as always, to local minima problems.)