ProportionalIntegralDifferential Control (PID Control or PIDC) dates from the 1890's and was originally developed as the best method for stable feedback control of complex linear dynamic systems, since only analog control methods (originally mechanical/pneumatic and then electronic) were available at that time, and they could readily generate the desired PID function responses. Thus it was (and is) widely used, even though, being a linear control technique, it can have significant limitations in achieving optimum system response in real systems with nonlinear or hysteretic characteristics.
Of course those continuous PIDC analog functions are now also emulated in a quantized manner by a digital processor but it still has most of the same limitations that the analog approach has.
Fuzzy logic control is a digital only (and basically nonlinear) approach which is readily performed with a microprocessor, but not by analog circuits. In that respect, and because it's generally easier to understand and can give better control of real systems, Fuzzy Logic is a good candidate to consider for any microprocessor feedbackcontrol system.
Since not many people are familiar with Fuzzy Logic I decided to write this short article to cover some basics and indicate why it should be considered in place of PID for feedback control systems.
One reason I like Fuzzy Logic for control is because the main loop is just a simple series of IfThenElse statements, whose functions are generally easier to understand than that of a PIDC program.
With digitally emulated PIDC, the digital processor code is generating a quantized approximation of the continuous analog proportional, integral, and differential functions of PIDC and it's not always apparent from looking at the code, how that is working, or how the code might need to be changed to improve system response.
A Fuzzy Logic program is written the way a (fast) human operator might tweak knobs or switches to control a system (e.g.
If the temperature is slightly high Then slightly turn down the heater power Else
If the temperature is slightly low Then slightly turn up the heater power Else
If the temperature is correct Then maintain the heater power Else
If the temperature is moderately high Then moderately turn down the heater power Else
.........................
Note that controlling the heater power could be done by changing a lowfrequency PWM on/off dutycycle.)
Fuzzy Logic operation is typically more intuitive than PIDC and it's usually apparent what needs to be tweaked or where more IfThenElse statements are needed to optimize the system response.
That's not generally true with PIDC, except perhaps if you are reasonably experienced in tuning PIDC systems.
PIDC assumes the system behaves in a linear fashion since it uses linear feedback functions, thus it can be difficult (or impossible) to stabilize a nonlinear system with PIDC alone.
Fuzzy Logic doesn't depend upon the system being linear, and thus usually can be designed to more readily handle nonlinear responses (e.g. a thermistor temperature sensor) or discontinuities / hysteresis (mechanical backlash) in the system.
In a real world PIDC system you also have to deal with transient saturation issues, such as integrator windup, which a Fuzzy Logic system does not have.
Here are a couple of good links for Fuzzy Logic control to help give you a better feel for it:
Seattle Robotics Fuzzy Logic Tutorial
Building a Fuzzy Logic Controller
Here's a little blurb (post #17) by someone who tried Fuzzy Logic for the first time on a pressure/flow control system (post #12), which I would think is a somewhat nonlinear system, and it worked well, better on his first iteration than the PID control loop he had been working with.

Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.Dismiss Notice
Fuzzy Logic Control  Why use it? 20160205
Fuzzy logic is an easy to use technique that can replace PID control loops using microcontrollers