AN205406 Dead Time Compensation Implementation In MB9Bxxxx/MB9Axxxx Series Associated Part Family: MB9BFXXXX/ MB9AFXXXX Series This application note describes dead-time compensation implementation in- MB9Bxxxx/MB9Axxxx Series and the algorithm implementation of software and test performance. Contents 1 Introduction ...............................................................1 1.1 Advantages and disadvantages of using a dead-time compensation function .................................1 1.2 How to realize type ..........................................2 2 Dead-time Compensation Principle ..........................2 2.1 Six phases inverter IPM Structure ...................2 2.2 Motor Control Block Overview .........................3 2.3 Current aberration and compensation implement .....................................................................5 3 Dead-time compensation Implementation ................8 1 3.1 How to detect current polar correctly ............... 8 3.2 Dead-time compensation Software implementation ........................................................... 11 4 Dead-time compensation Function Performance ........... 20 4.1 Basic Verification ........................................... 20 5 Conclusion.............................................................. 28 6 Document History ................................................... 29 Introduction This application note describes the algorithm implementation of software and test performance. Error voltage vectors caused by dead-time effects of PWM inverter were given, the vector synthesis method was adapted to reduce amplitude and phase formulas of synthesized voltage vector produced by 3-phase stator windings under dead-time effects, the characteristic of synthesize voltage vector was analyzed with simulations. In order to make practical conduct time equal to ideal given time of switching devices, a dead-time compensation method based on time was proposed, simple arithmetic was obtained with the characteristic of space vector PWM (SVPWM). A dead-time compensation method based on voltage was proposed also to eliminate error voltage vector, compensation formulas were calculated in 3-phase and 2-phase static reference frame respectively corresponding to SPWM and SVPWM. Experimental results show that the proposed method can make motor phase current waveform sinusoidal, and improved the output performance of the inverter. 1.1 Advantages and disadvantages of using a dead-time compensation function Advantages One of most important reasons for dead-time compensation and perfect the sinusoidal wave is harmonious wave reduction. Which in turn , Because the six phase inverter IPM of the upper arm and the lower arm don’t allow open together, so we need add the delay time at the upper arm and the lower arm switching that will abstain up and down IGBT short circuit cause the IPM destroyed. But this modifying cause the efficiency vector voltage changed. So we add the dead-time compensation reduce this modify effecting. Moreover, add the dead-time compensation can reduce the noise and vibration that motor torque change caused. www.cypress.com Document No. 002-05406 Rev. *A 1 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Disadvantages During the dead-time compensation function, a modification on the sinusoidal-modulation pattern needs to be made in order to allow current to be real current. This pattern modification could generate some current ripple. If you detect the current positive or negative polar is error. Due to modification of patterns and correction of the same modifications, more CPU is used to implement this algorithm. Current sector define as shown bellows: Figure 1. dead-time compensation sector region 1.2 How to realize type One possible solution to this problem is to ignore current polar detect during these zero cross periods. This is not desirable since some algorithms, including the one used in this application note, require information from all three currents polar in order to add the dead-time compensation to cause the current is sinusoidal. Another solution is to base the estimate position to detect the three phase current polar. This could be one good solution, but this type will have some error at the current D-axis don’t be equal to zero. The third solution is to using the assemble current to detect the three phase current polar. Moreover, to add the filters reduce the current wave. This would real detect the three phase current polar. Moreover, we can use the hall sensor to detect the current polar, but this need add the hardware cost. So the third solution is good type. We will focus on this type to describe the algorithm. 2 Dead-time Compensation Principle 2.1 Six phases inverter IPM Structure 2.1.1 Three phases current module The PM synchronous motor is a rotating electric machine with a classic three-phase stator like that of an induction motor; the rotor has surface-mounted permanent magnets. IPM work in order to change DC voltage to sinusoidal + wave. But such as upper arm IGBT Sa and lower arm IGBT Sa at switching need add delay time to prevent the IGBT short circuit. So the real voltage will not the need vector if don’t add the dead-time compensation. The IPM and the motor connect and structure as bellow: www.cypress.com Document No. 002-05406 Rev.*A 2 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 2. inverter and motor structure 2.2 Motor Control Block Overview This section describes the PMSM FOC control theory with dead-time compensation. Figure 3 below shows the whole block. www.cypress.com Document No. 002-05406 Rev.*A 3 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 3. PMSM FOC Block with Dead-time Compensation Modules explanation: 1. When Ua、Ub、Uc change to the voltage vector, the right switching time will change because the delay time work after adding the dead-time . 2. Base the Id and Iq filter value can obtain the current polar, so the dead-time infection can reduce overpass the dead-time compensation. And ia、ib and ic compare with the Ter base on the dead-time compensation table as shown below. Table 1. three phase current positive or negative polar and dead-time compensation The 3-phase currents are converted to a two axis system. This conversion provides the variables iα and iβ from the measured ia and ib and the calculated ic values. iα and iβ are time-varying quadrature current values as viewed from the perspective of the stator. www.cypress.com Document No. 002-05406 Rev.*A 4 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series 3. The two axis coordinate system is rotated to align with the rotor flux using a transformation angle calculated at the last iteration of the control loop. This conversion provides the Id and Iq variables from iα and iβ. Id and Iq are the quadrature currents transformed to the rotating coordinate system. For steady state conditions, Id and Iq are constant. We need filter the Id and Iq value to obtain the standard value, using the value can calculate the theta of current. 4. Error signals are formed using Id, Iq and reference values for each. The Id reference controls rotor magnetizing flux. The Iq reference controls the torque output of the motor. The error signals are input to PI controllers. The output of the controllers provides Vd and Vq, which is a voltage vector that will be sent to the motor. 5. A new transformation angle is estimated where vα, vβ, iα and iβ are the inputs. The new angle guides the FOC algorithm as to where to place the next voltage vector. 2.3 Current aberration and compensation implement It is nature to insert a switching delay time in sinusoidal pulse width modulation (PWM) voltage fed inverters to prevent a short circuit in the DC link. This causes well known dead-time effects which distorts the output voltage and current. Many compensation schemes are proposed to overcome the drawbacks. Based on the traditional average dead-time compensation techniques, an improved method was proposed to advance the performance of dead-time compensation. The method is based on SVPWM strategy and it can be implemented with software without any extra hardware. Simulation results demonstrate the validity of the proposed method. The current only across maintain current diode at the dead-time moment. At this moment the current will decrease until zero value whatever the current polar. Such as the Sa phase as the below structure, if we set the current is positive that flow from the inverter to motor. Otherwise, the current will define the negative polar. When Sa >0, the current will has two statement, one is normal work statement that upper arm IGBT VT1 will close and the lower arm IGBT VT4 will open, the current flow from the inverter to the motor cross the VT1. The other statement is dead-time moment. The IGBT VT1 and VT4 will shut together, this moment the current will cross maintain current diode VD4 as the same as upper flow. At this condition, the upper IGBT work time will decrease about the dead-time long. So need to add as equal to the decrease time. When Sa <0, the current will has two statement also, one is normal work statement that lower arm IGBT VT4 will open and the upper arm IGBT VT1 will close, the current flow from the motor to the inverter cross the VT4. The other statement is dead-time moment. The IGBT VT1 and VT4 will shut together, this moment the current will cross maintain current diode VD1 as the same as upper flow. At this condition, the lower IGBT work time will increase about the dead-time long. So need to reduce the time for the dead-time long. As below topic, due to the dead-time exist, the current don’t control by the IGBT switching at the dead-time moment. But the current increase or decrease is confirmed by the current polar. Moreover, IGBT need some time at switching and IGBT and diode will engross the voltage. So all the condition will cause the voltage are not real vector. www.cypress.com Document No. 002-05406 Rev.*A 5 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 4. one phase different current polar Figure 5. Current polar director So we will to modify the pulse by below figure base on the current polar. www.cypress.com Document No. 002-05406 Rev.*A 6 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 6. Compensation the time of PWM Voltage error Voltage error Moreover, some motor don’t have the sinusoidal wave and that have the harmonious wave, and the phase current will became as below figure. So add upper dead-time compensation don’t change the wave to sinusoidal. We must to reduce the harmonious wave, that wave may be change to sinusoidal. Such as the Ia, we reduce the harmonious wave, the Ia current will reach the sinusoidal as below figure. Figure 7. Simulator the three phase’s current www.cypress.com Document No. 002-05406 Rev.*A 7 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 8. decrease the harmonious wave current 3 Dead-time compensation Implementation 3.1 How to detect current polar correctly 3.1.1 O bt ai n t h e c u r r e nt v e c t o r In control system has some yawp, in order to obtain the data cleanly, we will add the low pass filter. The Iq and Id input and Iqf and Idf will output. So the high frequency yawp will be filtered. And the flow chart as below: Figure 9. Dead-time low pass filter Iq Iqf Low pass filter Id Idf The rotor axis Iqf and Idf change to state axis Iα and Iβ by inverse Clarke transforms. At the same time we can obtain the current angle. The equation as below: www.cypress.com Document No. 002-05406 Rev.*A 8 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 10. Clarke transforms equation Figure 11. sector and current polar By the current angle θi from the equation was calculated. We can judge the current vector what it is sector at state axis. Also the compensation vector will be ensured. 3.1.2 S p e c i a l mo t o r d e a d - t i me c o mp e n s a t i o n Now has many motor has sinusoidal wave. But a lot of motor using isn’t sinusoidal wave now. So we need reduce this characteristic effect. The operation as shown bellows: Figure 12. torque effect at no-sinusoidal BEMF We add harmonious wave compensation. The torque will become stand. www.cypress.com Document No. 002-05406 Rev.*A 9 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 13. Add compensation phase current But the motor run at different current. It has different harmonious waveform. So we need add the different phase angle and magnitude. As follow figure. Figure 14. Relationship Between current and angle www.cypress.com Document No. 002-05406 Rev.*A 10 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series 3.2 Dead-time compensation Software implementation 3.2.1 S of t w ar e F l ow c ha r t By up explain to write the flow chart as below. Figure 15. Dead-time Compensation Software Flowchart Start Initialize the parameters and state Filter the Iq and Id signal Transformation of inverse Clarke Using state axis Iα and Iβ obtain the current angle θi Base the angle θi judge the sector of current vector compensation value of three phase current Compensation angle and magnitude of harmonious wave Calculator the compensation value from angle and magnitude of harmonious wave Add the value to the signal of control Return to the step two www.cypress.com Document No. 002-05406 Rev.*A 11 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Algorithm flow explanation: 1. Initialize the parameters and state. 2. Filter the Iq and Id signal, using filter signal to transformation of inverse Clarke. Using state axis Iα and Iβ obtain the current angle θi; Base the angle θi judge the sector of current vector. Base the table to compensation value of three phase current; If the motor is no-sinusoidal wave BEMF, to obtain the compensation angle and magnitude of harmonious wave. Calculator the compensation value from angle and magnitude of harmonious wave. Add the value to the signal of control. Return to the step two. 3.2.2 S of t w ar e c o de i mp l e me n t Function name: DT_Compensation Description: realize the dead-time compensation Input: none Output: none void DT_Compensation(void) { //to realize the dead-time function DT_Compensation: PUSH {R4-R7,LR} SUB SP,SP,#+4 LDR.N R0,??DT_Compensation_1 LDR R0,[R0, #+0] CMP R0,#+0 BNE.N ??DT_Compensation_2 LDR.N R5,??DT_Compensation_1+0x4 LDR.N R3,??DT_Compensation_1+0x8 LDR.N R1,??DT_Compensation_1+0xC LDRSH R0,[R1, R0] MOVW R2,#+2501 CMP ITT R0,R2 GE LDRHGE R4,[R3, #+20] LDRSHGE R6,[R5, #+20] BGE.N ??DT_Compensation_3 LDRSH R0,[R1, #+0] www.cypress.com Document No. 002-05406 Rev.*A 12 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series ASRS R4,R0,#+8 LDRH R2,[R3, R4, LSL #+1] LDRSH ADD R0,[R5, R4, LSL #+1] R3,R3,R4, LSL #+1 LDRH R3,[R3, #+2] SUBS R3,R3,R2 ADD R4,R5,R4, LSL #+1 LDRSH SUBS R4,[R4, #+2] R5,R0,R4 LDRSH R1,[R1, #+0] ADD R4,R1,R1, LSL #+2 LSLS R1,R4,#+1 ASRS R1,R1,#+8 MOVS R6,#+10 SDIV R4,R1,R6 ADD R7,R4,R4, LSL #+2 SUB R1,R1,R7, LSL #+1 MULS SDIV R3,R3,R1 R3,R3,R6 ADDS R4,R3,R2 MULS R1,R1,R5 SDIV SUBS R1,R1,R6 R6,R0,R1 ??DT_Compensation_3: LDR.N R5,??DT_Compensation_1+0x10 LDR.N R7,??DT_Compensation_1+0x14 LDRH R0,[R7, #+0] ADD R1,R0,R0, LSL #+1 ADD R0,R6,R1, LSL #+1 ADDW UXTH BL R0,R0,#+1000 R0,R0 Sin MULS R0,R0,R4 ASRS R0,R0,#+12 STR LDRH R0,[R5, #+16] R0,[R7, #+0] ADD R1,R0,R0, LSL #+1 ADD R0,R6,R1, LSL #+1 www.cypress.com Document No. 002-05406 Rev.*A 13 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series UXTH BL R0,R0 Sin MULS R0,R0,R4 ASRS R0,R0,#+12 B.N ??DT_Compensation_4 ??DT_Compensation_2: LDR.N R5,??DT_Compensation_1+0x10 MOVS R0,#+0 STR R0,[R5, #+16] ??DT_Compensation_4: STR R0,[R5, #+12] LDR.N R0,??DT_Compensation_1+0x18 LDR.N R1,??DT_Compensation_1+0x1C LDR.N R2,??DT_Compensation_1+0x20 LDR LDRSH MULS STR R3,[R2, #+0] R4,[R1, #+0] R3,R3,R4 R3,[R0, #+0] LDR.N R3,??DT_Compensation_1+0x24 LDR.N R6,??DT_Compensation_1+0x28 LDR.N R4,??DT_Compensation_1+0x2C LDR LDRSH MULS R5,[R4, #+0] R7,[R6, #+0] R5,R5,R7 STR R5,[R3, #+0] LDR R5,[R0, #+0] LDR R7,[R3, #+0] SUBS R5,R5,R7 ASRS R5,R5,#+8 LDR LDRSH MULS R2,[R2, #+0] R6,[R6, #+0] R2,R2,R6 STR R2,[R0, #+0] LDR R2,[R4, #+0] LDRSH MULS R1,[R1, #+0] R1,R1,R2 STR R1,[R3, #+0] LDR R0,[R0, #+0] www.cypress.com Document No. 002-05406 Rev.*A 14 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series LDR R1,[R3, #+0] ADDS R0,R1,R0 ASRS R0,R0,#+1 SDIV R1,R0,R5 CMP R5,#+1 BLT.N ??DT_Compensation_5 CMP R0,#+1 BLT.N ??DT_Compensation_6 CMP R1,#+222 BLT.N ??DT_Compensation_7 ??DT_Compensation_8: MOVS B.N R0,#+1 ??DT_Compensation_9 ??DT_Compensation_7: MOVS B.N R0,#+6 ??DT_Compensation_9 ??DT_Compensation_6: CMN R1,#+221 BGE.N ??DT_Compensation_10 ??DT_Compensation_11: MOVS B.N R0,#+4 ??DT_Compensation_9 ??DT_Compensation_10: MOVS B.N R0,#+5 ??DT_Compensation_9 ??DT_Compensation_5: CMP R0,#+1 BLT.N ??DT_Compensation_12 CMN R1,#+221 BLT.N ??DT_Compensation_8 MOVS B.N R0,#+2 ??DT_Compensation_9 ??DT_Compensation_12: CMP R1,#+222 BGE.N ??DT_Compensation_11 MOVS R0,#+3 ??DT_Compensation_9: LDR.N www.cypress.com R5,??DT_Compensation_1+0x10 Document No. 002-05406 Rev.*A 15 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series STRB R0,[R5, #+0] LDR.N R0,??DT_Compensation_1+0x30 LDRH R0,[R0, #+0] LSRS R1,R0,#+1 STR R1,[R5, #+8] LDRH R0,[R5, #+6] LDRB R2,[R5, #+0] SUBS R2,R2,#+1 CMP R2,#+5 BHI.N ??DT_Compensation_13 TBB [PC, R2] DATA ??DT_Compensation_0: DC8 0x3,0x17,0x20,0x2F DC8 0x3E,0x4D THUMB ??DT_Compensation_14: LDRH R2,[R5, #+2] ADDS R2,R1,R2 STRH R2, [R5, #+2] LDRH R3, [R5, #+4] SUBS R3, R3, R1 STRH R3, [R5, #+4] SUBS R0, R0, R1 LDR.N R1,?? DT_Compensation_1+0x34 LDRH R2, [R1, #+0] UXTH R3, R3 CMP R3, R2 ITT CS MOVCS R2, #+0 STRHCS R2, [R5, #+4] ??DT_Compensation_15: LDRH R1,[R1, #+0] UXTH R0, R0 CMP R0, R1 BCC.N ??DT_Compensation_13 MOVS R0, #+0 B.N www.cypress.com ??DT_Compensation_13 Document No. 002-05406 Rev.*A 16 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series ??DT_Compensation_16: LDRH R2, [R5, #+2] ADDS R2, R1, R2 STRH R2, [R5, #+2] LDRH R2, [R5, #+4] ADDS R2, R1, R2 STRH R2, [R5, #+4] SUBS R0, R0, R1 LDR.N R1,??DT_Compensation_1+0x34 B.N ??DT_Compensation_15 ??DT_Compensation_17: LDRH R2, [R5, #+2] SUBS R2,R2,R1 STRH R2,[R5, #+2] LDRH R3,[R5, #+4] ADDS R3,R1,R3 STRH R3,[R5, #+4] SUBS R0,R0,R1 LDR.N R1,??DT_Compensation_1+0x34 LDRH R3,[R1, #+0] UXTH R2,R2 CMP R2,R3 ITT CS MOVCS R2,#+0 STRHCS R2,[R5, #+2] B.N ??DT_Compensation_15 ??DT_Compensation_18: LDRH R2,[R5, #+2] SUBS R2,R2,R1 STRH R2,[R5, #+2] LDRH R3,[R5, #+4] ADDS R3,R1,R3 STRH R3,[R5, #+4] ADDS R0,R1,R0 LDR.N R1,??DT_Compensation_1+0x34 LDRH R1,[R1, #+0] UXTH R2,R2 CMP R2,R1 www.cypress.com Document No. 002-05406 Rev.*A 17 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series BCC.N ??DT_Compensation_13 MOVS R1,#+0 STRH R1,[R5, #+2] B.N ??DT_Compensation_13 ??DT_Compensation_19: LDRH R2,[R5, #+2] SUBS R2,R2,R1 STRH R2,[R5, #+2] LDRH R3,[R5, #+4] SUBS R3,R3,R1 STRH R3,[R5, #+4] ADDS R0,R1,R0 LDR.N R1,??DT_Compensation_1+0x34 LDRH R4,[R1, #+0] UXTH R2,R2 CMP R2,R4 BCC.N ??DT_Compensation_20 MOVS R2,#+0 STRH R2,[R5, #+2] B.N ??DT_Compensation_20 ??DT_Compensation_21: LDRH R2,[R5, #+2] ADDS R2,R1,R2 STRH R2,[R5, #+2] LDRH R3,[R5, #+4] SUBS R3,R3,R1 STRH R3,[R5, #+4] ADDS R0,R1,R0 LDR.N R1,??DT_Compensation_1+0x34 ??DT_Compensation_20: LDRH R1,[R1, #+0] UXTH R3,R3 CMP R3,R1 ITT CS MOVCS R1,#+0 STRHCS R1,[R5, #+4] ??DT_Compensation_13: STRH www.cypress.com R0,[R5, #+6] Document No. 002-05406 Rev.*A 18 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series ADD SP,SP,#+4 POP {R4-R7,PC} ;; return Nop DATA SECTION `.iar_vfe_header`:DATA:REORDER:NOALLOC:NOROOT(2) SECTION_TYPE SHT_PROGBITS, 0 DATA DC32 0 SECTION __DLIB_PERTHREAD:DATA:REORDER:NOROOT(0) SECTION_TYPE SHT_PROGBITS, 0 SECTION __DLIB_PERTHREAD_init:DATA:REORDER:NOROOT(0) SECTION_TYPE SHT_PROGBITS, 0 END } www.cypress.com Document No. 002-05406 Rev.*A 19 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series 4 Dead-time compensation Function Performance 4.1 Basic Verification 4.1.1 S i mu l at o r of al g or i t h m The signal of control adding the compensation of dead-time and no compensation of dead-time compared. As below figure: Figure 16. three phases current no compensation 100 50 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 514 541 568 0 Ia Ib Ic -50 -100 -150 www.cypress.com Document No. 002-05406 Rev.*A 20 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 17. state axis current no compensation 150 100 50 Ialpha 1 31 61 91 121 151 181 211 241 271 301 331 361 391 421 451 481 511 541 571 0 Ibeta -50 -100 -150 Figure 18. rotor axis current no compensation 150 100 50 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 514 541 568 0 -50 Id iq -100 -150 -200 www.cypress.com Document No. 002-05406 Rev.*A 21 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 19. three phases current add compensation 150 100 50 Ia Ib 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 514 541 568 0 Ic -50 -100 -150 Figure 20. state axis current add compensation 150 100 50 Ialpha 1 31 61 91 121 151 181 211 241 271 301 331 361 391 421 451 481 511 541 571 0 Ibeta -50 -100 -150 www.cypress.com Document No. 002-05406 Rev.*A 22 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 21. rotor axis current adds compensation 20 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 514 541 568 0 -20 -40 Id -60 iq -80 -100 -120 4.1.2 T e s t w av e f or m o f r u n mo t o r By the theory of the up expound, realize the algorithm and obtain the perfect performance, as show as below figure no compensation and added compensation waveform: Figure 22. no dead-time compensation waveform of first motor www.cypress.com Document No. 002-05406 Rev.*A 23 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 23. added dead-time compensation of first motor Figure 24. zoom out no dead-time compensation of first motor \ www.cypress.com Document No. 002-05406 Rev.*A 24 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 25. zoom out added dead-time compensation of first motor Figure 26. no dead-time compensation waveform of other motor www.cypress.com Document No. 002-05406 Rev.*A 25 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 27. added dead-time compensation waveform of other motor Figure 28. no dead-time compensation waveform of open loop control www.cypress.com Document No. 002-05406 Rev.*A 26 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Figure 29. dead-time compensation changing waveform of open loop control Figure 30. add dead-time compensation waveform of open loop control From above, dead-time compensation works very well. From the test motors purpose, also decrease the yawp and harmonious wave. So the dead-time compensation theory can carry into execution. www.cypress.com Document No. 002-05406 Rev.*A 27 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series 5 Conclusion As for a vector control system of a permanent magnet synchronous motor, this paper analyzes the influence of deadtime on output voltage in detail, and discusses the relationship between the position of output voltage vector and the direction of three-phase current in a space vector figure. In addition, a method of dividing three-phase current into six regions and a control strategy that compensates only one phase voltage in every region are proposed in the paper. The proposed scheme can acquire the direction of three-phase current judging by the position of output voltage, and it avoids the phenomenon of several zero-crossing in current sampling. At last, experiments which are uncompensated and compensated are carrier out with the Fujitsu MB9Bxxxx/MB9Axxxx Series, and the results verify this method has a good compensation effect. www.cypress.com Document No. 002-05406 Rev.*A 28 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series 6 Document History Document Title: AN205406 - Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Document Number: 002-05406 Revision ** *A ECN Orig. of Change FCZH 5042015 www.cypress.com FCZH Submission Date Description of Change 08/27/2012 Initial release 09/15/2012 Added more test waveform 12/17/2015 Converted Spansion Application Note “MCU-AN-510122-E-11” to Cypress format Document No. 002-05406 Rev.*A 29 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series Worldwide Sales and Design Support Cypress maintains a worldwide network of offices, solution centers, manufacturer’s representatives, and distributors. To find the office closest to you, visit us at Cypress Locations. PSoC® Solutions Products Automotive cypress.com/go/automotive psoc.cypress.com/solutions Clocks & Buffers cypress.com/go/clocks PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP Interface cypress.com/go/interface Cypress Developer Community Lighting & Power Control cypress.com/go/powerpsoc Memory cypress.com/go/memory PSoC cypress.com/go/psoc Touch Sensing cypress.com/go/touch USB Controllers cypress.com/go/usb Wireless/RF cypress.com/go/wireless Spansion Products spansion.com/products Community | Forums | Blogs | Video | Training Technical Support cypress.com/go/support All other trademarks or registered trademarks referenced herein are the property of their respective owners. Cypress Semiconductor 198 Champion Court San Jose, CA 95134-1709 Phone Fax Website : 408-943-2600 : 408-943-4730 : www.cypress.com © Cypress Semiconductor Corporation, 2012-2015. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement. www.cypress.com Document No. 002-05406 Rev.*A 30