Brushless control

From DIDEAS Wiki
Revision as of 16:54, 21 August 2009 by Ceb (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

If IAx is the actual current in each coil(x), then the PI equations are:

Vx = kp*(Ix - IAx) + ki * intg(Ix-IAx)

Note, that the integral needs to be limited to avoid "wind up". I genrally limit the wind up so as to contribue at most 100% to the PWM voltage.

The primary problem with this time of control loop is that it is bandwidth limited. The freuqnecy of the voltage is at least that of the rotor rotation rate (or with a 4 pole motor, twice the freuqnecy). At high rotor speeds, the PI output has a phase shift WRT desired output. This has the effect decreasing efficiency, as in the motor the magnetic field now longer is in the direction that creates maximum torque.


Field oriented control solves this phase shift problem by transforming the control loop into the stationary reference frame of the rotor. Clark and Park transforms are involved here.

I won't try to explain the full theory but it can be easly outlined:

  • Measure two coil currents: Iu and Iv. These currents are 120 degrees apart and are in the stator frame.
  • Transform (Clarke) them into in a pair currents (Ialpha, Ibeta) that are orthogonal. These currents are still time varying and in the stator frame.
  • Transform (Park) the orthogonal currents (I alpha, beta) into the rotoating, rotor, refrence frame. The new currents are called Id and Iq and are actually now constants when the 3 phase currents are the correct sine waves! The Iq 'current' produces torque, and the Id 'current' applys a force that compresses the magnets. This is useful as it can me used to change the effective speed an torque constants of the motor, and also be used to dump (regen) energy into the motor.
  • Apply a the PI control loop to the Iq and Id (actual) currents.

Vq = kp * (Iq_desired - Iq_actual) + ki * intg(Iq_desired - Iq_actual) Vd = kp * (Id_desired - Id_actual) + ki * intg(Id_desired - Id_actual)

Normally Id_desired is zero.

  • Transform (w/inverse parke) Vq,Vd back into the stator frame. The result is Valpha, Vbeta.
  • Transform (w/inverse clarke) the orthogonal Valpha, Vbeta into the 3 phase frame 120 degree frame: Vu,v,w. The 3 phase voltages are then inputs to the PWM modulator.