您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于dsp28335产生svpwm
关于SVPWM已经有很多介绍资料和源代码了,但配合源代码的资料可谓少之又少。这份文档结合了作者的调试经验,教大家如何在28335上搭建SVPWM,早日从理论转向实践。关于SVPWM:这里不对SVPWM的原理作过多的阐述,因为原理资料太多,随便找一个看看即可。我们对SVPWM波形的产生,其实主要要解决下面几个问题:1.旋转角旋转角顾名思义就是电压相量当前的旋转角度。在实际过程中其实就是一个增进量,但这个增进量是多少呢?我们可以设定一个开关频率,一般是定值,例如开关频率10kHz,当前频率除以开关频率即得到当前角度的标么值。当前标么值乘以2PI,就是当前的旋转角度。函数体如下:theta+=2*PI*当前频率/开关频率;if(theta2*PI)theta-=2*PI;elseif(theta-2*PI)theta+=2*PI;2.调制深度M。根据SVPWM的计算,直流母线电压Ed=sqrt(2)*Uin,又调制参数Ed’=sqrt(3)*Ed/2,因此M=Us/(sqrt(3/2)*Uin)。其中Uin为输入线电压值,Us为当前需输出的线电压值。因为实测的一般为直流母线电压,所以M=2*Us/(sqrt(3)*Ed)函数体如下:M=Us/(0.866*Ed);3.Ualpha,Ubeta:前两个参数出来后,Ualpha,Ubeta即:函数体Ualpha=M*cos(theta),Ubeta=M*sin(theta)4.扇区的判定:函数体:A=Ubeta;B=-0.5*Ubeta+0.866*Ualpha;C=-0.5Ubeta-0.866Ualpha;if(A0)sector=1;if(B0)sector+=2;if(C0)sector+=4;这个结构就是sector=4C+2B+A5.扇区内T的计算:函数体X=Ubeta;Y=0.5*Ubeta+0.866*Ualpha;Z=0.5-0.855*Ualpha;//注意:上面计算出来的sector其实是N,真正的扇区与N有对应关系If(sector==1){t1=Z;t2=Y;Tb=0.5*(1-t1-t2);Ta=Tb+t1;Tc=Ta+t2;}elseif(Sector==2){t1=Y;t2=-X;v-Ta=0.5*(1-t1-t2);v-Tc=v-Ta+t1;v-Tb=v-Tc+t2;}elseif(Sector==3){t1=-Z;t2=X;v-Ta=0.5*(1-t1-t2);v-Tb=v-Ta+t1;v-Tc=v-Tb+t2;}elseif(Sector==4){t1=-X;t2=Z;v-Tc=0.5*(1-t1-t2);v-Tb=v-Tc+t1;v-Ta=v-Tb+t2;}elseif(Sector==5){t1=X;t2=-Y;v-Tb=0.5*(1-t1-t2);v-Tc=v-Tb+t1;v-Ta=v-Tc+t2;}elseif(Sector==6){t1=-Y;t2=-Z;v-Tc=0.5*(1-t1-t2);v-Ta=v-Tc+t1;v-Tb=v-Ta+t2;}计算出来后,将Ta,Tb,Tc乘以PWM的计时周期对PWM比较器赋值即可计时周期=系统频率/2/斩波频率EPwm1Regs.CMPA.half.CMPA=计时周期*Ta;EPwm2Regs.CMPA.half.CMPA=计时周期*Tb;EPwm3Regs.CMPA.half.CMPA=计时周期*Tc;EPwm1Regs.CMPB=计时周期*Ta;EPwm2Regs.CMPB=计时周期*Tb;EPwm3Regs.CMPB=计时周期*Tc;
本文标题:基于dsp28335产生svpwm
链接地址:https://www.777doc.com/doc-6544786 .html