2.2. Stator Resistance Identification
2.2.1. Voltage Injection Based Stator Resistance Identification Methodology
The
Rs identification method solely based on voltage injection is proposed in the following.
Figure 2 shows the block diagram of the
Rs identification. A linear increasing voltage signal, as expressed in Equation (2), is injected through the
d-axis, and the real position feedback from the encoder is used for
Park and inverse
Park transmissions. By imposing voltage signals on
only (
= 0 V), the induced current will keep the rotor self-fixed at its original position.
where
and
refer to the
d- and
q-axes voltage references, respectively, Δ
is the incremental voltage to be added at each step, and
Imax (RMS) is the maximum current of a given motor.
When the motor shaft is at standstill, the values of elements with
ωe in Equation (1) are 0. Considering the voltage reference in Equation (2), Equation (1) is expressed by Equation (3). If the current increasing speed is relatively slow by controlling the injected voltage, the value of
Ldpid in Equation (3) can be as small as several millivolts. Therefore, it can be ignored. Thus, the
Rs can be calculated as the gradient of the
ud and
id curve during the voltage injection. Moreover, for the safety of a motor, a stop sign is added in Equation (4).
When considering the voltage errors from the inverter nonlinearity, the relationship between
and
id is described as
during the voltage injection, where Δ
uerror refers to the lumped voltage errors caused by inverter nonlinearity effects and
is the identified stator resistance. By using the LR method for
Rs identification, the relationship of
and Δ
uerror should satisfy
. Then, Equation (5) should stand:
In addition, the solutions of
and Δ
uerror are [
11]
where
and
idj are the
d-axis voltage reference and current feedback at the
j-th moment, and
n is the amount of sampling number. This is described as Equation (7):
where
and
are voltages that induce the up current limit and the low current limit in the selected current range when using Equation (6), respectively. The selection of these two current limits will be further addressed in
Section 2.2.2.
Moreover, since the voltage reference is used in Equation (6), should be the total values of stator resistance, resistance in the cables and IGBT on-state resistances. However, it is acceptable to use the identified Rs in algorithms such as current controller tuning and model predictive control, because they also use the voltage references in their models.
2.2.2. Valid Current Range Selection for Stator Resistance Identification
One prerequisite to use Equation (6) for
Rs identification is that the Δ
uerror should be a constant; otherwise, the varied Δ
uerror may result in an ill convergence of the identified
Rs. According to the relationship of Δ
uerror,
id and
, as briefly shown in
Figure 3 [
19], the Δ
uerror only becomes a constant when the current is relatively high. This is also the reason why
Rs identification is always suggested to be conducted at a high current level [
9,
20].
However, the moment that Δ
uerror becomes a constant is decided by configuration of the inverter (rated current of the IGBTs and switching frequency) in the test but not by a specific current or voltage value [
19]. Thus, it is not reasonable to judge when to conduct Equation (6) only using current feedback. Comparatively speaking, it is wiser to suggest when to conduct Equation (6) using the variation of Δ
uerror. Therefore, a method that takes the change of Δ
uerror into consideration is proposed. It guarantees that the current range in Equation (6) has fully entered the saturated zone in
Figure 3, and it is summarized in the following:
(1) The output voltage references are given according to Equation (2) from (0) = 0 V.
(2) Equation (6) is conducted when id is within a relatively low current range, say (Ilow, Imedium). Δuerror and , calculated using Equation (6), are defined as Δ and .
(3) Equation (2) is continued and Equation (6) is repeated when
id is between a specific current range, say (
Imedium,
Iup). Δ
uerror and
are calculated using Equation (6), and are renamed as Δ
and
. The
Ilow,
Imedium and
Iup are defined according to Equation (8), in which the
α1,
α2 and
α3 should satisfy Equation (9).
(4) The values of Δ and Δ and the values of and are compared if:
Condition1: Δ ≠ Δ or ≠ ,
Condition2: Δ ≈ Δ and ≈ (say, the difference between Δ and Δ is less than 0.02 V and the difference between and is less than 0.02 Ω).
If the result meets Condition2, then the correct Rs is identified and is regarded as the result. The current range I > Ilow of Condition2 is designated as the valid current range for Rs identification under the specific inverter configuration used for test.
If the result meets
Condition1, then
α1,
α2 and
α3 are redefined in (10), but they should still satisfy Equation (9), and the processes in Equations (1)–(4) will be redone until the results meet
Condition2 and finish an
Rs identification. The repetitive current increase process from a low current is shown by the diagram at the bottom of
Figure 3.
For Condition1, Δ ≠ Δ or ≠ indicates that the current is still in the linear zone or straddles the linear zone and saturated zone, whereas for Condition2, Δ ≈ Δ and ≈ represent that the current is sufficiently high and has fully entered the saturated zone. The identified Rs is the desired value.
It should be noted, as stated above, the current value necessary for the Δ
uerror curve in
Figure 3 to enter its saturated zone is decided by the configuration of the inverter. Therefore, the rated current of the power device can also be used as the baseline current to evaluate the valid current range for
Rs identification. The reasons to use the
Imax of a tested motor as the baseline in Equation (8) are as follows:
(1) The induced test current during the voltage injection should not exceed the Imax of a given motor; otherwise, safety issues such as overcurrent may occur in the motor.
(2) The rated current of the inverter is always higher than the Imax of the motor in a typical drive system, and if the induced current is smaller than Imax, then the safety of both the motor and the driver is guaranteed.
(3) The investigations in [
9,
20] show that the
Imax of the tested motor is always beyond the current value corresponding to the knee point of Δ
uerror in
Figure 3, so it is reasonable to use the
Imax as a gauge to evaluate when Δ
uerror enters the saturated zone.
2.3. Voltage Injection Based d- and q-Axes Inductances Identification
The HF signal is one of the most commonly used methods for inductance identification. When an HF voltage in (11) is injected into the motor, the
d-axis HF current response is in Equation (12):
where
Ud_inj is the magnitude of the injected HF voltage,
ωh = 2 ×
pi ×
fh (
pi ≈ 3.1416 and
fh is the injected frequency),
φ is the phase angle between the resultant stator terminal voltage and current, and
Idh is the amplitude of the induced HF current. From the Laplace transform and substituting
s =
jωh, the expression of
Ud_inj is in Equation (13):
As seen from Equation (13), if the
fh is high enough, the
ωh will be sufficiently high, then the voltage drop on inductive reactance is much higher than that on stator resistance. Thus, the solution of
Ld is [
9]:
where
is the identified
d-axis inductance. In addition, it should be noted that the current distortion near the zero current clamping (ZCC) zone may affect the identification accuracy. In order to pull the induced current out of the ZCC zone, a small fixed dc voltage
Ud_dc is added to
in Equation (11) to guarantee a more precise
Ld identification.
As stated in [
8], the values of stator inductances are affected by the magnetic saturation level (current magnitude). Since the SPMSM is mostly operated under
= 0 (
is the
d-axis current reference), the influence of the saturated effect on
Ld can be neglected. However, the variations in
Lq caused by the saturated effect should be considered. In this paper, the “dc+ac” voltage injection is used to extract
Lq at a random saturation level, where the dc signal determines the saturation point and the ac signal is used to identify the
Lq at that saturation point. When an HF voltage in Equation (15) is injected into the motor, the
q-axis HF current response is in Equation (16):
where
Uq_inj is the magnitude of the injected HF voltage,
Iqh is the amplitude of the induced HF current,
Uq_dc is the dc voltage signal, and its induced dc current is
Iq_dc. The identified
Lq is calculated in Equation (17) using a similar derivation of Equation (13) and Equation (14):
where
is the identified
q-axis inductance.
However, when using the HF voltage signals for stator inductance identification, the following dilemmas are unavoidable:
(1) Due to the existence of inverter nonlinearity effects, the
Ud_inj in Equation (14) and
Uq_inj in Equation (16) are not the real voltages that impose on the motor. When considering the voltage errors caused by inverter nonlinearity effects, the real voltages that impose on the motor are rewritten using Equation (18):
where
Ud_inj_r and
Uq_inj_r refer to the real voltages that impose on a motor and they should be used to replace
Ud_inj and
Uq_inj in Equation (14) and Equation (17), respectively.
(2) Due to the absence of a current controller, it is not easy to precisely determine the dc current
Iq_dc in Equation (16). A strategy is proposed in [
10] to approximate the
Iq_dc using calculation of “
Uq_dc/
Rs”, but it should be noted that due to the influence of inverter nonlinearity effects, the induced
Iq_dc is not a simple division of
Uq_dc by
Rs, and an incorrect
Iq_dc will inevitably cause error to
Lq identification.
(3) Due to the open-loop voltage injection based character, such as the method in [
9,
21], the amplitude of the excited HF current is not predictable. This may potentially trigger overcurrent protection, especially in case of low-impedance motors.
To solve the above-mentioned dilemma (1), two sets of HF voltage signals, with the same frequency (
fh), same dc voltage component but different amplitudes
Ud_inj1 and
Ud_inj2 (or
Uq_inj1 and
Uq_inj2), are sequentially injected through the
d-axis or
q-axis voltage for
Ld or
Lq identification. According to Equation (14), if the detected current amplitude excited by
Ud_inj1sin(
ωht) is
Idh1 and that excited by
Ud_inj2sin(
ωht) is
Idh2, then the identified
Ld can be calculated in Equation (19), and the
Lq can be calculated in Equation (20) using a similar derivation. There are two advantages for using this method. (i) Both the dc voltage bias and current bias are removed by simple subtraction in denominators and numerators in Equation (19) and Equation (20). (ii) The voltage errors caused by inverter nonlinearity effects are eliminated; the detailed reasons for this will be further explained at the end of this Subsection.
To solve the aforementioned dilemma (2) and dilemma (3), a general approach is proposed here which preserves the character of voltage injection and achieves a controllable current feedback during the stator inductance identification. First, a voltage signal, which is defined in Equation (21), is given as to detect every Uq_dc that should exert on the motor for each desired saturation point (Iq_dc), while the is kept as 0 V. The duration between every k to k+1 period in Equation (21) should be enough to make sure the induced Iq_dc has been fully stabilized at every dc voltage step. When the induced current achieves at a steady state, the excited Iq_dc(k) and its corresponding Uq_dc(k) are recorded accordingly. Second, in order to make sure the excited Idh and Iqh are in the controllable range, a voltage amplitude selection strategy to determine the values of Ux_inj1 and Ux_inj2 (x = d or q) is designed in the following:
After knowing the desired dc voltage at a specific saturation point (current level), two current thresholds are subjectively decided (defined as
and
). They are bigger than the dc current but close to each other. Then, a fixed frequency HF voltage signal is superposed upon the predetermined
Ud_dc (for
Ld identification) or
Uq_dc (for
Lq identification). The amplitude of the HF voltage signal is increased from 0 V. Voltage references during this process are shown by Equation (22), and the voltages that induce
and
are set as
Ux_inj1 and
Ux_inj2 (
x =
d or
q), respectively. The incremental voltage at each step can be relatively small for more accurate
Ux_inj1 and
Ux_inj2 (
x =
d or
q) detection.
where Δ
in Equation (21) and Δ
uL in Equation (22) are incremental voltage values to be added at each step.
Figure 4 is the block diagram of the proposed
d- and
q-axes inductances identification. Position information from the encoder is used to give the real position. For
Ld identification, the signal injected in the
d-axis enables the rotor to be self-fixed and the identification is achieved at standstill. For
Lq identification, the
q-axis current produces electromagnetic torque, which may rotate the rotor and affect the identification results, so the rotor shaft should be locked using a proper torque for
Lq identification.
The reason that Equation (19) and Equation (20) can eliminate the voltage errors caused by inverter nonlinearity effects is as follows:
The numerators of Equation (19) and Equation (20) can be expressed by Equation (23). According to Equation (18), Equation (23) is rewritten as Equation (24).
The inductance is identified under standstill, so the position feedback is a constant during the identification. As seen from
Figure 3, when the current is high enough, the Δ
uerror is in the saturated zone, then Δ
uerror2 = Δ
uerror1 stands. When the current is in the linear zone, Δ
uerror2 ≠ Δ
uerror1, but with the proposed method to control the induced current, Equation (22) is able to decide
Ux_inj2 and
Ux_inj1 (
x =
d or
q) and make their excitation current amplitudes
Ixh2 and
Ixh1 (
x =
d or
q) quite close. Then, Δ
uerror2 ≈ Δ
uerror1 stands. That is to say that Δ
uerror is eliminated at both high current levels and low current levels by the two HF voltage injection method.
2.4. Voltage Injection Based PM Flux Linkage Identification
The
q-axis voltage Equation is expressed in Equation (25). It can be seen that the
ψf is associated with electrical angular velocity
ωe, so the rotor movement is needed to excite the back-emf and compute the
ψf accordingly. In this paper, the
ψf identification is conducted under no load condition, and motor shaft free rotation is allowed.
As seen from Equation (25), when the motor is at standstill, the existence of
will excite
iq, and the
iq will generate shaft torque, which enable the movement of the rotor. The induced back-emf will lessen the voltage drop on
Rs, so the
iq (shaft torque) is decreased. If the
is controlled properly, balanced voltage drops on
Rsiq and
ωeψf can be achieved, then the motor can be regulated at a speed steady state by controlling the
only. The reason for the existence of
iq under no load is to generate proper torque to overcome the friction on the motor shaft. In addition, since the
id of the SPMSM is always controlled to be 0 A and the
Ld is very small (just several milli-henry), the value of
Ldωeid in Equation (25) can be ignored compared with the value of
ωeψf when the speed is not too low. An example can be given using parameters of motor #1 in
Table 1. Supposing the speed is 300 r/min (which is 125.6 rad/s for
ωe) and the variation on
id is about 0.2 A, the maximum variation of
Ldωeid is only 0.06, whereas the value of
ωeψf is 13.95 V.
As stated in [
14], the influence from inverter nonlinearities is a key factor influencing the identification accuracy of the
ψf. Under the steady state condition and considering the influence from inverter nonlinearity effects, Equation (25) is rewritten as [
16]:
where
DqVdead is the lumped voltage errors caused by inverter nonlinearity effects,
Vdead is a constant that is related to the parameters of power devices, dc bus voltage and load condition, and
Dq is a function of electrical angle
θe and directions of the three phase currents [
14]. The expression of
Dq is in Equation (27), and the simulated waveform of
Dq when using
= 0 control is shown in
Figure 5.
where
ia,
ib and
ic are A, B and C phase currents,
pi ≈ 3.1416, and
.
As seen from
Figure 5, the voltage distortion caused by inverter nonlinearity effects on
is a combination of a dc component and a sixth-order distortion. It will deteriorate
ψf identification accuracy, especially when the speed is relatively low. In order to get rid of the influence from
DqVdead, different compensation methods are adopted in [
14,
22]. However, the methods also have some practical limitations. First, the polarity of phase currents cannot be accurately detected due to the zero current clamping effect. Second, the electrical angle detection error is inevitable, so the accuracy of
Dq is affected, which consequently will affect
ψf identification.
In this paper,
ψf identification which does not need inverter nonlinearity compensation and the establishment of a speed controller and current controller is proposed. The overall process is achieved by controlling the
, and its block diagram is shown in
Figure 6. It is described as follows:
While the motor is at standstill under no load, the
is gradually increased, while the
is held as constant at 0 V. The torque excited by
will enable the speed to accelerate from 0 r/min. When the speed feedback arrives at
ωm1, the speed is maintained to be
ωm1 as much as possible by controlling
in Equation (28), and the speed steady state is kept at
ωm1 for at least time period
T1. The averages of the accumulated
,
iq and
ωe within
T1 are calculated using Equation (29). Next, the
continues to increase in the ramp manner until the speed arrives at
ωm2, similar to the process when the speed is at
ωm1. The speed is maintained at
ωm2 as much as possible by controlling
in Equation (28) for the duration of
T2. Then, the mean values of the accumulated
,
iq and
ωe within
T2 are calculated using Equation (30). Finally, the
is decreased gradually to 0 V and the
ψf identification is finished. In addition, in order to guarantee that all the information is acquired under the speed steady state, the accumulation processes in
T1 and
T2 are started only when the speed has arrived at
ωm1 and
ωm2 after a little while.
where Δ
is the adjustment voltage on
to control the speed feedback and is designed to be relatively small so that the speeds in
T1 and
T2 will not suffer drastic variation and a speed steady state is achieved.
where
,
and
are the average values of the
q-axis voltage,
q-axis current and electrical angular velocity within
T1, and
,
and
are those within
T2. Besides,
N1 =
T1/
Ts and
N2 =
T2/
Ts,
Ts is the sampling period. In this paper the
Ts is equal to the pulse width modulation (PWM) switching period.
With Equation (29), Equation (30) and the already identified
, expressions of
and
can be expressed as follows:
In this way the sixth-order distortion on
DqVdead becomes a constant. Subtracting Equation (31) from Equation (32), the
ψf is calculated as:
where
is the identified PM flux linkage, and
. The value of
DqVdead is affected by load condition, since the
ψf is identified under no load and the motor torque is mainly used to overcome the shaft friction. Thus,
and
in Equation (31) and Equation (32) can be regarded as having the same values [
16,
23], and they are eliminated by the subtraction in Equation (33). Hence, the voltage error caused by inverter nonlinearity is removed.