# bldc motor torque controller

I have a working custom motor controller for three phase sensorless bldc motors. I've implemented open loop speed control, where the duty cycle is changed to change speed. I've also implemented a closed loop PI speed controller where an RPM is set as a set point. Now I would like to design a controller that closes the loop around torque/current. I know this is possible with Field Oriented Control, but I need to spin at rather high RPM's so I'm trying to avoid this more complex algorithm.

I have been trying to use one phase current measurement to estimate the average current going to the motor and vary the duty cycle based on current error. I am having some problems with stability and can't decide if it's due to a poor estimation of dc current, or if the transfer function from voltage to current might require some more controller design than I actually did(read none).

Main Questions: Is this a valid approach to BLDC torque control, if not why specifically? Are there alternatives to FOC for BLDC torque control?

Edit:

With Guy Sirton's info, I suppose I am going about it backwards from what is typical. I hoped that if I only wanted to maintain a constant bus current I could slow the current loop way down (100 - 300 hz)and make it my outer loop. With this in mind I just used the phase current to approximate the current coming from the power supply. It may be true that due to the dynamics of the system, this slow measure of current is not sufficient. It also may be true that I just need to put more thought into the controller, since there is really another integral between the input and the output(speed being proportional to voltage and current proportional to acceleration). What is mentioned in the drivetechinc article at the very end is what I understood to be FOC.

• You can do this sort of outer control current loop but the bandwidth should be very low and it would be of limited usefulness (just calibrating your PWM to current). Also keep in mind if you're not moving your average current on one phase isn't going to be a useful measure. Commented Mar 12, 2013 at 23:32
• Also consider that during acceleration the current would be much higher than at constant velocity. So "constant bus current" doesn't make much sense. If you need a certain current (power) to maintain a certain velocity your velocity controller will take care of that. Commented Mar 13, 2013 at 3:02
• This last comment is what I was thinking when I said speed is proportional to voltage and current is proportional to acceleration. I really just wanted to maintain the same torque output if the load changed. IE, if the load increased the speed would decrease. However, it appears I may have to go back to the drawing board on this one.
– Matt
Commented Mar 13, 2013 at 18:06
• Right. But you can't have both constant current and constant velocity. Those loops will fight each other. What you're describing is current loop only, which is fine, but you'll probably want two feedbacks and much higher bandwidth. Commented Mar 13, 2013 at 19:52