This article will explain how vector control works in a friendly and harmless way. However, first we need to clarify what we mean by control when discussing motor drives:

To control or not to control

Imagine walking your dog, Fido, in the park.

You have a leash attached to Fido, so he may snoop around as he like to the extent of his leash. Ever so, he will follow approximately the same route as you are walking. You might think that you have your dog under control, right? Well, not so much. This scenario would be referred to as Scalar Control in the domain of motor drives. 

Scalar control means that you are not controlling the motor exactly, but you have a pretty good idea about what it is doing. The inverter is supplying the electric motor with a voltage and a frequency, and the motor will respond to that input much as Fido in a leash. 

Now let's glue Fido on to a skateboard and replace the leash with a steel rod.

Fido will now move exactly as you want him to, inch by inch. This is Vector Control. For a motor drive, it means that the controller knows the position of the rotor at any time, and will create a new magnetic field to push the rotor in the desired direction several hundred (or thousand) times every second. Scalar Control on the other hand, has no idea about the rotor position and only provides the motor with a speed set point to which the motor has to follow as well as it can, given load variances and other disturbances.

So now that we have made that part clear, we are going to explain exactly how and what Vector Control is doing what it is doing.

Revealing the rotor magnetic field

The most important part of vector control is obtaining the position of the rotor. By position I do not mean that the rotor is physically located inside the stator, but in which direction the rotor's magnetic field is pointing. You see, when an induction machine (IM) is magnetized, there are induced (doh) voltages and currents in the rotor which sets up magnetic fields. Summing up all the current's magnetic fields, there will be a NET field which is pointing in a given direction. This direction is important as it dictates where the inverter should place the stator magnetic field in order to further push the rotor around. 

For permanent magnet synchronous machines (PMSM), the magnetic field is more or less given by the rotor magnets and stays constant most of the time (I'll explain field weakening some other day). It nevertheless has to be determined, and that is performed in the same way for both induction machines and PMSMs.

The actual direction of the magnetic field is given by the motor's electro motive force (EMF) which is induced on to the stator windings by the rotor field. This EMF will behave as a voltage source connected in series with the rotor resistance/leakage inductance and in parallel to the magnetizing inductance.  If the motor's parameters are known (stator/rotor resistance and magnetizing inductance), it is possible to estimate the value of the EMF. This value is a vector, that is, it has a magnitude and (*fanfare*) a direction which is pointing the same way as the rotor's net magnetic field.

This direction is used when the controller is going to plot the magnetic field in the stator. The stator field's purpose is to attract the rotor in the same way ordinary magnets attract each other. It is also possible to repulse the rotor, but in that case the magnetic field is employed behind the rotor instead, chasing it more or less the same way a dog would be chasing its tail.

Note that the above description does not fully cover the science of revealing the rotor's field direction. Further methods will be thoroughly explained in a separate article.

Optimal angle between stator and rotor magnetic fields

When the rotor's magnetic field has been determined, it is time to decide where to apply our own magnetic field in order to further move the rotor in the desired direction.

Let's say that the rotor field is located at 90 degrees. This means that the North pole is pointing straight up (in a two poled machine, for sake of simplicity).  
Now, where should we place the stator field in order to push the rotor in the desired direction?

Well, the main objective is to produce a torque, so we want to place the stator field in a direction where I get the most torque application on the rotor. I also do not want to pay more amperage than I absolutely have to. Current is a limited resource because inverter components are priced based on their current rating. 

So, it turns out that the highest torque per amp is achieved when the stator magnetic field is oriented perpendicularly to the rotor. In our case at either 180 or 0 degrees, depending on which direction you want to move the rotor. 

It is perfectly possible to align the stator field for example just 10 degrees away from the rotor field, but the torque produced will be much lower and the current is almost the same. Not a particularly good deal, so let's stick with 90 degrees' separation between the two fields.

Vector control's work flow

The Clarke transform creates two orthogonal currents from a three phased measurement. The two new currents represent torque producing and magnetic field producing currents.

The control part of vector control is usually a PI or PID regulator which is controlling two very basic parameters:

  1. Torque, given as amount of active current
  2. Magnetic field (flux), given as reactive current.

Although there are three currents flowing into the motor, it is possible to decompose them into two different, orthogonal, currents in the exact same way as apparent power is divided into active and reactive power.

This transformation of three phased currents into a torque producing and a flux producing current is known as the Clarke transformation and looks like this:

\begin{equation}
i_{\alpha} = \frac{3}{2} \cdot i_{U}
\end{equation}

\begin{equation}
i_{\beta} = \frac{\sqrt{3}}{2} \cdot i_{V} - \frac{\sqrt{3}}{2} \cdot i_{W}
\end{equation}

where \(  i_{U}\), \(  i_{V}\) and \(  i_{W}\) represents the three phase currents out of the inverter and \(  i_{\alpha}\) and \(  i_{\beta}\) represents the two "new" currents for torque and flux respectively.

Although this is a great step forward in controlling the torque and flux, there is one challenge remaining. You see, the currents are still sinusoidal, and a PI (or PID) regulator will have a really hard time trying to control these values; they are constantly changing. The regulator needs a steady state input to work with. 

But hold on. The controller already knows the position of the rotor, right? Using that information it is possible to "cancel" the sine waves by employing a few trig functions to compensate for the sinusoidal movement of the currents.

The Park transformation takes the step from a stationary reference frame where the currents seem sinusoidal to a rotating reference frame.  The rotating movement is taken into account to compensate the sinusoidal currents and hence transform them to DC values.

This trick is called the Park-transformation, and essentially lets the controller experience the rotor's point of view from a steady state instead of watching it rotate from the stator's point of view. The terminology of this is "moving from the stationary reference frame to the rotating reference frame".

It can be compared to trying to lock into a horse on a merry-go-round while it is rotating and you are standing on the ground beside it. It would be a lot easier to just jump on to the carousel and lock into the horse while standing in front of it, right ?

The Park transformation converts the two alternating currents into steady state DC currents and makes it ridiculously easy for the controller to control the machine using an ordinary PI or PID control loop.

When the output is ready, both the Park and Clarke transformation can be reversed before applying new currents to the motor using a voltage modulator (see own article of space vector pulse width modulation).

\begin{equation}
i_{q} = i_{\alpha} \cdot \cos{\Theta_{d}}+ i_{\beta} \cdot \cos{\Theta_{d}}
\end{equation}

\begin{equation}
i_{d} = - i_{\alpha} \cdot \sin{\Theta_{d}}+ i_{\beta} \cdot \sin{\Theta_{d}}
\end{equation}

where \(i_{q}\) and \(i_{d} \) are the torque producing and field producing DC currents and \(\Theta\) is the rotor angle.

The whole work flow is shown below.

The basic workflow of vector control. Note that the voltage output is based on SV-PWM with third harmonic injection which is causing the non-sinusoidal shape. This technique will be explained in a separate article.

The animation above illustrates the Clarke-Park-Transformation with a rotating vector arrow, decomposed three- and two-phased vectors and a scope view of the corresponding sine waves.

Summary; a.k.a. "The nutshell-edition"

Vector Control is a very common way to control an electric motor using current- and voltage measurements. These measurements are used to determine the rotor position and calculate a new set of three-phased voltages which is applied to the motor terminals. This in turn will produce a new magnetic field that moves the rotor ever so slightly before a new measurement is taken an the process is repeated.

  •  The drive is trying to control two different types of current in an induction motor:
  1. Reactive current used to create the magnetic field (n/a in PM machines)
  2. Active current used to produce torque to turn the rotor
  • The reactive current is almost constant and is being controlled by the flux regulator. It is usually applied before any torque producing currents when starting the machine. 
    • If however field weakening is required, the reactive current is reduced.
    • The reactive current is about 25% to 35% of the nominal current of the machine. Hence, even with no speed or no torque, there will always be that amount of current present in the machine. Because the flux current is almost purely reactive, it is not be measurable on the DC-bus, or the line side of the inverter. It sill exists in the switches (transistors), but it cancels out on the DC side.
       
  • The active current is used to control either speed, power or torque. It is important to understand that whether the reference is in speed or power, it is still torque that is being controlled. E.g. if speed too slow: apply more torque. 
     
  • Torque is given directly by the amount of active current. Which again is given by voltage:
    Higher voltage -> more current -> more torque -> increased speed and/or power.
     
  • When controlling the machine, the drive has to know where the rotor is. That is, in which direction the flux in the rotor is "pointing". This has to be estimated by using mathematical models and measurements of voltage and current. It can also be given by an encoder.
     
  • The VSD is controlling the motor by applying the voltage vector relative to the rotor flux vector. If we imagine the machine as a clock, one can pretend that the rotor flux is pointing at the 1 o’clock position. The VSD then has to apply a voltage vector at 12 o’clock to set up a magnetic field in the stator to “chase” the rotor around. (In practical drives, the stator vector is normally positioned 90° ahead or behind the rotor vector as this gives maximum amount of torque per ampere)

    The above routine is being repeated over and over again very quickly:

  1. Measure current and voltages
  2. Estimate rotor position based on above measurements and the voltage and/or current model.
  3. Transform the measured values into reactive/active part in a DC-frame (Clarke/park-transformation)
  4. Calculate which position to apply stator voltage vector (90° from rotor)
  5. Apply voltage vectors (taken into account that the rotor position have changed since  step 1).  
  6. Start over
  • Output voltage and frequency has to be changed proportionally. The amount of flux in the machine is given by the relationship between voltage and frequency (U/f). Because we want to keep the flux constant, it is required to change voltage and frequency linearly, i.e. 30% speed = 30% frequency = 30% voltage.  The reason for this relationship is that the winding inductance’s reactance is frequency dependent; \( X_L = 2 π f \)
     
  • Because the voltage in the motor is very low at low speeds (below 3 Hz), it is becoming increasingly difficult to obtain good voltage measurements due to noise and resistive voltage drops in cables and windings. This makes it difficult to control the motor, and instead an encoder is required. With an encoder the VSD can control the motor accurately even at 0 Hz (for example keeping a load hanging still in a winch application).

 

4 Comments