*Article* **Adaptive Maximum Torque per Ampere Control of Sensorless Permanent Magnet Motor Drives**

**Anton Dianov <sup>1</sup> and Alecksey Anuchin 2,\***


Received: 16 August 2020; Accepted: 24 September 2020; Published: 27 September 2020

**Abstract:** Interior permanent magnet synchronous motor (IPMSM) efficiency can be improved by using maximum torque per ampere control (MTPA). MTPA control utilizes both alignment and reluctance torques and usually requires information about the magnetization map of the electrical machine. This paper proposes an adaptive MTPA algorithm for sensorless control systems of IPMSM drives, which is applicable in industrial and commercial drives. This algorithm enhances conventional control schemes, where the output of the speed controller is the commanded stator current and the direct current is calculated using an MTPA equation; therefore, it can be easily implemented in the previously developed drives. The proposed algorithm does not use any motor parameters for the calculation of the MTPA trajectory, which is important for systems operating in changing environmental conditions, because motor inductances and flux linkage strongly depend on the stator current and the rotor temperature, respectively. The proposed algorithm continuously varies the current phase and in such a way it tries to minimize the magnitude of the stator current at the applied load torque. The main contribution of this paper is the development of a technique to overcome the main disadvantage of seeking algorithms–the necessity of a precision information about the rotor position. The proposed method was verified experimentally.

**Keywords:** interior permanent magnet motors; maximum torque per ampere; sensorless control; adaptive control

#### **1. Introduction**

Interior permanent magnet synchronous motors (IPMSM), compared with machines of other types, have higher torque to weight ratios, higher efficiency, output power per volume and mass per volume values, which make them attractive for use in compact drives, high-efficient drives, drives with high dynamics, etc. At the same time, the high price of rare-earth metals, which are necessary for producing strong magnets, restricts the popularity of permanent magnet (PM) motors. However, over the past decade, the price of rare-earth magnets has decreased; therefore, the area usage of PM motors is widening. As a result, they attract more attention, and many researchers have investigated the control systems of these machines.

The main feature of IPMSMs is their asymmetry along direct and quadrature axes, which creates reluctance torque. At the same time, permanent magnet synchronous machines (PMSM), which have equal direct and quadrature inductance and idle load conditions, demonstrate magnetic asymmetry at load; thus, they may also produce reluctance torque. As a result, modern efficient control systems must consider these facts and utilize the reluctance torque of the PM motors by employing one of the maximum torque per ampere (MTPA) techniques.

Information on rotor position is required to control PM motors; therefore, precision and high-performance drives are equipped with position encoders, whose resolution depends on the desired dynamic and precision of control. At the same time, low-cost systems and motor drives with higher reliability have a tendency to eliminate additional parts, especially moving parts, such as speed and position encoders. Therefore, sensorless control algorithms have almost become a standard in these applications [1,2]. Therefore, modern control systems of PM motors, in order to be used in a variety of applications, have to be sensorless [3] and must be able to implement MTPA techniques [4,5].

An analysis of the operating conditions of PM motors and their impact on the motor parameters showed that motor direct and quadrature inductances strongly depend on the motor stator current and may decrease due to steel saturation by more than 50% [6]. At the same time, the temperature of the rotor impacts the flux linkage of magnets and may decrease it by 10% [7]. Furthermore, magnet degradation during the lifetime of the motor may also decrease the flux linkage by 15%. As a result, it would be beneficial to develop an MTPA algorithm, which can adapt to the variations in motor parameter and provide efficient control of the motor, despite its environment.

The conventional MTPA approach involves the calculation of one of the MTPA equations—e.g., Equation (1) obtained from motor equations:

$$i\_d = -\frac{\psi\_m}{4\left(L\_d - L\_q\right)} - \sqrt{\frac{\Psi\_m^2}{16\left(L\_d - L\_q\right)^2} + \frac{I\_s^2}{2}},\tag{1}$$

where *Is* represents the stator current, ψ*<sup>m</sup>* represents the permanent magnet flux linkage, *Ld* and *Lq* represent the d-axis and q-axis inductances, respectively, and *id* stands for the direct current component providing the MTPA. This approach is simple and can be easily implemented in a sensorless control systems and is discussed and studied in [8–12]; however, such techniques are sensitive to the variation in motor parameter due to operating conditions. For example, the accurate knowledge of motor parameters was required in [10], but the change in the motor inductances due to the saturation effect was not taken into account.

To solve this problem, different adaptive MTPA techniques were proposed. The authors of [13,14] proposed to enhance the conventional MTPA algorithm with on-line estimation techniques of motor inductances; however, these papers do not suggest a solution for the flux-linkage estimation. Furthermore, these methods need fine-tuning, and the control system has to be equipped with a high-speed processor capable of executing additional calculations at every calculation step, together with basic control routines.

The authors of [15] proposed a method with a fast dynamic response, which uses a recursive least squares (RLS) parameters estimator to track the MTPA trajectory. However, this method calculates many square roots, which significantly load a microcontroller unit (MCU), even with optimizations; therefore, the use of this method is limited.

A group of methods described in [16,17] proposes several similar MTPA techniques which are based on the high-frequency signal injection and the analysis of response. These methods do not need motor parameters, but high-frequency signals cause noises and vibrations, which are undesirable in many drives.

To overcome this problem, the authors of [18–21] proposed an interesting technique called the virtual signal injection (VSI). This method detects the MTPA trajectory analytically by the injection of a virtual signal into a motor model. It does not use motor parameters and does not inject real signals into the system; therefore, undesired noise and vibrations are excluded. However, despite perfect reported results of VSI methods, we do not share the optimism of the authors. We found that these algorithms were very sensitive to the variation in stator resistance, which is not a problem in other algorithms, including the conventional one.

Another approach used for tracking the MTPA trajectory is seeking algorithms, which do not use motor parameters and can effectively operate in a changing environment. An example of this technique is described in [22], where the authors continuously varied the phases of the stator current and tracked the minimum of the current magnitude. The main disadvantages of this idea are lower dynamics and the necessity of a position encoder.

After a detailed analysis of the pros and cons of the existing techniques, the authors found that the seeking algorithm reported in [22] is the best candidate for developing a motor drive, provided that it can be adapted to the operation without a position encoder.

#### **2. MTPA Seeking Algorithm**

The seeking algorithm reported in [22], which was selected for further improvements, continuously varies the phase of the stator current γ to provide the minimum stator current *Is* for the given torque. The flowchart of this method is shown in Figure 1. It can be clearly seen that in each calculation step, the motor phase is modified by a small disturbance angle Δγ, and the resulting value γ is checked to be inside the limits. After that, the new value of the phase of the stator current is applied, and the control system waits until the end of transient. After that, the tuning algorithm measures the average magnitude of the stator current over the calculation step and compares it to the value measured at the previous step.

**Figure 1.** Flowchart of the MTPA seeking algorithm.

If the current value obtained at the current calculation step is less than the same value from the previous step, the stator current has been rotated in the correct direction, and vice versa. If the stator current has been rotated to the incorrect direction, the sign of disturbance value Δγ is reversed, and in the next step the stator vector will be rotated in the proper direction. This process is illustrated in Figure 2, where the current vector rotates to track the constant torque loci.

**Figure 2.** Variation of stator current phase.

This seeking algorithm has the advantages of being insensitive to motor parameter variation and the possibility of being easily implemented in the previously developed control schemes.

At the same time, this technique demonstrates excellent results only when the rotor position is measured precisely, and may fail when a significant error appear. As can be seen from Figure 2, the minimum current for the constant torque curve is not strongly pronounced, and the variation of the stator current angle causes only minor changes to the current magnitude. This problem is illustrated by the data in Table 1, calculated for the test motor, the parameters of which are given in the section below. The table illustrates the increase in the magnitude of the stator current when its angle varies with the step of one degree. As can be seen, the variation in stator current is quite small and lies below one percent for a range of ±5◦. Therefore, to detect the minimum stator current, it is very important to know the rotor position precisely. Unfortunately, sensorless drives contain a position error with a typical value of 5◦–10◦, which varies over revolution and restricts the operation of the seeking algorithm in sensorless systems. The original algorithm [22] at the calculation step *k* applies the stator current with a phase γ*k*. In the next calculation step *k* + 1, the algorithm applies the stator current with a phase γ*k*<sup>+</sup>1, which differs from the γ*<sup>k</sup>* at the fixed disturbance angle Δγ. During each calculation step, the algorithm measures (integrates) the magnitude of the stator current and then compares these magnitudes. The lower current magnitude corresponds to the phase angle being closer to the true MTPA angle. Thus, if the position error is not constant, the stator current is applied at different phase angles during each calculation step; therefore, its magnitude varies, producing incorrect measurements of the current. In order to overcome this problem and use the advantages of the seeking technique, an advanced method was proposed, which makes the operation of the seeking algorithm in sensorless drives possible.


**Table 1.** Increase in Stator Current due to Angle Variation.

#### **3. Proposed Enhanced Algorithm**

As mentioned earlier, the main problem with the implementation of the seeking algorithms in the sensorless systems is the absence of precision of information on the rotor position. The typical position estimation error of the back-EMF-based estimator is shown in Figure 3. This picture demonstrates that the estimation error is significant for the seeking technique described. The proposed algorithm belongs to the perturb and observe methods, which involves modifying one parameter of the system and analyzing its response by measuring another parameter. Algorithms such as these may fail if another disturbance appears in the system and impacts the measured parameter. At the same time, our experiments showed that the average value of the position estimation error is stable and mainly depends on the variation in the relationship between the direct and quadrature inductances, while instant error depends on disturbance factors, such as cyclic mechanical load, non-sinusoidal back-emf, etc. Therefore, the previously developed seeking algorithm may operate properly if its calculation step contains an integer number of electrical revolutions. In that case, the average position error at consequent calculation steps will be the same, and the average current magnitudes may be compared. Stator resistance variation due to temperature change affects the average error value, but the seeking algorithm compensates for this error.

**Figure 3.** Rotor position estimation error.

The number of electrical revolutions that are contained in one calculation step is denoted as *N*. Then, the maximum calculation time is denoted as *Tmax*. These parameters define the minimum motor speed *nmin*, where the proposed algorithm can operate. If the motor speed *n* is less than the minimum speed *nmin*, the tuning algorithm must be stopped. Then, the length of the current calculation step *Tk cs* is defined and compared to the length of the previous calculation step *Tk*−<sup>1</sup> *cs* . If they are the same, the calculations at these intervals may be compared, otherwise they may not. If the consecutive calculation steps are different, the tuning algorithm calculates the squared amplitude of the stator current for the current measurement interval - *I k s* <sup>2</sup> and proceeds to the next step. If the length of the previous calculation step and the length of the current calculation step are the same, the tuning algorithm defines the new MTPA angle γ in the same manner as a basic algorithm, measures the squared amplitude of stator current - *I k s* 2 , and compares it to the same value from the previous iteration - *I k*−1 *s* 2 . If the squared amplitude of the stator current at the current step is less, it means that the MTPA angle γ was modified in the correct direction, and the same disturbance value will be applied in the next step. If the MTPA angle γ was modified in the wrong direction, then the sign of disturbance value Δγ in the next step will be reversed. A flowchart of the proposed algorithm is shown in Figure 4.

This algorithm is quite simple, and the most important things are the proper selection of *N* and *Tmax*, which define the errors, the dynamic response of the algorithm, and its minimum operating speed. The higher the number of electrical revolutions in the calculation step, the more reliable and stable the algorithm operates; however, at the same time, its dynamic response decreases. These parameters are suggested to be selected experimentally by monitoring the performance of the tuning algorithm.

**Figure 4.** Flowchart of the proposed algorithm.

#### **4. Experimental Setup**

The experimental motor used in the experiments is the mass production (MP) device, the parameters of which are given in Table 2. However, these inductances strongly depend on the motor current and vary, as shown in Figure 5.


**Table 2.** Motor Rated Parameters.

**Figure 5.** Motor inductances vs. current.

The control system used in the experiment is the same as in MP versions described in [23] (Figure 6). It drives the IPM motor, using the sensorless control, which nowadays can be considered to be a standard for many appliances. This control is based on the back-EMF estimation methods discussed in [24], which is enhanced by the initial position estimation necessary for excluding the reverse rotation while starting. The performance of the implemented estimation algorithm was verified using a quadrature encoder, which proved that the algorithm perfectly operates in the speed range over 10 Hz, with the estimation error being not more than several electrical degrees.

**Figure 6.** Structure of the sensorless control scheme of the IPM motor drive.

The inverter used for driving the motor is based on the smart power module FSAM10SH60 from "Fairchild" (10 A/600 V), which contains six IGBTs and embedded gate drivers. This drive was developed for a standard 220–240 V, 50/60 Hz supply source. The control system of the drive under test is based on a 60 MIPS Cortex-M3 microcontroller, which operates the inverter at 10 kHz PWM. This system is equipped with two current sensors and a DC-link voltage sensor, whose signals are processed by a 12-bit ADC of the microcontroller, with a sampling time of 100 μs.

The control system of the experimental drive is a conventional vector control system without the position encoder used in MP devices. It involves an outer speed loop and two inner current loops implemented in the *dq* reference frame, where the electrical position and speed are provided by the estimator. The experimental drive implements open-loop starting and acceleration with immediate closing and the reinitialization of the controllers.

The control system measures two phase currents and DC-link voltage, which are then transformed into phase currents and voltages, respectively. After that, the three phase values, *abc,* are converted into two axis stationary reference frames αβ, using the Clarke transformation:

$$
\begin{bmatrix} X\_a \\ X\_a \end{bmatrix} = \frac{2}{3} \begin{bmatrix} 1 & -\frac{1}{2} & -\frac{1}{2} \\ 0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2} \end{bmatrix} \begin{bmatrix} X\_a \\ X\_b \\ X\_c \end{bmatrix} \tag{2}
$$

where *X* denotes any converted value. The conversion gain of 2/3 provides equality of amplitudes in *abc* and αβ reference frames, which is easier for tuning. Then, the values are transformed into a synchronous *dq* reference frame using the Park transformation:

$$
\begin{bmatrix} X\_d \\ X\_q \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} X\_\alpha \\ X\_\alpha \end{bmatrix} \tag{3}
$$

where θ represents the angle of angular displacement.

The control system uses a field-weakening controller, which increases the maximum speed by up to +50% of the rated velocity by weakening the field of the rotor with *id* current. The drive under test also includes an MTPA block for increasing efficiency and decreasing stator current. This MTPA block receives the stator current from the speed controller and then converts it into direct and quadrature components.

The only difference between the experimental and the conventional systems is the presence of the MTPA tuning block with the proposed algorithm, which outputs the MTPA angle of the decomposition of the commanded stator current. These changes, including additional block and corresponding connections, are shown in red in Figure 6.

#### **5. Experimental Results**

#### *5.1. Experimental Setup and Load Motor*

The test jig used in our experiments included a load motor, represented by an HG-SR202, 2 kW AC servomotor from Mitsubishi Electric, which was equipped with an incremental position encoder. This motor was controlled using the MR-J4-200, an AC servo amplifier from Mitsubishi Electric, operated in the torque control mode. The AC servo amplifier and the inverter were connected to the PC, which was used to control the experiment and monitoring the data. This experimental setup is shown in Figure 7.

#### *5.2. Motor Characteristics*

At the beginning of our experimental work, the real characteristics of the motor were found. This experiment was performed using the test jig shown in Figure 7, where an incremental position encoder with a resolution of 4096 pulses was used. Motor inductances were found in several points for different values of stator current at the MTPA condition. They are shown in Figure 5, which demonstrates that saturation significantly impacts their values.

The motor MTPA characteristics were detected with a step of 1◦, and they are demonstrated in Figure 8. It can be clearly seen that the experimental MTPA curve deviates from the theoretical curve at higher currents due to the saturation effect. Therefore, this fact must be taken into account when developing an efficient control system.

**Figure 7.** Experimental setup.

**Figure 8.** Theoretical and experimental MTPA curves.

### *5.3. The Performance of the Developed Algorithm*

The proposed MTPA tuning algorithm was tested using the test bench described above. The load torque was programmed as a function with several steps, shown in Figure 9 so that the detection of the MTPA angle at different conditions can be dynamically monitored. A step-changing function with the following steps was used: 1, 2, 2.5, 3, 3.5, and 4 Nm. The values of the steps at lower currents are higher because the MTPA angle in this region changes faster, and it is easier to track it. At the same time, at a higher load, the steps are lower to check the behavior of the proposed algorithm in that region in more detail.

**Figure 9.** Commanded load torque.

When selecting the parameters of the algorithm, it was assumed that the MP sensorless drives rarely operate at a speed below 900 rpm, as they are focused on the total efficiency more than on a fast dynamic. At the same time, the higher number of electrical revolutions *N* used as a calculation step provides better stability and avoids side effects. Therefore, the maximum calculation time, as *Tmax* = 0.5 s, and minimum operating speed as *n* = 600 rpm, were selected, which results in *N* from 15 revolutions or less. After several experiments, the disturbance angle Δγ equal to 3◦ was selected, which was a compromise between precision and the algorithm's stability. The lower value of Δγ makes it difficult to detect the current changes in our system; therefore, 3 degrees is a tradeoff value between the tolerance and quality of control. At the same time, in other systems, especially with motors of higher magnetic asymmetry, the lower values of Δγ can be used.

The operation of a tuning algorithm at 900 rpm with *N* = 15 is shown in Figure 10, which demonstrates the proper detection of the MTPA angle. However, the defined value of γ contains some spikes. The results of the same experiment at 1500 rpm are presented in Figure 11, which proves the correct operation of the developed algorithm and demonstrates a lower number of spikes—i.e., it has higher stability. In the next experiment, the calculation step was increased to 30 electrical revolutions, and the results of this test are provided in Figure 12. It is observed that the stability of the proposed algorithm increased, and the defined MTPA angle almost did not contain significant deviations.

**Figure 10.** MTPA angle defined at 900 rpm with *N* = 15.

**Figure 11.** MTPA angle defined at 1500 rpm with *N* = 15.

**Figure 12.** MTPA angle defined at 1500 rpm with *N* = 30.

#### **6. Conclusions**

This paper proposes the adaptive MTPA control algorithm capable of operating in sensorless drives. This algorithm does not use any motor parameters and conventional equations; therefore, it is insensitive to the motor parameter variation due to the operating conditions. The proposed method uses a seeking technique, which continuously varies the phase of the stator current and tracks the minimum of its magnitude. It is designed to be used in conventional control systems; therefore, it can be easily embedded in previously developed motor drives. Experimental results provided in this paper prove the feasibility of the developed algorithm and its perfect operation, despite the motor operating conditions. The proposed algorithm was implemented in the drives with reciprocating compressors and put into mass production.

**Author Contributions:** General idea, A.D.; Simulation software, A.D. and A.A.; Software implementation and experimental verification, A.D.; Methodology, A.A.; Data analysis, A.D. and A.A.; Writing original draft, A.D.; Writing—review and editing, A.A. Both authors have read and agreed to the published version of the manuscript.

**Funding:** This research is supported by the Russian Science Foundation grant (Project № 16-19-10618).

**Conflicts of Interest:** The authors declare no conflict of interest.
