AN205406 Dead Time Compensation implementation in MB9Bxxxx/MB9Axxxx Series.pdf

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