BLDC与PMSM关系

关于这个问题,很多人不太注意,我见过很多人把无刷直流电机和永磁同步电机不区分,以至于出现了正弦波无刷直流电机这样的叫法。实际上,在学校里面学习的时候,这个还是区分开的。一般把梯形波反电动势的叫无刷直流电机(BLDC),正弦波反电动势的称为永磁同步电机(PMSM)。BLDC适合用六步换相法(方波)驱动, PMSM适合用矢量控制(正弦波)驱动。
当然,考虑到实际的电机设计过程中,永磁同步电机和无刷直流电机的反电动势都没有那么理想,梯形波的反电动势可能平顶区域可能不是120°,而PMSM的反电动势正弦程度达不到那么高,因此,一台实际无刷直流电机用六步换相法或者矢量控制都可以驱动。

无位置传感器策略

实际上,我们去看ST、TI等厂商,他们都已经提供了无刷直流电机的驱动方案。这些方案大多前提都是以六步换相法(方波)来驱动电机的。因此,这里主要介绍方波驱动下的无位置传感器方案,正弦波驱动下的无位置传感器方案可参考永磁同步电机的无位置传感器方案。
无刷直流电机的无位置检测关键在于检测反电动势,根据反电动势找到换相点。一般厂商都是找反电动势基波检测,基波的过零点延迟30°就是换相点,而三次谐波的过零点就是换相点本身,不过反电动势三次谐波不太好检测,ST和TI(早期)提供的是基波检测。

ST的BLDC无位置传感器控制

ST的方案可以去官网找资料看,也可以通过《无刷直流电机控制应用 基于STM8S系列单片机》这本书看,里面的方案对stm32和stm8系列单片机都适用。
考虑到随着嵌入式的发展,许多单片机具有A/D触发采集功能,因此使用软件进行过零比较,可省去许多硬件成本,降低系统的复杂性。因此,ST提出了一种综合了低速和高速情况下的反电动势检测法。该方法基于上桥PWM斩波、下桥恒通的PWM单斩调制方式。

根据A/D采样时刻的不同,反电动势检测的方法可以分为三种:在功率管导通时刻采样、在功率开关管关断时刻采样和所有状态时刻采样。

整体的反电动势检测图如下

在功率开关管导通状态时采样


同端电压检测法类似,在PWM导通时刻检测到的反电动势,与HV/2的参考电压作比较,得到反电动势过零点。

在PWM导通时刻采样,不必考虑相位偏移。
此方法的不足之处在于

  1. 由于电阻分压,使得反电动势过零点检测灵敏度收到影响
  2. 由于在功率开关管导通时刻进行,因此必须具有最小的功率开关管导通时间,难以保证电机低速运行

在功率开关管关断状态时采样

由于续流二极管和线圈电感的作用,在下管恒导通时,AB相电流流向如图所示。

忽略二极管压降,加在A相电压为0,那么根据图中可以分析,中性点电压理想值为0,即地。将C相反电动势的检测值直接与该电压值比较。可得过零点时刻。
这种方法无需创建虚拟中性点,不需要电阻分压和阻容滤波。只需要3个电阻将电机的三相连接到单片机/DSP的三个输入引脚即可。

这种方法的集成度高,且无须外加反电动势检测电路,最大限度降低成本;不需要分压,信号无衰减,可以得到反电动势的全部信号;反电动势在功率开关管关断时采样,因此抑制了高频开关干扰;灵敏度高,可以在很大的速度范围内驱动电机,使电机在很低的速度运行且可以最大转矩启动;使用数字滤波器代替模拟滤波器,避免了滤波延时;提高了信噪比。
这种采样方式的不足之处在于:当速度达到一定高度时,由于不同电机的反电动势常数不同,得到的反电动势电压不同。对于同一单片机其芯片参考电压为固定值,当反电动势高于参考电压时,需要考虑单片机的承受能力。由于此方法是在开关管关断时刻进行,所以必须保证最小的功率开关管判断时间,使得PWM占空比无法达到100%。

在功率开关管所有状态时刻采样

集中前两者的优点。

将采样电路的分压电阻不是直接接地,而是连接到单片机的I/O口,根据不同的PWM占空比和速度要求,选用不同的采样方法。当在功率开关管结束时采样,I/O口配置为悬浮输入,即不对进行电阻分压;在功率开关管开通时采样时,I/O口配置为推拉输出,且输出为低,即是对采样信号进行分压。根据采样方法,由I/O口的配置来决定是否分压,容易实现。
在实际应用中,可以根据PWM占空比和速度范围的要求选择合适的采样方法。

TI控制方案-软件过零比较检测

它的整体控制框图是这样的

这边加了反电动势的检测电路

定子端的电气模型认为是

假定相位C是非导通相,可使用以下等式表达三个端子电压:
V a = R I a + L d i a d t + E a + V n V b = R I b + L d i b d t + E b + V n V c = E c + V n \begin{array}{l} {V_a} = R{I_a} + L\frac{{d{i_a}}}{{dt}} + {E_a} + {V_n}\\ {V_b} = R{I_b} + L\frac{{d{i_b}}}{{dt}} + {E_b} + {V_n}\\ {V_c} = {E_c} + {V_n} \end{array} Va​=RIa​+Ldtdia​​+Ea​+Vn​Vb​=RIb​+Ldtdib​​+Eb​+Vn​Vc​=Ec​+Vn​​
由于每次只有两个电流流入定子绕组,两个相位电流时相等且相反的。因此,
I a = − I b {I_a} = - {I_b} Ia​=−Ib​
因此,通过将三个端子电压等式相加,可获得:
V a + V b + V c = E a + E b + E c + 3 V n {V_a} + {V_b} + {V_c} = {E_a} + {E_b} + {E_c} + 3{V_n} Va​+Vb​+Vc​=Ea​+Eb​+Ec​+3Vn​
图9中显示了BLDC 电机的即时反电动势波形。从这个图表中,可以很明显地看出,在反电动势过零点上,三个反电动势的和等于零。因此,最后一个等式精简为:
V a + V b + V c = 3 V n {V_a} + {V_b} + {V_c} = 3{V_n} Va​+Vb​+Vc​=3Vn​

这个等式在代码中执行以计算中性点电压。在代码中,3Vn 的数量由被称为neutral 的变量表示。
对于非导通相(零电流),定子端子电压可被重新表示如下:
3 E c = 3 V c − 3 V n 3{E_c} = 3{V_c} - 3{V_n} 3Ec​=3Vc​−3Vn​
在代码中使用这个等式来计算非导通相C的反电动势过零点。用相类似的等式来计算其它反电动势电压 E a E_a Ea​和 E b E_b Eb​ 的反电动势过零点。由于反电动势过零点内的影响,有可能只检查反电动势符号变化;这假定反电动势扫面环路周期远远短于机械时间常量。这个函数在三个端子电压采样后计算,通常情况下每50 μ s μs μs一次。
在相位换相的瞬间,由于直流电平或寄生电感和电源电路板的电容,有可能出现高dV/dt 和dI/dt毛刺脉冲。这可导致对经计算得出的中性点电压的误读。这可以通过在新的相位换相发生时丢弃反电动势的头几个扫描来克服。在代码中,这由名为‘NOISE_WINDOW_CNT_MACRO’函数执行。持续时间取决于电源开关、电源电路板设计、相位电感和驱动的直流电流。这个参数是系统相关的,并且被被设定为电机低速范围内的一个较大的值。随着速度增加,由于在较高速时也逐渐接近反电动势过零,此软件逐渐降低这个持续时间。
在有效传感控制中,反电动势过零点在相位换相瞬间移动30°。所以,在借助六个过零事件运行无传感器BLDC 电机前,为了实现精确换相点,有必要计算相对于这个30°延迟角的时间延迟。这可通过执行一个位置内插函数来实现。在这个软件中,执行如下:让T 为转子完成之前旋转所需的时间,而 α α α 为所需的延迟角。用360°除以 α α α,并将结果乘以T,就获得了下一相位对换相前花费的时间长度。在代码中,这个延迟角被固定为30°。相应的时间延迟用采样时间周期的数量表示,并被存储在变量cmtn_delay 中。因此,
T i m e d e l a y = c m t n _ d e l a y ∗ T s = T ( α ˙ / 360 ) = v _ t i m e r ∗ T s ( α ˙ / 360 ) = v _ t i m e r ∗ T s / 12 \begin{array}{l} Time{\rm{ }}delay{\rm{ = }}cmtn{\rm{\_}}delay{\rm{*}}{T_s}\\ {\rm{ = }}T{\rm{(}}\dot \alpha /360)\\ {\rm{ }} = v\_timer{\rm{*}}{T_s}(\dot \alpha /360)\\ {\rm{ }} = v\_timer{\rm{*}}{T_s}/12 \end{array} Timedelay=cmtn_delay∗Ts​=T(α˙/360)=v_timer∗Ts​(α˙/360)=v_timer∗Ts​/12​
在这里,Ts 是采样时间周期,而v_timer 是计算转子之前旋转期间采样周期数量的定时器。
上面的等式被进一步简化为:
c m t n _ d e l a y = v _ t i m e r / 12 cmtn{\rm{\_}}delay = v\_timer/12 cmtn_delay=v_timer/12
在代码中执行这个等式来计算相对于30°换相延迟角的时间延迟。

无刷直流电机的无位置传感器控制学习笔记相关推荐

  1. 无刷直流电机(无传感器)学习 (2)

    一.内容 此次学习主要完成了无霍尔传感器的电机的工作原理及对应程序的学习. 二.知识点 1.无感无刷直流电机 经过前面的学习,了解到了有传感器的工作原理.简单的来说,就是通过通断更改绕组的磁场,使得永 ...

  2. 三相永磁同步电机的矢量控制学习笔记一

    三相永磁同步电机的矢量控制学习笔记1 一 内容 三相永磁同步电机CPMSM)是一个强搞合.复杂的非线性系统,为了能够更好地 设计先进的 PMSM 矢量控制算法,建立合适的数学模型就显得尤为重要.本次学 ...

  3. Arduino基础篇(九)-- 无刷直流电机转速和方向控制

    本文选择Arduino MEGA 2560开发板做调试,通过调整PWM的占空比,控制BLDC3525,内置有感有霍尔驱动,实现对无刷直流电机的转速控制,通过调整数字口输出高低电平,从而实现电机方向控制 ...

  4. 永磁同步电机准谐振自抗扰电流谐波抑制(QRADRC)的无位置传感器控制

    本篇博客为抑制电流谐波以提高电机系统性能的PMSM无位置传感器控制 磁链谐波和死区效应是电流谐波的重要影响因素,导致的电压误差谐波在永磁同步电机系统中均是 6 倍基频的周期性扰动,其会引起明显的5 次 ...

  5. 电机控制学习笔记——PMSM数学模型

    电机控制学习笔记--PMSM数学模型 0 引言 1 电压方程和磁链方程 2 转矩方程和运动方程 参考文献 0 引言   要实现对永磁同步电机的精准控制,首先需要对永磁同步电机进行建模,获得其电压方程. ...

  6. 无刷直流电机介绍及单片机控制实例

    无刷直流电机介绍及单片机控制实例 前言 基本概念 优势与劣势 使用寿命 基本结构 使用单片机控制实例 电子调速器(ESC) Arduino BLDC电机控制电路图 代码 前言 在机器人的结构中,往往电 ...

  7. 永磁同步电机矢量控制到无速度传感器控制学习教程(PMSM)(一)

    一个阶段的学习结束了,整理了之前的过程中的学习成果,已经过了工作的年纪,在这里稍微出一下自己做的一套永磁同步电机的教程,从基础的矢量控制,到应用性较强的MTPA.弱磁控制等,最后深入到无速度传感器的控 ...

  8. 基于非线性观测器的表贴式永磁同步电机 无位置传感器控制

    基于非线性观测器的表贴式永磁同步电机 无位置传感器控制 基于非线性观测器的表贴式永磁同步电机 无位置传感器控制 摘要:非线性观测器观测通过sinθ.cosθ的估计值得到位置估计量.与龙格波观测器相比较 ...

  9. 运动学习与控制-学习笔记(三)——运动控制理论

    运动学习与控制-学习笔记(三)--运动控制理论 一.理解控制理论以及两个重要概念 1.Motor Control Theory 2.两个重要概念:Coordination,Degree of Free ...

最新文章

  1. php mysql 时间戳查询_mysql中时间查询函数(包括时间戳)
  2. 关键七步,用Apache Spark构建实时分析Dashboard
  3. Linux系统网卡配置方法
  4. document.addeventlistener方法不执行_JUnit 5 测试方法的执行优先级
  5. 绕过waf mysql爆库_iwebsec刷题记录-SQL注入漏洞
  6. linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
  7. VBA实战技巧精粹013:宏代码保存工作簿的3种方法
  8. mysql 月份去0_mysql 查询每个月发布的文章数。月份无数据显示为0。如何写SQL呢...
  9. python购物车进阶(函数)
  10. 萌新做点小玩意儿DAY-2 五子棋AI拓展思想
  11. 在淘宝规则不断变化的形式下,该如何让店铺更好地发展
  12. 网络端口和端口扫描简介
  13. Windows批处理添加注释
  14. python网上下载视频,音乐
  15. 搜索引擎使用的一些基本技巧
  16. C#中关于WinForm中重绘TabControl选项卡标题的问题
  17. u盘在本机电脑读不出来,但别的机器可以读解决方案
  18. Qt 中messageBox使用
  19. CUDA编程之CUDA流
  20. 优信公布IPO后首份财报:运营亏损13亿 但净利为正

热门文章

  1. C/C++ 图片拼接
  2. mysql附加数据库为只读_SQL Server 附加数据库之后显示为只读时解决方法
  3. Tushare学习文档(七 龙虎榜数据)
  4. 香橙派 orangepi 点灯大法,操作gpio 点亮LED灯
  5. Xcode下使用git
  6. 徐传运 计算机教育,张杨-重庆师范大学计算机与信息科学学院
  7. C#粘包和分包问题及解决方法
  8. 5g时代的到来,软件测试有多重要!
  9. Python爬虫数据存哪里|数据存储到文件的几种方式
  10. 云原生桌面:虚拟桌面的解构与重新定义