This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

PMSM Current Controller with Pre-Control

Discrete-time permanent magnet synchronous machine current controller with pre-control

  • Library:
  • Simscape / Electrical / Control / PMSM Control

Description

The PMSM Current Controller with Pre-Control block implements a discrete-time PI-based permanent magnet synchronous machine (PMSM) current controller in the rotor d-q reference frame with internal feedforward pre-control.

You typically use this block in a series of blocks making up a control structure.

  • You can generate a current reference in the d-q frame to be used as an input to this block with a PMSM Current Reference Generator.

  • You can obtain a voltage reference in the abc domain by converting the output of this block using an Inverse Park Transform block.

You can see an example of a full control structure, from machine measurements to machine inputs, in the PMSM Field-Oriented Control block.

Equations

The block is discretized using the backward Euler method due to its first-order simplicity and its stability.

Two PI current controllers implemented in the rotor reference frame produce the reference voltage vector:

vdref=(Kp_id+Ki_idTszz1)(idrefid)+vd_FF,

and

vqref=(Kp_iq+Ki_iqTszz1)(iqrefiq)+vq_FF,

where:

  • vdref and vqref are the d-axis and q-axis reference voltages, respectively.

  • idref and iqref are the d-axis and q-axis reference currents, respectively.

  • id and iq are the d-axis and q-axis currents, respectively.

  • Kp_id and Kp_iq are the proportional gains for the d-axis and q-axis controllers, respectively.

  • Ki_id and Ki_iq are the integral gains for the d-axis and q-axis controllers, respectively.

  • Ts is the sample time of the discrete controller.

  • vd_FF and vq_FF are the feedforward voltages for the d-axis and q-axis, respectively.

The feedforward voltages are obtained from the machine mathematical equations:

vd_FF=ωeLqiq,

and

vq_FF=ωe(Ldid+ψm),

where:

  • ωe is the rotor electrical velocity.

  • Ld and Lq are the d-axis and q-axis inductances, respectively.

  • ψm is the permanent magnet flux linkage.

Zero Cancellation

Using PI control results in a zero in the closed-loop transfer function, which can result in undesired overshoot in the closed-loop response. This zero can be canceled by introducing a zero-cancelation block in the feedforward path. The zero cancellation transfer functions in discrete time are:

GZC_id(z)=TsKi_idKp_idz+(TsKp_idKi_idKp_idKi_id),

and

GZC_iq(z)=TsKi_iqKp_iqz+(TsKp_iqKi_iqKp_iqKi_iq).

Voltage Saturation

Saturation must be imposed when the stator voltage vector exceeds the voltage phase limit Vph_max:

vd2+vq2Vph_max,

where vd and vq are the d-axis and q-axis voltages, respectively.

In the case of axis prioritization, the voltages v1 and v2 are introduced, where:

  • v1 = vd and v2 = vq for d-axis prioritization.

  • v1 = vq and v2 = vd for q-axis prioritization.

The constrained (saturated) voltages v1sat and v2sat are obtained as follows:

v1sat=min(max(v1unsat,Vph_max),Vph_max)

and

v2sat=min(max(v2unsat,V2_max),V2_max),

where:

  • v1unsat and v2unsat are the unconstrained (unsaturated) voltages.

  • v2_max is the maximum value of v2 that does not exceed the voltage phase limit, given by v2_max=(Vph_max)2(v1sat)2.

In the case that the direct and quadrature axes have the same priority (d-q equivalence), the constrained voltages are obtained as follows:

vdsat=min(max(vdunsat,Vd_max),Vd_max)

and

vqsat=min(max(vqunsat,Vq_max),Vq_max),

where:

Vd_max=Vph_max|vdunsat|(vdunsat)2+(vqunsat)2

and

Vq_max=Vph_max|vqunsat|(vdunsat)2+(vqunsat)2.

Integral Anti-Windup

An anti-windup mechanism is employed to avoid saturation of integrator output. In such a situation, the integrator gains become:

Ki_id+Kaw_id(vdsatvdunsat)

and

Ki_iq+Kaw_iq(vqsatvqunsat),

where Kaw_id, Kaw_iq, and Kaw_if are the anti-windup gains for the d-axis, q-axis, and field controllers, respectively.

Assumptions

  • The plant model for direct and quadrature axis can be approximated with a first-order system.

  • This control solution is used only for permanent magnet synchronous motors with sinusoidal flux distribution and field windings.

Ports

Input

expand all

Desired d- and q-axis currents for control of a PMSM, in A.

Data Types: single | double

Actual d- and q-axis currents of the controlled PMSM, in A.

Data Types: single | double

Rotor electrical velocity used for feedforward pre-control, in rad/s.

Data Types: single | double

Maximum allowable voltage in each phase, in V.

Data Types: single | double

External reset signal (rising edge) for integrators.

Data Types: single | double

Output

expand all

Desired d- and q-axis voltages for control of a PMSM, in V.

Data Types: single | double

Parameters

expand all

Control Parameters

Proportional gain of the PI controller used for direct-axis current control.

Integrator gain of the PI controller used for direct-axis current control.

Anti-windup gain of the PI controller used for direct-axis current control.

Proportional gain of the PI controller used for quadrature-axis current control.

Integrator gain of the PI controller used for quadrature-axis current control.

Anti-windup gain of the PI controller used for quadrature-axis current control.

Sample time for the block (-1 for inherited). If you use this block inside a triggered subsystem, set the sample time to -1. If you use this block in a continuous variable-step model, you can specify the sample time explicitly.

Prioritize or maintain the ratio between d- and q-axes when the block limits voltage.

Enable or disable zero-cancellation on the feedforward path.

Enable or disable pre-control voltage.

Pre-Control Parameters

Direct-axis current vector used in the lookup tables for parameters determination. For constant machine parameters, do not change the default.

Quadrature-axis current vector used in the lookup tables used to determine parameters. For constant machine parameters, do not change the default.

Ld matrix used as lookup-table data. For constant machine parameters change only the constant factor, for example, Ld * ones(3, 3).

Lq matrix used as lookup-table data. For constant machine parameters change only the constant factor, e.g., Lq * ones(3, 3).

Permanent magnet flux linkage matrix used in the lookup table. For constant machine parameters change only the constant factor, for example psim * ones(3, 3).

Model Examples

References

[1] Bernardes, T., V. F. Montagner, H. A. Gründling, and H. Pinheiro. "Discrete-time sliding mode observer for sensorless vector control of permanent magnet synchronous machine." IEEE Transactions on Industrial Electronics. Vol. 61, Number 4, 2014, pp. 1679–1691.

[2] Carpiuc, S., and C. Lazar. "Fast real-time constrained predictive current control in permanent magnet synchronous machine-based automotive traction drives." IEEE Transactions on Transportation Electrification. Vol.1, Number 4, 2015, pp. 326–335.

Extended Capabilities

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

Introduced in R2017b