blockSVPWM

Space vector pulse width modulation

Extends from Modelica.Blocks.Interfaces.DiscreteBlock (Base class of discrete control blocks).

Information

For a three-phase system, 8 space vectors are available according to the following switching patterns:

  • 0 [0,0,0] length 0
  • 1 [1,0,0] 000°
  • 2 [1,1,0] 060°
  • 3 [0,1,0] 120°
  • 4 [0,1,1] 180°
  • 5 [0,0,1] 240°
  • 6 [1,0,1] 300°
  • 7 [1,1,1] length 0

Vector 1..6 form a hexagon, vector 0 and 7 are of length 0.

First, the space vector is limited, and the sector of the hexagon is determined where the input space vector u is located; then the angle of the space vector within this sector 0≤φ<60° is calculated.

The input space vector is averaged by u = ta*ua + tb*ub + t0*0, where ua is the space vector at the left border of the sector and ub is the space vector at the right border of the sector. If necessary, a zero length vector is applied additionally.

The relative time spans for averaging over one switching period are determined by the following equations:

  • Real part: u*cos(φ) = ub*tb*cos(60°) + ua*ta*1
  • Imag.part: u*sin(φ) = ub*tb*sin(60°)
  • ta + tb + t0 = 1

To obtain the positive fire signal, the switching time spans are distributed symmetrically: t0/4 + ta/2 + tb/2 +t0/2 + tb/2 + ta/2 + t0/4

The switching pattern of the negative fire signal is just the inverse of the positive fire signal.

Parameters

TypeNameDefaultDescription
SI.FrequencyfSwitching frequency
SI.TimesamplePeriod (from DiscreteBlock)Sample period of component
SI.TimestartTime (from DiscreteBlock)0First sample time instant
Integerm3Number of phases
RealuMaxMaximum length of space vector = half diagonal of hexagon
Boolean[6,m]fire[true, false, false; true, true, false; false, true, false; false, true, true; false, false, true; true, false, true]Switching patterns

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInput[2]uReference space phasor
Modelica.Blocks.Interfaces.BooleanOutput[m]fire_pPositive fire signal
Modelica.Blocks.Interfaces.BooleanOutput[m]fire_nNegative fire signal