【嵌入式硬件】直流电机驱动相关
项目场景:
驱动履带车(双直流电机)前进、后退、转弯
问题描述
电机驱动MOS管烧毁
电机驱动采用IR2104S+TRH1R403NL的H桥方案(这是修改之后的图)
原因分析:
1.主要原因是4路PWM没有限幅,修改后限制在了最大96%
2.修改了部分硬件使其更合理
/************************************************左杆油门控制前进后退*******************************************************/
if(CH[2]>1200) // 思翼遥控器通道3 992 272 1712
{
PWM1=(int)(4*(CH[2]-992)+err_pwmval2);
if(PWM1>3456) PWM1=3456;
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2,PWM1 ); //修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, 100); //修改比较值,修改占空比
PWM2= (int)(4*(CH[2]-992)+err_pwmval1);
if(PWM2>3456) PWM2=3456;
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_4,PWM2); //修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, 100); //修改比较值,修改占空比
}
else if(CH[2]<800)
{
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 100); //修改比较值,修改占空比
PWM3=(int)(4*(992-CH[2])+err_pwmval2);
if(PWM3>3456) PWM3=3456;
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, PWM3); //修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_4, 100); //修改比较值,修改占空比
PWM4=(int)(4*(992-CH[2])+err_pwmval1);
if(PWM4>3456) PWM4=3456;
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, PWM4); //修改比较值,修改占空比
}
else
{
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, 1440+err_pwmval1); //修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 1440); //修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, 1440+err_pwmval2); //修改比较值,修改占空比
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_4, 1440); //修改比较值,修改占空比
}
/************************************************右杆副翼控制旋转*******************************************************/
if(CH[0]>1200) //思翼遥控器通道1
{
err_pwmval1=(int)(2*(CH[0]-992)); //1440
err_pwmval2=-(int)(2*(CH[0]-992));
}
else if(CH[0]<800)
{
err_pwmval1=-(int)(2*(992-CH[0]));
err_pwmval2=(int)(2*(992-CH[0]));
}
else
{
err_pwmval1=0;
err_pwmval2=0;
}
解决方案:
1.修改限幅到96%,之前可以超出PWM满占空比。
2.栅极电阻从30R改为20R,SS14改为SS34,自举电容从10uF/25V改为4.7uF/25V
测试:
操作履带车持续运行半小时没有超过50度以上的发热源
大家有什么感兴趣的地方可以留言!我后期补充!