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.
Best Answer
Implementing a current loop should not require field oriented control. You should be able to have a PI controller driven by a current feedback (e.g. see here: http://irtfweb.ifa.hawaii.edu/~tcs3/tcs3/0405_Servo_review/onaka_docs/2000_articles_control.pdf and here: http://www.drivetechinc.com/articles/curbldc3.pdf ). I would think you need two independent loops/feedback for a three phase system. What speed are you running your loop at? What are the stability issues you're seeing? You should tune your current loop with all the other loops disabled.
Since you mention "average" current and measuring on one phase I'm wondering what exactly you're doing. Closed loop current control is traditionally controlling the "instantaneous" current and is the highest frequency/bandwidth, innermost, loop in a closed loop motion control system.