void SVPWM_cal(float Ualpha,float Ubeta,float Udc)
{
vref1=Ubeta;
vref2=(-Ubeta Ualpha*1.732051)*0.5;
vref3=(-Ubeta-Ualpha*1.732051) *0.5;
if(vref1>0) a=1;
else a=0;
if(vref2>0) b=1;
else b=0;
if(vref3>0) c=1;
else c=0;
N=4*c 2*b a;
x=1.732051* Ubeta/Udc;
y=(1.5*Ualpha 0.8660254*Ubeta)/Udc;
z=(-1.5*Ualpha 0.8660254*Ubeta)/Udc;
switch(N){
case 1:sector=2;
T1=z;
T2=y;
break;
case 2:sector=6;
T1=y;
T2=-x;
break;
case 3:sector=1;
T1=-z;
T2=x;
break;
case 4:sector=4;
T1=-x;
T2=z;
break;
case 5:sector=3;
T1=x;
T2=-y;
break;
case 6:sector=5;
T1=-y;
T2=-z;
break;
default:break;
}
if((T1 T2)>1)
{
T1=T1/(T1 T2);
T2=T2/(T1 T2);
}
ta=(1-T1-T2)/4*Tpwm;
tb=ta T1/2*Tpwm;
tc=tb T2/2*Tpwm;
switch(sector) {
case 1 :cmp1=(ta);
cmp2=(tb);
cmp3=(tc);
break;
case 2 :cmp1=(tb);
cmp2= (ta);
cmp3= (tc);
break;
case 3 :cmp1= (tc);
cmp2= (ta);
cmp3= (tb);
break;
case 4 :cmp1= (tc);
cmp2= (tb);
cmp3= (ta);
break;
case 5 :cmp1= (tb);
cmp2= (tc);
cmp3= (ta);
break;
case 6 :cmp1= (ta);
cmp2= (tc);
cmp3= (tb);
break;
default : break;
}【文件列表】NUU_MotorDrive_AD├── CMD
│ ├── 28335_RAM_lnk.cmd
│ ├── DSP2833x_Headers_nonBIOS.cmd
│ └── F28335.cmd
├── Debug
│ ├── CMD
│ │ ├── subdir_rules.mk
│ │ └── subdir_vars.mk
│ ├── NUU_MotorDrive_AD.map
│ ├── NUU_MotorDrive_AD.out
│ ├── NUU_MotorDrive_AD_linkInfo.xml
│ ├── NewProject.map
│ ├── NewProject_linkInfo.xml
│ ├── ccsObjs.opt
│ ├── makefile
│ ├── objects.mk
│ ├── source
│ │ ├── DSP2833x_ADC_cal.obj
│ │ ├── DSP2833x_Adc.d
│ │ ├── DSP2833x_Adc.obj
│ │ ├── DSP2833x_CodeStartBranch.obj
│ │ ├── DSP2833x_CpuTimers.d
│ │ ├── DSP2833x_CpuTimers.obj
│ │ ├── DSP2833x_DefaultIsr.d
│ │ ├── DSP2833x_DefaultIsr.obj
│ │ ├── DSP2833x_ECan.d
│ │ ├── DSP2833x_ECan.obj
│ │ ├── DSP2833x_GlobalVariableDefs.d
│ │ ├── DSP2833x_GlobalVariableDefs.obj
│ │ ├── DSP2833x_MemCopy.d
│ │ ├── DSP2833x_MemCopy.obj
│ │ ├── DSP2833x_PieCtrl.d
│ │ ├── DSP2833x_PieCtrl.obj
│ │ ├── DSP2833x_PieVect.d
│ │ ├── DSP2833x_PieVect.obj
│ │ ├── DSP2833x_Sci.d
│ │ ├── DSP2833x_Sci.obj
│ │ ├── DSP2833x_Spi.d
│ │ ├── DSP2833x_Spi.obj
│ │ ├── DSP2833x_SysCtrl.d
│ │ ├── DSP2833x_SysCtrl.obj
│ │ ├── DSP2833x_Xintf.d
│ │ ├── DSP2833x_Xintf.obj
│ │ ├── DSP2833x_usDelay.obj
│ │ ├── main.d
│ │ ├── main.obj
│ │ ├── subdir_rules.mk
│ │ └── subdir_vars.mk
│ └── sources.mk
├── include
│ ├── DSP2833x_Adc.h
│ ├── DSP2833x_CpuTimers.h
│ ├── DSP2833x_DMA.h
│ ├── DSP2833x_DefaultIsr.h
│ ├── DSP2833x_DevEmu.h
│ ├── DSP2833x_Device.h
│ ├── DSP2833x_Dma_defines.h
│ ├── DSP2833x_ECan.h
│ ├── DSP2833x_ECap.h
│ ├── DSP2833x_EPwm.h
│ ├── DSP2833x_EPwm_defines.h
│ ├── DSP2833x_EQep.h
│ ├── DSP2833x_Examples.h
│ ├── DSP2833x_GlobalPrototypes.h
│ ├── DSP2833x_Gpio.h
│ ├── DSP2833x_I2c.h
│ ├── DSP2833x_I2c_defines.h
│ ├── DSP2833x_Mcbsp.h
│ ├── DSP2833x_PieCtrl.h
│ ├── DSP2833x_PieVect.h
│ ├── DSP2833x_Project.h
│ ├── DSP2833x_SWPrioritizedIsrLevels.h
│ ├── DSP2833x_Sci.h
│ ├── DSP2833x_Spi.h
│ ├── DSP2833x_SysCtrl.h
│ ├── DSP2833x_XIntrupt.h
│ ├── DSP2833x_Xintf.h
│ ├── IQmathLib.h
│ ├── SFO.h
│ └── SFO_V5.h
├── source
│ ├── DPM_FlashSram.c
│ ├── DSP2833x_ADC_cal.asm
│ ├── DSP2833x_Adc.c
│ ├── DSP2833x_CodeStartBranch.asm
│ ├── DSP2833x_CpuTimers.c
│ ├── DSP2833x_DefaultIsr.c
│ ├── DSP2833x_ECan.c
│ ├── DSP2833x_GlobalVariableDefs.c
│ ├── DSP2833x_MemCopy.c
│ ├── DSP2833x_PieCtrl.c
│ ├── DSP2833x_PieVect.c
│ ├── DSP2833x_Sci.c
│ ├── DSP2833x_Spi.c
│ ├── DSP2833x_SysCtrl.c
│ ├── DSP2833x_Xintf.c
│ ├── DSP2833x_usDelay.asm
│ └── main.c
└── targetConfigs
├── TMS320F28335.ccxml
└── readme.txt
7 directories, 94 files
评论