Main Content

LUT based SynRM Control Reference

Generate lookup-table-based control reference currents for field-oriented control of SynRM and PMaSynRM

Since R2024a

  • LUT based SynRM Control Reference block

Libraries:
Motor Control Blockset / Controls / Control Reference

Description

The LUT based SynRM Control Reference block generates the d-axis and q-axis reference currents for field-oriented control and field-weakening control of a synchronous reluctance motor (SynRM) and a permanent magnet-assisted synchronous reluctance motor (PMaSynRM). You can specify reference torque and feedback mechanical speed and the block outputs the corresponding reference current values. The block also supports the maximum torque per ampere (MTPA) and maximum torque per voltage (MTPV) operating regions.

The block uses id(T,ω) and iq(T,ω) lookup tables (LUTs) to generate reference current values. Depending on the input method you use to specify the motor parameters, the block can either generate LUTs or use the data you provide.

You can specify the motor parameters using one of these methods.

Note

The following equations for SynRM and PMaSynRM follow a d-q axis notation that is identical to that of a permanent magnet synchronous motor (PMSM).

  • Linear model with lumped parameters — Lumped parameters with Ld and Lq (for SynRM) or lumped parameters with Ld, Lq, and FluxPM (for PMaSynRM)

    This method uses the lumped parameters to compute the id and iq LUTs. The block obtains id and iq for the given ω and T inputs by solving the equations associated with these curves.

    Maximum torque per ampere (MTPA) curve (for SynRM)

    id+iq=0

    Maximum torque per ampere (MTPA) curve (for PMaSynRM)

    id2+idψm(LdLq)=iq2.

    Constant torque trajectory (for SynRM)

    iq=T1.5Pp(LdLq)id

    Constant torque trajectory (for PMaSynRM)

    iq=T1.5Pp(ψm+(LdLq)id).

    Current limit curve

    id2+iq2=imax2.

    Voltage limit curve (for SynRM)

    (VDC3)2=(idRsωeLqiq)2+(iqRs+ωeLdid)2.

    Voltage limit curve (for PMaSynRM)

    (VDC3)2=(idRsωeLqiq)2+(iqRs+ωeLdid+ωeψm)2.

    • When the motor operates within the voltage constraints, the block solves for the intersection of the MTPA line and the constant torque trajectory.

    • When the motor operates beyond the voltage constraints, the block solves for the intersection of the voltage constraint curve and the constant torque trajectory.

    After computing the id and iq tables from a grid of ω and T values, the block uses interpolation to find id ref and iq ref for any ω and T inputs that lie within the range of the table values. The table values are clipped for ω and T values beyond the boundaries.

  • Non-linear model with Ld and Lq LUTs or Non-linear model with Ld, Lq, and FluxPM LUTs — Nonlinear model with d-axis and q-axis stator winding inductances and permanent magnet flux linkage lookup tables

    This method uses an approach similar to the lumped parameters method, except that the block updates the values for Ld(id,iq), Lq(id,iq), and FluxPM(id,iq) each time it computes id and iq . The block iterates these computations until the id and iq values converge.

    Note

    FluxPM(id,iq) value is applicable only to a PMaSynRM. Ld(id,iq) and Lq(id,iq) values are applicable for both SynRM and PMaSynRM.

  • Non-linear model with D,Q-flux linkage LUTs — Nonlinear model with d-axis and q-axis flux linkage lookup tables.

    This method uses an approach similar to the lumped parameters method, except that the block updates the values for ψd(id,iq) and ψq(id,iq) each time it computes id and iq . The block iterates these computations until the id and iq values converge.

  • Non-linear model with id and iq LUTs — Use this method when you want to manually provide the id(T,ω) and iq(T,ω) tables. Typically, you obtain these tables through simulations or dyno tests.

You can also generate these tables using the mcbGenerateTables function in Motor Control Blockset™.

For a detailed set of equations and assumptions that Motor Control Blockset uses for a synchronous reluctance machine, see Synchronous Reluctance Machine (Simscape Electrical).

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 to compute LUTs (V) parameter or a variable reference DC voltage through a separate input port Vdc .

Based on the method you select in the Motor parameter input method parameter, you can use the lumped parameters or a nonlinear model to compute the reference currents as shown in this table.

Motor parameter input method Vdc input method Technique used to compute reference currents
Linear model with lumped parameters Specify via dialog The block uses the lumped parameters to compute the id and iq LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter, using which it determines the reference currents.
Input port - use 3D LUT (voltage slice based) The block uses the lumped parameters to compute the 3-D id and iq LUTs containing data for different voltages (or voltage slices specified in the DC bus voltage breakpoint vector, Vdc (V) parameter). It uses this data to determine the reference currents corresponding to the voltage specified at the input port Vdc .
Input port - use 2D LUT (scaled-w based) The block uses the lumped parameters to compute the 2-D id and iq LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter. It uses these LUTs to compute the reference currents (corresponding to the voltage provided at the input port Vdc ) by scaling the speed (ω).
Non-linear model with D,Q-flux linkage LUTs Specify via dialog The block computes the reference currents by using the d-axis and q-axis flux linkage LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter.
Input port - use 3D LUT (voltage slice based) The block uses the 3-D d-axis and q-axis flux linkage LUTs containing data for different voltages (or voltage slices specified in the DC bus voltage breakpoint vector, Vdc (V) parameter). It uses these LUTs to compute the reference currents corresponding to the voltage provided at the input port Vdc .
Input port - use 2D LUT (scaled-w based) The block uses the 2-D d-axis and q-axis flux linkage LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter. It uses these LUTs to compute the reference currents (corresponding to the voltage provided at the input port Vdc ) by scaling the speed (ω).
Non-linear model with Ld and Lq LUTs Specify via dialog The block computes the reference currents by using the given Ld and Lq LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter.
Input port - use 3D LUT (voltage slice based) The block uses the given 3-D Ld and Lq LUTs containing data for different voltages (or voltage slices specified in the DC bus voltage breakpoint vector, Vdc (V) parameter). It uses these LUTs to compute the reference currents corresponding to the voltage provided at the input port Vdc .
Input port - use 2D LUT (scaled-w based) The block uses the given 2-D Ld and Lq LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter. It uses these LUTs to compute the reference currents (corresponding to the voltage provided at the input port Vdc ) by scaling the speed (ω).
Non-linear model with Ld, Lq, and FluxPM LUTs Specify via dialog The block computes the reference currents by using the given Ld , Lq , and permanent magnet flux linkage LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter.
Input port - use 3D LUT (voltage slice based) The block uses the given 3-D Ld , Lq , and permanent magnet flux linkage LUTs containing data for different voltages (or voltage slices specified in the DC bus voltage breakpoint vector, Vdc (V) parameter). It uses these LUTs to compute the reference currents corresponding to the voltage provided at the input port Vdc .
Input port - use 2D LUT (scaled-w based) The block uses the given 2-D Ld , Lq , and permanent magnet flux linkage LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter. It uses these LUTs to compute the reference currents (corresponding to the voltage provided at the input port Vdc ) by scaling the speed (ω).
Non-linear model with id and iq LUTs Specify via dialog The block determines the reference currents by using the given id , iq LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter.
Input port - use 3D LUT (voltage slice based) The block uses the given 3-D id , iq LUTs containing data for different voltages (or voltage slices specified in the DC bus voltage breakpoint vector, Vdc (V) parameter). It uses these LUTs to determine the reference currents corresponding to the voltage provided at the input port Vdc .
Input port - use 2D LUT (scaled-w based) The block uses the given 2-D id , iq LUTs for a fixed voltage specified in the DC bus voltage, Vdc (V) parameter. It uses these LUTs to compute the reference currents (corresponding to the voltage provided at the input port Vdc ) by scaling the speed (ω).

Ports

Input

expand all

Reference torque input value (in Nm) for which the block computes the reference current.

Data Types: single | double | fixed point

Reference mechanical speed value (in rad/sec) for which the block computes the reference current.

Data Types: single | double | fixed point

Variable DC bus voltage (in volts).

Dependencies

To enable this port, set Vdc input method to Input port - use 3D LUT (voltage slice based) or Input port - use 2D LUT (scaled-w based).

Data Types: single | double | fixed point

Output

expand all

Reference d-axis phase current (in amperes).

Data Types: single | double | fixed point

Reference q-axis phase current (in amperes).

Data Types: single | double | fixed point

Parameters

expand all

Motor Parameters

Type of synchronous reluctance motor.

Type of alignment for the d- and q-axes. You can select one of these options:

  • Ld > Lq (different from PMSM) — Select this option to use a d- and q-axes alignment that is different from that of PMSM.

  • Lq > Ld (same as PMSM) — Select this option to use a d- and q-axes alignment that is identical to that of PMSM.

For more information regarding the type of alignment, see SynRM Constraint Curves and Their Application.

Number of pole pairs available in the motor.

Resistance of the stator phase winding (in ohms).

Use one of these methods to specify the Vdc input.

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

  • Input port - use 3D LUT (voltage slice based) — Specify the variable reference voltage Vdc using the input port Vdc. When using this option, the block computes the reference current data for the given voltage by using a 3-D lookup table (LUT) based on voltage slicing.

  • Input port - use 2D LUT (scaled-w based) — Specify the variable reference voltage Vdc using the input port Vdc. When using this option, the block computes the reference current data for the given voltage by using a 2-D LUT based on motor speed (ω) scaling.

DC bus voltage (in volts) that the block uses to compute LUTs.

Dependencies

To enable this parameter, set Vdc input method to Specify via dialog or Input port - use 2D LUT (scaled-w based).

DC bus voltage lookup vector used in id and iq lookup tables (in volts).

Dependencies

To enable this parameter, set Vdc input method to Input port - use 3D LUT (voltage slice based).

Motor parameters that the block uses to generate the control reference currents. Set the parameter to one of these values:

  • Linear model with lumped parameters — Generate current reference tables using lumped circuit values for motor parameters Ld , Lq , and FluxPM.

  • Non-linear model with D,Q-flux linkage LUTs — Generate current reference tables using d-axis and q-axis flux linkage lookup tables.

  • Non-linear model with Ld and Lq LUTs — Generate current reference tables using Ld and Lq lookup tables.

  • Non-linear model with Ld, Lq, and FluxPM LUTs — Generate current reference tables using Ld , Lq , and FluxPM lookup tables.

  • Non-linear model with id and iq LUTs — Determine the current reference using the id and iq lookup tables.

Dependencies

  • To enable the Non-linear model with Ld and Lq LUTs option, set Motor topology to Synchronous reluctance motor.

  • To enable the Non-linear model with Ld, Lq, and FluxPM LUTs option, set Motor topology to PM-assisted synchronous reluctance motor.

Enable this parameter to use custom lookup vectors for motor torque and speed quantities.

Dependencies

To enable this parameter, set Motor parameter input method to either Linear model with lumped parameters, Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

Torque reference lookup vector used in the id and iq lookup tables (in Nm). The vector can have any number of elements.

Dependencies

To enable this parameter, either:

  • Set Motor parameter input method to either Linear model with lumped parameters, Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

  • Select the Enable custom breakpoint vectors for torque and speed parameter.

or

  • Set Motor parameter input method to Non-linear model with id and iq LUTs.

Rotor speed lookup vector used in the id and iq lookup tables (in rpm). The vector can have any number of elements.

Dependencies

To enable this parameter, either:

  • Set Motor parameter input method to either Linear model with lumped parameters, Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

  • Select the Enable custom breakpoint vectors for torque and speed parameter.

or

  • Set Motor parameter input method to Non-linear model with id and iq LUTs.

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

Viscous damping coefficient Bv of the motor in N·m/(rad/s).

D-axis current vector (in amperes) in the Ld , Lq , and FluxPM lookup tables.

Dependencies

To enable this parameter, set Motor parameter input method parameter to either Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

Q-axis current vector (in amperes) in the Ld , Lq , and FluxPM lookup tables.

Dependencies

To enable this parameter, set Motor parameter input method parameter to either Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

Enable this parameter to provide measured (instead of computed) torque lookup data to the block.

Dependencies

To enable this parameter, set Motor parameter input method to either Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

Measured torque lookup table data (in weber).

Dependencies

To enable this parameter:

  • Set Motor parameter input method to either Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

  • Select the Use measured (instead of computed) torque parameter.

Linear Model with Lumped Parameters

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

Dependencies

To enable this parameter, set Motor parameter input method to Linear model with lumped parameters.

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

Dependencies

To enable this parameter, set Motor parameter input method to Linear model with lumped parameters.

Peak permanent magnet flux linkage (in weber).

Dependencies

To enable this parameter, set Motor topology to PM-assisted synchronous reluctance motor and Motor parameter input method to Linear model with lumped parameters.

Non-Linear Model with D,Q-Flux Linkage LUTs

D-axis flux linkage lookup table data (in weber).

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with D,Q-flux linkage LUTs.

Q-axis flux linkage lookup table data (in weber).

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with D,Q-flux linkage LUTs.

Non-Linear Model with Ld and Lq (as well as Ld , Lq , and FluxPM) LUTs

D-axis inductance lookup table data (in henries).

Dependencies

To enable this parameter, set Motor parameter input method to either Non-linear model with Ld and Lq LUTs or Non-linear model with Ld, Lq, and FluxPM LUTs.

Q-axis inductance lookup table data (in henries).

Dependencies

To enable this parameter, set Motor parameter input method to either Non-linear model with Ld and Lq LUTs or Non-linear model with Ld, Lq, and FluxPM LUTs.

Permanent magnet flux linkage lookup table data (in weber).

Dependencies

To enable this parameter:

  • Set Motor topology to PM-assisted synchronous reluctance motor.

  • Set Motor parameter input method to Non-linear model with Ld, Lq, and FluxPM LUTs.

Non-Linear Model with id and iq LUTs

D-axis current reference 2-D lookup table data (in amperes).

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with id and iq LUTs and Vdc input method to either Specify via dialog or Input port - use 2D LUT (scaled-w based).

D-axis current reference 3-D lookup table data (in amperes).

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with id and iq LUTs and Vdc input method to Input port - use 3D LUT (voltage slice based).

Q-axis current reference 2-D lookup table data (in amperes).

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with id and iq LUTs and Vdc input method to either Specify via dialog or Input port - use 2D LUT (scaled-w based).

Q-axis current reference 3-D lookup table data (in amperes).

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with id and iq LUTs and Vdc input method to Input port - use 3D LUT (voltage slice based).

Input Units

Unit of measure of the block input values.

Base voltage (in volts) for the per-unit system.

Dependencies

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

Base current (in amperes) for the per-unit system.

Dependencies

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

Base speed (in rpm) for the per-unit system.

Dependencies

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

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

You cannot configure this parameter. The block computes this value internally using the other parameters.

Dependencies

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

Option to scale down internal parameters to match the per-unit scale when generating code.

  • When you enable this option, the block scales down the internal constants and coefficients to match the per-unit scale. This allows for higher precision when you use the fixed-point data type. If you use this option with the single or double data type, some precision loss can occur depending on the number of bits allotted to the integer portion.

  • When you disable this option, the block converts all the constants and coefficients it uses for internal calculations to SI units and then converts them back to the per-unit scale. This allows you to update the lookup table values in the generated code, typically, for applications such as controller tuning or end-of-line operations. You can also update the values manually for debugging or reusing previously generated code.

Dependencies

To enable this parameter, set Motor parameter input method to Non-linear model with id and iq LUTs and Input units to Per-Unit (PU).

Plotting Options

The block enables this tab only when you:

  • Set Motor parameter input method to either Linear model with lumped parameters, Non-linear model with D,Q-flux linkage LUTs, Non-linear model with Ld and Lq LUTs, or Non-linear model with Ld, Lq, and FluxPM LUTs.

  • Set Vdc input method to Specify via dialog.

Enable the block to save the lookup table data that the block computes when you click the Compute (and plot) id and iq LUTs button.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

When you click this button, the block computes (and plots) the lookup table data for id and iq currents.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Enable the block to use default plotting options when you click the Plot constraint curves button to plot the constraint curves of motor.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Motor speed (in RPM) that the block should use when you click the Plot constraint curves button to plot the constraint curves of motor.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Dependencies

To enable this parameter, clear the Use default options for plotting parameter.

Motor torque (in Nm) that the block should use when you click the Plot constraint curves button to plot the constraint curves of motor.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Dependencies

To enable this parameter, clear the Use default options for plotting parameter.

Enable the block to plot the drive characteristics when you click the Plot constraint curves button to plot the constraint curves of motor.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Dependencies

To enable this parameter, clear the Use default options for plotting parameter.

Enable the block to include drive characteristics for an increased motor current (in the plot generated upon clicking the Plot constraint curves button).

Note

To successfully plot the characteristics for an increased motor current, the current must be higher than the rated current of the motor.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Dependencies

To enable this parameter, clear the Use default options for plotting parameter and select the Enable plotting the drive characteristics parameter.

When you click this button, the block plots the constraint curves of the motor.

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

When you click this button, the block computes and shows the following torque and speed characteristics:

  • Rated torque — Rated torque of motor (in Nm).

  • Rated speed — Rated speed of motor (in RPM).

  • Maximum speed — Maximum speed of motor (in RPM).

For more details, see Plot Constraint Curves and Drive Characteristics for PMSM and SynRM Directly from Block Parameters Dialog Box.

Extended Capabilities

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

Version History

Introduced in R2024a