这学期正好学完了两学期的电机学,加上个人一直对四轴无人机的无刷电机与电调感兴趣,同时也比较喜欢几个月前看见的foc控制的电机旋钮那个开源项目,于是自己做了一套无刷电机驱动板(算是真正的从0开始),淘宝买了个十几块的不知名云台无刷电机就开始瞎折腾了。
mos是IRLR7843TRPBF,三相桥驱动是很原始的三个IR2104方案,主控是cks32f030c8t6,原理图方案说不上有多好,随便看看就行,毕竟由于连可调直流电源都没有,12V都是从PD快充头里出来的,还好这电机堵转电流都才1A多点,功率不大。
这驱动板也没法做foc控制,因为没有相电流采样,传感器只有在电机底部加的一个磁编码器as5600,只能做简单的速度和位置闭环,不过就个人上手感觉够了。
关于直流无刷电机
直流无刷电机即BLDC,这东西有三根线对应Y型连接绕组的三相,此外一般是外转子的(航模无刷电机和我在淘宝上能看到的大多数都是),我也不知道为什么。
关于六步换相
直流无刷电机驱动的核心就是六步换相法,换相即按顺序改变导通的两相绕组进而改变电枢绕组产生的磁场方向,这样就相当于产生一个旋转磁场带着转子转(跟异步电机有点眼熟),之所以是六步,是因为按照这个流程六步即旋转一个电角度,形成一个周期。因为是电控制换相,所以叫“无刷”。有电机学基础看下面这个视频就很容易明白。
无刷电机工作原理演示动画_哔哩哔哩_bilibilliubu
而六步换相法的核心是如何确定换相时刻,最好的换相时刻肯定是在电机刚好旋转至上一个状态磁场指向时,而如何实现就延伸到有感(有传感器)的霍尔/磁编码器换相检测或者无感的反电动势检测,这是后话了。
顺带提一句,直流无刷电机的调速跟六步换相的时刻没关系,调速是通过改变三相全桥mos的占空比进而改变加在绕组上的电机实现的,乱改换相时刻只会让电机不转或者转的顿挫感极强。
关于如何简单粗暴的让它转起来
我觉得初次上手这个没必要直接去折腾怎么找换相时间,有大概率陷入对传感器的迷惑之中,所以最简单粗暴的方法是直接开环跑六步换相。
while (1)
{
EN1_ON;
EN2_OFF;
EN3_ON;
IN1_OFF;
IN3_ON;
//HAL_Delay(2);//U+M-
for_delay_us(delay_time);
EN1_OFF;
EN2_ON;
EN3_ON;
IN3_ON;
IN2_OFF;
//HAL_Delay(2);//U+V-
for_delay_us(delay_time);
EN1_ON;
EN2_ON;
EN3_OFF;
IN2_OFF;
IN1_ON;
//HAL_Delay(2);//M+V-
for_delay_us(delay_time);
EN1_ON;
EN2_ON;
EN3_OFF;
IN3_OFF;
IN1_ON;
//HAL_Delay(2);//M+U-
for_delay_us(delay_time);
EN1_OFF;
EN2_ON;
EN3_ON;
IN2_ON;
IN3_OFF;
//HAL_Delay(2);//V+U-
for_delay_us(delay_time);
EN1_ON;
EN2_ON;
EN3_OFF;
IN2_ON;
IN1_OFF;
//HAL_Delay(2);//V+M-
for_delay_us(delay_time);
}
所谓开环跑,是直接确定六步换相每步间的时间间隔(六步换相的顺序是固定的),即代码中的delay_time,在我的测试中delay_time在ms级时电机会转的顿挫震动感极强,降到100us左右时效果比较好(虽然也有顿挫感)。
于是我们好歹能让电机转起来了。文章来源:https://www.toymoban.com/news/detail-433734.html
BLDC开环六步换相文章来源地址https://www.toymoban.com/news/detail-433734.html
到了这里,关于直流无刷电机【一】从零开始上手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!