Surface Mount PM Controller

Torque-based, field-oriented controller for a surface mount permanent magnet synchronous motor

Libraries:
Powertrain Blockset / Propulsion / Electric Motors and Inverters
Motor Control Blockset / Electrical Systems / Motors

Description

The Surface Mount PM Controller block implements a torque-based, field-oriented controller for a surface mount permanent magnet synchronous motor (PMSM) with an optional outer-loop speed controller. The torque control utilizes quadrature current and does not weaken the magnetic flux. You can specify either speed or torque control.

The Surface Mount PM Controller implements equations for speed control, torque determination, regulators, transforms, and motors.

The figure illustrates the information flow in the block.

The block implements equations that use these variables.

 ω Rotor speed ω* Rotor speed command T* Torque command idi*d d-axis currentd-axis current command iqi*q q-axis currentq-axis current command vd,v*d d-axis voltaged-axis voltage command vqv*q q-axis voltageq-axis voltage command va, vb, vc Stator phase a, b, c voltages ia, ib, ic Stator phase a, b, c currents

Speed Controller

To implement the speed controller, select the Control Type parameter Speed Control. If you select the Control Type parameter Torque Control, the block does not implement the speed controller.

The speed controller determines the torque command by implementing a state filter, and calculating the feedforward and feedback commands. If you do not implement the speed controller, input a torque command to the Surface Mount PM Controller block.

State Filter

The state filter is a low-pass filter that generates the acceleration command based on the speed command. On the Speed Controller tab:

• To make the speed-command lag time negligible, specify a Bandwidth of the state filter parameter.

• To calculate a Speed regulation time constant, Ksf gain based on the state filter bandwidth, select Calculate Speed Regulator Gains.

The discrete form of characteristic equation is given by:

$z+{K}_{sf}{T}_{sm}-1$

The filter calculates the gain using this equation.

${K}_{sf}=\frac{1-\mathrm{exp}\left(-{T}_{sm}2\pi E{V}_{sf}\right)}{{T}_{sm}}$

The equations use these variables.

 EVsf Bandwidth of the speed command filter Tsm Motion controller sample time Ksf Speed regulator time constant

State Feedback

To generate the state feedback torque, the block uses the filtered speed error signal from the state filter. The feedback torque calculation also requires gains for speed regulator.

On the Speed Controller tab, select Calculate Speed Regulator Gains to calculate:

• Proportional gain, ba

• Angular gain, Ksa

• Rotational gain, Kisa

For the gain calculations, the block uses the inertia from the Physical inertia, viscous damping, static friction parameter value on the Motor Parameters tab.

The gains for the state feedback are calculated using these equations.

CalculationEquations
Discrete forms of characteristic equation

$\left(z-{p}_{1}\right)\left(z-{p}_{2}\right)\left(z-{p}_{3}\right)={z}^{3}+\left({p}_{1}+{p}_{2}+{p}_{3}\right){z}^{2}+\left({p}_{1}{p}_{2}+{p}_{2}{p}_{3}+{p}_{1}3\right){z}^{2}-{p}_{1}{p}_{2}{p}_{3}$

Speed regulator proportional gain

${b}_{a}=\frac{{J}_{p}-{J}_{p}{p}_{1}{p}_{2}{p}_{3}}{{T}_{sm}}$

Speed regulator integral gain

${K}_{sa}=\frac{{J}_{p}\left({p}_{1}{p}_{2}+{p}_{2}{p}_{3}+{p}_{3}{p}_{1}\right)-3{J}_{p}+2{b}_{a}{T}_{sm}}{{T}_{sm}^{2}}$

Speed regulator double integral gain

${K}_{isa}=\frac{-{J}_{p}\left({p}_{1}+{p}_{2}+{p}_{3}\right)+3{J}_{p}-{b}_{a}{T}_{sm}-{K}_{sa}{T}_{sm}^{2}}{{T}_{sm}^{3}}$

The equations use these variables.

 P Motor pole pairs ba Speed regulator proportional gain Ksa Speed regulator integral gain Kisa Speed regulator double integral gain Jp Motor inertia Tsm Motion controller sample time

Command Feedforward

To generate the state feedforward torque, the block uses the filtered speed and acceleration from the state filter. Also, the feedforward torque calculation uses the inertia, viscous damping, and static friction. To achieve zero tracking error, the torque command is the sum of the feedforward and feedback torque commands.

Selecting Calculate Speed Regulator Gains on the Speed Controller tab updates the inertia, viscous damping, and static friction with the Physical inertia, viscous damping, static friction parameter values on the Motor Parameters tab.

The feedforward torque command uses this equation.

The equation uses these variables.

 Jp Motor inertia Tcmd_ff Torque command feedforward Fs Static friction torque constant Fv Viscous friction torque constant Fs Static friction torque constant ωm Rotor speed

Torque Determination

The block uses a quadrature current to determine the base speed and the current commands. The available bus voltage determines the base speed. The direct (d) and quadrature (q) permanent magnet (PM) determines the induced voltage.

CalculationEquations
Motor maximum torque
Maximum q-axis phase current${i}_{q_max}=\frac{{T}_{cmd}}{\frac{3}{2}P{\lambda }_{pm}}$
Electrical base speed
d-axis voltage${v}_{d}=-{\omega }_{e}{L}_{q}{i}_{q_max}$
q-axis voltage${v}_{q}={\omega }_{e}{\lambda }_{pm}$
Maximum phase current
Maximum voltage
Current command

If

Else

If

Else

End
End

The equations use these variables.

 imax Maximum phase current id d-axis current iq q-axis current idref d-axis reference current iqref q-axis reference current iq_max Maximum q-axis phase current ωe Rotor electrical speed λpm Permanent magnet flux linkage vd d-axis voltage vq q-axis voltage vmax Maximum line to neutral voltage vbus DC bus voltage Ld d-axis winding inductance Lq q-axis winding inductance P Motor pole pairs Tmax Motor maximum torque Tcmd Commanded motor maximum torque

Current Regulators

The block regulates the current with an anti-windup feature. Classic proportional-integrator (PI) current regulators do not consider the d-axis and q-axis coupling or the back-electromagnetic force (EMF) coupling. As a result, transient performance deteriorates. To account for the coupling, the block implements the complex vector current regulator (CVCR) in the scalar format of the rotor reference frame. The CVCR decouples:

• d-axis and q-axis current cross-coupling

• back-EMF cross-coupling

The current frequency response is a first-order system, with a bandwidth of EVcurrent.

The block implements these equations.

CalculationEquations
Motor voltage, in the rotor reference frame
Current regulator gains$\begin{array}{l}{\omega }_{b}=2\pi E{V}_{current}\\ {K}_{p_d}={L}_{d}{\omega }_{b}\\ {K}_{p_q}={L}_{q}{\omega }_{b}\\ {K}_{i}={R}_{s}{\omega }_{b}\end{array}$
Transfer functions

The equations use these variables.

 EVcurrent Current regulator bandwidth id d-axis current iq q-axis current Kp_d Current regulator d-axis gain Kp_q Current regulator q-axis gain Ki Current regulator integrator gain Ld d-axis winding inductance Lq q-axis winding inductance Rs Stator phase winding resistance ωm Rotor speed vd d-axis voltage vq q-axis voltage λpm Permanent magnet flux linkage P Motor pole pairs

Transforms

To calculate the voltages and currents in balanced three-phase (a, b) quantities, quadrature two-phase (α, β) quantities, and rotating (d, q) reference frames, the block uses the Clarke and Park Transforms.

In the transform equations.

TransformDescriptionEquations

Clarke

Converts balanced three-phase quantities (a, b) into balanced two-phase quadrature quantities (α, β).

Park

Converts balanced two-phase orthogonal stationary quantities (α, β) into an orthogonal rotating reference frame (d, q).

Inverse Clarke

Converts balanced two-phase quadrature quantities (α, β) into balanced three-phase quantities (a, b).

Inverse Park

Converts an orthogonal rotating reference frame (d, q) into balanced two-phase orthogonal stationary quantities (α, β).

The transforms use these variables.

 ωm Rotor speed P Motor pole pairs ωe Rotor electrical speed Θe Rotor electrical angle x Phase current or voltage

Motor

The block uses the phase currents and phase voltages to estimate the DC bus current. Positive current indicates battery discharge. Negative current indicates battery charge. The block uses these equations.

 Load power Source power DC bus current Estimated rotor torque $MtrTr{q}_{est}=1.5P\left[\lambda {i}_{q}+\left({L}_{d}-{L}_{q}\right){i}_{d}{i}_{q}\right]$ Power loss for single efficiency source to load $Pw{r}_{Loss}=\frac{100-Eff}{Eff}\cdot L{d}_{Pwr}$ Power loss for single efficiency load to source $Pw{r}_{Loss}=\frac{100-Eff}{100}\cdot |L{d}_{Pwr}|$ Power loss for tabulated efficiency

The equations use these variables.

 va, vb, vc Stator phase a, b, c voltages vbus Estimated DC bus voltage ia, ib, ic Stator phase a, b, c currents ibus Estimated DC bus current Eff Overall inverter efficiency ωm Rotor mechanical speed Lq q-axis winding inductance Ld d-axis winding inductance iq q-axis current id d-axis current λ Permanent magnet flux linkage P Motor pole pairs

Electrical Losses

To specify the electrical losses, on the Electrical Losses tab, for Parameterize losses by, select one of these options.

SettingBlock Implementation
Single efficiency measurement

Electrical loss calculated using a constant value for inverter efficiency.

Tabulated loss data

Electrical loss calculated as a function of motor speeds and load torques.

Tabulated efficiency data

Electrical loss calculated using inverter efficiency that is a function of motor speeds and load torques.

• Converts the efficiency values you provide into losses and uses the tabulated losses for simulation.

• Ignores efficiency values you provide for zero speed or zero torque. Losses are assumed zero when either torque or speed is zero.

• Uses linear interpolation to determine losses. Provide tabulated data for low speeds and low torques, as required, to get the desired level of accuracy for lower power conditions.

• Does not extrapolate loss values for speed and torque magnitudes that exceed the range of the table.

For best practice, use Tabulated loss data instead of Tabulated efficiency data:

• Efficiency becomes ill defined for zero speed or zero torque.

• You can account for fixed losses that are still present for zero speed or torque.

Ports

Input

expand all

Rotor speed command, ω*m, in rad/s.

Dependencies

To create this port, select Speed Control for the Control Type parameter.

Torque command, T*, in N·m.

Dependencies

To create this port, select Torque Control for the Control Type parameter.

DC bus voltage vbus, in V.

Stator current phase a, ia, in A.

Stator current phase b, ib, in A.

Rotor electrical angle, Θm, in rad.

Output

expand all

Bus signal containing these block calculations.

SignalDescriptionUnits

SrcPwr

Source power

W

LdPwr

W

PwrLoss

Power loss

W

MtrTrqEst

Estimated motor torque

N·m

Estimated DC bus current, ibus, in A.

Stator terminal voltages, Va, Vb, and Vc, in V.

Parameters

expand all

Configuration

If you select Torque Control, the block does not implement the speed controller.

This table summarizes the port configurations.

Port ConfigurationCreates Ports
Speed Control

SpdReq

Torque Control

TrqCmd

Motor Parameters

Stator phase winding resistance, Rs, in ohm.

Dependencies

This table summarizes the parameter dependencies.

ParameterUsed to Derive
ParameterTab

Stator resistance, Rs

D and Q axis integral gain, Ki

Current Controller

D-axis winding inductance, Ldq, in H.

Dependencies

This table summarizes the parameter dependencies.

ParameterUsed to Derive
ParameterTab

DQ axis inductance, Ldq

D-axis proportional gain, Kp_d

Q-axis proportional gain, Kp_q

D and Q axis integral gain, Ki

Current Controller

Permanent magnet flux, λpm, in Wb.

Motor pole pairs, P.

Mechanical properties of the motor:

• Motor inertia, Fv, in kgm^2

• Viscous friction torque constant, Fv, in N·m/(rad/s)

• Static friction torque constant, Fs, in N·m

Dependencies

To enable this parameter, set the Control Type parameter to Speed Control.

For the gain calculations, the block uses the inertia from the Physical inertia, viscous damping, static friction parameter value that is on the Motor Parameters tab.

This table summarizes the parameter dependencies.

ParameterUsed to Derive
ParameterTab

Physical inertia, viscous damping, static friction, Mechanical

Proportional gain, ba

Angular gain, Ksa

Rotational gain, Kisa

Inertia compensation, Jcomp

Viscous damping compensation, Fv

Static friction, Fs

Speed Controller
Id and Iq Calculation

Maximum torque, in N·m.

Current Controller

Current regulator bandwidth, in Hz.

Dependencies

This table summarizes the parameter dependencies.

ParameterUsed to Derive
ParameterTab

Bandwidth of the current regulator, EV_current

D-axis proportional gain, Kp_d

Q-axis proportional gain, Kp_q

D and q axis proportional gain, Ki

Current Controller

Torque control sample time, in s.

Dependencies

This table summarizes the parameter dependencies.

ParameterUsed to Derive
ParameterTab

Sample time for the torque control, Tst

Speed regulation time constant, Ksf

Speed Controller

Click to derive parameters.

Dependencies

On the Current Controller tab, when you select Calculate Current Regulator Gains, the block calculates derived parameters. The table summarizes the derived parameters that depend on other block parameters.

Derived Parameter on Current Controller tabDependency
ParameterTab

D-axis proportional gain, Kp_d

Q-axis proportional gain, Kp_q

D and Q axis integral gain, Ki

Bandwidth of the current regulator, EV_current

Current Controller

Stator resistance, Rs

DQ-axis inductance, Ldq

Motor Parameters

Derived d-axis proportional gain, in V/A.

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

D-axis proportional gain, Kp_d

Bandwidth of the current regulator, EV_current

Current Controller

DQ-axis inductance, Ldq

Motor Parameters

Derived q-axis proportional gain, in V/A.

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Q-axis proportional gain, Kp_q

Bandwidth of the current regulator, EV_current

Current Controller

DQ-axis inductance, Ldq

Motor Parameters

Derived axis integral gain, in V/A*s.

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

D and Q axis integral gain, Ki

Bandwidth of the current regulator, EV_current

Current Controller

Stator resistance, Rs

DQ-axis inductance, Ldq

Motor Parameters

Speed Controller

Motion controller bandwidth, in Hz. Set the first element of the vector to the desired cutoff frequency. Set the second and third elements of the vector to the higher-order cut off frequencies. You can set the value of the next element to 1/5 the value of the previous element. For example, if the desired cutoff frequency is 20 Hz, specify [20 4 0.8].

Dependencies

The parameter is enabled when the Control Type parameter is set to Speed Control.

ParameterUsed to Derive
ParameterTab

Bandwidth of the motion controller, EV_motion

Proportional gain, ba

Angular gain, Ksa

Rotational gain, Kisa

Speed Controller

State filter bandwidth, in Hz.

Dependencies

The parameter is enabled when the Control Type parameter is set to Speed Control.

ParameterUsed to Derive
ParameterTab

Bandwidth of the state filter, EV_sf

Speed regulation time constant, Ksf

Speed Controller

Click to derive parameters.

Dependencies

On the Speed Controller tab, when you select Calculate Speed Regulator Gains, the block calculates derived parameters. The table summarizes the derived parameters that depend on other block parameters.

Derived Parameter on Speed Controller tabDepends On
ParameterTab

Proportional gain, ba

${b}_{a}=\frac{{J}_{p}-{J}_{p}{p}_{1}{p}_{2}{p}_{3}}{{T}_{sm}}$

Bandwidth of the motion controller, EV_motion

Bandwidth of the state filter, EV_sf

Speed Controller

Angular gain, Ksa

${K}_{sa}=\frac{{J}_{p}\left({p}_{1}{p}_{2}+{p}_{2}{p}_{3}+{p}_{3}{p}_{1}\right)-3{J}_{p}+2{b}_{a}{T}_{sm}}{{T}_{sm}^{2}}$

Sample time for the torque control, Tst

Current Controller

Rotational gain, Kisa

${K}_{isa}=\frac{-{J}_{p}\left({p}_{1}+{p}_{2}+{p}_{3}\right)+3{J}_{p}-{b}_{a}{T}_{sm}-{K}_{sa}{T}_{sm}^{2}}{{T}_{sm}^{3}}$Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Speed regulation time constant, Ksf

${K}_{sf}=\frac{1-\mathrm{exp}\left(-{T}_{sm}2\pi E{V}_{sf}\right)}{{T}_{sm}}$

Inertia compensation, Jcomp

Jcomp = JpPhysical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Viscous damping compensation, Fv

Fv

Static friction, Fs

Fs

The equations use these variables.

 P Motor pole pairs ba Speed regulator proportional gain Ksa Speed regulator integral gain Kisa Speed regulator double integral gain Ksf Speed regulator time constant Jp Motor inertia EVsf State filter bandwidth EVmotion Motion controller bandwidth

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Proportional gain, ba

Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Bandwidth of the motion controller, EV_motion

Speed Controller

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Angular gain, Ksa

Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Bandwidth of the motion controller, EV_motion

Speed Controller

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Rotational gain, Kisa

Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Bandwidth of the motion controller, EV_motion

Speed Controller

Derived speed regulation time constant, in 1/s.

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Speed regulation time constant, Ksf

Sample time for the torque control, Tst

Current Controller

Bandwidth of the state filter, EV_sf

Speed Controller

Derived inertia compensation, in kg·m^2.

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Inertia compensation, Jcomp

Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Viscous damping compensation, Fv

Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters

Dependencies

This table summarizes the parameter dependencies.

ParameterDependency
ParameterTab

Static friction, Fs

Physical inertia, viscous damping, static friction, Mechanical

Motor Parameters
Electrical Losses

SettingBlock Implementation
Single efficiency measurement

Electrical loss calculated using a constant value for inverter efficiency.

Tabulated loss data

Electrical loss calculated as a function of motor speeds and load torques.

Tabulated efficiency data

Electrical loss calculated using inverter efficiency that is a function of motor speeds and load torques.

• Converts the efficiency values you provide into losses and uses the tabulated losses for simulation.

• Ignores efficiency values you provide for zero speed or zero torque. Losses are assumed zero when either torque or speed is zero.

• Uses linear interpolation to determine losses. Provide tabulated data for low speeds and low torques, as required, to get the desired level of accuracy for lower power conditions.

• Does not extrapolate loss values for speed and torque magnitudes that exceed the range of the table.

For best practice, use Tabulated loss data instead of Tabulated efficiency data:

• Efficiency becomes ill defined for zero speed or zero torque.

• You can account for fixed losses that are still present for zero speed or torque.

Overall inverter efficiency, Eff, in %.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated loss data.

Speed breakpoints for lookup table when calculating losses, in rad/s.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated loss data.

Torque breakpoints for lookup table when calculating losses, in N·m.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated loss data.

Array of values for electrical losses as a function of M speeds and N torques, in W. Each value specifies the losses for a specific combination of speed and torque. The matrix size must match the dimensions defined by the speed and torque vectors.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated loss data.

Speed breakpoints for lookup table when calculating efficiency, in rad/s.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated efficiency data.

Torque breakpoints for lookup table when calculating efficiency, in N·m.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated efficiency data.

Array of efficiency as a function of M speeds and N torque, in %. Each value specifies the efficiency for a specific combination of speed and torque. The matrix size must match the dimensions defined by the speed and torque vectors.

The block ignores efficiency values for zero speed or zero torque. Losses are zero when either torque or speed is zero. The block uses linear interpolation.

To get the desired level of accuracy for lower power conditions, you can provide tabulated data for low speeds and low torques.

Dependencies

To enable this parameter, for Parameterize losses by, select Tabulated efficiency data.

References

[1] 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.

[2] Shigeo Morimoto, Masayuka Sanada, 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] Muyang Li. “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] 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.

Version History

Introduced in R2017a