haoDIY创好电子音响电脑科技DIY小制作发明移动版

主页 > 电子DIY > 控制电路 > 电机控制 >

做一款无刷电机控制器,写个总结(2)

else
{
bldc_dev.motor_state=RUN;
break;
}
}
Phase++;
Phase %= 6;
BLDC_PHASE_CHANGE(Step[Phase]); //
}
说到感应电动势很多人不明白,先来说说电流,电机线圈的内阻通常很小比如0.2欧,电机的电压比如10v,按理来说电流100a为何电机不烧哪?
其实电机线圈在通电的一瞬间并不是完全导通的,因为有反向电动感应势的存在,可能有-9.8v。10v-9.8v = 0.2v /0.2 = 1A.这样算起来电流还合理。
在说说那个初中学习的法拉第 ,当线圈切割磁场时会产生感应电动势,根据右手定则。。。。。。。。不懂的自行上网搜。
做一款无刷电机控制器,写个总结(2)
如下图当ac相在通电12v的情况下,静止状态下正中间中性点理论为6v,但是转起来就不一定了,因为b相实际是在切割磁场,是会产生电动势的。而电动势的大小正负取决与当前在磁场ns极的位置。当切割ns时为-1,切割sn时为1,平行时为0.
做一款无刷电机控制器,写个总结(2)
利用这一特性不就刚好可以获得转子的位置吗?
首先检测电路网上已经一大很成熟了。
如下图,当然很多时候需要在4.7k对地的电阻上并一个100nf的电容,做一个低通滤波。也可以在软件中做滤波处理。
做一款无刷电机控制器,写个总结(2)
我们所要做的就是检测这个悬浮相的电动势过零点。
网上常用的两种方法:1 单片机ad采集;2 比较器比较。我选择了比较器lm339价格已经很便宜了,在高速上比ad有明显优势,只要比较cin bin ain 与n点的压差即可获得零点。
做一款无刷电机控制器,写个总结(2)
理想很完美,现实很残酷,实际中根本得不到这么完美的波形。
如下图,这个已经是比较好的了,还是有很多毛刺。这个给单片机中断,肯定一大堆问题,严重的换错相烧mos管。
做一款无刷电机控制器,写个总结(2)
做一款无刷电机控制器,写个总结(2)
为什么会有这些毛刺哪,有些还挺有规律。
参考了网上的介绍,这中间还有一个叫消磁的东西。
做一款无刷电机控制器,写个总结(2)
原理不深究了,反正时间很短,软件上做一个滤波消掉就可以了。
进入中断函数后做如下处理 ,定时器的中断我暂时用的20us。
const unsigned int FilterNums = 0xff;
static unsigned int nums =0;
static unsigned int Queue_UStatus =0;
static unsigned int Queue_VStatus =0;
static unsigned int Queue_WStatus =0;
static unsigned char EMF_SVal =0;
unsigned char Filter_U_Status=0;
unsigned char Filter_V_Status=0;
unsigned char Filter_W_Status=0;
unsigned char EMF_Val=0;
unsigned int status_h;
unsigned int status_l;
unsigned int Delay30deg =0;
/* 清除中断标志位 */
if ( TIM_GetITStatus(TIM3 , TIM_IT_Update) != RESET )
{
TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);
做一款无刷电机控制器,写个总结(2)
做一款无刷电机控制器,写个总结(2)
至于网上说检测到过零点后,延时30度换相,对电源效率有影响。我试了下,好像没什么明显的差异。也有人说在大功率的电机下不延时反而更平滑等等。真实怎样有待各位实际实验了。
最后秀几张转起来的照片
做一款无刷电机控制器,写个总结(2)
做一款无刷电机控制器,写个总结(2)
硬盘电机 无感模式
做一款无刷电机控制器,写个总结(2)
电动工具电机 有感模式
做一款无刷电机控制器,写个总结(2)
加装散热片的样子 (责任编辑:admin)
haoDIY创好电子 版权所有,电话微信13977534587