Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

BLDC Motor Control 2

Status
Not open for further replies.

austinc3

Electrical
Nov 17, 2002
5
0
0
US
I'm trying to control a BLDC motor with a dsp. To do this, I'm using three loops: Position, Velocity, and Current (Torque). I have had some succes with the Velocity loop, but i am having trouble with the other two loops. If anyone has an algorith for the current or position loop, i would really appreciate it. - Chris
 
Replies continue below

Recommended for you

Another question: If i'm only using an encoder and a dsp with the BLDC motor, do i need to use back emf for position sensing?
 
Suggestion: Read carefully 6. Enhanced Sensorless Algorithms .8
6.1 Direct Back EMF Measurement ..............................8
in the second posted link. It states that the direct back emf measurement does not need a speed sensor. This means that the speed sensor is needed if you do not measure back emf.
 
The standard structure for such a control application are nested control loops starting with the current loop. So it looks a bit strange to me that you are getting good results with the velocity loop without a proper current control loop.
 
Suggestion: It appears that the original posting refers to the current control loop over torque as "current (torque)."
 
I'm using a motorola 56F805 EVM and Power Stage. My feedback device is a quadrature encoder. The motor is a 1/4 hp BLDC motor. I'm a senior at college and this is my senior project. I'm an embedded systems guy, don't have any experience with motors. So the coding is not the problem but understanding how to control the whole thing is.
 
By software simulation, i assume you're talking about matlab. We haven't done any of that, but we're using an application that was created by motorola and has been proven to work. The application only has one loop, velocity. We have to implement the other two loops. I have had control theory, the block diagrams of the system make sense, i'm just having some trouble understanding motor control with commutation and vector controls with PWM. Its overwelming because our group doesn't have a mentor with PWM/Vector controls experience.
 
Well, yes, Matlab is a good simulation program, if you have the Power System Blockset and the Control Blockset to go with it; at least it is for this problem.

I was actually thinking of Qxdesign for the control simulation. If you aren't familiar with it, it is available for free at
OK, let's see if I can help any, or just make it worse. A BLDC controller contains 3 control loops. At least all that I know about. The encoder ( or resolver if you want textbook terminology ) feeds the gating controller (loop 1) and the the summer for speed desired (loop 2). The output of the summer feeds the "speed controller". That feeds another summer, which takes the difference between the speed controller output and the DC current. The output of this summer feeds the "current controller" (loop 3) which feeds back to the gating controller.

Does any of this help? I do controllers for AC drives, so I don't have any good references for DC motor control.
 
Hi to all, nice and interesting notes.
You can break the problem in two parts to avoid mixing signals: 1)The control scheme and its implementation and 2)the power section regarding the BLDC. In the control scheme as electricuwe says, the inner and fastest loop is the current one. Over this loop goes the speed and at the upper loop is the position loop. This control scheme is the same and it is proven over the years that it will work again(at least in my 17 yrs experiencie with DC drives). Some things can help you to implement are use multirate: a)Sample faster the current and its loop. The DC motor model can be used for BLDC Motor since it works under the same linear principles to control the torque-current relationship, P-I is enough. b) sample at half (good starting point) rate the speed with your decoder circuitry for the ENCODER is not a good idea, a voltage loop can be better, PID necesary. c) sample at last (a quarter of current sampling or less) the position. Here you need a feed-forward compensation to achieve stability with pole cancelation P-D. The litter integral gain, the better.
For the power electronics, there is a lot of paper for refrence.
Hope this can help, and sorry for the redaction english is my second languague
 
Status
Not open for further replies.
Back
Top