首页 » 智能 » 做一款无刷电机控制器写个总结_电机_电动势

做一款无刷电机控制器写个总结_电机_电动势

神尊大人 2024-12-08 09:18:38 0

扫一扫用手机浏览

文章目录 [+]

电机学习资料包(撮下方标题可下载)我能帮你的就这么多了

技能资料汇总:BLDC无刷电机根本+电调设计全攻略等干货_工业电子与自动化-面包板社区板子外不雅观10060mm 中等大小。
DC 12V输入,设计最大电流10A.(实际没试过那么大的电机,手头的电机也就5 6A的样子)硬件上可以切换有感(HALL)和无感(EMF)两种模式,外部滑动变阻器调速 预留有 PWM输入、刹车、正反转、USB和uart等接口。
先来说下事理无刷电机实在便是直流电机,和传统的DC电机是一样的,只是把有刷的电滑环变成了电子换向器。
由于少了电滑环的摩擦以是寿命静音方面有了很大的提升,转速也更高。

做一款无刷电机控制器写个总结_电机_电动势 做一款无刷电机控制器写个总结_电机_电动势 智能

当然难点就在如何获取当前转子的位置好换相,以是又分为两种有感和无感。
有感便是在电机端盖的部位加装霍尔传感器分别相隔30度或60度。
无感便是靠检测悬浮相的感应电动势过零点(后面在细讲)。
当然各有各的优缺陷,有感在低速方面好,可以频繁启停换相。
无感的构造大略本钱低,航模上运用居多。
先说有感,电源首先被分成了3个绕组U V W这个互换电还是有差异的。
它只是3个h桥按一定的顺序导通仿照出来的,实质还是直流电。
电机靠hall位置按一定顺序换相,转速与电压电流有关。
这一点牢记,不是换的越快转的越快。
(位置决定换相时候,电压决定转速)一样平常调速便是调电压,6步pwm办法是目前常用的。
当然后续还有foc等更好算法。
硬件部分网上基本都是成熟的方案。
三相H桥,H桥一样平常有上臂mos和下臂mos组成,如果只是大略的做演示上臂选pmos下臂选nmos掌握电路大略直接用单片机的io就可以驱动。
但是pmos低内阻的价格高。
功率上面很难做大。

做一款无刷电机控制器写个总结_电机_电动势 做一款无刷电机控制器写个总结_电机_电动势 智能
(图片来自网络侵删)

这也便是为什么基本所有的商业掌握器全是nmos的缘故原由。
但是上臂用nmos存在一个问题vgs掌握电压大与vcc 4v以上才能完备导通。
为了简化电路采取了ir公司出的驱动ic,它内部有自举升压电路。
外部仅需一个续流的二极管及储能电容即可。

有感模式掌握相对大略,3个霍尔传感器输出一样平常都是数字旗子暗记,分压后直接接单片机io。

当然掌握办法上也就大略很多,三个霍尔接中断输入,在中断处理程序中根据组合状态换相,程序上也没什么繁芜的。
主程序 一贯检测ad值,改变pwm占空比,及电流保护等。
如下一个范例的换相代码。
Stm32 有两个高等定时器tim1 tim8 可以输出4组互补型pwm,还可以设定去世区韶光等,利用上非常方便。
switch(step){case 4: //B+ C-/ Next step: Step 2 Configuration -------------------------------------- /TIM_CCxCmd(BLDC_TIMx,TIM_Channel_1,TIM_CCx_Disable);TIM_CCxNCmd(BLDC_TIMx,TIM_Channel_1,TIM_CCxN_Disable);

}下图为uvw三相的霍尔检测到的电平及w相的波形。

下图为 uvw三相波形及w相霍尔电平

下图为 w相电平, w相上臂on 下臂pwm ,w相霍尔旗子暗记。

下图为w相ir2304芯片输出,上臂电压可明显看到已高于vcc,下臂为pwm旗子暗记

在说说无感模式,由于没有了霍尔,电机无法知道转子当前的位置以是就无法换相,而感应电动势也只有在转起来之后才有,以是无感模式的启动是个难点。
一样平常方法都是分三段法:1 预定位 2 启动 3 进入闭环反馈正如网友说的江湖一层纸,戳破不值半文钱。
1. 预定为便是逼迫给某一相通电一段韶光,让电机定位到这个位置。
占空比30-50%不要太大,可能会发热。
2. 启动,便是逐步的逼迫换相,当然要有个加速的过程,使电机转起来。
这个过程太慢会抖动反转,太快会丢步。
参数须要一点点试,有点像掌握步进电机。
要能使电机转的能产生电动势,我也是参照的德国MK 电调的算法。
每次延时时间比上一次少1/25,形成一个加速的过程,直到电机完备转起来产生足够的电动势。
3. 闭环反馈掌握换相跟有感差不多一样。
speed_duty=30; //30% startBLDC_PHASE_CHANGE(Step[Phase]); //固定一相Delay_MS(200);speed_duty=pwm;timer = 300;while(1){for(i=0;i<timer; i++){Delay_US(120); //等待}timer-= timer/25+1;if(timer < 25){ if(TEST_MANUELL){timer = 25; //开环逼迫换向}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.这样算起来电流还合理。
在说说那个初中学习的法拉第 ,当线圈切割磁场时会产生感应电动势,根据右手定则。







不懂的自行上网搜。

如下图当ac相在通电12v的情形下,静止状态下正中间中性点理论为6v,但是转起来就不一定了,由于b相实际是在切割磁场,是会产生电动势的。
而电动势的大小正负取决与当前在磁场ns极的位置。
当切割ns时为-1,切割sn时为1,平行时为0.

利用这一特性不就刚好可以得到转子的位置吗?首先检测电路网上已经一大很成熟了。
如下图,当然很多时候须要在4.7k对地的电阻上并一个100nf的电容,做一个低通滤波。
也可以在软件中做滤波处理。

我们所要做的便是检测这个悬浮相的电动势过零点。
网上常用的两种方法:1 单片机ad采集;2 比较器比较。
我选择了比较器lm339价格已经很便宜了,在高速上比ad有明显上风,只要比较cin bin ain 与n点的压差即可得到零点。

空想很完美,现实很残酷,实际中根本得不到这么完美的波形。
如下图,这个已经是比较好的了,还是有很多毛刺。
这个给单片机中断,肯定一大堆问题,严重的换错相烧mos管。

为什么会有这些毛刺哪,有些还挺有规律。
参考了网上的先容,这中间还有一个叫消磁的东西。

事理不穷究了,反正韶光很短,软件上做一个滤波消散落就可以了。
进入中断函数后做如下处理 ,定时器的中断我暂时用的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);

至于网上说检测到过零点后,延时30度换相,对电源效率有影响。
我试了下,彷佛没什么明显的差异。
也有人说在大功率的电机下不延时反而更平滑等等。
真实若何有待各位实际实验了。
末了秀几张转起来的照片

硬盘电机 无感模式

电动工具电机 有感模式

加装散热片的样子

电机学习资料包(撮下方标题可下载)我能帮你的就这么多了

技能资料汇总:BLDC无刷电机根本+电调设计全攻略等干货_工业电子与自动化-面包板社区

标签:

相关文章

AD转换模块设计_电压_通道

„设计目的:节制AD电路设计原则和方法 „设计任务:设计一个多路AD采样电路,能 够对输入电压进行采样并通过LCD显示采 样电压值...

智能 2024-12-29 阅读0 评论0

涪陵 智能技能让榨菜更厚味_涪陵_涪陵区

农产品加工与智能化的联系彷佛并失慎密,然而投资近1亿元、日产能50吨的乌江榨菜智能化车间,于5月在涪陵榨菜集团正式投产,实现了从青...

智能 2024-12-29 阅读0 评论0