空间电压矢量脉宽调制技术_SVPWM_在DSP中的实现步骤

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤

总体空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤:

(1)获得SVPWM的输入信号UALFA,UBETA, UD,UQ经过IPARK变换得到输入信号UALFA,UBETA;

(2)利用输入信号UALFA,UBETA确定扇区变量P,再通过扇区变量P确定扇区Sector;

(3)利用输入信号UALFA,UBETA计算中间变量X,Y,Z,再根据不同扇区利用中间变量X,Y,Z计算t1,t2;

(4)利用t1,t2计算中间变量Taon,Tbon,Tcon,再根据不同扇区利用中间变量Taon,Tbon,Tcon,计算Ta,Tb,Tc;

(5)利用Ta,Tb,Tc计算占空比MfuncC1,MfuncC2,MfuncC3,之后再计算全比较器参数赋值CMPR1,CMPR2,CMPR3.

详细空间电压矢量脉宽调制技术(SVPWM)在DSP中的实现步骤:

(1)获得SVPWM的输入信号UALFA,UBETA;

图1 PMSM矢量控制总体框图

各位初学者应该首先明白空间电压矢量脉宽调制技术(SVPWM)的输入是电压量Ualfa,Ubeta。Ualfa,Ubeta是通过IPARK变换得到的。记住原理是原理,实践是实践,两者不同!多看看TI的例程和PDF说明文档,很有帮助!

图2 SVPWM 模块框图

(2)利用输入信号UALFA,UBETA 确定扇区变量P,再通过扇区变量P 确定扇区Sector ; 计算三个中间变量B 0,B 1,B 2:

0011221sin 60sin 3022sin 60sin 30122

B U B U B U U B U U B U U B U U β

βαβα

βαβαβ⎧⎪=⎧=⎪

⎪⎪=−⇒=−⎨⎨⎪⎪

=−−⎩⎪=−

−⎪⎩o o

o o o 在使用符号函数1

()0

x sign x x >⎧=⎨

<⎩计算扇区中间变量P 值: 2104si ()2()()P gn B sign B sign B =++

P 值与扇区号之间的对应关系为:

P 1 2 3 4 5 6 扇区号 2 6 1 4 3 5

图3 扇区变量P 与扇区SECTOR 之间关系

(3)利用输入信号UALFA,UBETA计算中间变量X,Y,Z,再根据不同扇区利用中间变量X,Y,Z 计算t1,t2;

计算三个中间变量X,Y,Z:

1

22

1

22

X U

Y U U

Z U U

β

αβ

αβ

⎪=

=+

=−+

o

根据电压矢量所在扇区确定切换时间t1,t2:

扇区号 1 2 3 4 5 6 t1 -Z Z X -X -Y Y t2 X Y -Y Z -Z -X

图4 T1,T2的波形

(4)利用t1,t2计算中间变量Taon,Tbon,Tcon,再根据不同扇区利用中间变量Taon,Tbon,Tcon,

计算Ta,Tb,Tc;

12

1

2

(1)/2

(0~1)

aon

bon a

con b

T t t

T T t

T T t

=−−

=+

⎪=+

图5 Taon ,Tbon 的波形

(5)利用Ta,Tb,Tc 计算占空比MfuncC1,MfuncC2,MfuncC3,之后再计算全比较器参数赋值CMPR1,CMPR2,CMPR3.

则不同扇区内切换点T a ,T b ,T c 可有下表得到:

(0.5)*2(0.5)*2(1~1)(0.5)*2

a a

b b c

c T T T T T T =−⎧⎪

=−−⎨⎪=−⎩ 范围改变

EvaRegs.CMPR1 = (Uint16)(MfuncC1*Modulation*T1Period/2+T1Period/2);//A 相占空比计算,

调制比Modulation =0.95

EvaRegs.CMPR2 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B 相占空比计算 EvaRegs.CMPR3 = (Uint16)(MfuncC2*Modulation*T1Period/2+T1Period/2);//B 相占空比计算

图6 Ta,Tb的波形

本文主要基于TI公司C2000系列F2812例程中的说明文件svgen_dq.pdf编写而成,主要是帮助SVPWM初学者。如有错误或者修改的地方,或者疑问,请联系QQ:546847771

主要讲解技术,非诚勿扰!

具体程序如下:

//=============================================================================== //计算Sine,Cosine,用于IPARK变换

//=============================================================================== i++;

i=0;

if(i>256)

Sine = sin(6.2831853*i/256);

Cosine = cos(6.2831853*i/256);

//=============================================================================== //IPARK变换:UD,UQ==>UALFA,UBETA

//=============================================================================== UALFA=Cosine*UD-Sine*UQ;

UBETA=Sine*UD+Cosine*UQ;

//=============================================================================== //SVPWM算法实现,首先通过UALFA,UBETA确定扇区变量P

//=============================================================================== B0=UBETA;

B1=0.8660254*UALFA-0.5*UBETA;

B2=-0.8660254*UALFA-0.5*UBETA;

相关文档
最新文档