准备做一个pfc,看了一下microchip的例程,采用平均电流法,控制结构如下:
最后电流环PI出来之后的程序看不明白了:下式中VacQ15:交流电压输入采样、CurrentPIoutput:电流环输出。
FeedForwardTerm =( __builtin_mulss( (32767 - VacQ15) , DCMFactor) >> 15) ;
FinalOutput_long = (long)FeedForwardTerm + (long)CurrentPIoutput;
if(FinalOutput_long > 32767)
FinalOutput_long = 32767;
else if(FinalOutput_long < 0)
FinalOutput_long = 0;
FinalOutput = (int) FinalOutput_long;
// Bring it in range of PWM Period
BoostDuty = ( (__builtin_mulss(FinalOutput,PWMPERIOD)) >> 15);
按道理应该是D = 1 - (Vac-VL)/Vdc得到占空比,现在从最后一段程序推出来的是 (1-Vac)*DCMfactor+电流环输出
请教大家,改程序如何实现占空比调制的?