Field oriented Control of Permanent magnet synchronous machines

Introduction

Permanent magnet synchronous motors (PMSM) are typically used for high-performance and high-efficiency motor drives. High-performance motor control is characterized by smooth rotation over the entire speed range of the motor, full torque control at zero speed, and fast acceleration and deceleration. To achieve such control, vector control techniques are used for PM synchronous motors. The vector control techniques are usually also referred to as field-oriented control (FOC). The basic idea of the vector control algorithm is to decompose a stator current into a magnetic field-generating part and a torquegenerating part. Both components can be controlled separately after decomposition. <br>Click to close the image

Then, the structure of the motor controller (vector control controller) is almost the same as a separately excited DC motor, which simplifies the control of a permanent magnet synchronous motor. Let's start with some basic FOC principles.

Torque Generation

A reactance torque of PMSM is generated by an interaction of two magnetic fields (one on the stator and one on the rotor). The stator magnetic field is represented by the magnetic flux/stator current. The magnetic field of the rotor is represented by the magnetic flux of permanent magnets that is constant, except for the field weakening operation. We can imagine those two magnetic fields as two bar magnets, as we know a force, which tries to attract/repel those magnets, is maximal, when they are perpendicular to each other. It means that we want to control stator current in such a way that creates a stator vector perpendicular to rotor magnets. <br>Click to close the image

As the rotor spins we must update the stator currents to keep the stator flux vector at 90 degrees to rotor magnets at all times. The reactance torque \(T\) of an interior PM type PMSM (IPMSM) is as follows, when stator and rotor magnetic fields are perpendicular.

\[ T = \frac{3}{2} \cdot pp \cdot \Psi_{PM} \cdot i_q \] where:

As shown in the previous equation, reactance torque is proportional to the amplitude of the q-axis current, when magnetic fields are perpendicular. MCUs must regulate the phase stator current magnitude and at the same time in phase/angle, which is not such an easy task as DC motor control.

How to Simplify Control of Phase Currents to Achieve Maximum Torque

DC motor control is simple because all controlled quantities are DC values in a steady state and current phase/ angle is controlled by a mechanical commutator. How can we achieve that in PMSM control?

DC Values/Angle Control

First, we need to know the rotor position. The position is typically related to phase A. We can use an absolute position sensor (e.g., resolver) or a relative position sensor (e.g., encoder) and process called alignment. During the alignment, the rotor is aligned with phase A and we know that phase A is aligned with the direct (flux producing) axis. In this state, the rotor position is set to zero (required voltage in d-axis and rotor position is set to zero, static voltage vector, which causes that rotor attracted by stator magnetic field and to align with them [with direct axis]). <br>Click to close the image

  1. Three-phase quantities can transform into equivalent two-phase quantities (stationary reference frame) by Clarke transformation.
  2. Then, we transform two-phase quantities into DC quantities by rotor electrical position into DC values (rotating reference frame) by Park transformation.
The electrical rotor position is a mechanical rotor position divided by numbers of magnetic pole pairs pp. After a control process we should generate three-phase AC voltages on motor terminals, so DC values of the required/generated voltage should be transformed by inverse Park/Clarke transformations.

Amplitude Control

All quantities are now DC values, which are easy to control, but how do we control them in magnitude? For magnitude control we use PI controllers in the cascade structure. We can control many state variables as phase current (torque loop), speed or position as with DC motors.

FOC in Steps

To perform vector control:

  1. Measure the motor phase currents
  2. Transform them into the twophase system (a, b) using Clarke transformation
  3. Calculate the rotor position angle
  4. Transform stator currents into the d,q-coordinate system using Park transformation
  5. The stator current torque (isq) and flux (isd) producing components are controlled separately by the controllers
  6. The output stator voltage spacevector is transformed back from the d,q-coordinate system into the twophase system fixed with the stator by inverse Park transformation
  7. Using the space vector modulation, the output three-phase voltage is generated

Block diagram of the vector control

The basic scheme of torque control with IFOC is shown below: <br>Click to close the image

Two phase currents go into some transformation module (Clarke and Park). The projection outputs of the Clark block are indicated with \(i_\alpha\) and \(i_\beta\). These two components of the current provide the input of the Park transformation that gives the current in the d,q rotating reference frame aligned with the rotor flux vector. The exact rotor flux angular position \(\theta\) is necessary to calculate the two components \(i_d\) and \(i_q\). The \(i_d\) and \(i_q\) components are compared to the references \(i_d^{ref}\) (the flux reference) and \(i_q^{ref}\) (the torque reference). The torque command \(i_q^{ref}\) is the output of a speed regulator. The flux command \(i_d^{ref}\) indicates the right rotor flux command for every speed reference within the nominal value. <br>Click to close the image The current regulator outputs are \(u_d\) and \(u_q\). They are processed into the inverse Park transformation. The outputs of this are \(\u_\alpha\) and \(\u_\beta\), which are the components of the stator vector voltage in the \((\alpha,\beta)\) orthogonal reference frame. These are the inputs of the Space Vector PWM. The outputs of this block are the modulation signals \((m_1,m_2,m_3)\) from which the gate signals that drive the inverter are calculated in the pulse width modulator. <br>Click to close the image The inverter is shown in the block diagram as a single block. In the simulation we will use this block for system studies. When it comes to simulate the effects of modulation, losses and harmonics, a more detailed inverter model is used. <br>Click to close the image

Space vector definition and projection

The three-phase voltages, currents and fluxes of AC-motors can be deeply studied in terms of complex space vectors. Assuming that ia, ib, ic are the instantaneous currents in the stator phases we can define the stator current vector is by: \[ i_s= \begin{bmatrix} i_a\\i_b\\i_c \end{bmatrix} \] Where, [a, b, c] are the axes of a three phase system.

This current space vector describes the three phase sinusoidal system. As discussed above, this three phase system can be transformed into a two time invariant co-ordinate system. This transformation can be split in two steps:

  1. \((a,b,c) \Longrightarrow (\alpha,\beta)\) (the Clark transformation) which outputs a two co-ordinate time variant system
  2. \((\alpha,\beta) \Longrightarrow (d,q)\) (the Park transformation) which outputs a two co-ordinate time invariant system

The \((a,b,c)(\alpha,\beta)\) projection (Clark transformation)

The space vector can be reported in another reference frame with only two orthogonal axis called \((\alpha, \beta)\). Assuming that the axis \(a\) and the axis \(\alpha\) are in the same direction we have the following vector diagram: <br>Click to close the image

Basically the transformation moves from a 3-axis, 2-dimensional coordinate system referenced to the stator of the motor to a 2-axis system also referenced to the stator. The projection that modifies the three phase system into the \((\alpha,\beta)\) two-dimensional orthogonal system is presented below. \[ \begin{align} i_{\alpha} &= i_a \\ i_{\beta} &=\frac{i_a}{\sqrt{3}} + \frac{2 i_b}{\sqrt{3}} \end{align} \] However, these two phase \([\alpha,\beta]\) currents are still sinusoidal, thus we obtain a two co-ordinate system that still depends on time and speed. <br>Click to close the image

The \((\alpha,\beta)(d,q)\) projection (Park transformation)

This is the most important transformation in the FOC. In fact this projection modifies a two phase orthogonal system \((\alpha,\beta)\) in the d, q rotating reference frame. Thanks to this information it is possible to fix a component of the stator current on a d-axis responsible of flux. If we consider the d-axis aligned with the rotor flux, the next diagram shows, for the current vector, the relationship from the two reference frames: <br>Click to close the image

where \(\theta\) is the rotor flux position. The flux and torque components of the current vector are determined by the following equations: \[ \begin{align} i_d &= \phantom{-} i_{\alpha} \cdot cos(\theta) &+i_{\beta} \cdot sin(\theta)\\ i_q &=-i_{\alpha} \cdot sin(\theta) &+i_{\beta} \cdot cos(\theta) \end{align} \] These components depend on the current vector \((\alpha,\beta)\) components and on the rotor flux position \(\theta\) knowing the right rotor flux position, then make constant the d,q component. The two co-ordinate system obtained using a Park transformation has the advantages of being time invariant and has separate torque and flux components for stator currents. <br>Click to close the image

The (d,q)\((\alpha,\beta)\) projection (Inverse Park transformation)

The equations presented here transform the stator voltage expressed in a d,q rotating reference frame into a \((\alpha,\beta)\) orthogonal system: \[ \begin{align} u_d &= \phantom{-} u_{\alpha} \cdot cos(\theta) &+u_{\beta} \cdot sin(\theta)\\ u_q &= -u_{\alpha} \cdot sin(\theta) &+u_{\beta} \cdot cos(\theta) \end{align} \] <br>Click to close the image

The outputs of this block are the components of the reference vector to be applied to the motor phases through space vector modulation. <br>Click to close the image

Basic simulation

<br>Click to close the image

Space vector modulation (SVPWM)

Space vector modulation is a sophisticated PWM method that provides advantages to the application when compared to classical sinusoidal weighted modulation PWM:

One common way to represent the phase voltages A, B, C is the space vector model. The three legs of the three phase inverter can connect the phases of the motor to positive or negative terminal of DC bus voltage. Considering that one and only one switch per leg must be closed, 8 different states are possible. It is possible to associate a reference vector to each of the 8 states. In order to generate a rotating field, the inverter has to be switched in six of the eight states. This mode of operation is called six-step mode. The remaining two states are called zero vectors because in these states the voltage applied in the motor windings is null due to the middle point of each leg is connected to GND or to the DC bus voltage. The zero vectors, located in the middle of the hexagon, see Figure 17, can be used to regulate the amplitude of the space vector. The angle between any two vectors is 60°. Note that whenever transistor T1 is on, transistor T2 is off, and vice versa. This makes it easy to adopt a simple notation to describe the state of the inverter. For example, the state when transistors T1, T4 and T6 are “on” (and of course T2, T3, and T5 are “off”) can be represented with the notation (+,-,-). The state where transistors T2, T3, T6 are on is denoted by (-, +, -). Thanks to this notation is possible to determine the following states related to the power switches of the inverter. (+, -, -), (+, +, -), (-, +, -), (-, +, +), (-, -, +), (+, -, +), Running the inverter through this switching sequence will produce the line-to-neutral voltages shown in Figure 12.

Field/Flux Weakening Control

The operation beyond the machine base speed requires the PWM inverter to provide output voltages higher than its output capability limited by its DC link voltage. To overcome the base speed limitation, a field-weakening algorithm can be implemented. A negative d-axis required current will increase the speed range, but the applicable torque is reduced because of a stator current limit. Manipulating the d-axis current into the machine has the desired effect of weakening the rotor field, which decreases the BEMF voltage, allowing the higher stator current to flow into the motor with the same voltage limit given by the DC link voltage.

Sensorless Control

The rotor position information is needed to efficiently perform the control of the PMS motor, but a rotor position sensor on the shaft decreases the robustness and reliability of the overall system in some applications. Therefore, the aim is not to use this mechanical sensor to measure the position directly but instead to employ some indirect techniques to estimate the rotor position. These estimation techniques differ greatly in approach for estimating the position or the type of motor to which they can be applied. At low speed, special techniques like high frequency injection or open-loop start-up (not very efficient) are needed to spin the motor over the speed where BEMF is sufficiently high for the BEMF observer. Usually, 5 percent of the base speed is enough for proper operation in sensorless mode. At medium/high speed, a BEMF observer in d/q reference frame is used. The PWM frequency and control loop must be sufficiently high to get a reasonable number of samples of phase current and DC bus voltage. The calculation of the BEMF observer requires math computation as multiply accumulation, division, sin/cos, sqrt which is suited for microprocessors.

<br>Click to close the image

© 2024 CASPOC, All rights reserved. Home   |   Terms and Conditions   |   Legal   |   Export Compliance   |   Privacy Policy   |   Site Map