準備做一個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+電流環輸出
請教大家,改程序如何實現占空比調制的?