soft4pes.control.modulation.carrier_pwm#

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

Classes#

CarrierPWM

Base class for controllers.

Module Contents#

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

Bases: soft4pes.control.common.controller.Controller

Base class for controllers.

data[source]#

Data storage for the controller, containing input and output namespaces.

Type:

SimpleNamespace

input[source]#

Namespace for storing input data.

Type:

SimpleNamespace

output[source]#

Namespace for storing output data.

Type:

SimpleNamespace

Ts[source]#

Sampling interval [s].

Type:

float

execute(sys, kTs)[source]#

Generate switching time instants and switch positions using asynchronous carrier-based pulse width modulation (CB-PWM). 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.

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.