stm32和电机开发(开篇)
Posted 嵌入式-老费
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32和电机开发(开篇)相关的知识,希望对你有一定的参考价值。
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
第一次知道电机开发,是在2019年的时候,也就是差不多3年半前。当时有一位同事在美的上班,是他让我知道了电机控制的一些应用场景。等到后来自己做了AGV的一些工作,对电机开发和控制这块就更有兴趣了。利用pwm就可以控制加速度、速度和位置,这本身就是很神奇的事情。现在网上,尤其是b站上面已经有很多mcu控制电机的视频了,某野火、某原子、某硬石也出了类似开发板,正好可以拿来学一下。
1、电机种类
常用电机主要是直流有刷电机、直流无刷电机、步进电机、舵机和永磁同步电机(pmsm)这几种。
2、电机控制构成
电机控制一般有这几个部分组成,控制电路板(一般是mcu开发板)、驱动板(实现控制信号到电机驱动信号的转变)、电机、电源这几个部分组成。如果是精确控制,一般还涉及到编码器。
3、编码器
在电机控制中,常用控制方式一般是pwm。但如果只使用pwm控制,这只是一种开环控制方式,控制不一定精准。特别是有负载的时候,如果没有编码器,使用开源控制是远远达不到控制效果的。有了编码器,就相当于有了一个测量值,目标值和测量值之间有了一个负反馈,有了这个负反馈就可以去实现精准控制了。
4、控制方法
目前比较实用多的还是PID。根据控制目标不同,PID还分成单极PID和串级PID。比如说,扭矩-速度控制,扭矩-速度-位置控制等等。当然对于直流无刷电机和永磁同步电机,还会有foc控制。foc可以用x-cube-mcsdk生成。但是foc一般用来控制加速度或扭矩,外环的速度、位置还是可以用PID完成。
PID也有位置法和增量法两种,灵活加以应用。
5、安全检测
驱动板一般还会包含电压检测、电流检测和温度检测三个部分。过低电压、过高电流、过高温度,这部分都是需要进行安全处理的。
6、代码架构
电机控制的架构一般就是前后台。一部分是后台while(1)控制,相关工作就是log输出、串口数据输入等;一部分是时间中断的PID计算和PWM修改输出。
7、电机控制和其他软件的配合
电机控制实现的只是电机部分,控制的目标其实还是来自于上层soc、或者说pc的设定。这里面就可能涉及到slam定位算法、opencv算法、路径算法规划等内容。所以,我们知道电机控制的同时,也要明白电机控制的终极目标和本质。
8、学习视频链接
https://www.bilibili.com/video/BV1AZ4y1V7wt
https://www.bilibili.com/video/BV1hv4y1g7s3
https://www.bilibili.com/video/BV1Fs411p7Zc
9、文档链接
https://doc.embedfire.com/motor/motor_tutorial/zh/latest/index.html
or
http://47.111.11.73/docs/boards/stm32dj/ATK-DMF407.html
10、代码链接
https://gitee.com/Embedfire-motor/ebf_motor_tutorial_code_stm32f407_jiaoyang
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于stm32和电机开发(开篇)的主要内容,如果未能解决你的问题,请参考以下文章