当前位置: 首页 > news >正文

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的区别:

  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博客

相关文章:

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 在源代码…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...