程序备忘_电压估计_LV41_void voltage_estimation(void)
2016-10-06 18:18 72人阅读 评论(0) 收藏 举报
分类:
程序备忘(42)
版权声明:本文为博主原创文章,可以转载
/*此函数在考虑死区补偿的情况下计算出占空比,分别求出三相对地的电压,然后计算出相电压Uan,Ubn,Ucn*/
dead_time_pu = 1.0*db_identify_deadtime_pu; //db_identify_deadtime_pu;在动态参数自检得到,为PU值
if(Ias_last>deadtime_complement_current) //deadtime_complement_current=I_MOTOR/400=320/400=0.8
{ /*分三种情况分别计算出svgen_dq1.Ta1
svgen_dq1.Ta1为死区补偿后的占空比 */
svgen_dq1.Ta1 = svgen_dq1.Ta1 - dead_time_pu;
}
else if(Ias_last < -deadtime_complement_current)
{
svgen_dq1.Ta1 = svgen_dq1.Ta1 + dead_time_pu;
}
else
{
svgen_dq1.Ta1 = svgen_dq1.Ta1 - dead_time_linear_a;
} //其他两相同理
PWM_dutycycle_a_last= svgen_dq1.Ta1; //svgen_dq1.Ta1为死区补偿后的占空比
PWM_dutycycle_b_last= svgen_dq1.Tb1;
PWM_dutycycle_c_last= svgen_dq1.Tc1;
/*一下三行为ABC三相对地电压*/
Uao = (U_DC) * PWM_dutycycle_a_last;
Ubo = (U_DC) * PWM_dutycycle_b_last;
Uco = (U_DC) * PWM_dutycycle_c_last;
/*一下三行为相电压*/
Uan=(2/3*Uao - (1/3)*Ubo - (1/3)*Uco
Ubn= (2/3)*Ubo - (1/3)*Uao - (1/3)*Uco
Ucn= (2/3)*Uco - (1/3)*Uao - (1/3)*Ubo