历史上的今天
返回首页

历史上的今天

今天是:2024年10月13日(星期日)

正在发生

2021年10月13日 | 无刷电机控制器图解:电路图 程序 接线图

2021-10-13 来源:elecfans

很早之前就想做一款无刷电机控制器,忙于工作一直没有弄。最近有点时间画板,打样,焊接,调试,总算顺利的转起来。期间也遇到很多问题,上网查资料,自己量波形前前后后搞了差不多近一个月,(中间又出差一周)总算搞的差不多了,特意写个总结。


板子外观100*60mm 中等大小。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% start

BLDC_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度换相,对电源效率有影响。我试了下,好像没什么明显的差异。也有人说在大功率的电机下不延时反而更平滑等等。真实怎样有待各位实际实验了。

最后秀几张转起来的照片

硬盘电机 无感模式

电动工具电机 有感模式

加装散热片的样子


推荐阅读

史海拾趣

Cynergy 3公司的发展小趣事

Cynergy 3一直将客户需求放在首位,致力于为客户提供定制化的产品解决方案。公司拥有一支经验丰富的工程师团队,他们与客户紧密合作,深入了解客户的实际需求。在此基础上,Cynergy 3不断推出符合客户需求的新产品和新技术。这种以客户需求为导向的产品创新策略使得Cynergy 3能够不断满足市场的变化需求,保持其在行业中的领先地位。

Amphenol Thermometrics公司的发展小趣事

为了进一步扩大市场份额,Cynergy 3制定了国际化发展战略。公司积极参加国际展会和会议,与全球各地的客户和合作伙伴建立联系。同时,Cynergy 3还在全球范围内设立了多个分支机构和服务中心,以便更好地为客户提供服务。这些努力使得Cynergy 3的产品逐渐进入了国际市场,并赢得了众多国际客户的青睐。

Cambridge Electronic Industries Ltd公司的发展小趣事

在激烈的市场竞争中,CEI深知品质管理的重要性。公司建立了完善的质量管理体系,从原材料采购到产品制造、检验、包装等各个环节都进行严格把关。同时,CEI还注重持续改进和优化生产流程,提高生产效率和产品质量。这些措施使得CEI的产品在市场上具有更高的竞争力和口碑。

宝乘(baocheng)公司的发展小趣事

作为淄博市的重大项目,宝乘公司得到了各级政府的大力支持。这些支持不仅体现在资金扶持上,还包括政策优惠、人才引进等多个方面。在政府的助力下,宝乘公司得以快速发展,不断壮大。同时,公司也积极响应政府的号召,参与新旧动能转换等重大项目,为地方经济的发展做出了贡献。

Adafruit公司的发展小趣事

作为淄博市的重大项目,宝乘公司得到了各级政府的大力支持。这些支持不仅体现在资金扶持上,还包括政策优惠、人才引进等多个方面。在政府的助力下,宝乘公司得以快速发展,不断壮大。同时,公司也积极响应政府的号召,参与新旧动能转换等重大项目,为地方经济的发展做出了贡献。

福斯特半导体(Foster)公司的发展小趣事

面对未来电子行业的发展趋势,宝乘公司继续坚持创新驱动的发展战略。公司加大研发投入,不断推出具有创新性和前瞻性的产品。同时,宝乘还积极探索新的市场领域和应用场景,为公司的未来发展奠定坚实的基础。相信在不久的将来,宝乘公司将成为电子行业中的佼佼者,为社会的进步和发展做出更大的贡献。

请注意,这些故事是基于现有信息的推测,并不代表宝乘公司的真实历史。如果您需要更准确和详细的信息,建议直接联系宝乘公司或查阅相关报道和资料。

问答坊 | AI 解惑

关于视频系统处理器选择的建议

关于视频系统处理器选择的建议基于ARM核心的Freescale的i.MX系列芯片是视频应用的佼佼者。 比如i.MX27和i.MX31 i.MX27嵌入式开发板是高清视频输入输出的首选,i.mx27芯片提供了更高的灵活性和更强大的多媒体处理能力,成为IP视频和语音(V2IP)、移 ...…

查看全部问答>

自制超级流水灯演示板

单片机的用途非常广阔,各种智能控制的产品中都少不了它的身影,前景看好,因此引起了一阵阵学习单片机的热潮。   相信很多初学单片机的朋友都是从做流水灯开始的,因为流水灯的电路较为简单。看着按照自己的设想做成的流水灯变幻着不同的花样, ...…

查看全部问答>

谁能详细讲讲 uboot smdk2410.h 里面配置信息的含义?

谢谢! 我是初学者,不明白里面都在配置些什么,不明白哪些是最重要的。…

查看全部问答>

proteus支持哪些微处理器

我是个新手,不拍拍砖,重在学习,微芯的支持吗?…

查看全部问答>

如何使程序某个功能运行时不响应其它操作

小弟要实现如下功能: 当我点击打印操作时,程序弹出一个对话框,显示正在打印,在打印的过程中,必须使程序无法响应用户的其它任何操作。当打印结束时,显示打印成功或打印失败,然后才让程序可以继续响应用户其它操作。 请问这个如何解决哈? …

查看全部问答>

PB调试

各位大虾,小弟有一个问题请教。PB有没有象VC那样的单步调试方法啊。 我现在调试都是把NK编译好,然后下载进去调试,这样做的话效率相对比较的低。 比如我写了一个驱动程序,就必须编译把NK烧进去才能调试,有没有不用烧进去,象VC那样F10功能那 ...…

查看全部问答>

车辆信息的无线采集系统

希望管理员支持,谢谢…

查看全部问答>

STM32F103的ADC采样问题

怎样才能不间断采样呢? 我现在的方法:ADC12采样AB相的电压和电流,ADC3采样C相电压和电流,用TIM1的CC2和CC3作为触发,DMA传输采样数据,半传输完成后计算一次,计算期间进行下一个采样,整传输完成后,重新给DMA采样数据个数。 问题是: ...…

查看全部问答>

2.4G无线电力测温解决方案

2.4G无线电力测温解决方案   随着市场的推进,无线电力测温已经收到电力部门的高度重视.从过去的地方项目上升到省局的集中招标.从应用的角度来看,它并不是一个复杂的应用.但是从实现上来看,它需要公司投入相当大的人力和物力.针对于此,上海麓 ...…

查看全部问答>