SS-PWM – Multilevel PWM with Sort-&-Select balancing
Table of Contents
The SS-PWM peripheral provides a specialized Pulse Width Modulation scheme (PWM) for multilevel converters, which directly integrates means for balancing series-connected submodules. Such an approach has received quick and widespread adoption, notably for Modular Multilevel Converters, Cascaded H-Bridges, and similar converter topologies.
The SS-PWM block generates gate driving signals, which are dynamically assigned to suitable submodules following a “Sort and select” algorithm. The corresponding operating principle is relatively simple:
- At first, submodules are sorted according to their capacitor voltage.
- Then, the submodules selected to contribute to the arm voltage are those with the highest charge level when the power is flowing out of the arm, respectively with the least charge level when the power is flowing into the arm. This way, some balancing is achieved over time so that all submodules converge toward the same charge level.
Multilevel PWM operation
The FPGA-based implementation of the SS-PWM is detailed in TN160. It is inspired by the original patent by R. Marquardt. The implemented multilevel modulator features the following key characteristics:
- All submodules are continuously sorted. In other words, all ranks are identified, as opposed to techniques that only identify the most and least charged submodules.
- By design, it is guaranteed that only one commutation can occur at once. This ensures that no ineffective modulation actions are made and that switching losses are minimized.
- Both half-bridge and full-bridge submodules are supported.
- Up to N=8 submodules per arm are supported.
- Both PWM and staircase modulation approaches are supported.
Similarly to other PWM modules, the following parameters of the multilevel PWM module can be configured:
- The sampling frequency is freely configurable (identical to the control interrupt frequency).
- The switching frequency is freely configurable.
- PWM update is possible once or twice per period (when the carrier reaches its minimum and/or maximum).
- Complimentary High and Low signals offer a configurable dead-time generation.
- Multilevel PWM outputs can be activated or deactivated during the operation.
Simulink SS-PWM block
Signal specification
- The input
m
is the modulation signal. Its range is [0; N] inhalf-bridge
mode and [-N; N] infull-bridge
mode. N is the number of submodules per arm. - The input signal
sim V
is a vector containing the submodules voltages. This input is only effective during simulation. Measurements are directly taken from the corresponding analog input channels during real-time operation. - The input signal
sim I
corresponds to the arm current and is only used for simulation. - The input signal
>
is the clock input and must be connected to the CONFIG block or to an independent CLK block. When connected to a variable-frequency clock, the switching frequency can be tuned during runtime (see PN121). - The outputs are the generated PWM signals, according to the block configuration. The outputs are only used for simulation.
Parameters
Device ID
selects which B-Box/B-Board to address when used in a multi-device configuration.Output mode
selects between complementary signals with a deadtime, a single PWM with a global active signal or a single PWM.Use optical output only
selects if the PWM signals can be addressed only to the optical outputs, or if the electrical outputs (lanes 16 to 31) can also be used.Submodules analog input channel
configures the number of modules per modulator, with a maximum of 8 modules. The checkboxes define the analog input channel connected to each module. The PWM outputs are automatically assigned to each analog input. The following illustration shows the scenario where CH0 is enabled, meaning that a module is connected to analog input 0 and to PWM output 0.Submodules topology
defines if the modules are half-bridge or full-bridge modules.Current input channel
selects the analog input channel, ranging from 8 to 15, of the arm current measurement.Invert sorting logic
inverts the sorting logic of the SS-PWM sorting algorithm. As described by the schematic below, if a positive/negative measured current results in an increase/decrease of measured voltage, respectively, then the logic is non-inverted. On the other hand, the sorting logic must be inverted if a positive/negative measured current results in a decrease/increase in measured voltage, respectively. Also, this parameter being purely defined by the hardware, it is only used for code generation and has no effect in simulation mode.Show "activate" input
makes theA
(active) signal input visible. If not checked, the SS-PWM block is always active by default (once the controller outputs are enabled).- Carrier type sets the carrier to TRIANGLE, INVTRIANGLE, or No Carrier (Staircase modulation). This option can be used to either generate N+1 or 2N+1 level output waveforms.
selects when the duty-cycle and phase parameters are applied.PWM parameters update rate
- Single-rate: they are applied at the end of the carrier period.
- Double-rate: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for TRIANGLE and INVTRIANGLE carriers only)
Deadtime duration
: configures the dead-time duration.
dead-time
and show ”activate” input
are common to all multilevel PWM blocks and are further documented on the PWM page.PLECS SS-PWM block
Signal specification
- The input
m
is the modulation signal. Its range is [0; N] inhalf-bridge
mode and [-N; N] infull-bridge
mode. N is the number of submodules per arm. - The input signal
sim V
is a vector containing the submodules voltages. This input is only effective during simulation. Measurements are directly taken from the corresponding analog input channels during real-time operation. - The input signal
sim I
corresponds to the arm current and is only used for simulation. - The input signal
>
is the clock input and must be connected to the CONFIG block or to an independent CLK block. When connected to a variable-frequency clock, the switching frequency can be tuned during runtime (see PN121). - The outputs are the generated PWM signals, according to the block configuration. The outputs are only used for simulation.
Parameters
Device ID
selects which B-Box/B-Board to address when used in a multi-device configuration.Output mode
selects between complementary signals with a deadtime, a single PWM with a global active signal or a single PWM.Submodules analog input channel mask
configures the number of modules per modulator, with a maximum of 8 modules. The mask must contain 8 bits that define to which analog input a submodule is connected. The mask’s LSB corresponds to analog input 0 and the MSB to analog input 7. The PWM outputs are automatically assigned to each analog input. The following illustration shows the scenario where CH0 is enabled, using the following mask: “00000001”, meaning that a module is connected to analog input 0 and to PWM CH 0.- Submodules topology defines if the modules are half-bridge or full-bridge modules.
- Current input channel selects the analog input channel, ranging from 8 to 15, of the arm current measurement.
- Invert sorting logic inverts the sorting logic of the SS-PWM sorting algorithm. As described by the schematic below, if a positive/negative measured current results in an increase/decrease of measured voltage, respectively, then the logic is non-inverted. On the other hand, the sorting logic must be inverted if a positive/negative measured current results in a decrease/increase in measured voltage, respectively. Also, this parameter being purely defined by the hardware, it is only used for code generation and has no effect in simulation mode.
- Carrier type sets the carrier to TRIANGLE, INVTRIANGLE or No Carrier (Staircase modulation). This option can be used to either generate N+1 or 2N+1 level output waveforms.
- PWM activation makes the A (active) signal input visible. By default, the SS-PWM block is always active (once the controller’s outputs are enabled).
selects when the duty-cycle and phase parameters are applied.PWM parameters update rate
- Once per PWM period: they are applied at the end of the carrier period.
- Twice per PWM period: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for TRIANGLE and INVTRIANGLE carriers only)
Deadtime duration
: configures the dead-time duration.
dead-time
and show ”activate” input
are common to all multilevel PWM blocks and are further documented on the PWM page.C++ functions
Specific to SS-PWM
Functions common to all PWM drivers
These functions are common to all PWM blocks. Further documentation is available on the PWM page.