前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CAN通信控制一拖二直流无刷电机

CAN通信控制一拖二直流无刷电机

作者头像
用户1605515
发布2020-05-12 10:39:55
8690
发布2020-05-12 10:39:55
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿

1. 摘要

本篇笔记主要介绍,通过CAN通信控制两个直流无刷电机的快速开发和应用

2. 准备工作

IAR 8.3.1

3. 工程建立

这次工程以STM32F103RC为例用CAN驱动控制两路直流无刷电机,带霍尔传感器,TIM1和TIM8用来输出PWM,TIM2和TIM4用来接霍尔,采用6步法控制算法实现电机的换向和控制,电机的转速由霍尔信号计算,每个电机的电流采用单电阻采样,使用DMA,减少CPU处理时间,使用CubeMX快速配置工程,管脚分布,生成初始工程,为了代码可读性,分配管脚时候,命名为代码中要使用的名字如霍尔三个管脚可命名为M1_HALL_H1, M1_HALL_H2, M1_HALL_H3。

4. 工程配置

霍尔的配置

PWM配置

MCU为72M时钟,PWM使用20k,1分频时钟,则PWM的周期寄存器配置为

72000000/20000 – 1= 3599.

CAN通信的配置为250kbps

在基础工程做完后,就需要根据应用添加其他模块和算法,

其中主要难点是PID参数的整定和转速调节,以及速度的获取,转速信息可以通过读取霍尔值,用于转速计算,而转速的计算算法可以从数据手册获取,如下图所示

电机电流的获取通过DMA,减少CPU的负担,主要模块添加完后,添加一些保护门限值。本系统通过CAN通信控制各个电机,系统多达10台电机,所有驱动板采用一拖二通用设计。软件也采用模块化设计。

5. 测试

给定1200RPM(0x04B0) 转速测试

如果想转速在精确一些,可以在调整PID参数,并且闭电流环。如果精度在要求高,可以采用FOC控制,FOC算法复杂一些。这里不在赘述。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档