原创 【MM32 Motor-DK试用体验】- 初学带霍尔BLDC调速

2019-11-10 23:27 572 0 1 分类: MCU/ 嵌入式 文集: mcu
    一眨眼 离申请开发板都一个月了,工作忙点,一直没时间写第二篇,  前天电机和mmlink也到了,今天抽空写下带霍尔的入门。
由于没做过BLDC开发,仅仅看过不少这方面的介绍,所以决定找个例程移植下带传感器的BLDC控制,作为自己的入门。
无刷直流电机是现在最常用的无刷电机它具有低损耗低噪声结构简单易控制转速高寿命长等特点因此被广泛应用于现代工业控制等领域 ,其中又分带霍尔和不带霍尔的, 方波控制和正玄波控制, 方波控制最简单,加上霍尔传感器,基本上就是绝大多数电动车的方案了。 方波控制采用6步法, 所谓6步 即 3个桥臂的6种状态,每个桥臂的高低输出用0或者1来表示, 那么3个桥臂就是 2的3次方 =8, 由于 000  和 111 是无效的输出,那么就剩下6种状态了,这个有点类似步进电机,也有点像 移位操作, 但1个0的个数在交替,可以想象成1在移位,但是1会伸展成2个,然后又收缩成1个,这让我又想起了毛毛虫,^_^, 假设初始时 100, 那么就是第一相流向第二和第三相, 右向运动,就是110,1向右伸展,然后下一个是 010,1又收缩至2号,next  011, 伸展, next  001,收缩, next 101, 循环伸展至1号, next ,1收缩,回到最初位置,100,这样循环移位式 变换,让定子磁场以60度跳跃式 旋转,从而带动转子旋转, 这里可以看出转矩应该是脉动的,所以应用有些局限,所谓玄波控制, 我认为就是把位置估计到更细的位置角度上, 并让100这样的 2 3相 pwm调制成任意比例, 这样有了更小的角度波动, 更小的转矩脉动, 说到这又想起了 步进电机细分,  跟这颇为相似。
    在方波控制里,主要是对两个量进行控制,一个是电机转子位置对应的开管状态,有Hall时,通过Hall信息获取转子位置,无传感器时,通过反电动势信息获取转子位置,从而决定开管状态;第二个是PWM占空比的控制,通过控制占空比的大小来控制电流大小,从而控制转矩和转速。

控制步骤

1  读取母线 采样电阻的 ADC,计算总体电流;

2、电流 pid 环 计算应该给的PWM 占空比,以准确控制电流

3、 读取hall 状态,通过查表 确定每一相是 高还是 低, 及 100这样的组合

4、 Hall 相邻状态间的扇区为一个电周期的六分之一,即为60°, 通过定时器记录换向间隔时间,配合 电机极数,即可计算速度,如果用玄波控制,根据这个时间可以更精确的估计位置,实现正弦波控制

5. 以电流环作为内环,速度环作为外环,电机进行闭环控制。

    夜深了, 下次修改添加代码。


作者: xuezhaoye, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3890044.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

广告

文章评论 1条评论)

登录后参与讨论

curton 2019-11-16 19:23

学习了
相关推荐阅读
xuezhaoye 2019-10-22 23:52
【MM32 Motor-DK试用体验】- 开箱初运行
    首先感谢面包板社区 及 灵动微电子 提供的无刷电机FOC开发板,作为一个爱好电机控制的嵌入式工程师,无意间发现了这个让人喜出望外的社区活动,好不犹豫的申请了开发板,满心欢喜...
广告
我要评论
1
0
广告
关闭 热点推荐上一条 /2 下一条