# Why Have Non-Zero Timing on a BLDC?

I've heard you can go faster in one direction if you adjust the timing, but do not understand why? I have a sensored bldc motor with a 30deg shift of the hall-effect sensors, tried going forward (CCW looking into motor face plate) at 95% duty cycle and pulls about 6A. Tried going in reverse (CW) at 95% duty cycle and it begins pulling ~15A before I pull the battery plug as quickly as I can. I also tried going at 80% duty cycle in both directions and things seem normal. There seems to be a dangerous threshold that I can cross going one of the directions with timing.

Are there any disadvantages to having 0deg-timing?

I scoped the gate drive lines and everything is as expected -- no shoot through, looks same as waveforms when going forward. It would seem that something is shorting but I am not sure how.

Why might a ton of current all of a sudden be drawn for only one of the directions at the same duty cycle?

-

Advancing timing is a practice common to electric motors and internal combustion engines. The purpose is to increase efficiency. In other words to maximize the power out for a given power in.

In electric motors, the amount of torque produced in relation to the rotor field vector with respect to the stator field vector is given by:

$\tau = \tau_{max}~sin~\theta$

Where:

$\theta =~$Angle between the two field vectors

When $\theta = 0°,~\tau = 0$ (no torque means no movement) and when $\theta = 90°,~\tau=\tau_{max}$. For all other angles between 0° and 90°, $\tau$ is some percentage of $\tau_{max}$.

The problem here is that as the rotor spins, the interaction between it's magnetic field and the stator's cause the fields to distort and move from their normal non-rotating positions. The faster it spins, the more the fields distort. The best picture I could find of this phenomenon actually comes from the Wikipedia article on brushed DC motors. The the principle is the same for brushless:

By advancing the timing, you are ensuring that commutation occurs when the two fields are at 90° to one another in order to maximize torque production at maximum speed. However, since the position of the fields will change with speed, this timing advance is only good for one particular speed in one particular direction. For all other speeds your efficiency will be less than optimal at the angle between the two fields decreases from 90°. And for the reverse direction, you will be much less than optimal requiring much more current to produce the same amount of torque.

Depending on your requirements, a 0° timing advance may not be such a bad thing. If you need to be able to reverse direction, but don't care as much about power consumption, maximum speed, or maximum torque, then a 0° timing advance may be a good compromise. However, if you need to produce maximum torque at maximum speed without drawing excessive current. Then advanced timing is a must.

### A note on what causes the distortion

The distortion occurs because of the laws discovered by our friends Lenz and Faraday. In a simple motor, you have a coil rotating in a magnetic field:

As current passes through the coil, it causes a generated magnetic field around the wire. As the generated magnetic field interacts with the static magnetic field, their forces push on one another and the fields distort:

As the coil rotates, it moves in and out of the magnetic field. When the wire is in the magnetic field, the field distorts. When the wire is out, the field snaps back to normal. This snapping back take some amount of time. As the coil rotates faster and faster, the field has less time to snap back to normal. So the faster the motor turns, the more distorted the field remains.

### Somewhat related

I sometimes find that people have an easier time understanding internal combustion engines as opposed to electric motors. Maybe it's because people have a better understanding of explosions versus rotating magnetic fields. Or perhaps because gasoline cars are still so much more common. If you're one of those people, have a look at this How Stuff Works article. It explains the reasons behind advancing the timing in an internal combustion engine. There are a lot of similarities between the two and the analogy may be helpful to your understanding.

-
Can you say more about what causes these field distortions? –  Phil Frost Jan 10 '13 at 22:02
@PhilFrost I added an explanation of a simple case. But the principle is the same for more complex motors. –  embedded.kyle Jan 11 '13 at 15:12
Huh. It makes sense that the magnetic fields would add, distorting the overall field. But what effect is responsible for it taking more time to "snap back" as the motor turns faster? It this because of the inductance of the windings, and the increasing back-EMF with speed, or something else? I'm not sure if my answer is wrong, or just explaining it differently. –  Phil Frost Jan 11 '13 at 17:47
Wow, you guys are great! Thank you so much. I have two motors working together that are not mechanically synced. One is always spinning forward, one is always spinning in reverse. My top speed is then going to be limited by the minimum of the two motors. 0deg timing then makes sense one these two motors correct? –  tarabyte Jan 11 '13 at 18:17
@PhilFrost It's not that it takes more time to snap back. It's that before it has time to snap back fully the coil comes around and distorts it again. Let's quantify the distortion as a value between 0 (field lines parallel) and 100 (maximum distortion). When the coil is parallel to the field and stationary the distortion is 100. When the coil is perpendicular and stationary the distortion is 0. At speed x the field will distort to 100 when the coil is parallel then snap back to 25 before the coil comes around and distorts it again. At speed 2x, it only has time to snap back to 50. –  embedded.kyle Jan 11 '13 at 18:19

The torque generated by a motor is a function of the difference between the angle of the magnetic field generated by the coils and the field generated by the magnets. Because the coils' magnetic field cannot respond instantly to changes in voltage, the angle of the field generated by the coils will essentially represent what the controller was requesting a short time previously. As the motor speed increases, that lag represents an increasing angle, to the point that the angle between the coils and the magnets diminishes and with it, the ability to generate more torque.

Adding an offset of, e.g., 5 degrees to the sensors would have the effect of increasing the angle between the motor and the coils by five degrees when the motor was moving in on direction, and decreasing the angle when it was moving in the other. This may thus make the motor work more effectively in one direction, but less effectively in the other. Note that because the magnets are switched in discrete steps, the angle difference at rest may vary between 30 and 90 degrees when there is no offset. Adding a 30-degree offset would cause the angle difference to vary between 60 and 120 degrees in one direction (good), but between 0 degrees and 60 degrees in the other (bad). Note that if the angle difference is zero degrees, your motor will try to stay in its current position instead of moving--oops.

-
Some controllers might use discrete steps, but better ones will use PWM to generate smooth waveforms. –  Chris Stratton Jan 10 '13 at 20:29
@ChrisStratton: If a controller is capable of predicting when commutation events are going to be received from the sensor, and change the winding currents based on such predictions (necessary for PWM, and useful even without it), I would expect any timing advance would be better accomplished by controller programming (which could adjust the amount of advancement based on speed), rather than by physical sensor adjustment. I would think sensor adjustment would mainly be useful for with motor setups where commutation was unconditionally controlled by the position sensors. –  supercat Jan 11 '13 at 19:24

To literally answer the question, a "ton of current" would be drawn in the direction where the timing offset was pathologically backwards from what was needed. Instead of synchronizing with the rotational state and doing "work" only to overcome losses and shaft load, the mis-synchronized drive would end up to a large degree fighting it's own efforts at maximum power input - not entirely unlike like trying to drive the motor with the rotor locked so that it cannot turn. The motor might still turn, but it would be extremely inefficient since most of the power applied at any instant in time would be fighting the existing state, rather than modifying that state only slightly to transmit power to the mechanical load.

Offset sensors (or to a degree, even having sensors rather than measuring back EMF) tends to point towards an older, less internally sophisticated controller. A modern microcontroller based design could handle the offset in software, and apply it appropriately for either direction of rotation.

-