soft4pes.control.modulation#

Modulation methods for power electronic converters.

Submodules#

Classes#

CarrierPWM

Asynchronous carrier-based pulse width modulation (CB-PWM) for two and three-level converters.

CommonModeInjection

Common-mode injection for modulating signal. The selected common-mode injection method

Package Contents#

class soft4pes.control.modulation.CarrierPWM[source]#

Bases: soft4pes.control.common.controller.Controller

Asynchronous carrier-based pulse width modulation (CB-PWM) for two and three-level converters. The modulating signal is sampled at the peaks of the carrier, resulting in the device switching frequency of 1/(2Ts) for two-level converters. For three-level converters, the device switching frequency is roughly half the apparent switching, ie. the carrier frequency, when phase-disposition PWM is used.

Parameters:

None

carrier_rising#

Flag indicating whether the carrier is rising or falling.

Type:

bool

execute(sys, kTs)[source]#

Generate switching time instants and switch positions using asynchronous carrier-based pulse width modulation (CB-PWM).

The produced output is presented below. Note that the switching times are in ascending order.

Switch positions |

Switching time instants | Phase A | Phase B | Phase C | ————— |---------|———|---------|

0 | state | state | state t_switch[1] | state | state | state t_switch[2] | state | state | state t_switch[3] | state | state | state

Parameters:
  • sys (system object) – The system model.

  • kTs (float) – Current discrete time instant [s].

Returns:

  • t_switch (ndarray) – Switching time instants.

  • switch_array (ndarray) – Switch positions.

class soft4pes.control.modulation.CommonModeInjection(mode='MinMax')[source]#

Bases: soft4pes.control.common.controller.Controller

Common-mode injection for modulating signal. The selected common-mode injection method computes a common-mode voltage component that is added to the three-phase modulating signal. Common-mode injection is applicable for carrier-based PWM schemes and for modulating-signal feedforward.

Available common-mode injection methods: - MinMax: Adds a common-mode component u_cm = -0.5 * (max(u_ref_abc) + min(u_ref_abc)) to the

modulating signal. For a two level converter, this method is equivalent to space-vector modulation (SVM).

Parameters:

mode (str, optional) – Common-mode injection method. Default is ‘MinMax’, which is the only available method.

mode#

Common-mode injection method.

Type:

str

execute(sys, kTs)[source]#

Apply common-mode injection.

Parameters:
  • sys (system object) – The system model (not used).

  • kTs (float) – Current discrete time instant [s] (not used).

Returns:

u_ref_abc_cm – Three-phase modulating signal with common-mode injection.

Return type:

3 x 1 ndarray