16 Bit CMOS Microcontroller Product XC164CS - Space Vector Modulation

Application Note, V 1.0, May 2004
AP16057
16 Bit CMOS
Microcontroller
Product XC164CS
S p ace Vec to r Mo du la t io n
.
Micr ocon tro l lers
N e v e r
s t o p
t h i n k i n g .
16 Bit CMOS Microcontroller
Revision History:
2004-05
Previous Version:
Page
Subjects (major changes since last revision)
V 1.0
Controller Area Network (CAN): License of Robert Bosch GmbH
We Listen to Your Comments
Any information within this document that you feel is wrong, unclear or missing at all?
Your feedback will help us to continuously improve the quality of this document.
Please send your proposal (including a reference to this document) to:
[email protected]
AP16057
Space Vector Modulation
Introduction
Table of Contents
Page
1
1.1
1.2
1.3
Introduction ................................................................................................... 4
Functional principle of a Permanent Magnetic Synchronous Motor .............. 5
System description of a multiphase motor application .................................. 6
Advantages of Space Vector Modulation ...................................................... 7
2
2.1
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.3
2.3.1
2.3.2
2.4
2.4.1
2.5
Space Vector Modulation .............................................................................. 8
Introduction ................................................................................................... 8
Visualization of a rotation 0° - 360 ° ............................................................ 10
Motor : 1 Pole pair, 3 Phases Next position : 0° ..................................... 11
Motor : 1 Pole pair, 3 Phases Next position : 60° ................................... 12
Motor : 1 Pole pair, 3 Phases Next position : 120° ................................. 13
Motor : 1 Pole pair, 3 Phases Next position : 180° ................................. 14
Motor : 1 Pole pair, 3 Phases Next position : 240° ................................. 15
Motor : 1 Pole pair, 3 Phases Next position : 300° ................................. 16
Generation of output pattern ....................................................................... 17
Calculation of PWM pattern..................................................................... 17
Generation of PWM pattern..................................................................... 19
Sensors ....................................................................................................... 21
Incremental Encoder output signal.......................................................... 21
Required peripherals ................................................................................... 22
3
3.1
3.1.1
3.1.2
3.2
3.2.1
3.2.2
3.2.3
3.3
Implementation............................................................................................ 24
Functional description ................................................................................. 24
General description ................................................................................. 24
Management of Space Vector Modulation .............................................. 25
Implementation of the Software................................................................... 25
Initialization ............................................................................................. 26
Finite State Machine................................................................................ 27
Interrupt routine....................................................................................... 29
Performance Analysis ................................................................................. 30
4
Conclusion .................................................................................................. 31
5
Glossary ...................................................................................................... 32
Application Note
3
V 1.0, 2004-05
AP16057
Space Vector Modulation
Introduction
1
Introduction
In the automotive area multiphase motors are replacing more and more brushes
motors. For instance, Permanent Magnetic Synchronous Motors (PMSM) are used in
fans, hydraulic pumps or for assistance of steering systems. Permanent synchronous
motors, optimized for trapezoidal voltage shapes, are called Brushless DC motors.
Applications like Electrical Power Steering with a higher demand on constant torque
use a sinusoidal shaped voltage system. For these applications the space vector
modulation is one of the favoured methods. Figure 1 shows the portioning of different
electrical motor types.
Electric
Electric
Motor
Motortypes
types
AC
AC
DC
DC
Asynchronous
Asynchronous
Synchronous
Synchronous
Induction
Induction
PMSM
PMSM
trapezoidal
Figure 1
Synchronous
Synchronous
Switched
SwitchedRel.
Rel.
Stepper
Stepper
sinusoidal
Overview about different motor types
Application Note
4
V 1.0, 2004-05
AP16057
Space Vector Modulation
Introduction
1.1
Functional principle of a Permanent Magnetic Synchronous
Motor
A brushless PMSM consist of a wound stator and a permanent magnetic rotor. It
needs hall sensors, encoder or resolver to sense the rotor position. The sensing
devices provide logic signals for electronically switching the stator windings in the
proper sequence to maintain rotation of the permanent magnet.
The operation of a brushless PMSM is based on the conversion of electrical energy to
mechanical energy. The generation of a rotation magnetic field is realized by applying
sinusoidal voltages to the 3 stator phases. A resulting sinusoidal current flows in the
coils and generates the rotating stator flux. The rotation of the rotor shaft is then
created by attraction of the permanent rotor flux with the stator flux.
Usually the speed and position of an electrical motor can be defined in two ways. The
mechanical position is related to the rotation of the rotor shaft. The electrical position of
the rotor is related to the rotation of the rotor magnetic field. In figure 2 the rotor needs
to move 360 mechanical degrees to obtain an identical magnetic configuration as
when it started. In case of two pole pairs the rotor would need only to move 180
mechanical degrees to achieve the same magnetic configuration.
A
C'
S
B
C
B'
N
A'
Figure 2
Simplified cross section of PMSM with one pole pair
Application Note
5
V 1.0, 2004-05
AP16057
Space Vector Modulation
Introduction
1.2
System description of a multiphase motor application
A PMSM motor is a synchronous machine. The rotor position must be known at certain
angles in order to align the applied voltage and is usually determined by Hall sensors
or Incremental encoders. Commutation of a PMSM motor is performed electronically. A
rectangular-shaped or sinusoidal three-phase voltage system is used to generate a
rotational field. Based on these criteria, closed-loop control is essential. For low
dynamic requirements, a speed/position control loop is used. For applications with
higher performance needs, in addition a current control loop might be implemented.
Several loads (sensors, microcontroller, etc.) have to be supplied with constant
CMOS/TTL-level voltages by the vehicle electrical system (12V).
Sensors deliver status information with the current values of several key parameters.
The most vital parameters are position, speed, current and temperature. The outputs
of sensors are either analogue or digital. Signal conditioning and interfaces are
necessary to obtain stable and utilizable information in the closed-loop control system.
A sinusoidal shape is favoured for a stable and constant torque. The torque of the
motor is proportional to the applied current, which means that a PWM of the phase
voltage is required to influence the torque. Typically, the PWM is generated by the
control logic.
Driver stages and a level shifter are inserted between the control functionality and the
phase stage. They transfer logic signals to the required Vgs (gate source voltage of
MOSFET). The Vgs level is shifted for floating sources of the MOSFET Figure 3 shows
the complete block diagram of such application.
Supervision and protection are important tasks within a system. Critical parameters
need to be monitored and failure response scenarios implemented. Failsafe behaviour
is essential, particularly with safety-relevant applications such as EPS (electrical power
steering) and X-by-wire. In the event of a major electric failure, the fault has to be
detected and the application immediately placed in a defined state.
MOSFETs are today’s state-of-the-art solution for the inverter power stages used in
low-voltage applications in the automotive industry. They are the physical switches
from the DC rail voltage to the required phase voltages.
Application Note
6
V 1.0, 2004-05
AP16057
Space Vector Modulation
Introduction
Bridge Driver
Power
Supply
Vbat
Control/Diagnosis
Transceiver
ROM /
FLASH
PWM
Driving
Stages
RAM
Host
INT
Protection
Diagnoses
CAN
SSC
ASC
ADC
CPU
Timer
Phase
Inverter
Multiphase
PMSM
Rotor
position
Signal
conditioning
Microcontroller
Figure 3
1.3
Block schematic for control of PMSM application
Advantages of Space Vector Modulation
Space Vector Modulation is a more sophisticated PWM method which provides
advantages to the application.
•
•
•
•
•
•
Higher performance to control mid / high dynamic motors
Higher efficiency (86 %), sinusoidal weighted PWM (75%)
Improved torque management
Better start up performance, low speed with constant torque
Constant torque, less torque ripple
Improved dynamical reaction
A
Ubat / 2
B
Ubat / 2
2 Ubat / 3
A
C
2 phase active
Figure 4
B
C
Ubat / 3
3 phase active
Phase voltage (Block commutation and Space Vector Modulation)
Application Note
7
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2
Space Vector Modulation
2.1
Introduction
One common way to represent the phase voltages A, B, C is the space vector model.
The 3 phases of the motor can be applied with positive or negative voltage. Therefore
8 different states are possible. Each state represents a vector. In order to generate a
rotating field the inverter has to be switched in six of the eight states. This mode of
operation is called six-step mode. The remaining two states are called zero vectors
(111, 000). In this case all phases are connected to GND or Vcc. The zero vectors,
located in the middle of the hexagon, see figure 6, can be used to influence the
amplitude of the vector. The angle between any two vectors is 60°.
B6 Bridge:
8 different switches are possible
for high side switches
0 0 0 Vector zero
0 0 1 Phase C pos.
0 1 0 Phase B pos.
0 1 1 Phase A neg.
1 0 0 Phase A pos.
1 0 1 Phase B neg.
1 1 0 Phase C neg.
1 1 1 Vector zero
The corresponding low side
switches build the complement
Phase A
Phase B
Phase C
Figure 5
B6 power bridge
Application Note
8
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
010
110
A
B
C
A
B
C
B
C´
011
100
A
B
C
γ
A´
0
86%
B´
C
001
101
A
B
C
Figure 6
A
B
C
A
A
B
C
Space Vector Model
Operating in six-step mode uses the full capabilities of the inverter. Unfortunately six
step mode creates high magnitude low order harmonics which can not be filtered by
the motor inductance.
Basically the space vector modulation uses the six step mode, but smoothes out the
steps through some sophisticated averaging techniques.
The first step in this re-definition is to transform the inverter voltages of six step mode
into a space vector.
Application Note
9
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
Vk +1 (110)
Vk +1 (110)
γ = 30 °
Vk (100)
V0
(111/000)
Figure 7
Six step mode into space vector mode
The goal of space vector modulation is to generate the appropriate PWM signals so
that any vector can be produced. So given a space vector of angle y and modulation
index of the vector, the approximation can be constructed by applying vector Vk and
Vk+1 for percentage of times tk and tk+1respectively. For each position inside of the
sector the times can be calculated and than applied to the appropriate inverter states.
The higher the resolution inside of a sector the better is the stability of the torque.
Vk +1 (110)
γ = 0°
V0
Figure 8
2.2
(111/000)
V k +1 (110)
Vk (100)
γ = 30 °
Vk +1 (110)
Vk (100)
V0 (111/000)
γ = 60 °
V0 (111/000)
Vk (100)
Space vector modulation (example 0°, 30 °, 60° )
Visualization of a rotation 0° - 360 °
In Space Vector Modulation three phases are energized in each state of the 3 halfbridges (B6 bridge). The following explanation will show the turning of a one pole-pair
brushless DC motor as a function of the state of the appropriate switches shown in
Figures 9-20. In fact, driving a one pole-pair motor means that the rotation speed of
the electrical field has the same speed of the desired mechanical rotation speed (Ω =
ω / p, where Ω is the mechanical rotation speed, ω the rotation frequency of the
electrical field and p is the number of pole pairs).
Application Note
10
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.2.1
Motor : 1 Pole pair, 3 Phases Next position : 0°
mech : 0°
Coil A : (0)
Coil B : (1)
Coil C : (1)
Current direction :
Field Direction :
A
C'
B'
N
C
S
B
A'
Figure 9
Rotor position 0° next valid pattern will be ‘011’
State 010 : T2 : -C; T3 : +B; T6 : -A
T1
T3
T5
BLDC -
Coil C
Coil B
State 010
Coil A
Motor
T2
Figure 10
T4
T6
B6 bridge 0° actual pattern is ‘010’
Application Note
11
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.2.2
Motor : 1 Pole pair, 3 Phases Next position : 60°
mech : 60°
Next Pattern to be applied :
Central axsis : A
Coil A : negative (0)
Coil B : negative (0)
Coil C : positive (1)
A
Current direction :
Field Direction :
B'
C'
S
N
S
B
C
N
A'
Figure 11
Rotor position 60° next valid pattern will be ‘001’
State 011 : T2 : +C; T3 : +B; T5 : -A
T1
T3
T5
BLDC -
Coil C
Coil B
State 011
Coil A
Motor
T2
Figure 12
T4
T6
B6 bridge 60° actual pattern is ‘011’
Application Note
12
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.2.3
Motor : 1 Pole pair, 3 Phases Next position : 120°
mech : 120°
Central axsis : C
Next Pattern to be applied :
Coil A : positive (1)
Coil B : negative (0)
Coil C : positive (1)
A
Current direction :
Field Direction :
N
C
S
N
B'
C'
S
B
A'
Figure 13
Rotor position 120° next valid pattern will be ‘101’
State 001 : T2 : +C; T4 : -B; T5 : -A
T1
T3
T5
BLDC -
Coil C
Coil B
State 001
Coil A
Motor
T2
Figure 14
T4
T6
B6 bridge 120° actual pattern is ‘001’
Application Note
13
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.2.4
Motor : 1 Pole pair, 3 Phases Next position : 180°
mech : 180°
Central axsis : B
Next Pattern to be applied :
Coil A : positive (1)
Coil B : negative (0)
Coil C : negative (0)
A
Current direction :
Field Direction :
S
C'
B'
S
N
B
C
N
A'
Figure 15
Rotor position 180° next valid pattern will be ‘100’
State 101 : T1 : +C; T4 : -B; T5 : +A
T1
T3
T5
BLDC -
Coil C
Coil B
State 101
Coil A
Motor
T2
Figure 16
T4
T6
B6 bridge 180° actual pattern is ‘101’
Application Note
14
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.2.5
Motor : 1 Pole pair, 3 Phases Next position : 240°
mech : 240°
Central axsis : A
Next Pattern to be applied :
Coil A : positive (1)
Coil B : positive (1)
Coil C : negative (0)
A
Current direction :
Field Direction :
B'
C'
S
S
N
B
C
N
A'
Figure 17
Rotor position 240° next valid pattern will be ‘110’
State 100 : T1 : -C; T4 : -B; T6 : +A
T1
T3
T5
BLDC -
Coil C
Coil B
State 100
Coil A
Motor
T2
Figure 18
T4
T6
B6 bridge 240° actual pattern is ‘100’
Application Note
15
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.2.6
Motor : 1 Pole pair, 3 Phases Next position : 300°
mech : 300°
Central axsis : C
Next Pattern to be applied :
Coil A : negative (0)
Coil B : positive (1)
Coil C : negative (0)
A
Current direction :
Field Direction :
S
C'
B'
N
S
N
C
B
A'
Figure 19
Rotor position 300° next valid pattern will be ‘010’
State 110 : T1 : -C; T3 : +B; T6 : +A
T1
T3
T5
BLDC -
Coil C
Coil B
State 110
Coil A
Motor
T2
Figure 20
T4
T6
B6 bridge 300° actual pattern is ‘110’
Application Note
16
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
2.3
Generation of output pattern
The space vector modulation is based on the fact that the space vector turns through
the six sectors. This vector represents the weighted average voltage combination of 2
adjacent active space vectors during one PWM period.
Y
Phase B
inv. Phase C`
II
III
I
U1
γ
inv. Phase A`
IV
Phase A
X
VI
V
Phase C
Figure 21
Inv. Phase B`
Sectors of space vector
For a better understanding the following explanations focus on sector one.
2.3.1
Calculation of PWM pattern
In order to create a smooth rotating field each point in the inner circle of the hexagon
has been reached. This technique is called space vector modulation. The field
orientation is given by the rotating angle γ and the amplitude U by the length of the
vector. Each position inside the triangle can be reached by a combination of vector Vk,
vector Vk+1 and the zero vectors. Any space vector can be realized with a time
multiplex of the three vectors during the sample time Ts. Figure 22 explain the
calculation of Tk, TK+1 and T0.
Tk: Timeframe to apply the vector Vk
Tk+1: Timeframe to apply the vector Vk+1
T0: Timeframe to apply the zero vectors
Application Note
17
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
Vk+1 (110)
r
1
U1 = × (TK + 1 × VK + 1 + Tk × VK )
TS
r
|U 1 |
π

× 3 × sin  − γ 
TK = TS ×
Ubat
3

r
|U1 |
× 3 × sin (γ )
TK + 1 = TS ×
Ubat
T 0 = TS (1 − TK + 1 − TK )
TS
r
U 1 max
r
U1
γ
X-Axis
V k (100)
TK
TK+1
T0
Ts:
S a m p lin g T im e , e . g .
P W M F re q . = 2 0 K H z
V K +1:
V K:
T K +1:
TK:
r
U1 :
V e c to r ( 6 0 d e g r e e )
r
U 1 max
T 0:
U b a t:
V e c to r ( 0 d e g re e )
f( V K + 1)
f(V K )
P h a s e v o lt a g e v e c t o r f o r
a n g le
:
M a x . p h a s e v o lt a g e v e c t o r
f o r a n g le
T im e f o r v e c t o r z e r o
D C lin k v o lt a g e
T
TS
Figure 22
Voltage vector for space vector modulation
Typically the rotating angle γ is provided by an encoder or resolver. Dependent of the
requirement of the application the sampling time Ts can be adapted. Each PWM
sequence will be updated after the sampling time Ts. That means the next values for
Tk, Tk+1 and T0 have calculated during one PWM sequence. In order to reduce
computing load of the CPU parts (α,β) of the calculation can be put in look up tables.
A PMSM needs a closed loop speed/position feedback. This can be realised by an
encoder device. With this information and a PI controller the vector length can be
calculated. Furthermore with the angle position the corresponding values (α,β) are
provided to compute the values Tk, Tk+1.
Speed
Angle[0-60°]
PI
Lookup
Table
[
α, β
]
vectorr
length[ L ]
vector
position[α, β ]
r
TK = T S ×α × | L |
TK
+1
r
= TS × β× | L |
PWM
unit
Driver /
Phase Inverter
Sector[1-6]
Figure 23
Implementation of SVM with lookup table
Application Note
18
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
Figure 24 illustrates a proposal how a look up table may be organized.
Array[60]
0
1
..
..
..
..
..
59
Figure 24
2.3.2
Angle
0
1
..
..
..
..
..
59
Alpha/Beta
0.866
0.857
..
..
..
..
..
0
Tk = f(Alpha)
Tk+1 = f(Beta)
Proposal for a look up table
Generation of PWM pattern
In order to obtain an optimum harmonic performance and the minimum switching
frequency for each of the power devices, the state sequence is arranged such that the
transition from one state to the next is performed by switching only one inverter leg.
This condition is met when the sequence begins with the null-state [000] and the
inverter switches are toggled until the next null-state [111] is reached. To complete the
cycle, the sequence is reversed, ending with the null state [000], see figure 25.
The sequence is T0/2, Tk, Tk+1, T0, Tk+1, Tk, T0/2 for the odd sectors and T0/2, Tk+1, Tk,
T0, Tk, Tk+1, T0/2 for the even sectors. Where Tk, and Tk+1 represent the time of the
respecting states.
Application Note
19
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
Vk+1 (110)
V k+1 (110)
γ = 0°
V0 (111/000)
Vk (100)
TS
Vector
100
TK+1/2
T0/4
1
1
0
1
0
0
1
0
0
TK/2
Phase A
0
1
1
1
Phase B
0
0
0
Phase C
0
0
0
Figure 25
T0/2
γ = 30°
γ = 60°
V0 (111/000)
Vk (100)
V0 (111/000)
TS
Vector
110
TK+1/2
TK/2
T0/4
Vk+1 (110)
TK+1/2
TK/2
T0/4
Phase A
0
1
1
1
1
1
0
0
Phase B
0
1
1
1
1
1
0
0
Phase C
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
Phase A
0
1
1
1
0
Phase B
0
0
1
0
Phase C
0
0
0
TK+1/2
TK/2
1
T0/2
TK+1/2
T0/4
T0/4
TK/2
TS
Vector
110
TK+1/2
TK/2
T0/4
Vk (100)
T0/2
Timing conditions for angle γ = 0°,30,60
Vector 100/110
50µs
6.25µs
6.25µs
6.25µs
12.5µs
6.25µs
6.25µs
6.25µs
Phase A
0
1
1
1
1
1
0
Phase B
0
0
1
1
1
0
0
Phase C
0
0
0
1
0
0
0
V0
Vk
Vk+1
V0
Vk
V0
Vk+1
Figure 26
Example for PWM generation (angle γ = 30°, vector length = 50 %,
freq. = 20 kHz)
Application Note
20
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
Degree(°)
0
10
20
30
40
50
60
Degree(°)
0
10
20
30
40
50
60
Figure 27
2.4
TS(µs)
TK(µs)
50
50
50
50
50
50
50
43.30
38.30
32.14
25.00
17.10
8.68
0
TS(µs)
TK(µs)
50
50
50
50
50
50
50
21.65
19.15
16.07
12.5
8.55
4.34
0
TK+1(µs)
0
8.68
17.10
25.00
32.14
38.30
43.30
TK+1(µs)
0
4.34
8.55
12.5
16.07
19.15
21.65
T0(µs) PWM(
%)
6.69
100
3.02
100
0.76
100
0
100
0.76
100
3.02
100
6.69
100
T0(µs) PWM(
%)
28.35
50
26.5
50
25.38
50
25.0
50
25.38
50
26.5
50
28.35
50
Alpha
0.866
0.766
0.643
0.5
0.342
0.174
0
Alpha
0.866
0.766
0.643
0.5
0.342
0.174
0
Beta
0
0.174
0.342
0.5
0.643
0.766
0.866
Beta
0
0.174
0.342
0.5
0.643
0.766
0.866
Relationship between angle ,Tk , Tk+1, α and β
Sensors
The PMSM motor is a synchronous motor and so the rotor position has to be known
exactly in order to generate the appropriate field.
2.4.1
Incremental Encoder output signal
Sensors are essential as a means of recognizing the positioning of a synchronous
motor. The signals of an incremental encoder generated after appropriate signal
conditioning are shown in figure 28. The pulse trains of Enc A and Enc B are 90 °
shifted to differentiate between the turn directions. Pulse trains from an encoder can
vary from a few pulses per revolution to over 5000 pulses per revolution. The signal
TOP Zero is used as start trigger for each revolution. Typically a timer unit (GPT12)
processes these signals and provides the precise rotor position to the CPU. The rotor
speed can be calculated by the CPU.
Application Note
21
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
Counterclockwise
Clockwise
Enc A
Enc B
TOP Zero
Counter
Figure 28
2.5
x
0
1
x
2
1
0
Signals provided by an Incremental Encoder
Required peripherals
The PWM unit (CAPCOM6), see figure 29, meets all the criteria for digital signal
generation and event capturing, e.g. pulse-width modulation, pulse-width
measurement. It supports generation and control of timing sequences on up to three
16-bit capture/compare channels plus one additional 16-bit compare timer. The multichannel control unit generates output patterns which can be modulated by both timers.
The modulation sources can be selected and combined for signal modulation. A dead
time control unit allows specified delay times to be implemented for each high-side and
low-side switch to avoid short circuits.
The CAPCOM6 provides two output signals per 16-bit channel, which may have
inverted polarity pulse transitions. Timer T12 can be used to control the commutation
speed. Timer 13 can be used to modulate the capture/compare outputs to influence
the speed/torque of the motor. For space vector modulation a dead time generation is
mandatory. It can be realized with the dead time control unit. For more detailed
information about the CAPCOM6E unit please refer to the XC164CS peripheral
manual.
Application Note
22
V 1.0, 2004-05
AP16057
Space Vector Modulation
Space Vector Modulation
module kernel
channel 3
compare
interrupt
control
1
2
3
2
2
trap input
compare
capture
T13
trap
control
output select
1
start
multichannel
control
Hall input
channel 2
deadtime
control
output select
1
compare
channel 1
compare
T12
1
3
1
CTRAP
CCPOS2
CCPOS1
CCPOS0
CC61
COUT61
CC60
COUT60
COUT63
capture/compare input / output control
CC62
fper
channel 0
COUT62
address
decoder
compare
port control
Figure 29
CAPCOM6E unit
The CAPCOM6E unit includes the enhanced multi-channel mode. It offers a possibility
to modulate all six T12 related output signals within one instruction. The bits in bit field
MCMP are used to select the CAPCOM6 outputs that may become active. The transfer
of the new output values to the bit field MCMP can be triggered by T12, T13 or correct
hall events. This structure allows writing new time pattern to the outputs at a defined
moment and synchronized to a PWM period.
Application Note
23
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
3
Implementation
3.1
Functional description
α
αβ
β
Figure 30
Cascaded control for a multiphase motor drive application with
space vector modulation
3.1.1
General description
The application is divided into several sub functions. First, all relevant peripherals are
configured. Next, the ramp up phase is started to turn the motor until the top zero point
of the encoder is reached. Then the encoder offset is added to reach the next 60
degree section. Now the motor starts turning in a regular way. Interrupt driven the
capture registers of the CAPCOM6 are updated. The PI controller for speed or torque
control may be activated based on a sum of Timer T12 events. Figure 30 presents a
block diagram for cascaded control for a multiphase motor drive application with space
vector modulation.
Application Note
24
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
3.1.2
Management of Space Vector Modulation
The space vector modulation of the PMSM motor is based on the following events:
Acquire actual rotor angle position
Take coefficients from look up table
Calculation of vector components
Allocate coefficients to corresponding compare registers
3.2
Implementation of the Software
The software is divided into several routines.
Initialization of Ports, CAPCOM6, GPT1, Interrupt Controller
Initialization of PI controller (closed loop speed control)
Interrupt for external event (top zero detection)
Interrupt routine GPT1:
Change of count direction
Timer over/underflow
Interrupt routine CAPCOM 6 (Timer T12 period match,):
Management of space vector modulation
Six step State machine
Process PI Controller
Application Note
25
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
3.2.1
Initialization
A number of small routines perform all the necessary initializations before the motor
has started turning:
CPU initialization:
Initialization of CPU specific registers
Peripherals initialization:
Port initialization:
P1L.0 – P1L5 (CCx,COUTx) output, Control Port
for Bridge Driver
GPT1 (Timer) initialization:
Timer T3 in timer incremental mode, counts on
any transition, interrupt on timer over- / underflow
and on change direction
Interrupt controller initialization:
CAPCOM6 initialization:
Disable multi-channel mode, passive output level
is low, set timer T12 (PWM 20 kHz), set compare
register CCx to start value, centre aligned mode,
active dead time generation, enable ext. trap
function for emergency cases, interrupt on T12
period match
PI – Controller initialization:
Proportional gain, sampling period time and the
integral time constant
Figure 31 gives an overview about the program flow of the main routine.
Application Note
26
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
Main program
Var_init, Port_init
Int_init, GPT12_init
CAPCOM6_Init
General-Init ( );
Turn motor until
top zero is reached
Turn-Init ( );
Start Motor
PI trigger
yes
PI-Controller ( );
no
Figure 31
3.2.2
Flow chart main routine
Finite State Machine
The space vector modulation is based on the fact that the space vector turns through
the 6 sectors, each 60 degrees wide, and represents the weighted average voltage
combination of the 2 adjacent active space vectors. The length of the vector is
controlled with the zero vector[000] and [111]. The state machine verifies the rotor
position and updates the corresponding vector. Figure 32 gives an overview about the
PWM pattern. Figure 33 illustrates the state machine.
Application Note
27
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
Figure 32
Overview about PWM generation for 360 °
Update of the Compare Register in constant timeframes
Check Position ( )
Calculation of
Tk, Tk+1, t0
Section = 1
no
yes
Update CC6xSR
Return
60°-120°
Section = 2
no
Update CC6xSR
Return
120°-180°
Section = 3
no
Update CC6xSR
Return
180°-240°
Section = 4
no
Update CC6xSR
Return
240°-300°
Section = 5
no
Update CC6xSR
Return
300°-360°
Section = 6
no
Update CC6xSR
Set Error Flag
Return
Return
Figure 33
Finite State Machine
Application Note
28
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
3.2.3
Interrupt routine
Each 50 µs a new Timer12 period match interrupt is generated. Based on the actual
rotor position, Tk, Tk+1 are calculated. The function check_position calls the state
machine and updates the Capture/Compare Registers of the CAPCOM6. If a one
match of the Timer 12 is detected a shadow transfer writes the new pattern in the
Capture/Compare Registers. After the shadow transfer, a time trigger is incremented.
Ten times later, the PI controller compares the reference speed with the present speed
and calculates the new vector magnitude.
Figure 34
Interrupt routine Timer T12 period match
Application Note
29
V 1.0, 2004-05
AP16057
Space Vector Modulation
Implementation
3.3
Performance Analysis
As shown in figure 35 the calculation of space vector modulation needs around 3.6 µs
(CPU clock @ 40 MHz) to update the capture compare registers of the CAPCOM6
unit. Channel 1 to 3 represents the CC6x outputs. Channel 4 is used to measure the
CPU load (7.2 %) in function check_position.
Figure 35
CPU load for calculation of the space vectors
Application Note
30
V 1.0, 2004-05
AP16057
Space Vector Modulation
Conclusion
4
Conclusion
There is an increasing demand in the automotive industry for applications using BLDC
motors. In the past, many applications were addressed with DC motors. Automotive
suppliers would like to use BLDC motors in order to achieve greater robustness and
efficiency. Currently, the only limitation is the price gap between BLDC motors and DC
motors. On the other hand, automotive suppliers are intensely price-driven and need
smart solutions to meet the requirements of the market.
This application note aims to provide an understanding of the functionality of a BLDC
motor, explains how such a motor is driven, describes all the necessary components
and the necessity of knowing the positioning of a synchronous motor. Furthermore, the
space vector modulation has been discussed and a method has been demonstrated to
implement this type of modulation in a smart way in the XC164. Thanks to the high
performance of the microcontroller and its powerful peripherals, this software approach
consumes only limited CPU resources and allows the implementation of further
algorithms like field oriented control.
The system approach discussed might be considered as a starting point for designing
a complete system-specific closed-loop BLDC application
Application Note
31
V 1.0, 2004-05
AP16057
Space Vector Modulation
Glossary
5
Glossary
ADC:
Analogue Digital Converter
ABS:
Automatic Brake System
BACK-EMF :
Back electromagnetic force
B6 :
Bridge with 6 switches (e.g. MOSFET) for 3 phases
BLDC:
Brushless DC
CAN:
Controller Area Network
CAPCOM:
Capture Compare Unit, peripheral that measure events or
provide PWM signal
CPU:
Central Processor Unit
EHPS:
Electro Hydraulic Power Steering
FOC:
Field Oriented Control
PI:
Proportional Integral
PWM:
Pulse width modulation
PMSM:
Permanent Magnetic Synchronous Motor
ROM:
Read only memory
RAM:
Read Access Memory
Application Note
32
V 1.0, 2004-05
http://www.infineon.com
Published by Infineon Technologies AG