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!

low-speed positioning of brushless dc motor 2

Status
Not open for further replies.

blcpro

Electrical
Aug 19, 2003
82
0
0
US
Anyone know the best control technique for low-speed positioning of a brushless dc motor? I'm trying out a dsPIC to learn a little about controlling BLDC motors. So far I can easily control the commutation and velocity, but I'm not sure about slow-speed operation and position holding. My system is using the typical 6 PWM signals and has hall feedback. Eventually I'll build a system which also utilizes the quadrature encoder as well.
 
Replies continue below

Recommended for you

The sensorless BLDC motor doesn't work well at low speed:
The back-EMF is too noisy.

With position sensor you can work at low speed, of course
the amount of cogging and the positional accuracy depend on the resolution of the sensor.

Hall is low resolution.
 
Thanks nbucska,
I have a 1000 count per revolution (x1 mode) optical encoder. This gives a very high resolution positioning information. What I don't really understand it the technique used to move the motor very slowly. With PWM of the driving FETs, I can't seem to get the motor to move slowly with high torque, which is what you would need for a positioning application, right? Any thoughts?
 
well, you can get more torque with servo motors.

About positioning:
Assume 2 pole ( N & S) perm. magnet rotor, 3 phase stator
and no load. You may drive the coils with analog or PWM.

If Ix is on and Iy =0 the rotor will line up with
phase X. If Ix = Iy, the rotor will be halfway between X
and Y. Since the attraction changes with the position,
for each current ratio there is a position when the forces
are balanced. The position vs current ratio is closer to linear in the
case of servo motor.

You can linearize it with feedback control system
unless the torque is unsufficient.
 
Within the industry, BLDC has come to mean Hall/6 step comutation. AC servo is usually used for Sine drive brushless servos.

A motor is a voltage controlled speed device. In order to control position you have to implement a position loop feedback controller. In the simple implementation, you keep track of the motor position by counting encoder pulses. The target position is subtracted from the actual position to determine the error. The error is multiplied by some gain factor and that is used to set the voltage on the motor.

In order to make things work really well, it gets more complicated (using current loop control and adding Integral and Derivative Gain).
 
The servo motor is a precision DC or BLDC motor designed
for positioning application. Here it is important to
design the geometry of the poles so that the torque
generated by a given pole changes as linearly as possible
with the position relative this pole. This assures
that the torque is close to constant if the sum of
the currents in two adjacent poles is constant,


Sreid:
Within some -- not all -- industries.
About the rest:
Not exactly voltage controlled speed I would
say current controlled torque. ( including R, back-EMF,
mass, etc into the model)






<nbucska@pc33peripherals.com> omit 33 Use subj: ENG-TIPS
Plesae read FAQ240-1032
 
The position loop with optical encoder (x4 mode is preffer) with trapezoidal (i.e. Halls based commutation) allows to reach required accuracy (depends from encoder resolution) with positioning - see Elmo, Copley Controls,AMC servo amps.
 
how would a permanent magnet synchronous motor differ from the BLDC? Also, I am currently testing out the PICDEM MC LV Development Board (DSC) from Microchip Technology, because it was a cheap way for me to evaluate the BLDC control technology. Would positioning be possible with this kind of driver stage? (assuming the quad encoder is used)
 
Any BLDC motor can be used as servo motor but perhaps
with less accuracy, more torque variation vs. position,
longer settling time etc. The servo-motor was optimized for
positioning, the common BLDC for some other application.
 
blcpro:

Permanent-magnet synchronous motor (PMSM) is a technical term. Brushless DC (BLDC) motor is a marketing term, and hence not so precise. You will see IEEE technical papers written about PMSMs by engineers for companies who sell BLDC motors and AC servo motors (PMSMs encompass both.)

The term "brushless DC motor" was invented by marketing people to sell the idea that this motor with the appropriate drive could be a drop-in replacement for a brush DC motor and drive. Technically, it's a horrible name, because a BLDC motor is an AC motor. That is, for movement in one direction, you must feed the motor AC voltages and currents. Fundamentally, these were AC synchronous motors, usually with a permanent magnet field, with one or two feedback devices (halls, tach, resolver, encoder) attached to govern the commutation and possibly servo control.

The early systems were square-wave ("six-step" for 3-phase) commutated off the hall sensors for reasons of simplicity. The motors were typically "trapezoidally wound" -- that is, their back-EMF profiles were roughly trapezoid-shaped -- to minimize torque ripple with square-wave commutation.

Starting with high-precision servo systems, these systems increasingly employed sinusoidal commutation working off a high-resolution feedback device such as a resolver or an optical encoder. The motors optimized for this scheme are "sinusoidally wound", with sinusoidal back-EMF profiles, more like the old AC synchronous motors designed to operate off the AC lines. Marketing groups tend to call these "brushless AC" motors, or "AC servo" motors for positioning applications. But these motors really only differ subtly from "brushless DC" motors in their winding patterns.

In servo systems, the pendulum has swung very heavily toward the sinusoidally wound motors with sinusoidal commutation, because you already have the high-resolution position sensor for the servo loop, so the added cost of the sinusoidal commutation algorithm is minimal. In systems without a high-res sensor, six-step commutation off hall sensors with trapezoidally wound motors (which offer higher average torque in the same frame, but higher torque ripple) are still pretty common.

Curt Wilson
Delta Tau Data Systems
 
Thanks cswilson! You earned your tipmaster star! I'll have to do some more reasearch on the sinusoidal control it seems. Although it sounds similar to how you would microstep a stepper motor (currents are sinusoidal when motor is spinning). That at least I have a lot of experience with. If not, well, I'll just have to learn something new. :)

thanks again!
 
For closed-loop sinusoidal commutation of a PMSM, you get the rotor's field angle by reading the encoder (properly referenced -- I'll get to that in a moment) and setting the stator's magnetic field orientation perpendicular to that, in the direction you want to create torque. The magnitude of the stator's magnetic field is determined by the servo loop, and can vary cycle to cycle.

In microstepping, by contrast, you set the stator's magnetic field orientation based on your commanded position. The magnitude of the field is constant, at least in a piecewise sense. You don't know the rotor's orientation, so you carefully characterize your command trajectory so as to keep the angle between the two fairly small (usually within 30 degrees electrical) in normal operation. Limiting yourself to a nominal 30 degrees gives you a 2-to-1 margin, since torque per unit current is proportional to the sine of the angle between the rotor and stator fields.

Using feedback in the closed-loop commutation permits us to run always at the optimum 90 degree angle, which you dare not ever do in an open-loop technique like microstepping.

For the closed-loop commutation, you need to know the rotor's orientation in an absolute sense. An incremental encoder cannot give this to you. Many people use the hall sensors on power up for an approximate sense, then correct on the first hall signal edge encountered, or the encoder's index channel.

Curt Wilson
Delta Tau Data Systems
 
Status
Not open for further replies.
Back
Top