BLDC ESC 无刷直流电子调速器驱动方式
BLDC ESC 无刷直流电子调速器驱动方式
- 1. 源由
- 2. 驱动方法
- 2.1 Trapezoidal 120°
- 2.2 Trapezoidal 150°
- 2.3 Sinusoidal 180°
- 2.4 Field-Orientated Control (FOC)
- 3. FOC(Field-Oriented Control)
- 3.1 引入坐标系
- 3.2 Clarke and Park变换
- Clarke 变换(αβ变换)
- Park 变换(dq变换)
- 3.3 θ \theta θ角度相位推导
- 4. 空间矢量调制
- 4.1 逆变器状态
- 4.2 电压矢量图
- 4.3 参考矢量生成
- 4.4 空间矢量合成
- 5. 总结
- 5.1 正弦波控制(Sinusoidal Control)
- 5.2 FOC(Field-Oriented Control)
- 5.3 分析
- 6. 参考资料
1. 源由
BLDC ESC需要比较复杂的时序和相位控制,才能保证其高效运转。
而这种逻辑控制方式通常是通过控制器+传感电路行程的闭环解决方案。
这里将集中整理当下的方案并做简单介绍,并结合实际情况重点阐述航模上经常用到的驱动方式。
2. 驱动方法
目前看主要有以下几大类:
- Trapezoidal 120°
- Trapezoidal 150°
- Sinusoidal 180° //常见驱动方式,采用PWM驱动
- Field-Orientated Control (FOC) //效率更高,电路更复杂,需要大量计算资源
2.1 Trapezoidal 120°
2.2 Trapezoidal 150°
2.3 Sinusoidal 180°
- Smoother, quiet commutation
- Sinusoidal current produced by using PWM-varying profile for each phase
- Can be sensor or sesorless closed loop
- Speed application for models like copter, plane, boat etc.
2.4 Field-Orientated Control (FOC)
3. FOC(Field-Oriented Control)
3.1 引入坐标系
- ABC坐标系
- α , β \alpha, \beta α,β坐标系
- QD坐标系
3.2 Clarke and Park变换
Clarke 和 Park 变换是电机控制中非常重要的数学工具,主要用于简化三相交流电机的分析和控制。这两种变换可以将三相交流电的复杂相位关系转换成更易于处理的数学形式。
Clarke 变换(αβ变换)
Clarke 变换的主要作用是将三相交流电的电流或电压转换成两个直角坐标轴(α轴和β轴)上的分量。通过这种转换,可以更方便地对三相电机的动态行为进行分析和控制。
公式:假设有三相电流 i a , i b , i c i_a, i_b, i_c ia,ib,ic,克拉克变换将其转换为两个分量 i α i_{\alpha} iα 和 i β i_{\beta} iβ:
i α = i a i_{\alpha} = i_a iα=ia
i β = 1 3 ( i a + 2 i b ) i_{\beta} = \frac{1}{\sqrt{3}}(i_a + 2i_b) iβ=31(ia+2ib)
Park 变换(dq变换)
Park 变换在 Clarke 变换的基础上进一步简化,将 αβ 坐标系中的分量转换成直流形式的 dq 坐标系。这种转换使得电机的动态行为与时间无关,更易于控制。
公式:在进行 Park 变换时,坐标轴通常与电机的旋转磁场同步旋转,定义如下:
i d = i α cos ( θ ) + i β sin ( θ ) i_d = i_{\alpha} \cos(\theta) + i_{\beta} \sin(\theta) id=iαcos(θ)+iβsin(θ)
i q = − i α sin ( θ ) + i β cos ( θ ) i_q = -i_{\alpha} \sin(\theta) + i_{\beta} \cos(\theta) iq=−iαsin(θ)+iβcos(θ)
其中, θ \theta θ 是同步旋转坐标系相对于静止坐标系的相位角。
3.3 θ \theta θ角度相位推导
根据Clarke and Park transformation可以进行以下推导,只要 i a / b / c i_{a/b/c} ia/b/c满足下面条件,就可以确保转子恒定锁住Q方向。
- Step1:在ABC坐标下, i a / b / c i_{a/b/c} ia/b/c以正弦方式进行驱动为:
i a = − i ∗ sin ( θ ) i_a = -i * \sin (\theta) ia=−i∗sin(θ)
i b = − i ∗ sin ( θ − 120 ) i_b = -i * \sin (\theta - 120) ib=−i∗sin(θ−120)
i c = − i ∗ sin ( θ + 120 ) i_c = -i * \sin (\theta + 120) ic=−i∗sin(θ+120)
- Step2:根据Clarke 变换(αβ变换)转换到 α , β \alpha, \beta α,β系统下,其表达式为:
i α = i a = − i ∗ sin ( θ ) i_\alpha = i_a = -i * \sin (\theta) iα=ia=−i∗sin(θ)
i β = i b − i c 3 = i ∗ cos ( θ ) i_\beta = \frac {i_b - i_c} {\sqrt 3} = i * \cos (\theta) iβ=3ib−ic=i∗cos(θ)
- Step3:根据Park 变换(dq变换)转换到 D , Q D, Q D,Q系统下,其表达式为:
i Q = i i_Q = i iQ=i
i D = 0 i_D = 0 iD=0
4. 空间矢量调制
空间矢量调制(Space Vector Modulation,SVM)是一种用于控制电机的高级调制技术,特别是用于三相逆变器中。它通过生成一种优化的电压矢量组合,以达到更好的控制效果。SVM通常用于变频器驱动的交流电机,如无刷直流电机和感应电机。
SVM的核心思想是将三相交流电的参考电压矢量在逆变器的可能输出状态(电压矢量)之间进行插值,以实现对输出电压的精确控制。具体来说:
4.1 逆变器状态
逆变器状态:三相逆变器有8种开关状态(0到7),对应于逆变器输出的8种不同的电压矢量。其中,6个是非零矢量,2个是零矢量。
4.2 电压矢量图
电压矢量图:这8个电压矢量可以表示在一个二维的六边形图上,非零矢量在六边形的六个顶点,零矢量在原点。
4.3 参考矢量生成
参考矢量生成:根据控制要求生成一个参考电压矢量 V ref \mathbf{V}_{\text{ref}} Vref,其位置和幅值代表了电机所需的电压和相位。
4.4 空间矢量合成
空间矢量合成:通过选择相邻的两个非零矢量以及零矢量来合成所需的参考矢量。该过程涉及计算各矢量的作用时间,以确保最终的平均电压矢量与参考矢量一致。
5. 总结
FOC(Field-Oriented Control)和正弦波控制(Sinusoidal Control)是两种用于无刷直流电机(BLDC)控制的不同技术,它们在实现方法和控制效果上有一些显著的区别。
5.1 正弦波控制(Sinusoidal Control)
工作原理:
- 电流波形:正弦波控制通过产生正弦波形的电流,驱动BLDC电机的定子绕组。
- PWM调制:通过PWM(脉宽调制)技术,控制逆变器输出,使得三相绕组中的电流近似为正弦波形。
- 感应电动势:由于BLDC电机的绕组中产生的感应电动势也是正弦波形,正弦波控制能够与其很好地匹配。
- 转矩输出:正弦波控制能够提供平滑的转矩输出,减少了电机的振动和噪音。
优势:
- 简单易用:实现简单,控制策略直接,适合一些简单应用场合。
- 低噪音:由于电流波形是正弦的,电机运转时的噪音和振动较低。
- 低成本:适合成本敏感的应用,控制器实现简单。
劣势:
- 转矩波动:转矩输出在特定条件下可能不如FOC稳定,特别是在低速情况下。
- 效率限制:在某些情况下,效率可能不如FOC高。
5.2 FOC(Field-Oriented Control)
工作原理:
- 坐标变换:FOC通过使用Clarke和Park变换,将三相电流转换到一个直角坐标系(d-q轴)上。
- 独立控制:在d-q轴上,d轴电流用于控制磁链,q轴电流用于控制转矩,实现对转矩和磁链的独立控制。
- 逆变器驱动:经过坐标变换和电流调节后,再将控制信号转换回三相系统,驱动逆变器。
优势:
- 高效率:FOC能够更好地利用电机的磁链,实现更高的效率。
- 精确控制:能够实现对转矩和速度的精确控制,适合高性能应用。
- 响应速度快:能够快速响应电机负载和速度的变化,适合动态要求高的场合。
劣势:
- 复杂性:实现较为复杂,需要更高的计算能力和控制策略。
- 成本高:由于需要更复杂的控制算法和硬件,成本相对较高。
5.3 分析
- 应用场景:正弦波控制适用于简单、成本敏感的应用,具有低噪音和简单易用的特点。FOC适用于高性能、高精度的应用场景,具有高效率、快速响应和精确控制的优势。
- 实现难度:FOC实现复杂度较高,需要更先进的控制算法和硬件支持,而正弦波控制相对简单。
- 转矩输出:FOC在不同速度和负载条件下都能提供平稳的转矩输出,而正弦波控制在低速时可能会出现转矩波动。
根据应用需求和系统要求,可以选择合适的控制策略来实现BLDC电机的驱动。
6. 参考资料
【1】BLDC ESC 无刷直流电子调速器简介
【2】BLDC ESC 无刷直流电子调速器工作原理
【3】BLDC ESC 无刷直流电子调速器工作过程
【4】AM32开源代码之工程结构
相关文章:

BLDC ESC 无刷直流电子调速器驱动方式
BLDC ESC 无刷直流电子调速器驱动方式 1. 源由2. 驱动方法2.1 Trapezoidal 1202.2 Trapezoidal 1502.3 Sinusoidal 1802.4 Field-Orientated Control (FOC) 3. FOC(Field-Oriented Control)3.1 引入坐标系3.2 Clarke and Park变换Clarke 变换(…...
解决 IntelliJ IDEA 编译错误 “Groovyc: Internal groovyc error: code 1” 及 JVM 内存配置问题
在使用 IntelliJ IDEA 进行开发时,我们可能会遇到各种编译和运行错误,其中之一就是 Groovy 编译器错误(Groovyc: Internal groovyc error: code 1)或 JVM 内存不足错误。这类错误可能会影响开发效率,但通过调整 JVM 内…...

LeetCode.2940.找到Alice和Bob可以相遇的建筑
友情提示:这个方法并没有通过案例,只通过了944个案例(很难受),超时了,但是想着还是分享出来吧 题目描述: 给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i …...

OFD板式文件创建JAVA工具-EASYOFD 四、文字 Text
JAVA版本的OFD板式文件创建工具easyofd. 功能包含了图像、 图像、 文字、和模版页功能。同时也支持OFD文件的数字签名及验签,电子签章及验签。 本JAVA版本的easyofd使用原生方式创建板式文件,不依赖JAVA的SWT库。 项目地址:http://…...

【概念速通】李群 lie group
李群 lie group 概念速通 快速示例介绍:【引入】单位复数 (The unit complex numbers) 是李群 (lie group) 最简单的例子之一【进一步】SO(2): The 2D rotation matrices【Typical uses】SE(2): Pose of a robot in the plane Group & Lie Group 定义࿱…...
day_39
198. 打家劫舍 class Solution:def rob(self, nums: List[int]) -> int:if len(nums) 1:return nums[0]dp [0] * len(nums)dp[0], dp[1] nums[0], max(nums[0], nums[1])for i in range(2, len(nums)):dp[i] max(dp[i - 1], dp[i - 2] nums[i])return dp[len(nums) - …...

计算机系统层次结构
1.计算机系统的组成 计算机系统的组成硬件系统软件系统 2.计算机的硬件部分 2.1冯诺依曼机的结构特点: 图示: 1.五大部分由运算器(ALU),控制器(CU),存储器(主存辅存),输入设备,输出设备五大部分组成2.指…...

java语言特点
Java语言是一种广泛使用的编程语言,它具有以下几个显著的特点: 面向对象:Java是一种纯面向对象的语言,它支持类的封装、继承和多态等特性。面向对象的设计使得Java程序更加模块化,易于维护和扩展。 平台无关性…...

单元测试注解:@ContextConfiguration
ContextConfiguration注解 ContextConfiguration注解主要用于在Spring框架中加载和配置Spring上下文,特别是在测试场景中。 它允许开发者指定要加载的配置文件或配置类的位置,以便在运行时或测试时能够正确地构建和初始化Spring上下文。 基本用途和工…...

大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

MySQl 中对数据表的增删改查(基础)
MySQl 中对数据表的增删改查(基础) 新增演示插入一条数据插入多条数据 查询全列查询部分列查询查询关于列名的表达式查询时用别名查询去重后的结果查询排序后的结果条件查询比较运算符和逻辑运算符 分页查询 修改删除 黑白图是在命令行里的,彩…...

LVS知识点整理及实践
LVS知识点整理及实践 LVSlvs集群概念lvs概念lvs集群类型lvs-nat模型数据逻辑: lvs-DR模式数据传输和过程:特点: lvs-tun模式数据传输过程:特点: lvs-fullnet模式数据传输过程 lvs调度算法lvs调度算法类型lvs静态调度算法lvs动态调度算法4.15版本内核以后新增调度算法 ipvsadm命…...
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
目录 摘要目的安装和卸载特别说明 Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式 摘要 Ubuntu版本:ubuntu24.04 主题下载地址:https://github.com/vinceliuice/WhiteSur-gtk-theme 参考的安装教程:https://blog.51cto.com/u_…...

计算机毕业设计选题推荐-办公用品管理系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

计算机毕业设计选题推荐-网上考试系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
白骑士的Matlab教学基础篇 1.4 函数与脚本
系列目录 上一篇:白骑士的Matlab教学基础篇 1.3 控制流 函数和脚本是 MATLAB 编程中的基本组成部分,它们使得代码更加模块化、可重用和组织化。通过理解函数的定义与调用、参数与返回值,以及 MATLAB 脚本与批处理,可以显著提高编…...

Qt——多线程
一、QThread类 如果要设计多线程程序,一般是从QThread继承定义一个线程类,并重新定义QThread的虚函数 run() ,在函数 run() 里处理线程的事件循环。 应用程序的线程称为主线程,创建的其他线程称为工作线程。主线程的 start() 函数…...
技术周总结 08.05-08.11周日(scala git回滚)
文章目录 一、08.06 周二1.1) 问题01 mac安装 scala:1. 使用 Homebrew2. 使用 SDKMAN!其他注意事项1. 确认 Scala 安装位置2. 设置 PATH 环境变量对于 zsh (macOS Catalina 及更高版本默认使用 zsh):对于 bash (如果您使用的是 bash shell): 3. 验证安装 二、08.09 周五2.1&…...
ffmpeg 命令图片和视频转换
1、截图 ffmpeg -i d:\input.mp4 -ss 0:0:10 d:\output.jpg //指定输出分辨率 ffmpeg -i d:\input.mp4 -y -f image2 -ss 0:0:10 -vframes 1 -s 640x360 d:\output.jpg 2、视频分拆图片 ffmpeg -r 输入帧率 -i d:\input.mp4 -r 输出帧率 "d:\outputDir\frame_%04d.jp…...

力扣 | 动态规划 | 在字符串的应用 | 最长回文子串、最长回文子序列、单词拆分、编辑距离
文章目录 1.最长回文子串2.最长回文子序列3.单词拆分4.编辑距离5. 共同点和思路6. 各个问题的思路和扩展1. 最长回文子串2. 最长回文子序列3. 单词拆分4. 编辑距离 在解答字符串动态规划的应用时,我们需要非常注意一个问题: 有时候我们定义 d p [ i …...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

数据挖掘是什么?数据挖掘技术有哪些?
目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...
java+webstock
maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...

mq安装新版-3.13.7的安装
一、下载包,上传到服务器 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 二、 erlang直接安装 rpm -ivh erlang-26.2.4-1.el8.x86_64.rpm不需要配置环境变量,直接就安装了。 erl…...