OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9925|回复: 23

吐血分享:直流电机正反转反馈控制【原创】

[复制链接]

17

主题

97

帖子

0

精华

高级会员

Rank: 4

积分
822
金钱
822
注册时间
2020-7-21
在线时间
85 小时
发表于 2021-6-20 22:09:25 | 显示全部楼层 |阅读模式
本帖最后由 16424740 于 2021-6-21 14:07 编辑

       在论坛也混了一段时日了,打算把自己近日的小研究放出来。
       这篇文章主要介绍的是如何利用STM32F103的编码器模式和直流电机驱动芯片A4950配合完成电机正反转反馈控制的教程。
       另外,由于参考了一些CSDN博主的代码,没有一一申请授权,所以就不放原代码了。PID调节方面的可以参考一下参考文献上的引用。造成不便请见谅


/***********************************************************************正文分割线*******************************************************************/


2021 年5  月31  日
直流电机正反转反馈控制
摘  要: 直流电机有着广泛的应用,大到农业机械化、工业、自动化行业,小到各类家具、自动控制装置都能见到它的身影。本文将采用STM32进行直流电机的控制研究,并进一步利用STM32的编码器模式进行反馈控制,实现电机的定时正反转以及速度控制,并加入简易的反馈使电机具有更强的环境适应性。
关键词:直流电机控制、反馈控制、STM32编码器模式



一、问题回顾及简要分析
    本课题所要解决的问题在于,利用STM32实现直流电机的定时正反转控制。为了使电机有更好的环境适应性,本文进一步提出了简易的反馈控制,在电机转动受到一定程度的阻碍时,会加大转速,以模拟电机驱动的车辆在路面受阻时的加速越野功能。
若要使用单片机驱动直流电机,首先应该解决电源问题。目前,大多数单片机的电源为5V或3.3V,本课题采用的STM32电源为3.3V,所用直流电机额定电压12V,并附带额定电压5V的磁感应霍尔编码器,故考虑采用12V干电池驱动,并配合DC-DC芯片MP1584、LM1117_3.3获取5V、3.3V电压用于驱动编码器和主控芯片。
    同时,为了实现电机的正反转定时控制及速度控制,本课题考虑采用STM32的定时器实现定时控制功能,并采用A4950单H桥芯片并对其输入两路PWM实现正反转控制。
二、所用器件清单及简介
本课题采用的器件有:STM32F103最小系统板*1、MP1584稳压芯片*1、LM1117_3.3稳压芯片*1、MG513P20_12V直流减速电机*1(带霍尔编码器)、A4950驱动芯片*1、SS34肖特基二极管*2、SI4435MOS管*1、LED发光二极管*1、机械开关*1、电容电阻电感若干、12V干电池*1。
STM32F103为意法半导体的中低端32位ARM微控制器,本文采用的CPU为STM32F103RCT6,具有高达72MHz的晶振频率,256K的FLASH容量,8个定时器以及PWM输出功能,其定时器具有编码器模式实现编码器输出脉冲数的精确计算。
MP1584稳压芯片可以实现12V转5V稳定电压输出对编码器供电,LM1117_3.3可以实现3.3V电压稳定输出以对主控芯片供电。
MG513P20直流电机带有霍尔编码器,霍尔编码器线数为390ppr,线数代表了电机每转动一圈编码器输出的脉冲数。
A4950驱动芯片是美国爱格罗公司生产的一款单H桥电击驱动芯片,可驱动8-40V的电机,最大输出电流3.5A。本课题用此芯片实现利用主控芯片的PWM输出控制直流电机正反转以及转速控制的作用。
其余二极管、MOS管、发光管以及电阻电感电容用于组成经典电路并实现电路的保护及电源提示的功能,在此不予赘述。
三、硬件系统设计
    直流电机控制的硬件设计如下:
HardwareDesign.png
    图3.1 直流电机控制硬件设计
    电源模块经两级降压得到5V、3.3V电源后驱动主控芯片及直流电机,主控芯片通过定时器控制PWM输出实现对电机的正反转指定转速控制,直流电机工作时利用霍尔编码器通过脉冲形式反馈当前转速到主控芯片。
3.1 电源模块
结合两块稳压芯片的参考手册附带的经典电路[1][2],本课题提出了下述电源系统设计:

   DCpower.png
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png
如图3.2为电源系统部分的设计。电源系统采用了两级降压的方式分出5V、3.3V为系统常用硬件部分供电。使用时,于J1处插入12V干电池,K1闭合后,MOS管导通MP1584开始工作,5V电压由SW端输出,为了避免电压输出的尖峰脉冲,D11应尽可能靠近SW引脚。LM1117_3.3输出3.3V电压为主控芯片供电。此时,LD2被点亮,表示电源已接通。
3.2 直流电机驱动
直流电机部分,本课题采用了单H桥的A4950芯片驱动电机。根据芯片手册的经典电路,本课题电机驱动部分设计如下:
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png A4950.png
图3.3 电机驱动部分电路
    其中,IN1、IN2为H桥逻辑输入端,VREF为参考电压,一般接5V,此处接6V。VBB为电机驱动电压12V,J4处接直流电机。主控芯片对PB6、PB7进行PWM输出,实现对电机的控制。
    根据文献[3],IN1、IN2逻辑控制表如下:
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png table1.png
    若不要求速度控制,IN1为1,IN2为0时,电机正转;IN1为0,IN2为1时,电机反转,此时电机处于全速工作状态。进一步的,借助PWM可以实现对电机转速的控制:
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png table2.png
    此时,电压的平均值决定了电机转速的大小,对应地,即PWM的占空比决定了电机的转速大小,占空比越大,转速越快。一般而言PWM频率选择5k-20kHz,本文以9kHz输出为例。
    在此,硬件系统实现了对编码器、电机、主控芯片的供电,并提供了软件控制电机正反转的思路。
四、软件系统设计
    为了实现对直流电机的闭环控制,本文参考PID控制法的思路简要设计了一种实时反馈的直流电机控制方法。将PA0、PA1接入电机编码器的A、B相,利用STM32自带的编码器模式进行脉冲计数得出转速。
softwareDesign.png

    在主函数中,芯片执行完初始化相关程序后于while(1)死循环中改变转动方向。在转速保持阶段,利用串口向上位机发送转速信息,此处的上位机为个人PC,通过可视化串口调试软件Minibalance观察转速关于时间的波形,以便于进行相关参数的调节。
    中断程序方面,本文将TIM6作为10ms的中断周期改变电机转速。程序根据设定的转速输出相应的PWM值后,主控芯片根据编码器反馈的差值计算出当前电机转速,并与设定的转速对比,实时调整PWM输出值。
    STM32定时器具有编码器接口模式,是定时器的一种高级应用,其具体初始化配置见附录及文献[4],在此不予赘述,仅介绍其大致原理。在编码器模式下,计数器依照增量编码器的速度和方向被自动修改,计数器内容始终指示着编码器的方向。其计数方向与编码器信号的关系如下:
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png relationship.png
    本程序将以在TI1、TI2上计数为例,该模式常被称为编码器模式3。霍夫编码器在输出时,AB相的脉冲相位差为90°,
根据表格可以计算出,编码器每一个脉冲,编码器计4个数。其向上向下的计数逻辑使编码器计数对毛刺的抗干扰能力非常强:
wave.png file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png
    给定上图波形下,若某一相出现了毛刺,如第二个脉冲以后TI1处出现毛刺,此时TI2保持,可以认为此时电机处于停转状态,而编码器的值基本不变,毛刺所引起的计数误差最多仅为1。因此可以认为,STM32编码器接口模式读取的值相当可靠。
    反馈控制方面,本文借鉴了PID控制法的思想,输出的PWM值与当前误差、历史总误差、当前误差与上一次误差的差值各乘以固定系数后得出。三个系数记为变量_p、_i、_d并参考文献[5]、文献[6]、文献[7]所给出的方法进行调试得出。即先调_p观察转速输出波形,使之在给定值的60%-70%间波动,然后适当给出_i值,所得波形有一个适度的上冲(约为给定值1/4)后迅速收敛。_d则可以适当给定,但不宜过大,否则波形容易出现高频振荡。
五、实际测试结果
    经调试,所得的_p、_i、_d参数为9、1.1、0.1。
运行过程如图5.1,图5.2所示。图5.1电机正转,白色塑料滑片被滑到一侧,图5.2电机反转,白色塑料滑片被滑到另一侧。
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png demo1.png
图5.1 电机正转
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png demo2.png
图5.2 电机反转
使用Minibalance观察编码器计数计算后的转速波形可以发现,输出的波形为方波,最大最小值的绝对值基本一致,说明转速比较稳定。脉宽基本一致,说明正反转改变时间基本一致。
file:///C:/Users/asus/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png minibalancedemo.png
图5.3 Minibalance输出波形
六、总结
    本文提出并验证了一套切实可行的直流电机正反转控制方案,并利用A4950芯片及STM32的PWM输出实现了转速可调。算法方面参考了PID算法的思路利用STM32的编码器模式设计了简易负反馈机制。使得该算法驱动的轮式车辆有更强的环境适应性。
参考文献
[1] MP1584 数据手册
[2] LM1117_3.3 数据手册
[3] A4950 数据手册
[4] STM32F10XX 参考手册
[5] PID调节经验 - zyboy2000 - CSDN
https://blog.csdn.net/zyboy2000/article/details/9418257
[6] PID调参过程详解(包括增量式和位移式)- MrT_WANG- CSDN
https://blog.csdn.net/wangweijundeqq/article/details/76389770?utm_source=app
[7] 基于直流电机调速平台的PID参数整定心得 – JOY_Tech - CSDN
https://blog.csdn.net/Tech_JOY/article/details/105223116?utm_source=app






/***************************************************************************************************************************************/
PDF下载:
游客,如果您要查看本帖隐藏内容请回复



DCpower.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1361
金钱
1361
注册时间
2019-8-29
在线时间
297 小时
发表于 2021-6-21 13:57:33 | 显示全部楼层
谢谢分享,顶一个!!!
回复 支持 反对

使用道具 举报

0

主题

76

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3798
金钱
3798
注册时间
2013-12-23
在线时间
621 小时
发表于 2021-6-21 14:09:52 | 显示全部楼层
看看咯,谢谢
回复 支持 反对

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7952
金钱
7952
注册时间
2014-8-13
在线时间
1590 小时
发表于 2021-6-21 14:12:19 | 显示全部楼层

谢谢分享,顶一个!!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2021-6-22
在线时间
5 小时
发表于 2021-6-22 08:50:29 来自手机 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2021-5-13
在线时间
24 小时
发表于 2021-7-22 14:50:40 来自手机 | 显示全部楼层
牛,隐藏的内容在哪呢
回复 支持 反对

使用道具 举报

5

主题

179

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
8195
金钱
8195
注册时间
2016-9-7
在线时间
1113 小时
发表于 2021-7-23 08:41:25 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-6-12
在线时间
9 小时
发表于 2021-7-24 18:26:08 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2021-9-7
在线时间
2 小时
发表于 2021-10-18 20:17:52 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2021-10-20
在线时间
0 小时
发表于 2021-10-20 19:20:02 | 显示全部楼层
谢谢分享,学习了!
回复 支持 反对

使用道具 举报

0

主题

49

帖子

0

精华

高级会员

Rank: 4

积分
843
金钱
843
注册时间
2016-8-9
在线时间
235 小时
发表于 2021-10-21 11:33:15 | 显示全部楼层
看看
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2021-6-26
在线时间
3 小时
发表于 2021-10-21 14:58:54 | 显示全部楼层
太牛了
回复 支持 反对

使用道具 举报

25

主题

180

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2015-1-14
在线时间
152 小时
发表于 2021-10-22 16:07:23 | 显示全部楼层
mark  
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2021-10-26
在线时间
9 小时
发表于 2021-10-26 19:43:28 | 显示全部楼层
谢谢分享,顶一个!!!
回复 支持 反对

使用道具 举报

0

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2019-2-13
在线时间
61 小时
发表于 2021-11-12 15:19:29 | 显示全部楼层
谢谢分享 给力
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2021-11-7
在线时间
5 小时
发表于 2021-12-7 21:56:30 | 显示全部楼层
谢谢分享,学习中
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-11-20
在线时间
2 小时
发表于 2021-12-18 23:42:37 | 显示全部楼层
感谢分享!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2020-3-11
在线时间
18 小时
发表于 2021-12-27 13:34:10 | 显示全部楼层
顶一个!!!
回复 支持 反对

使用道具 举报

17

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
金钱
456
注册时间
2021-9-6
在线时间
59 小时
发表于 2022-2-10 16:43:48 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2022-3-6
在线时间
4 小时
发表于 2022-3-6 10:31:58 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-14
在线时间
8 小时
发表于 2022-4-13 09:20:10 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2022-4-29
在线时间
1 小时
发表于 2022-5-10 09:12:02 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

10

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
670
金钱
670
注册时间
2014-4-12
在线时间
194 小时
发表于 2022-5-11 09:22:06 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

4

主题

68

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2016-7-21
在线时间
281 小时
发表于 2022-6-8 20:45:30 | 显示全部楼层
学习学习学习,感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 23:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表