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