Design Article
Designing DSP-based motor control using fuzzy logic
Byron Miller
3/3/2008 4:55 PM EST
Variable-speed drive (VSD) motors provide hope for greatly reducing energy consumption and reliance on foreign fuels. In one approach, digital signal processors (DSPs) are being used to create a new generation of VSD-based controllers for motors such as brushless direct current (BLDC) motors.
However, these motors present challenges. Controlling motor speed on a BLDC motor is complicated when using traditional proportional, integral, and differential (PID) controllers because they rely on a complex mathematical model and are computationally intensive. An alternative approach is to use fuzzy logic (FL) algorithms to eliminate the need for complex math formulas and provide an easy-to-understand solution. FL motor control also has a shorter development cycle compared to PID controllers, and thus a faster time-to-market. This article discusses the process of using FL algorithms to control BLDC motors using a Texas Instruments c28xx fixed-point family of DSPs.
BLDC control model development
Before constructing the FL engine, we must first develop a model to base the design on. FL controllers use heuristic knowledge and express the design using a linguistic description of the model. Rather than develop a model from scratch, we'll use the PID controller model as a starting point. Once developed and implemented, the FL controller is improved by adjusting its parameters.
In general, there are three design steps for developing a FL BLDC controller:
1. Define inputs, outputs, and the controller's range of operation.
2. Define fuzzy membership set functions and rules.
3. Tune the engine.
Figure 1 shows the block diagram of the BLDC controller model.





zippyfuzz
3/6/2008 2:11 PM EST
Hear hear!
It's wonderful to see a well written article on fuzzy logic.
I get laughed at when I talk about fuzzy logic to US engineers. Crisp logic of the huge volume necessary in dealing with the real world is just going to collapse on itself.
Tx,
Tim McFadden
Sign in to Reply
EEH
3/7/2008 1:43 AM EST
I took a course in modern control theory in graduate school and we talked about fuzzy logic. Really there isn't anything that fuzzy about the logic, it's just that you can have more than two discrete values for your parameter. There are times when this is useful, but the design complexity goes up. People that have succeeded without it may be slow to accept unless there is a particular advantage such as lower chip count and BOM.
Sign in to Reply
pteryx
3/7/2008 4:35 AM EST
I was experimentig with fuzzy logic in a DC motor speed loop. Properly implemented and tuned PI controller gave better results and was easier to tune and much easier to implement then a fuzzy controller. In my opinion fuzzy controllers are good when dealing with fuzzy problems, but I really wonder whether a BLDC is the case ...
Sign in to Reply
jwpayne
4/28/2008 1:18 PM EDT
I'm confused. I've never known a fuzzy controller to be more computationally efficient. I don't see how this example is an exception to that. The defuzzification process requires the fuzzy outputs to be multiplied by coefficients and then summed. This all follows selection of the appropriate rule. Many processors can multiply in 1 or 2 machine cycles. I'm seeing 7 multiply/divides for defuzzification. Granted, the sets can be created so that only 2 members have non-zero values for any input, thus reducing the number of multiply commands. However, this still requires the outputs to be tested to determine if they are zero, which takes time. A PID controller can be implemented with 5 multiply/divide commands. A few IF statements to window the integrator and/or limit the controller output may also be added. Of course I'm using the assumption that fewer instructions means less power consumption, but that is typically the case. It also means less time is needed to implement the algorithm, allowing the clock to run slower.
Don't get me wrong, I like fuzzy controls. In some cases, a fuzzy controller is the best solution. I just don't see how the example supports the statement posited at the beginning of the article. Please correct me if I've missed something.
Sign in to Reply
vassu_dandasi
10/14/2008 7:54 AM EDT
Nice article..Is it possible to get this article to my mail id...thanks
Sign in to Reply
ditocesar
2/8/2009 1:07 AM EST
Sir,
Iwould like to know how can i get the program fuzzy logic for using in TMS320F2812
Sign in to Reply
hayley_c
9/25/2009 2:23 AM EDT
Sir,
I would like to know do, do you think fuzzy logic controller possible to be implement using tms320c6713 for power system protection purpose?
Sign in to Reply
Maruf025
10/27/2009 8:06 AM EDT
Sir I am recently work with speed control of an induction motor by varying the pulse width of PWM signal with the help of TMS320F2812. Can u suggest me how can I generate PWM signal through TMS320F2812
Sign in to Reply
Maruf025
10/27/2009 8:08 AM EDT
also how can i get the program algorithms
Sign in to Reply