I am driving an air core motor using PWM control from a microprocessor. The position of the air core is dictated by the combined magnetic field created by applying 2 currents to 2 coils (sine coil and cosine coil):
tan theta = Isin / Icos
The current in each coil is being created by PWM - the maximum PWM duty cycle is 75% and the minimum is 0%.
As I slowly change the values of the sine and cosine currents through 360 degrees, the magnet follows the desired position very nicely. However, around the 0, 90, 180 and 270 degree positions, the needle slows down as it passes through the quadrantal position then speeds back up to the normal rate of change in position (even though I am changing the desired position at a constant rate [0.1 degrees change per step]).
My question is, can you think of a reason why this is the case?
EDIT: Having inspected the air core, the magnet is surrounded by both coils, as shown.
The physical arrangement is shown here:
The patent here (PWM driver patent) describes an issue that appears similar, however, it is caused by a microprocessor being unable to accurately generate a PWM waveform when close to 0% and 100% duty cycles (back in 1991). We have a hardware PWM module, so there is no issue with this.
What is the force on the needle? Is it constant throughout 360 degrees rotation, or does it vary according to its angular position?
We are attempting to change the desired position (combined magnetic field of the coils) at a constant rate. It looks almost as though the force on the needle is less when it is nearly aligned with one of the coils and when the desired position is not close to being aligned with one of the coils that the force is greater.