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.
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.
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\) - Torque[Nm]
- \(pp\) - Number of pole pairs
- \(\Psi_{PM}\) - Magnetic flux of the permanent magnets
- \(I_q\) - Amplitude of the current in quadrature axis
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]).
- Three-phase quantities can transform into equivalent two-phase quantities (stationary reference frame) by Clarke transformation.
- Then, we transform two-phase quantities into DC quantities by rotor electrical position into DC values (rotating reference frame) by Park transformation.
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:
- Measure the motor phase currents
- Transform them into the twophase system (a, b) using Clarke transformation
- Calculate the rotor position angle
- Transform stator currents into the d,q-coordinate system using Park transformation
- The stator current torque (isq) and flux (isd) producing components are controlled separately by the controllers
- 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
- 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:
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:
- \((a,b,c) \Longrightarrow (\alpha,\beta)\) (the Clark transformation) which outputs a two co-ordinate time variant system
- \((\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:
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.
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:
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.
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} \]
Basic simulation
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:
- Higher bus voltage utilization (86%)
- Lower THD%
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.