Main Content

MTPA Control Reference

Compute reference currents for maximum torque per ampere (MTPA) and field-weakening operation

Since R2020a

Libraries:
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 result in efficient output for the permanent magnet synchronous motor (PMSM).

You can specify the reference torque and feedback mechanical speed and the block outputs the corresponding d- and q-axes reference current values for MTPA and field-weakening operations. For a given mechanical speed, in addition to the highest possible torque values, the block also supports reference torque values that are less than the rated torque of a PMSM.

The block computes the reference current values by solving mathematical relationships.

In addition, you can use the Vdc input method parameter to configure the block to accept a fixed reference DC voltage through the DC voltage (V) parameter or a variable reference DC voltage through a separate input port Vdc.

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 the dynamics of the 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, the block considers values of id and iq corresponding to MTPA.

Using these equations, 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 the field-weakening operation, the block calculates the reference d-axis current using the 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 to compute iq_sat is:

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 these 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 the field-weakening operation, the block computes the reference d-axis current using the 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=min(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

These two equations describe the computation of field-weakening currents for maximum possible torque corresponding to a given speed value:

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

iq_fw= imax2 id_fw2

These two equations describe the computation of field-weakening currents for a given speed and torque value.

9p2(LdLq)2Lq2ωe2iq_fw4+(9p2λpm2Lq2ωe29p2(LdLq)2vmax2)iq_fw212TrefpλpmLdLqωe2iq_fw+4(Tref)2Ld2ωe2=0

id_fw=λpmLd+1Ldvmax2ωe2(Lqiq_fw)2

To reduce the computation time, the block uses approximations to solve the preceding polynomial.

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 block updates the sign of im and Iqref and modifies the equations 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).

Examples

Ports

Input

expand all

Reference torque input value for which the block computes the reference current. The unit of this port depends on the Input units parameter value. If you set this parameter to SI Units, the port accepts input signal in Nm.

Data Types: single | double | fixed point

Reference mechanical speed value for which the block computes the reference current. The unit of this port depends on the Input units parameter value. If you set this parameter to SI Units, the port accepts input signal in mechanical radians/sec.

Data Types: single | double | fixed point

Variable DC bus voltage. The unit of this port depends on the Input units parameter value. If you set this parameter to SI Units, the port accepts input signal in volts.

Dependencies

To enable this port, set Type of motor to Interior PMSM and Vdc input method to Input port.

Data Types: single | double | fixed point

Output

expand all

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

The unit of this port depends on the block input units defined by the Input units parameter. If you set this parameter to SI Units, the port outputs signal in amperes.

Data Types: single | double | fixed point

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

The unit of this port depends on the block input units defined by the Input units parameter. If you set this parameter to SI Units, the port outputs signal in amperes.

Data Types: single | double | fixed point

Parameters

expand all

Motor Parameters

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 (in ohms).

Dependencies

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

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

Stator winding inductance (in 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 (in weber) between the stator windings and permanent magnets on the rotor (weber).

Maximum phase current limit for the motor (in amperes).

Use one of these methods to specify the Vdc input.

  • Specify via dialog — Specify the fixed reference voltage Vdc using the parameter DC voltage (V).

  • Input port — Specify the variable reference voltage Vdc using the input port Vdc.

    Note

    If you select the Input port input method for Vdc, ensure that you configure the Base voltage (V) parameter in the Input Units tab.

Dependencies

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

DC bus voltage (in volts).

Dependencies

To enable this parameter, set Type of motor to Interior PMSM and Vdc input method to Specify via dialog.

Input Units

Unit of the block input values.

Speed of the motor (in rpm) at the rated voltage and rated current outside the field-weakening region.

Dependencies

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

Current (in amperes) 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).

Torque (in Nm) corresponding to 1 per-unit. See Per-Unit System page for more details.

You cannot specify this value. The block computes this value internally using other parameters.

Dependencies

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

Voltage (in volts) corresponding to 1 per-unit. See Per-Unit System page for more details.

You cannot specify this value. The block computes this value internally using other parameters.

Dependencies

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

Implementation

If you select this parameter, the block follows computational approximations to prioritize and reduce the algorithm execution time. Clear this field to run the block algorithms iteratively without using approximations.

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."

[8] Haque, M. E., L. Zhong, and M. F. Rahman. "Improved trajectory control for an interior permanent magnet synchronous motor drive with extended operating limit." Journal of Electrical & Electronics Engineering. Vol. 22, Number 1, 2003, p. 49.

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™.

Version History

Introduced in R2020a