stm32 FOC 电机介绍

news2024/11/26 22:22:17

今年开始学习foc控制无刷电机,这几天把所学整理一下,记录一下知识内容。

前言:

为什么要学习FOC?
1.电机控制是自动化控制领域重要一环。
2.目前直流无刷电机应用越来越广泛,如无人机、机械臂、云台、仿生机器人等等。

需要什么基础?
1.C语言,指针,结构体,编程规范。
2.STM32外设使用。
3.原理图阅读。
4.芯片手册阅读。
5.数序坐标系知识

为什么要出本教程?
1.直流无刷电机应用越来越广泛,网上资料比较散落,因此想要出一篇系统性的教程,从头到尾,深入浅出,帮助初学者快速入门直流无刷电机控制。
 

1、电机的分类

1.1、直流有刷电机

        直流有刷电机(BDC)是一种内含电刷装置,可以将直流电能转换成机械能的电动机。
在允许的范围之内,只需要调整电压,即可调整它的转速,因此这类电机拥有良好的调速性
能。直流有刷电机实物图如图 3.2.1.1 所示

网上找到一张动态图片

电机系列:直流电机是如何工作的? - 知乎

1.2、直流无刷电机

        无刷电机是指无电刷和换向器(或集电环)的电机,又称无换向器电机,它由电动机主
体和驱动器组成,是一种典型的机电一体化产品。 早在十九纪, 就已经出现了无刷形式的电
机,即交流鼠笼式异步电动机, 但是, 其有着许多无法克服的缺陷, 以至于人们不断地探索
更好的电机技术。 直到上世纪中叶, 晶体管诞生了,晶体管换向电路代替了传统的电刷与换
向器结构, 这种新型无刷电机克服了第一代无刷电机的缺陷。 直流无刷电机实物图如图

https://www.zhihu.com/zvideo/1381638054105477121

直流无刷电机又分为永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)和一般的BLDC电机

PMSM和BLDC的区别:

  1. 磁场分布

    • BLDC:通常具有一个方波磁场分布。这意味着其定子绕组产生的磁场是方波形式的。
    • PMSM:具有正弦波磁场分布。这是因为PMSM的转子磁铁和定子绕组的设计使得其产生的磁场更接近正弦波形式。
  2. 扭矩脉冲

    • BLDC:由于方波磁场,BLDC电机在运行时可能会产生更显著的扭矩脉冲。
    • PMSM:由于其正弦波磁场,PMSM通常能提供更平滑的扭矩输出。
  3. 控制策略

    • BLDC:经常使用比较简单的6步换相控制。
    • PMSM:更适合使用正弦波控制或矢量控制(如FOC),这可以更好地匹配其正弦波磁场特性。

PMSM的特点:

  • 高效率和性能:PMSM由于其正弦波磁场和优化的控制策略,通常能提供更高的效率和性能。
  • 精确控制:PMSM非常适合于需要精确速度和位置控制的应用,这使其在伺服系统中非常受欢迎。
  • 高转矩密度:PMSM通常具有较高的转矩密度,即在相同大小下可以提供更大的扭矩。
  • 应用广泛:PMSM被广泛应用于工业伺服系统、电动汽车、精密机械和航空航天领域。

下图更直观的知道区别:

1.3、舵机

        舵机是一种“特殊”的直流电机,其构造不仅只有电机部分,而且还自带一个控制器,
所以舵机本身就是一个闭环的控制系统(伺服系统)。 当我们给舵机发送指令信号时,它可
以将指令信号变换为输出轴的角度并保持住,即便是负载发生了变化,它也能够进行自动调
节。 舵机的实物图如图 3.2.3.1 所示:

1.4、步进电机

        步进电机是一种将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序
控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,步进电机的转速、停止的
位置只取决于脉冲信号的频率和脉冲个数,不受负载变化的影响。步进电机的实物图如图
3.2.4.1 所示

1.4、伺服电机

        伺服电机是指在伺服系统中控制机械元件运转的电动机,它搭配上驱动器,形成一个完
整的伺服系统,就能够精准地控制速度、位置等。伺服电机具有线性度高、起动转矩大、运
行范围较广、无自转现象等显著特点,遗憾的是,就目前来说,一整套伺服系统的成本是相
对较高的。伺服电机和控制器的实物图如图 3.2.5.1 所示:

1.5、各类电机特点
电机类别特点
直流有刷电机驱动简单,成本低廉,但是噪音大, 故障较多, 寿命也相对较短。
直流无刷电机噪音低,运转流畅,高速,寿命更长,但是控制较为复杂。
舵机

自成闭环控制系统, 角度控制优秀,价格低,但是带负载的能力较弱。

步进电机结构简单,驱动方便,没有积累误差,不过因为其可能存在丢步现象,
常用于对精度要求不高的场合。
伺服电机速度、位置控制精确,可低速运行,效率高,寿命长,可以说是目前最
为可靠的一类电机。但是价格较高。
1.6、电机常用名词


        为了让大家可以更好地学习电机控制,搭建更健全的电机知识架构,下面我们先学习一
些电机常用名词:
① 转速:电机输出轴的速度,一般单位是 r/min(转每分钟),也常用 RPM 表示。
② 输出扭矩:表示了电机输出轴可以输出力的大小,单位一般为 N· m 或者 kg· cm。
③ 工作电压:电机正常工作的电压。
④ 额定电流:电机正常工作时的电流。
⑤ 堵转电流:电机负载过大,驱动力不足,发生堵转时的电流

参考文献:

正点原子的电机部分资料和网上资料

一文看懂有刷电机与无刷电机的工作原理及区别 - 知乎

FOC算法与SVPWM技术_深入浅出讲解foc算法与svpwm技术 pdf-CSDN博客

FOC基础知识:【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎

SVPWM算法原理及详解_svpwm是什么意思-CSDN博客

【STM32-HAL库】一步步搭建出FOC矢量控制(附C代码)_stm32foc全代码详解-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1399794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最长公共前缀(Leetcode14)

例题: 分析: 我们可以先定义两个变量 i , j, j表示数组中的每一个字符串, i 表示每个字符串中的第几个字符。一列一列地进行比较,先比较第一列的字符,若都相同,则 i ,继…

字节跳动 ByteHouse 云原生之路 – 计算存储分离与性能优化

01 起源 ByteHouse 的故事从字节跳动对于先进数据处理和分析的需求开始,这一需求随着公司业务规模的迅速扩张而日益增长,起源是对开源数据库管理系统 ClickHouse 的改造和增强。面对数据处理的高延迟、大规模数据操作的复杂性以及数据存储和处理成本的上…

记录一次QT乱码问题

问题描述 在敲陆文周的书《QT5开发及实例》的示例代码时,出现乱码,如下图所示 具体代码如下 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->treeWidget->clear();int groupSize 2;int ite…

Unity SnapScrollRect 滚动 匹配 列表 整页

展示效果 原理: 当停止滑动时 判断Contet的horizontalNormalizedPosition 与子Item的缓存值 相减,并得到最小值,然后将Content horizontalNormalizedPosition滚动过去 使用方式: 直接将脚本挂到ScrollRect上 注意:在创建Content子物体时…

蓝桥杯练习题(十二)

📑前言 本文主要是【算法】——蓝桥杯练习题(十二)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他…

list下

文章目录 注意:const迭代器怎么写?运用场合? inserterase析构函数赋值和拷贝构造区别?拷贝构造不能写那个swap,为什么?拷贝构造代码 面试问题什么是迭代器失效?vector、list的区别? 完整代码 注…

微信公众号服务器配置启用, Java示例

微信公众号接入指南文档https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 在微信公众号的服务器配置中,首先需要编写Java代码来处理微信服务器的验证请求。以下是Java示例代码,然后我将为你提供启用服务器配置…

centos7安装Redis7.2.4

文章目录 下载Redis解压Redis安装gcc依赖(Redis是C语言编写的,编译需要)编译安装src目录下二进制文件安装到/usr/local/bin修改redis.conf文件启动redis服务外部连接测试 参考: 在centos中安装redis-5.0.7 Memory overcommit must…

记录一下uniapp 集成腾讯im特别卡(未解决)

uniapp的项目运行在微信小程序 , 安卓 , ios手机三端 , 之前这个项目集成过im,不过版本太老了,0.x的版本, 现在需要添加客服功能,所以就升级了 由于是二开 , 也为了方便 , 沿用之前的webview嵌套腾讯IM的方案 , 选用uniapp集成ui ,升级之后所有安卓用户反馈点击进去特别卡,几…

华为FusionStorage Block、OceanStor 100D、OceanStor pacific的区别

华为FusionStorage Block、OceanStor 100D、OceanStor pacific的区别? 华为块存储到底是叫什么呢? 有接触过华为块存储产品的小伙伴肯定都有疑惑,在FusionStorage 、FusionStorage Block、OceanStor 100D、OceanStor pacific等等的名词中&a…

基于SpringBoot Vue高校失物招领系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

自然语言推断:注意力之注意(Attending)

注意(Attending) 第一步是将一个文本序列中的词元与另一个序列中的每个词元对齐。假设前提是“我确实需要睡眠”,假设是“我累了”。由于语义上的相似性,我们不妨将假设中的“我”与前提中的“我”对齐,将假设中的“累…

【复现】Apache Solr信息泄漏漏洞_24

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 Apache Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求&#x…

《Python数据分析技术栈》第03章 03 可视化各级数据(Visualizing various levels of data)

03 可视化各级数据(Visualizing various levels of data) 《Python数据分析技术栈》第03章 03 可视化各级数据(Visualizing various levels of data) Whenever you need to analyze data, first understand if the data is stru…

Node.JS CreateWriteStream(大容量写入文件流优化)

Why I Need Node.JS Stream 如果你的程序收到以下错误,或者需要大容量写入很多内容(几十几百MB甚至GB级别),则必须使用Stream文件流甚至更高级的技术。 Error: EMFILE, too many open files 业务场景,我们有一个IntradayMissingRecord的补…

网络数据传输过程

先验知识:OSI模型 OSI网络模型实际上是参考模型,在实际中并不使用,在网络出现问题的时候,可以从一个宏观的整体去分析和解决问题,而且搭建网络的时候并不需要划分为7层,当今互联网广泛使用的是TCP/IP网络模…

Leetcode 2788. 按分隔符拆分字符串

我们可以先自己模拟一下分隔字符串的过程。如果只是简单的,遇到分隔符,将分隔符前后的子串加入结果的List,那么很显然并没有考虑到一个String中有多个字符串的情况。一种比较容易想到的方法是: 先对List中每个字符串遍历&#xf…

Docker-Confluence部署记录

启动 docker container run -v $(pwd):/var/atlassian/application-data/confluence/ --nethost -d --nameconfluence_720_20240120 confluence/confluence:7.2.0新建mysql数据库 导入破解包 atlassian-agent 参考-Confluence 破解方式(Linux) 按流程破…

设计模式-资源库模式

设计模式专栏 模式介绍模式特点应用场景资源库模式与关系型数据库的区别代码示例Java实现资源库模式Python实现资源库模式 资源库模式在spring中的应用 模式介绍 资源库模式是一种架构模式,介于领域层与数据映射层(数据访问层)之间。它的存在…

Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题

问题演示 导依赖 当你启动项目就会 抛出该异常 java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanObjectType: java.lang.String 问题原因 mybatis-plus 中 mybatis 的整合包版本不够导致的 解决方案 排除掉mybatis-plus 中 mybatis 的整合…