尊敬的 Bosheng 和 UCD 朋友:
希望一切顺利。
我发现、Toff 在代码中的计算与升压拓扑的电压秒方程不匹配。
如白皮书《通过 ZVS 或谷底开关降低 PFC THD 和提高效率》中的公式所示,对于升压拓扑,Toff = TON*Vin/(Vo-Vin),我在代码中推导出了该公式,但发现 Toff = TON*Vo/(Vo-Vin );您能帮助澄清这一点吗? 代码可能错误或我错误。
请参阅下面的分析、我在代码后面添加了注释。
if (iv.VBUS_Scaled > iv.numer_1)
{
iv.numer_2 = iv.VBUS_Scaled - iv.numerer_1;//Vo-Vin、Q12
//Jack -> iv.numer_2 = Vo - Vin
}
其他
{
iv.numerer_2 = 0;
}
if (iv.numer_1 <(iv.VBUS_Scaled >> 1))//if Vin <(Vout/2)
{
if (iv.numer_1 < iv.min_VIN)
{
iv.numer_1 = iv.min_VIN;//VIN 位于分母中、对其进行钳位
}
iv.numerer_3 =((iv.cla1_output_filtered >> 8)*(iv.switching_period >> 4))>> 13;//ton、Q17*Q14>>13=Q18 (ps)
//Jack->iv.numer_3 = Ton;
iv.numerer_3 =(iv.numerer_3 * iv.VBUS_Scaled)>> 12;//Q18*Q12>12=Q18
//Jack->iv.numer_3 = Ton*Vo;
iv.numerer_3 = 8 * iv.numerer_1 * iv.numerator_3;//Q12*Q18=Q30
//Jack->iv.numer_3 = Ton*Vo*Vin;
iv.numerer_4 = T_r *((iv.VBUS_Scaled * iv.numer_2)>> 12);//Q12*Q12>12=Q12
//Jack->iv.numer_4 = TR*(Vo*(Vo-Vin))
iv.numerer_3 = iv.numerer_3 + iv.numerator_4;//numerator、Q30
//Jack->iv.numer_3 = Ton*Vo*Vin + TR*(Vo*(Vo-Vin))
iv.denominator =(8 * iv.numer_1 * iv.numerator_2)>> 12;//Q12*Q12>>12=Q12
//Jack->iv.denominator = Vin*(Vo-Vin);
iv.numerer_4 =(iv.numerer_3 / iv.denominator)+(T_r >> 2);//Q30/Q12=Q18、添加1/4 T_r
//Jack->iv.numer_4=(Ton*Vo*Vin + TR*(Vo*(Vo-Vin ))/(Vin*(Vo-Vin ))))+ TR/4
//Jack->iv.numer_4 = Ton*Vo*Vin/(Vin*(Vo-Vin))+ TR*(Vo*(Vo-Vin ))/(Vin*(Vo-Vin ))+ TR/4
//删除分子和分母中的同一变量,然后我们可以
//Jack->iv.numer_4 = Ton*Vo/(Vo-Vin)+ TR*Vo/Vin + TR/4
}