stm32 FOC 电机介绍
今年开始学习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的区别:
-
磁场分布:
- BLDC:通常具有一个方波磁场分布。这意味着其定子绕组产生的磁场是方波形式的。
- PMSM:具有正弦波磁场分布。这是因为PMSM的转子磁铁和定子绕组的设计使得其产生的磁场更接近正弦波形式。
-
扭矩脉冲:
- BLDC:由于方波磁场,BLDC电机在运行时可能会产生更显著的扭矩脉冲。
- PMSM:由于其正弦波磁场,PMSM通常能提供更平滑的扭矩输出。
-
控制策略:
- 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博客
相关文章:

stm32 FOC 电机介绍
今年开始学习foc控制无刷电机,这几天把所学整理一下,记录一下知识内容。 前言: 为什么要学习FOC? 1.电机控制是自动化控制领域重要一环。 2.目前直流无刷电机应用越来越广泛,如无人机、机械臂、云台、仿生机器人等等。 需要什么基础&…...

【Linux】进程通信——管道
欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 📋进程通信的目的📋管道匿名管道pipe函数创…...

3d gaussian splatting笔记(paper部分翻译)
本文为3DGS paper的部分翻译。 基于点的𝛼混合和 NeRF 风格的体积渲染本质上共享相同的图像形成模型。 具体来说,颜色 𝐶 由沿射线的体积渲染给出: 其中密度 𝜎、透射率 𝑇 和颜色 c 的样本是沿着射线以…...

TCP 三次握手以及滑动窗口
TCP 三次握手 简介: TCP 是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的 “ 连接” ,其实是客户端和服务器的内存里保存的一份关于对方的信息,如 IP 地址、端口号等。 TCP 可以…...
Vue3 Cli5按需导入ElementPlus
1、安装环境 node:16.20.0 vue:3.2.36 vue/cli:5.0.0 element-plus:2.2.25 element-plus/icons-vue:2.0.10 unplugin-auto-import:0.16.1 // 当前环境用这个包,不然会提示各种错误 unplugin-vu…...

playwright自动化项目搭建
具备功能 关键技术: pylaywright测试库pytest单元测试框架pytest-playwright插件 非关键技术: pytest-html插件pytest-rerunfailures插件seldom 测试框架 实现功能: 元素定位与操作分离失败自动截图并保存到HTML报告失败重跑可配置不同…...
mysql字符集
一、查看字符集 //查看数据库字符集 SHOW CREATE DATABASE databasename; //查看表字符集 SHOW CREATE TABLE tablename; //查看指定表全部字段字符集 show full columns from table; 二、修改字符集 将超出utf8字符集范围的字符比如𪨧插入到utf8字符集的字…...

Elasticsearch:聊天机器人、人工智能和人力资源:电信公司和企业组织的成功组合
作者:来自 Elastic Jrgen Obermann, Piotr Kobziakowski 让我们来谈谈大型企业人力资源领域中一些很酷且改变游戏规则的东西:生成式 AI 和 Elastic Stack 的绝佳组合。 现在,想象一下大型电信公司的典型人力资源部门 — 他们正在处理一百万件…...
[AIGC大数据基础] Flink: 大数据流处理的未来
Flink 是一个分布式流处理引擎,它被广泛应用于大数据领域,具有高效、可扩展和容错的特性。它是由 Apache 软件基金会开发和维护的开源项目,并且在业界中受到了广泛认可和使用。 文章目录 什么是 FlinkFlink 的特点真正的流处理高性能和低延迟…...

数据结构之线性表(一般的线性表)
前言 接下来就开始正式进入数据结构环节了,我们先从线性表开始。 线性表 线性表(linear list)也叫线性存储结构,即数据元素的逻辑结构为线性的数据表,它是数据结构中最简单和最常用的一种存储结构,专门存…...

uniapp安卓android离线打包本地打包整理
离线打包准备 下载Android studio 1.准备资源hbuilder 2.准备离线SDK 最新android平台SDK下载最新android平台SDK下载 3.离线打包key申请 4.直接导入HBuilder-Integrate-AS工程,直接运行simpleDemo项目即可 5.安装java 1.8 jdk-8u151-windows-x64 6.遇到这个报错报错Caus…...
vmware安装centos8-stream
VMware与CentOS8-stream的配置教程【2022-9-5】_centos stream 8-CSDN博客 启动进入后配置网络,/etc/sysconfig/network-scripts/网卡 vmware上的centos8没有网络_主机时wifi上网,centos 8 安装后无法连接网络 解决办法-CSDN博客 centos8配置网络_centos8网络配置…...
使用HttpServletRequestWrapper解决web项目request数据流无法重复读取的问题
在做web项目开发时,我们有时候需要做一些前置的拦截判断处理,比如非法参数校验,防攻击拦截,统一日志处理等,而请求参数如果是form表单提交还好处理;对于json这种输入流的数据就会有问题,统一处理…...

从CNN ,LSTM 到Transformer的综述
前情提要:文本大量参照了以下的博客,本文创作的初衷是为了分享博主自己的学习和理解。对于刚开始接触NLP的同学来说,可以结合唐宇迪老师的B站视频【【NLP精华版教程】强推!不愧是的最完整的NLP教程和学习路线图从原理构成开始学&a…...
Git学习笔记:1 基础命令详解
文章目录 Git基础命令详解: Git基础命令详解: git commit 用法:git commit -m "commit message"功能:将暂存区(stage)中的所有更改提交到本地仓库的当前分支,同时提供一个简短的提交信…...

【服务器】安装宝塔面板
目录 🌺【前言】 🌼【前提】连接服务器 🌷方式一 使用工具登录服务器如Xshell 🌷方式二 阿里云直接连接 🌼 1. 安装宝塔 🌷获取安装脚本 方式一 使用下面提供的脚本安装 方式二 使用官网提供的脚本…...
开源模型应用落地-业务优化篇(一)
一、前言 通过参与“开源模型应用落地-业务整合系列篇”的学习,我们已经成功建立了基本的业务流程。然而,这只是迈出了万里长征的第一步。现在我们要对整个项目进行优化,以提高效率。我们计划利用线程池来加快处理速度,使用redis来实现排队需求,以及通过多级环境来减轻负载…...

【遥感专题系列】影像信息提取之——基于专家知识的决策树分类
可以将多源数据用于影像分类当中,这就是专家知识的决策树分类器,本专题以ENVI中Decision Tree为例来叙述这一分类器。 本专题包括以下内容: 专家知识分类器概述知识(规则)定义ENVI中Decision Tree的使用 概述 基于知…...

lqb日志08
一只小蒟蒻备考蓝桥杯的日志 文章目录 笔记坐标相遇判断工作调度问题(抽象时间轴绘制) 刷题心得小结 笔记 坐标相遇判断 我是小懒虫,碰了一下运气,开了个“恰当”的数(7000)如果,7000次还不能…...

SAP EXCEL上传如何实现指定读取某一个sheet页(ALSM_EXCEL_TO_INTERNAL_TABLE)
如何读取指定的EXCEL sheet 页签,比如要读取下图中第二个输出sheet页签 具体实现方法如下: 拷贝标准的函数ALSM_EXCEL_TO_INTERNAL_TABLE封装成一个自定义函数ZCALSM_EXCEL_TO_INTERNAL_TABLE 在自定义函数导入参数页签新增一个参数SHEET_NAME 在源代码…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...
npm install 相关命令
npm install 相关命令 基本安装命令 # 安装 package.json 中列出的所有依赖 npm install npm i # 简写形式# 安装特定包 npm install <package-name># 安装特定版本 npm install <package-name><version>依赖类型选项 # 安装为生产依赖(默认&…...

LangChain + LangSmith + DeepSeek 入门实战:构建代码生成助手
本文基于 Jupyter Notebook 实践代码,结合 LangChain、LangSmith 和 DeepSeek 大模型,手把手演示如何构建一个代码生成助手,并实现全流程追踪与优化。 一、环境准备与配置 1. 安装依赖 pip install langchain langchain_openai2. 设置环境变…...