ML-MT-Optimized control during OPF#

The VSD-currents during pre-fault operation in multiphase machines are independent from each other and can be controlled separately e.g. by using PI- and resonant controller in the three VSD-subsystems. During one or more open-phase-faults (OPF) the VSD-currents are no longer independent from each other, as the system looses a degree of freedom per faulted phase, resulting in a coupling between the systems. The coupling between the systems depend on the specific fault scenario and can be calculated. The generated torque of the six phase machine depends only on the alpha-beta current, because through the VSD-Transformation alle torque producing components are mapped into the \(\alpha\beta\)-plane. To generate constant torque, in pre-fault and the post-fault case, the alpha-beta-currents \(\mathbf{i}^{\alpha\beta}\) have to be controlled accordingly. In a PMSM the alpha-beta-currents should take the following form

\[\begin{split}\begin{bmatrix} i_{ref}^{\alpha} \\ i_{ref}^{\beta} \\ \end{bmatrix} = \begin{bmatrix} \hat{I}_{\alpha\beta} \cdot cos(\omega_e \cdot t + \psi) \\ \hat{I}_{\alpha\beta} \cdot sin(\omega_e \cdot t + \psi) \\ \end{bmatrix}\end{split}\]

to reach constant torque. \(\hat{I}\) is the amplitude of the currents, \(\omega_e\) the angular velocity and \(\psi\) the phase.

The currents \(\mathbf{i}^{xy}\) and \(\mathbf{i}^{0^+0^-}\) in the other two subsystems are not torque producing and so can be controlled arbitrarily in the pre-fault case, for example to reduce copper losses the currents can be controlled to be zero.

Since in the post-fault situation the VSD-subsystems are no longer independent controlling the currents \(\mathbf{i}^{xy}\) and \(\mathbf{i}^{0^+0^-}\) arbitrarily is no longer possible. As \(\mathbf{i}^{\alpha\beta}\) are torque producing their reference values is given by the desired torque. The reference values of the other VSD-currents has to be specified as a function of the alpha-beta currents to adhere to the coupling between the VSD-currents and to not interfere with the control of the alpha-beta currents for constant torque.

The reference values of the VSD-currents are therefore defined depending on the alpha-beta currents:

\[\begin{split}\begin{bmatrix} i_{ref}^x \\ i_{ref}^y \\ i_{ref}^{z1} \\ i_{ref}^{z2} \\ \end{bmatrix} = \begin{bmatrix} k_1 \cdot i^{\alpha} + k_2 \cdot i^{\beta} \\ k_3 \cdot i^{\alpha} + k_4 \cdot i^{\beta} \\ k_5 \cdot i^{\alpha} + k_6 \cdot i^{\beta} \\ k_7 \cdot i^{\alpha} + k_8 \cdot i^{\beta} \\ \end{bmatrix}\end{split}\]

The k-parameters in these equations depend on the fault scenario and can either be calculated or optimized depending on the available degrees of freedom in the system. Frequently used for determining the k-parameters are the Minimum Loss (ML) and Maximum Torque (MT) optimization strategies, optimizing for minimal copper losses and maximum torque operation range respectively while complying to the coupling between the vsd-subsystems because of the fault-scenario.[[1]] [[2]]

The following module with the function uz_get_k_parameter contains the ML and MT optimized k-parameters for up to 3 OPFs of an asymmetric six-phase PMSM with one (1N) or two (2N) neutral points. Based on these parameters a fault tolerant control system for asymmetric six-phase PMSM can be created by controlling the VSD-Currents with the calculated reference values.

In addition to the k-parameters a derating factor for the fault scenario is supplied, by which the nominal currents of the machine have to be scaled down to ensure a safe continuous operation. The derating is needed as the phase currents in post-fault operation are increased compared to the pre-fault operation for the same torque produced as fewer phases are accessible.

k-Parameter#

struct uz_6ph_MLMT_kparameter#

Struct for k-parameter for calculating controller reference values in 6ph VSD-control during open phase faults.

Public Members

float k1#

k1 parameter, for calculating i_x_ref = k1 * i_alpha_ref + k2 * i_beta_ref

float k2#

k2 parameter, for calculating i_x_ref = k1 * i_alpha_ref + k2 * i_beta_ref

float k3#

k3 parameter, for calculating i_y_ref = k3 * i_alpha_ref + k4 * i_beta_ref

float k4#

k4 parameter, for calculating i_y_ref = k3 * i_alpha_ref + k4 * i_beta_ref

float k5#

k5 parameter, for calculating i_z1_ref = k5 * i_alpha_ref + k6 * i_beta_ref

float k6#

k6 parameter, for calculating i_z1_ref = k5 * i_alpha_ref + k6 * i_beta_ref

float k7#

k7 parameter, for calculating i_z2_ref = k7 * i_alpha_ref + k8 * i_beta_ref

float k8#

k8 parameter, for calculating i_z2_ref = k7 * i_alpha_ref + k8 * i_beta_ref

float deratingFaktor#

derating factor

Description#

Parameter for calculating the reference values for the vsd-control during OPF in an asymmetric 6 phase PMSM

Get k parameter function#

uz_6ph_MLMT_kparameter uz_get_k_parameter(uz_6phFD_indices FD_indices, neutral_point_configuration neutral_point_configuration, ML_MT_optimization ML_MT_optimization)#

returns the k-parameters for a specified fault-scenario, neutral point configuration and optimization strategy

Parameters:
  • FD_indices – uz_6phFD_indices fault indices of the 6 phases

  • neutral_point_configuration – enum neutral-point configuration (N1 -> single neutral point, N2-> two separate neutral points for phases a1b1c1 and a2b2c2)

  • ML_MT_optimization – enum (MT -> Maximum Torque (MT) optimization, ML -> Minimum Loss (MT) optimization)

Returns:

uz_6ph_MLMT_kparameter struct with kparameters and derating factor

Description#

Function for reading the k-parameter for a given fault-scenario.

Example#

Listing 167 Example function call of uz_get_k_parameter()#
 1int main(void) {
 2
 3  // fault indices from open phase fault detection
 4  uz_6phFD_indices FD_indices;
 5
 6      uz_6ph_MLMT_kparameter k_parameter;
 7
 8  // get k-parameters according to the fault indices
 9      k_parameter = uz_get_k_parameter(FD_indices, N1, ML);
10
11}

Enums#

Enumerations for input parameters of the function uz_get_k_parameter.

enum neutral_point_configuration#

Enum for the neutral point connection.

Values:

enumerator N1#

single neutral point

enumerator N2#

two separated neutral points

enum ML_MT_optimization#

Enum for the optimization strategies.

Values:

enumerator MT#

Minimum Loss optimization

enumerator ML#

Maximum Torque optimization