soft4pes.control.modulation.carrier_pwm#

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

Classes#

CarrierPWM

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

Module Contents#

class soft4pes.control.modulation.carrier_pwm.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[source]#

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.