打印
[STM32]

BLDC 方波驱动,正反转的转速不差别一倍 求助

[复制链接]
2009|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ljxh401|  楼主 | 2021-8-16 00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ljxh401 于 2021-8-16 00:04 编辑

我使用 STM32F103 驱动一个无刷电机,
首先通过短时间的定向电流确认UVW 和霍尔的关系
Tim8Drv0:U+V-    霍尔:6
Tim8Drv1:U+W-   霍尔:4
Tim8Drv2:V+W-   霍尔:5
Tim8Drv3:V+U-    霍尔:1
Tim8Drv4:W+U-   霍尔:3
Tim8Drv5:W+V-   霍尔:2


做出一个顺时针驱动表,得到每个霍尔信号往前两步获得驱动信号:
const pMDrvFun DrvATab[]={
        NULL,
        Tim8Drv5,                //霍尔信号1
        Tim8Drv1,                //霍尔信号2
        Tim8Drv0,                //霍尔信号3
        Tim8Drv3,                //霍尔信号4
        Tim8Drv4,                //霍尔信号5        
        Tim8Drv2,                //霍尔信号6
        NULL,
};


驱动代码如下
void MotorRun(INT16U pwm)
{
        static INT8U hallbak;
        INT8U hallcur;
        hallcur=(GPIOB->IDR)&0x07;
        if(hallcur!=hallbak && hallcur!=0 && hallcur!=7)
        {
             hallbak=hallcur;
             DrvATab[hallcur](pwm);
        }
}


这个速度 能达到 880rpm

我根据这个表 做电机反转,pwm的载波都是一致的
const pMDrvFun DrvBTab[]={
        NULL,
        Tim8Drv1,                //霍尔信号1
        Tim8Drv3,                //霍尔信号2
        Tim8Drv2,                //霍尔信号3
        Tim8Drv5,                //霍尔信号4
        Tim8Drv0,                //霍尔信号5        
        Tim8Drv4,                //霍尔信号6
        NULL,        
};




得到的转速是 440rpm

修改反转表
const pMDrvFun DrvCTab[]={
        NULL,
        Tim8Drv2,                //霍尔信号1
        Tim8Drv4,                //霍尔信号2
        Tim8Drv3,                //霍尔信号3
        Tim8Drv0,                //霍尔信号4
        Tim8Drv1,                //霍尔信号5        
        Tim8Drv5,                //霍尔信号6
        NULL,        
};


得到的转速也是 440rpm 附近,而且C表噪声比B表大





使用特权

评论回复

相关帖子

沙发
xdqfc| | 2021-8-16 11:02 | 只看该作者
看看正反向转的时候电流是不是一致,不对的话,估计是表格没有做好。

使用特权

评论回复
板凳
zwsam| | 2024-2-20 22:07 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

221

帖子

3

粉丝