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

无刷电机驱动详解

无刷电机驱动详解

有刷电机和无刷电机字面上理解最大的区别就是有无电刷,实际上区别还有换向器,电刷和换向器的作用是什么?电刷负责在旋转部件与静止部件之间传导电流,换向器则利用旋转惯性周期性的改变线圈中电流的方向。

所以有刷电机和无刷电机的本质区别是如何改变线圈中电流的方向,所以电刷和换向器实际不是必须的,只是一种改变电流方向的手段,可以采用其他的手段,只要能够快速周期性的改变线圈电流方向即可。

所以无刷直流电动机采用半导体开关器件来实现改变线圈电流方向(电子换向),即用电子开关器件代替传统的接触式电刷和换向器。

1. 电机结构

无刷电机移除除了电刷和换向器,让电机点的控制变得更加复杂,控制原理和电机线圈结构有关,所以下面我们从电机线圈结构开始来讲解无刷电机的控制原理。

请添加图片描述现在以上图中左侧用来旋转(驱动)光盘播放设备中的光盘的主轴电机为示例讲解。图中电机共有三相,为了让线圈磁场分布更加均磁力作用范围更大,将每个相分成 3 个线圈,所以可以看到共 3 × 3 = 9 3 \times 3=9 3×3=9 个线圈。图中右侧是 FDD 设备的主轴电机示例,共有 3 × 4 = 12 3 \times 4=12 3×4=12 个线圈(三相 ×4),线圈被固定在电路板上,并缠绕在铁芯上。

在线圈右侧的盘状部件是永磁体转子,外围是永磁体,转子的轴插入线圈的中心部位并覆盖住线圈部分,永磁体围绕在线圈的外围。上图中永磁铁虽然看似属于一个整体但实际上是多极对的,例如下图电机的永磁体。

请添加图片描述什么是极对数:极对数指的是电机定子电磁场,以及永磁体的磁极对数(每一个 N 极和一个 S 极为一对),通常电机定子电磁场的极对数和永磁体的磁极对数是相同的。磁极对数可以是偶数也可以是奇数,但是极数一定为偶数。

2. 等效结构

无刷电机每一相拆分为多个线圈之后不易分析磁场以及电流流向,所以我们可以将无刷电机简化为每一相仅有一个线圈(总共 3 × 1 = 3 3 \times 1=3 3×1=3)个线圈,且磁极对数为 1 1 1 的等效结构图,

得到的等效结构如下图。

请添加图片描述
该内部结构简图是结构很简单的 2 极(2 个磁体)3 槽(3 个线圈)电机示例,它类似于极数和槽数相同的有刷电机结构,但线圈侧是固定的,磁体可以旋转,当然没有电刷。

在这种情况下,线圈采用 Y 形接法,使用半导体元件为线圈供给电流,根据旋转的磁体位置来控制电流的流入和流出。在该示例中,使用霍尔元件来检测磁体的位置,霍尔元件(H1,H2,H3)配置在线圈和线圈之间,根据磁场强度检测产生的电压并用作位置信息。

3. 驱动方式

下面将按照步骤 ①~⑥ 来说明无刷电机的旋转原理,为了易于理解,这里将永磁体从圆形简化成了矩形。

请添加图片描述
① 在三相线圈中,设线圈 1 固定在时钟的 12 点钟方向上,线圈 2 固定在时钟的 4 点钟方向上,线圈 3 固定在时钟的 8 点钟方向上。设 2 极永磁体的 N 极在左侧,S 极在右侧,并且可以旋转。

使电流 Io 流入线圈 1,以在线圈外侧产生 S 极磁场。使 Io/2 电流从线圈 2 和线圈 3 流出,以在线圈外侧产生 N 极磁场。

在对线圈 2 和线圈 3 的磁场进行矢量合成时,向下产生 N 极磁场,该磁场是电流 Io 通过一个线圈时所产生磁场的 0.5 倍大小,与线圈1的磁场相加变为 1.5 倍。这会产生一个相对于永磁体成 90° 角的合成磁场,因此可以产生最大扭矩,永磁体顺时针旋转。

当根据旋转位置减小线圈 2 的电流并增加线圈3的电流时,合成磁场也顺时针旋转,永磁体也继续旋转。

② 在旋转了 30° 的状态下,电流 Io 流入线圈 1,使线圈 2 中的电流为零,使电流 Io 从线圈 3 流出

线圈 1 的外侧变为 S 极,线圈 3 的外侧变为 N 极。当矢量合成时,产生的磁场是电流 Io 通过一个线圈时所产生磁场的 3 \sqrt{3} 3 (1.72)倍。这也会产生相对于永磁体的磁场成 90° 角的合成磁场,并顺时针旋转。

当根据旋转位置减小线圈 1 的流入电流 Io,使线圈 2 的流入电流从零开始增加,并使线圈3 的流出电流增加到 Io 时,合成磁场也顺时针旋转,永磁体也继续旋转。

假设各相电流均为正弦波形,则此处的电流值为 I o × s i n ( π 3 ) = I o × 3 2 Io \times sin(\frac{\pi}{3})=Io \times \frac{\sqrt{3}}{2} Io×sin(3π)=Io×23 通过磁场的矢量合成,得到总磁场大小为一个线圈所产生磁场的 ( 3 2 ) 2 × 2 = 1.5 (\frac{\sqrt{3}}{2})^{2} \times 2=1.5 (23 )2×2=1.5 倍。当各相电流均为正弦波时,无论永磁体的位置在哪,矢量合成磁场的大小均为一个线圈所产生磁场的 1.5 倍,并且磁场相对于永磁体的磁场成 90° 角。

③ 在继续旋转了 30° 的状态下,电流 Io/2 流入线圈 1,电流 Io/2 流入线圈 2,电流 Io从线圈 3 流出。

线圈 1 的外侧变为 S 极,线圈 2 的外侧也变为 S 极,线圈 3 的外侧变为 N 极。当矢量合成时,产生的磁场是电流 Io 流过一个线圈时所产生磁场的 1.5 倍(与 ① 相同)。这里也会产生相对于永磁体的磁场成 90° 角的合成磁场,并顺时针旋转。

请添加图片描述
④~⑥ 以 ①~③ 相同的方式旋转。这样,如果不断根据永磁体的位置依次切换流入线圈的电流,则永磁体将沿固定方向旋转。同样,如果使电流反向流动并使合成磁场方向相反,则会逆时针旋转。

下图连续显示了上述 ①~⑥ 每个步骤的每个线圈的电流。通过以上介绍,应该可以理解电流变化与旋转之间的关系了。

请添加图片描述这里先了解一下无刷电机的物理结构,以及在无刷电机最底层转子是如何被控制旋转起来的,通过这篇文章大体知道了这些内容。
后续会继续更新无刷电机 FOC 算法涉及的变换,SVPWM 矢量调制等相关内容,本文说到了电流控制去合成力矩牵引转子,具体如何去合成电流这就是 SVPWM 要做的事情,敬请期待我后续的更新,希望可以帮助到各位小伙伴们。

相关文章:

无刷电机驱动详解

无刷电机驱动详解 有刷电机和无刷电机字面上理解最大的区别就是有无电刷,实际上区别还有换向器,电刷和换向器的作用是什么?电刷负责在旋转部件与静止部件之间传导电流,换向器则利用旋转惯性周期性的改变线圈中电流的方向。 所以…...

Linux+Win双系统远程重启到Win

背景 电脑安装了双系统(ubuntu 22.04 win11),默认进入ubuntu系统。给电脑设置了WoL(Wake-on-LAN),方便远程开机远程控制。 但是ubuntu的引导程序grub无法远程控制,远程开机会默认进入ubuntu。 虽然说可以进入ubuntu后…...

【XR806开发板试用】+移植rosserial到XR806

1 XR806简介 板子来源于极术社区的试用,XR806的在线网址 其主要参数: 主控XR806AF2LDDRSIP 288KB SRAM存储SIP 160KB Code ROM. SIP 16Mbit Flash.天线板载WiFi/BT双天线,可共存按键reboot按键 1,功能按键 1灯红色电源指示灯 1…...

JSON协议详解、语法及应用

文章目录 一、什么是JSON二、JSON协议结构协议结构包括要素JSON语法规则JSON的协议结构示例 三、JSON的特点四、JSON常见应用场景 一、什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本格式…...

kubeasz部署k8s:v1.27.5集群

安装k8s集群相关系统及组件的详细版本号 Ubuntu 22.04.3 LTS k8s: v1.27.5 containerd: 1.6.23 etcd: v3.5.9 coredns: 1.11.1 calico: v3.24.6 安装步骤清单: 1.deploy机器做好对所有k8s node节点的免密登陆操作 2.deploy机器安装好python2版本以及pip,…...

RSA加密,解密,加签及验签

目录 1.说明 2.加密和加签的区别 3.后端加密,解密,加签及验签示例 4.前端加密,解密,加签及验签示例 5.前端加密,后端解密,前端加签,后端验签 6.注意事项 1.说明 RSA算法是一种非对称加密…...

【C++搜索】BFS:走迷宫

题目描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着…...

SpringMVC 的参数绑定之list集合、Map

标签中name属性的值就是pojo类的属性名 参数绑定4 list [对象] <form action"teaupd.do" method"post"> <c:forEach items"${list}" var"tea" varStatus "status"> 教师编号&#xff1a;<input…...

Code Composer Studio (CCS) - Current and Local Revision

Code Composer Studio [CCS] - Current and Local Revision References 鼠标放在文件内的任意位置&#xff0c;鼠标右键 -> Compare With -> Local History -> Revision Time. References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

Vue实现多个input输入,光标自动聚焦到下一个input

遇到一个需求&#xff0c;需要实现和移动端短信输入一样&#xff0c;输入内容后&#xff0c;光标会进入下一个输入框 需要用到2个事件 keydown事件发生在键盘的键被按下的时候 keyup 事件在按键被释放的时候触发 <template><div class"box"><el-fo…...

人工智能技术应用笔记(二):OpenAI SORA文生视频模型技术报告全文中英对照 (GPT4翻译+人工润色)

目录 Video generation models as world simulators&#xff08;视频生成模型作为世界模拟器&#xff09; Turning visual data into patches &#xff08;将视觉数据转换为图像块&#xff09; Video compression network &#xff08;视频压缩网络&#xff09; Spacetim…...

Linux-系统资源管理的命令

目录 查看CPU&#xff1a;more /proc/meminfo 查看内存数据&#xff1a;free -m / free -h 查看系统版本&#xff1a;more /etc/issue 查看操作系统的类型&#xff1a;uname -a 查看主机名称&#xff1a;hostname 查看磁盘空间&#xff1a;df -h 查看某个目录空间…...

Html的<figure><figcaption>标签

Html的<figure><figcaption>标签 示例一: <figure><figcaption>figcaption001, fig标题1 </figcaption><figcaption>figcaption002, fig标题2 </figcaption><div style"width:calc(100px*2); height:calc(100px*2); back…...

Selenium实现多页面切换

当使用 Selenium 进行自动化测试或爬取数据时&#xff0c;有时需要处理多个页面之间的切换。以下是一些可能需要多页面切换的情况&#xff1a; 1、打开新窗口/页面&#xff1a; 在当前页面上点击链接、按钮或执行某些操作时&#xff0c;可能会打开一个新的窗口或页面。此时&a…...

Electron实战之菜单与托盘

菜单、托盘是桌面端应用必备的功能之一&#xff0c;我们通常会在菜单上配置应用常用的&#xff1a;偏好设置、显示隐藏、打开文件等功能&#xff0c;在托盘内设置&#xff1a;退出、重启、帮助等辅助性功能&#xff0c;帮助用户方便快捷地控制应用的一些系统功能。系统托盘实际…...

【Java EE初阶十六】网络原理(一)

在网络原理中主要学习TCP/IP四层模型中的重点网络协议 1. 应用层 1.1 应用程序与协议 应用层是和程序员接触最密切的&#xff1b; 应用程序&#xff1a;在应用层这里&#xff0c;很多时候都是程序员自定义应用层协议&#xff08;步骤&#xff1a;1、根据需求&#xff0c;明确…...

51_蓝桥杯_led流水灯

一 原理图分析 二 三八译码器工作原理 三八译码器&#xff1a;3个输入控制8路互斥的低电平有效输出。 C B A 输出 0 0 0 Y0 0 0 1 Y1 0 1 0 Y2 0 1 1 Y3 1 0 0 Y4 1 0 1 Y5 1 1 0 Y6 1 1 1 Y7 三 锁存器工作原理 锁存器&#xff1a;当使…...

⭐北邮复试刷题589. N 叉树的前序遍历__DFS (力扣每日一题)

589. N 叉树的前序遍历 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每组子节点由空值 null 分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [1,null,…...

php伪协议之phar

一.phar协议 用于将多个 PHP 文件、类、库、资源&#xff08;如图像、样式表&#xff09;等打包成一个单独的文件。这个归档文件可以像其他 PHP 文件一样被包含&#xff08;include&#xff09;或执行。PHAR 归档提供了一种方便的方式来分发和安装 PHP 应用程序和库&#xff0c…...

蓝桥杯电子类单片机提升三——NE555

目录 单片机资源数据包_2023 一、NE555和定时器工作模式 1.NE555的介绍 2.定时器的计数模式 二、NE555频率读取代码的实现 1.定时器0初始化 2.通过读取TH0和TL0来读取频率 3.通过中断读取频率 三、完整代码演示 通过读取TH0和TL0来读取频率 main.c 通过中断读取频…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

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

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

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...