Approved version. Approved on: 08:53, 25 May 2021
You are viewing an old version of this page. Return to the latest version.
Difference between revisions of "STM32MotorControl:SDK Overmodulation"
[quality revision]  [pending revision] 
m

m

Contents
1 Principle of SVPWM[edit]
Space vector modulation index is limited to √3/2 but there is a way to extend this limit with the overmodulation. This technique is required when the modulation index, as the length of the reference space vector Us, exceeds the edges of the hexagon.
1.1 Linear mode[edit]
In the linear area, V'_{cmd} can keep both the amplitude and angle of V_{cmd} ,
then V'_{cmd} = T'_{1} * V_{1} + T'_{2} * V_{2} with T'_{1} = T_{1} and T'_{2} = T_{2} .
1.2 OVM mode 1[edit]
There are two cases:
 In the green area: T_{1} + T_{2} ≤ 1 .
V_{cmd} is unmodified and the timings remain unchanged T'_{1} = T_{1} and T'_{2} = T_{2} . In that region V'_{cmd} follows the circle.  In the blue area: T_{1} + T_{2} > 1 .
Then In order to keep V'_{cmd} on the edge of the hexagon and keep the angle 𝜃,  V'_{cmd}  is shrunk to make T'_{1} + T'_{2} = 1. V'_{cmd} = T'_{1} * V_{1} + T'_{2} * V_{2} with T'_{1} = T_{1} / (T_{1} + T_{2}) and T'_{2} = T_{2} / (T_{1} + T_{2}).
In that region V'_{cmd} follows the hexagon edge.
1.3 OVM mode 2[edit]
There are three cases:
 In the green area: T_{1} ≥ 1.0 .
We only use V1 to generate theV'_{cmd} .
Then V'_{cmd} = T'_{1} * V_{1} + T'_{2} * V_{2} with T_{1} = 1.0 and T_{2} = 0 .  In the yellow area: T_{2} ≥ 1.0 .
We only use V2 to generate theV'_{cmd} .
Then V'_{cmd} = T'_{1} * V_{1} + T'_{2} * V_{2} with T_{1} = 0 and T_{2} = 1.0 .  In the blue area: T_{1} < 1.0 && T_{2} < 1.0 .
Then V'_{cmd} = T'_{1} * V_{1} + T'_{2} * V_{2} with T'1 = (T1 / (T1 + T2) + 3 / 𝜋 . 𝛾) . (𝜋/6) / (𝜋/6 − 𝛾) and T'2 = 1.0 − T'1 .
2 Overmodulation timings sumup[edit]
3 Overmodulation activation in STM32 MC SDK V5.Y[edit]
4 Overmodulation example[edit]
Example: F4 three shunt with Shinano motor at 4000 rpm
 In the middle of this snapshot: the blue curve shows the phase current  Just bellow: the pink, yellow and green curves show the PWM channels
The overmodulation increases the total harmonic distortion, but it allows the modulation index to exceed √3/2.
{{DISPLAYTITLE: STM32 MC SDK Overmodulation (new in V5.Y) }} === Principle of SVPWM === [[file:STM32_MC_Overmodulation_new_slide1_1.png400pxleft]] Space vector modulation index is limited to √3/2 but there is a way to extend this limit with the overmodulation. This technique is required when the modulation index, as the length of the reference space vector Us, exceeds the edges of the hexagon.<br clear=all> ==== Linear mode ==== [[file:STM32_MC_Overmodulation_slide9_1.png400pxleft]] In the linear area, ''V'<sub>cmd</sub>'' can keep both the amplitude and angle of ''V<sub>cmd</sub>'' ,<br> then ''V'<sub>cmd</sub> = T'<sub>1</sub> * V<sub>1</sub> + T'<sub>2</sub> * V<sub>2</sub>'' with ''T'<sub>1</sub> = T<sub>1</sub>'' and ''T'<sub>2</sub> = T<sub>2</sub>'' .<br clear=all> ==== OVM mode 1 ==== [[file:STM32_MC_Overmodulation_slide10_1.png400pxleft]] There are two cases: * In the green area: ''T<sub>1</sub> + T<sub>2</sub> ≤ 1'' . <br> ''V<sub>cmd</sub>'' is unmodified and the timings remain unchanged ''T'<sub>1</sub> = T<sub>1</sub>'' and ''T'<sub>2</sub> = T<sub>2</sub>'' . In that region ''V'<sub>cmd</sub>'' follows the circle. * In the blue area: ''T<sub>1</sub> + T<sub>2</sub> > 1'' . <br> Then In order to keep ''V'<sub>cmd</sub>'' on the edge of the hexagon and keep the angle 𝜃, '' V'<sub>cmd</sub> '' is shrunk to make ''T'<sub>1</sub> + T'<sub>2</sub> = 1''. ''V'<sub>cmd</sub> = T'<sub>1</sub> * V<sub>1</sub> + T'<sub>2</sub> * V<sub>2</sub>'' with ''T'<sub>1</sub> = T<sub>1</sub> / (T<sub>1</sub> + T<sub>2</sub>)'' and ''T'<sub>2</sub> = T<sub>2</sub> / (T<sub>1</sub> + T<sub>2</sub>)''. <br> In that region ''V'<sub>cmd</sub>'' follows the hexagon edge.<br clear=all> ==== OVM mode 2 ==== [[file:STM32_MC_Overmodulation_slide11_1.png400pxleft]] There are three cases: * In the green area: ''T<sub>1</sub> ≥ 1.0'' . <br> We only use V1 to generate the''V'<sub>cmd</sub>'' . <br> Then ''V'<sub>cmd</sub> = T'<sub>1</sub> * V<sub>1</sub> + T'<sub>2</sub> * V<sub>2</sub>'' with ''T<sub>1</sub> = 1.0'' and ''T<sub>2</sub> = 0'' . * In the yellow area: ''T<sub>2</sub> ≥ 1.0'' . <br> We only use V2 to generate the''V'<sub>cmd</sub>'' . <br> Then ''V'<sub>cmd</sub> = T'<sub>1</sub> * V<sub>1</sub> + T'<sub>2</sub> * V<sub>2</sub>'' with ''T<sub>1</sub> = 0'' and ''T<sub>2</sub> = 1.0'' . * In the blue area: ''T<sub>1</sub> < 1.0 && T<sub>2</sub> < 1.0'' . <br> Then ''V'<sub>cmd</sub> = T'<sub>1</sub> * V<sub>1</sub> + T'<sub>2</sub> * V<sub>2</sub>'' with ''T'1 = (T1 / (T1 + T2) + 3 / 𝜋 . 𝛾) . (𝜋/6) / (𝜋/6 − 𝛾)'' and ''T'2 = 1.0 − T'1'' .<br clear=all> === Overmodulation timings sumup === [[file:STM32_MC_Overmodulation_new_slide5_1.png600pxcenter]] === Overmodulation activation in STM32 MC SDK V5.Y === [[file:STM32_MC_Overmodulation_new_slide6_1.png600pxcenter]] === Overmodulation example === Example: F4 three shunt with Shinano motor at 4000 rpm [[file:STM32_MC_Overmodulation_slide17.jpg800pxcenter]]  In the middle of this snapshot: the blue curve shows the phase current  Just bellow: the pink, yellow and green curves show the PWM channels The overmodulation increases the total harmonic distortion, but it allows the modulation index to exceed √3/2. <noinclude> <! [[Category:Category:Motor Control]] > [[Category:STM32 MC Under ConstructionMotor Control]]<noinclude> {{PublicationRequestId19738 4/26/2021 JM LAGOUTTE}}<! Internal source: "OVM_wiki.pptx" VX.0 >
Line 49:  Line 49:  
<noinclude> 
<noinclude> 

−  +  [[Category:Motor Control]] 

−  [[ 

−  
−  
<noinclude> 
<noinclude> 
