blockSVPWM
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
| Type | Name | Default | Description |
|---|---|---|---|
| SI.Frequency | f | Switching frequency | |
| SI.Time | samplePeriod (from DiscreteBlock) | Sample period of component | |
| SI.Time | startTime (from DiscreteBlock) | 0 | First sample time instant |
| Integer | m | 3 | Number of phases |
| Real | uMax | Maximum 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
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealInput[2] | u | Reference space phasor | |
| Modelica.Blocks.Interfaces.BooleanOutput[m] | fire_p | Positive fire signal | |
| Modelica.Blocks.Interfaces.BooleanOutput[m] | fire_n | Negative fire signal |