Main Content

MTPA Control Reference

Compute reference currents for Maximum Torque Per Ampere (MTPA) and field-weakening operation

  • Library:
  • Motor Control Blockset / Controls / Control Reference

Description

The MTPA Control Reference block computes the d-axis and q-axis reference current values for maximum torque per ampere (MTPA) and field-weakening operations. The computed reference current values results in efficient output for the permanent magnet synchronous motor (PMSM).

The block accepts the reference torque and feedback mechanical speed and outputs the corresponding d- and q-axes reference current values for MTPA and field-weakening operations.

The block computes the reference current values by solving mathematical relationships. The calculations use SI unit system. When working with the Per-Unit (PU) system, the block converts PU input signals to SI units to perform computations, and converts them back to PU values at the output.

These equations describe the computation of reference d-axis and q-axis current values by the block:

Mathematical Model of PMSM

These model equations describe dynamics of PMSM in the rotor flux reference frame:

vd=idRs+ dλddt  ωeLqiq

vq=iqRs+ dλqdt + ωeLdid+ ωeλpm

λd=Ldid+ λpm

λq=Lqiq

Te= 32p(λpmiq+(Ld Lq)idiq)

Te TL=Jdωmdt +Bωm

where:

  • vd is the d-axis voltage (Volts).

  • vq is the q-axis voltage (Volts).

  • id is the d-axis current (Amperes).

  • iq is the q-axis current (Amperes).

  • Rs is the stator phase winding resistance (Ohms).

  • λpm is the permanent magnet flux linkage (Weber).

  • λd is the d-axis flux linkage (Weber).

  • λq is the q-axis flux linkage (Weber).

  • ωe is the electrical speed corresponding to frequency of stator voltages (Radians/ sec).

  • ωm is the rotor mechanical speed (Radians/ sec).

  • Ld is the d-axis winding inductance (Henry).

  • Lq is the q-axis winding inductance (Henry).

  • Te is the electromechanical torque produced by the PMSM (Nm).

  • TL is the load torque (Nm).

  • p is the number of motor pole pairs.

  • J is the inertia coefficient (kg-m2).

  • B is the friction coefficient (kg-m2/ sec).

Base Speed

Base speed is the maximum motor speed at the rated voltage and rated load, outside the field-weakening region. These equations describe the computation of the motor base speed.

The inverter voltage constraint is defined by computing the d-axis and q-axis voltages:

vdo= ωeLqiq

vqo=ωe(Ldid+ λpm)

vmax= vdc 3 Rsimax  vdo2+ vqo2

The current limit circle defines the current constraint which can be considered as:

imax2= id 2+ iq2

In the preceding equation, id is zero for surface PMSMs. For interior PMSMs, values of id and iq corresponding to MTPA are considered.

Using the preceding relationships, we can compute the base speed as:

ωbase= 1p vmax(Lqiq)2+(Ldid+ λpm)2

where:

  • ωe is the electrical speed corresponding to frequency of stator voltages (Radians/ sec).

  • ωbase is the mechanical base speed of the motor (Radians/ sec).

  • id is the d-axis current (Amperes).

  • iq is the q-axis current (Amperes).

  • vdo is the d-axis voltage when id is zero (Volts).

  • vqo is the q-axis voltage when iq is zero (Volts).

  • Ld is the d-axis winding inductance (Henry).

  • Lq is the q-axis winding inductance (Henry).

  • Rs is the stator phase winding resistance (Ohms).

  • λpm is the permanent magnet flux linkage (Weber).

  • vd is the d-axis voltage (Volts).

  • vq is the q-axis voltage (Volts).

  • vmax is the maximum fundamental line to neutral voltage (peak) supplied to the motor (Volts).

  • vdc is the dc voltage supplied to the inverter (Volts).

  • imax is the maximum phase current (peak) of the motor (Amperes).

  • p is the number of motor pole pairs.

Surface PMSM

For a surface PMSM, you can achieve maximum torque by using zero d-axis current when the motor is below the base speed. For field-weakening operation, the reference d-axis current is computed by constant-voltage-constant-power control (CVCP) algorithm defined by these equations:

If ωm ωbase:

  • id_mtpa= 0

  • iq_mtpa= Tref32pλpm

  • id_sat= id_mtpa= 0

  • iq_sat=sat(iq_mtpa,  imax)

If ωm> ωbase:

  • id_fw= (ωe_base ωe)λpmωeLd

  • id_sat=max(id_fw,  imax)

  • iq_fw= Tref32pλpm

  • iq_lim= imax2 id_sat2

  • iq_sat=sat(iq_fw,  iq_lim)

The saturation function used to compute iq_sat is described below:

If iq_fw< iq_lim,

iq_sat= iq_lim

If iq_fw>iq_lim,

iq_sat= iq_lim

If  iq_limiq_fwiq_lim,

iq_sat= iq_fw

The block outputs the following values:

Idref=id_sat

Iqref=iq_sat

where:

  • ωe is the electrical speed corresponding to frequency of stator voltages (Radians/ sec).

  • ωm is the rotor mechanical speed (Radians/ sec).

  • ωbase is the mechanical base speed of the motor (Radians/ sec).

  • ωe_base is the electrical base speed of the motor (Radians/ sec).

  • id_mtpa is the d-axis phase current corresponding to MTPA (Amperes).

  • iq_mtpa is the q-axis phase current corresponding to MTPA (Amperes).

  • Tref is the reference torque (Nm).

  • p is the number of motor pole pairs.

  • λpm is the permanent magnet flux linkage (Weber).

  • id_fw is the d-axis field weakening current (Amperes).

  • iq_fw is the q-axis field weakening current (Amperes).

  • Ld is the d-axis winding inductance (Henry).

  • imax is the maximum phase current (peak) of the motor (Amperes).

  • id_sat is the d-axis saturation current (Amperes).

  • iq_sat is the q-axis saturation current (Amperes).

  • Idref is the d-axis current corresponding to the reference torque and reference speed (Amperes).

  • Iqref is the q-axis current corresponding to the reference torque and reference speed (Amperes).

Interior PMSM

For an interior PMSM, you can achieve maximum torque by computing the d-axis and q-axis reference currents from the torque equation. For field-weakening operation, the reference d-axis current is computed by voltage and current limited maximum torque control (VCLMT) algorithm.

The reference currents for MTPA and field weakening operations are defined by these equations:

im_ref= 2Tref3pλpm

im=max(im_ref,  imax)

id_mtpa=λpm4(LqLd)λpm216(LqLd)2+im22

iq_mtpa=im2(id_mtpa)2

vdo=ωeLqiq

vqo=ωe(Ldid+ λpm)

vdo2+vqo2=vmax2

(Lqiq)2+(Ldid+ λpm)2 vmax2ωe2

iq= imax2 id2

(Ld2 Lq2)id2+2λpmLdid+ λpm2+ Lq2imax2vmax2ωe2=0

id_fw= λpmLd+ (λpmLd)2 (Ld2 Lq2)(λpm2+  Lq2imax2 vmax2ωe2  )(Ld2 Lq2)

iq_fw= imax2 id_fw2

If ωm ωbase,

Idref= id_mtpa

Iqref= iq_mtpa

If ωm> ωbase,

Idref=max(id_fw,imax)

iq_fw= imax2 id_fw2

If iq_fw<im,

Iqref=iq_fw

If iq_fwim,

Iqref=im

For negative reference torque values, the sign of im and Iqref are updated and equations are modified accordingly.

where:

  • im_ref is the estimated maximum current to produce the reference torque (Amperes).

  • im is the saturated value of estimated maximum current (Amperes).

  • id_max is the maximum d-axis phase current (peak) (Amperes).

  • iq_max is the maximum q-axis phase current (peak) (Amperes).

  • Tref is the reference torque (Nm).

  • Idref is the d-axis current component corresponding to the reference torque and reference speed (Amperes).

  • Iqref is the q-axis current component corresponding to the reference torque and reference speed (Amperes).

  • p is the number of motor pole pairs.

  • λpm is the permanent magnet flux linkage (Weber).

  • id_mtpa is the d-axis phase current corresponding to MTPA (Amperes).

  • iq_mtpa is the q-axis phase current corresponding to MTPA (Amperes).

  • Ld is the d-axis winding inductance (Henry).

  • Lq is the q-axis winding inductance (Henry).

  • imax is the maximum phase current (peak) of the motor (Amperes).

  • vmax is the maximum fundamental line to neutral voltage (peak) supplied to the motor (Volts).

  • vdo is the d-axis voltage when id is zero (Volts).

  • vqo is the q-axis voltage when iq is zero (Volts).

  • ωe is the electrical speed corresponding to frequency of stator voltages (Radians/ sec).

  • id is the d-axis current (Amperes).

  • iq is the q-axis current (Amperes).

  • id_fw is the d-axis field weakening current (Amperes).

  • iq_fw is the q-axis field weakening current (Amperes).

  • ωbase is the mechanical base speed of the motor (Radians/ sec).

Ports

Input

expand all

Reference torque input value for which the block computes the reference current.

Data Types: single | double | fixed point

Reference mechanical speed value for which the block computes the reference current.

Data Types: single | double | fixed point

Output

expand all

Reference d-axis phase current that can efficiently generate the input torque and speed values.

Data Types: single | double | fixed point

Reference q-axis phase current that can efficiently generate the input torque and speed values.

Data Types: single | double | fixed point

Parameters

expand all

Type of PMSM based on the location of the permanent magnets.

Number of pole pairs available in the motor.

Resistance of the stator phase winding (ohms).

Dependencies

To enable this parameter, set Type of motor to Interior PMSM.

Stator winding inductance (henry) along the d-axis of the rotating dq reference frame.

Stator winding inductance (henry) along the q-axis of the rotating dq reference frame.

Dependencies

To enable this parameter, set Type of motor to Interior PMSM.

Magnetic flux linkage between the stator windings and permanent magnets on the rotor (weber).

Maximum phase current limit for the motor (amperes).

DC bus voltage (volts)

Dependencies

To enable this parameter, set Type of motor to Interior PMSM.

Unit of the block input values.

Speed of the motor at the rated voltage and rated current outside the field weakening region.

Current corresponding to 1 per-unit. We recommend that you use the maximum current detected by an Analog to Digital Converter (ADC) as the base current.

Dependencies

To enable this parameter, set Input signal units to Per-Unit (PU).

References

[1] B. Bose, Modern Power Electronics and AC Drives. Prentice Hall, 2001. ISBN-0-13-016743-6.

[2] Morimoto, Shigeo, Masayuka Sanada, and Yoji Takeda. "Wide-speed operation of interior permanent magnet synchronous motors with high-performance current regulator." IEEE Transactions on Industry Applications, Vol. 30, Issue 4, July/August 1994, pp. 920-926.

[3] Li, Muyang. "Flux-Weakening Control for Permanent-Magnet Synchronous Motors Based on Z-Source Inverters." Master's Thesis, Marquette University, e-Publications@Marquette, Fall 2014.

[4] Briz, Fernando, Michael W. Degner, and Robert D. Lorenz. "Analysis and design of current regulators using complex vectors." IEEE Transactions on Industry Applications, Vol. 36, Issue 3, May/June 2000, pp. 817-825.

[5] Lorenz, Robert D., Thomas Lipo, and Donald W. Novotny. "Motion control with induction motors." Proceedings of the IEEE, Vol. 82, Issue 8, August 1994, pp. 1215-1240.

[6] Briz, Fernando, et al. "Current and flux regulation in field-weakening operation [of induction motors]." IEEE Transactions on Industry Applications, Vol. 37, Issue 1, Jan/Feb 2001, pp. 42-50.

[7] TI Application Note, "Sensorless-FOC With Flux-Weakening and MTPA for IPMSM Motor Drives."

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Fixed-Point Conversion
Design and simulate fixed-point systems using Fixed-Point Designer™.

Introduced in R2020a