当前位置:网站首页>stm32和电机开发(直流有刷电机和步进电机)
stm32和电机开发(直流有刷电机和步进电机)
2022-06-26 18:33:00 【嵌入式-老费】
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很多的课程都喜欢把电机原理完完整整讲一遍。但是对于控制的同学,这部分内容是否真的需要值得商榷。做电机控制,大部分都是在学了stm32之类的mcu之后才开始进行的。这部分,不如按照个人认知习惯去学习或许效率更高。
1、直流有刷电机和步进电机
虽然直流无刷电机bldc、pmsm这两类电机似乎更有技术含量一点,但是从学习角度来说,直流有刷电机和步进电机是最合适的。说到直流有刷电机,大家可以把它想象成小时候玩具上的电机。上面会有一个正负极,分别连接在电源两侧。如果是正着接,那么电机就正转;如果反着接,就反转。
步进电机,看的比较多的是二相四线步进电机,可以简单看成两对正负线。如果要步进电机转起来,只需要定时给一定数量的方波即可。比如一个方波发送出来,电机就转到1.8°。只要不停给pwm方波,电机就会一直转下去。
2、直流有刷电机和直流无刷电机bldc
接口上看,前者一般就正负极接口;bldc一般有三个接口,分别是u、v、w。
3、控制方法
拿直流有刷电机来说,如果是直接接到电源两侧,那么满功率下肯定有一个最大转速。在这个最大转速的基础上,大家试想一下,把电源切分成一段一段的高低方波。比如说,把1s时间切分成1000份,1ms的时间内,有一部分时间供电,一部分时间不供电,这样电机的速度是不是就可以从最大转速降下来了。如果要提速,那就增加供电的时间比例;如果要降速,那么就降低供电的时间比例,这样是不是就可以达到我们的目的了。
而对步进电机来说,控制方法就更简单了。如果要速度快一点,是不是单位时间内发送更多的方波个数就好了;慢一点,就发送少一点的方波。
4、反馈控制
上面说到了电机控制。但是,如何保证控制的有效性呢?比如对直流有刷电机来说,我们希望保持在一个恒定的速度,那么除了调节方波之外,还需要什么呢?是不是需要一个测量传感器。这个传感器会告诉我们当前的速度是多少。现实中,这个传感器叫编码器。因为电机控制有一定延时,这是如果测量发现速度慢了,就增加供电比例;如果快了,就减少供电比例。这个过程,把它写成代码做到stm32里面就成了自动调速系统了。

5、用驱动板实现电机控制
之前说到会把电源切分成一段一段的方波。这个过程是怎么完成的,那就是驱动板。在这之前,需要了解控制信号和驱动信号的区别。控制信号,这个Control电压一般很小,小到几伏就可以;但是驱动信号,这个就很大,一般会有几十、几百、上万伏都有可能。所以驱动板就相当于一个开关,开通后,外界电源直接传递给电机;关闭后,切断外界电源和电机的联系。

6、电机控制的目标
电机控制目标一般就三个,扭矩或电流、速度、距离。这里面精度的保证主要来源于编码器和控制算法。评价电机好坏有很多指标,比如响应时间、精度等等。
边栏推荐
- 分页查询、JOIN关联查询优化
- 临时关闭MySQL缓存
- Map和List<Map>转相应的对象
- Clion compiling catkin_ WS (short for ROS workspace package) loads cmakelists Txt problems
- MYSQL的下载与配置 mysql远程操控
- Clion编译catkin_ws(ROS工作空间包的简称)加载CMakeLists.txt出现的问题
- To: Apple CEO Cook: great ideas come from constantly rejecting the status quo
- 判断某个序列是否为栈的弹出序列
- DVD digital universal disc
- The eigen library calculates the angle between two vectors
猜你喜欢

Feign远程调用

项目实战六:分布式事务-Seata

博云,站在中国容器潮头

Redis单点登陆系统+投票系统

Decompilation of zero time technology smart contract security series articles

Tag dynamic programming - preliminary knowledge for question brushing -2 0-1 knapsack theory foundation and two-dimensional array solution template

When does the mobile phone video roll off?

Solidity - contract inheritance sub contract contains constructor errors and one contract calls the view function of another contract to charge gas fees

Leetcode 128 longest continuous sequence

Microservice architecture
随机推荐
Create a time blocker yourself
你了解如何比较两个对象吗
Ethereum技术架构介绍
ROS的发布消息Publishers和订阅消息Subscribers
Chinese (Simplified) language pack
redis 基础知识
Decompilation of zero time technology smart contract security series articles
Preliminary analysis of serial port printing and stack for arm bare board debugging
物联网协议的王者:MQTT
Redis单点登陆系统+投票系统
几种常见的UML关系图汇总
知识点总结
微信小程序 uniapp 左滑 删除 带删除icon
Leetcode 238 product of arrays other than itself
CD-CompactDisk
sql 中的alter操作总结
[kubernetes] kubernetes principle analysis and practical application (under update)
Vscode 基础必备 常用插件
Temporarily turn off MySQL cache
How to create and enforce indexes