# BLDC-PMSM-in-depth-learning-notes **Repository Path**: cornrn/bldc-pmsm-in-depth-learning-notes ## Basic Information - **Project Name**: BLDC-PMSM-in-depth-learning-notes - **Description**: BLDC-PMSM深入学习笔记 - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-23 - **Last Updated**: 2024-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 目录 前言 一、BLDC简介 1.1 直流无刷电机与直流有刷电机的特点 1.2 直流无刷电机的分类 1.3 直流无刷电机几个重要参数 二、BLDC基本控制原理 2.1 BLDC工作原理 2.2 控制电路原理设计与分析 2.3 速度控制原理 三、霍尔传感器原理 四、直流无刷电机无感控制 4.1 反电动势法控制BLDC电机的原理 4.2 反电动势的检测方法 4.3 闭环的建立 4.4 BLDC方波启动技术 补充 前言   本文主要介绍无刷直流电机BLDC的工作原理,标准库例程见附件 一、BLDC简介   无刷直流电机(Brushless Direct Current Motor,简称 BLDCM)由电动机主体和驱动器组成,是一种典型的机电一体化产品。无刷电机是指无电刷和换向器(或集电环)的电机,又称无换向器电机。这是模型中除了有刷电机以外用的最多的一种电机,无刷直流电机不使用机械的电刷装置,采用方波自控式永磁同步电机,与有刷电机相比,它将转子和定子交换,即无刷电机中使用电枢绕组作为定子,使用钕铁硼的永磁材料作为转子,以霍尔传感器取代碳刷换向器,性能上相较一般的传统直流电机有很大优势。具有高效率、低能耗、低噪音、超长寿命、高可靠性、可伺服控制、无级变频调速等优点,而缺点则是比有刷的贵、不好维护,广泛应用于航模、高速车模和船模。   不过,单个的无刷电机不是一套完整的动力系统,无刷电机基本必须通过无刷控制器才能实现连续不断的运转。普通的碳刷电机旋转的是绕组,而无刷电机不论是外转子结构还是内转子结构旋转的都是磁铁。无刷电机的定子是产生旋转磁场的部分,能够支撑转子进行旋转,主要由硅钢片、漆包线、轴承、支撑件构成;而转子则是黏贴了钕铁硼磁铁、在定子旋转磁场的作用进行旋转的部件,主要由转轴、磁铁、支持件构成。除此之外,定子与转子组成的磁极对数还影响着电机的转速与扭力。 1.1 直流无刷电机与直流有刷电机的特点   可以从图 a 与图 b 中看出有刷电机与无刷电机之间最大的结构区别在于:无刷电机没有电刷以及换向器;并且无刷电机的线圈绕组不参与旋转,而是作为定子,永磁体作为转子,与有刷电机是相反的结构。他们特点如下表: 1.2 直流无刷电机的分类   图中我们可以看到,直流无刷电机以驱动方式进行分类,可以分为:方波驱动以及正弦波驱动,其中方波驱动又分为:外转子式 BLDC、内转子式 BLDC;正弦波驱动分为:永磁同步电机(PMSM)。BLDC 和 PMSM 的区别如下: 1.3 直流无刷电机几个重要参数 极对数(N:槽数,P:极数)   铁芯极数(槽数)∶ 定子硅钢片的槽数量   磁钢极数(极数)∶ 转子上磁钢的数量   模型常见的内转子无刷电机结构有: 3N2P(有感电机常用)、12N4P(大部分内转子电机);模型常见的外转子无刷电机结构有:9N6P、9N12P、12N8P、12N10P、12N14P、18N16P、24N20P。   模型用内转子无刷电机极数不高的原因: 目前内转子电机多用于减速使用,所以要求的转速都比较高。电子转速 = 实际转速 × 电机极对数,电子控制器支持的最高电子转速往往都是一个定数,所以如果电机极对数太高的话,支持的最高电机转速就会下降,所以目前的内转子电机极数都是4 以内 KV 值   有刷直流电机是根据额定工作电压来标注额定转速的,无刷电机引入了 KV 值的概念,而让用户可以直观的知道无刷电机在具体的工作电压下的具体转速。实际转速 =KV 值×工作电压,这就是 KV 的物理意义,就是在 1V 工作电压下每分钟的转速。无刷直流电机的转速与电压呈正比关系,电机的转速会随着电压上升而线性上升。例如,2212-850KV 电机在 10V 电压下的转速就是: 850×10=8500RPM(RPM,每分钟转速)。KV 值与匝数是呈反比例关系的,例如 2212-850KV,匝数是 30T(15 圈),那在 28T 的情况下的 KV 值是:850KV×30T/28T=910KV。 电压、电流和功率   额定电压:无刷电机适合的工作电压,额定电压是指定了负载条件而得出的情况   最大电流: 电机能够承受并安全工作的最大电流   每个电机都有自己的力量上限,最大功率就是这个上限,如果工作情况超过了这个最大功率,就会导致电机高温烧毁。 转矩与转速   转矩:(力矩、扭矩)电机中转子产生的可以用来带动机械负载的驱动力矩,我们可以理解为电机的力量。   转速: 额定的电流下的空载转速,通常单位用 RPM 表示;   电机的转矩和转速在同一个电机内永远是一个此消彼长的关系,基本可以认为转矩和转速的乘积是一个定数,即同一个电机的转速越高,必定其转矩越低,相反也依然。不可能要求个电机的转速也更高,转矩也更高,这个规律通用于所有电机。例如:2212-850KV 电机,在 11V 的情况下可以带动 1045 桨,如果将电压上升一倍,其转速也提高一倍,如果此时负载仍然是 1045 桨,那该电机将很快因为电流和温度的急剧上升而烧毁。 其他设计驱动需要的参数   定子电感:电动机静止时的定子绕组两端的电感。   定子电阻:在 20℃ 下电动机每相绕组的直流电阻。   反电动势系数:在规定条件下,电动机绕组开路时,单位转速在电枢绕组中所产生的线感应电动势值。 二、BLDC基本控制原理 2.1 BLDC工作原理   首先,根据安培定则,也叫右手螺旋定则,当电流通过磁感线时,会形成一定磁场,如下图所示:   然后以三相电机为例,三相星形联结的二二导通方式,在 A 端上电源正极,在 B 端接电源负极,那么可以在线圈 A 和 B 中可以产生如图所示的磁场,因为磁场强度是矢量,此时转子就会保持在图中方向。   以此类推,想要转子转动就需要接入不同的电压,我们来分析一下图中的 6 个过程 ①在A端接入正电压,B端接入负电压,C端悬空,转子将会旋转至图中1的位置。 ②在 1 的基础上,C 端接入正电压,B 端接入负电压,A 端悬空,转子将会从 1 的位置旋转至图中 2 的位置 ③在 2 的基础上,C 端接入正电压,A 端接入负电压,B 端悬空,转子将会从 2 的位置旋转至图中 3 的位置。 ④在 3 的基础上,B 端接入正电压,A 端接入负电压,C 端悬空,转子将会从 3 的位置旋转至图中 4 的位置 ⑤在 4 的基础上,B 端接入正电压,C 端接入负电压,A 端悬空,转子将会从 4 的位置旋转至图中 5 的位置 ⑥在 5 的基础上,A 端接入正电压,C 端接入负电压,B 端悬空,转子将会从 5 的位置旋转至图中 6 的位置。   当转子旋转到位置 6 时,在重复 1 的供电状态,转子将会从 6 的位置旋转到 1 的位置。在经过上面的 6 个过程后转子正好转了一圈,我们将这种驱动方法称为 6 拍工作方式,每次电压的变化称为换相 2.2 控制电路原理设计与分析   有了上面的原理分析,我们知道了怎么导通就可以让无刷电机转起来,因为单片机的引脚驱动能力有限,所以在这里我们使用一个叫做三相六臂全桥驱动电路来驱动无刷电机,原理图如下图所示:   在上图中导通Q1和Q4,其他都不导通,那么电流将从Q1流经U相绕组,再从V相绕组流到Q4。这样也就完成了上一小节中的第一步,同理,依次导通 Q5Q4、Q5Q2、Q3Q2、Q3Q6 和 Q1Q6,这也就完成了 6 拍工作方式。 但是,单片机的引脚直接驱动 MOS 管还是不行的,所以这里需要使用专用的 IC 来驱动 MOS管,在对 MOS 管的控制有中两个特殊情况需要注意一下: (1)当按真值表中对应霍尔值导通 MOS 管后,就保持导通状态不变时,此时电机就会旋转到对应位置保持不变,此时电路中的电能将只能转换为热能,不能转换为机械能,而我们的电机绕组时候的是漆包铜线,其内阻非常的小,电流就会非常的大,这将会产生大量的热而导致电源或者电机被烧毁。 (2)在上面的三相六臂全桥驱动电路原理图中如果同时导通 Q1 和 Q2,或者导通 Q3 和 Q4,或者导通 Q5 和 Q6,只要导通以上对应的两个 MOS 管,都会导致电路中的电机不能正常工作,而 MOS 管直接将电源的正负极接通,这无疑将会烧毁电源或者 MOS 管。 2.3 速度控制原理   通常我们使用电机不仅仅只是让电机旋转这么简单,更多的时候需要对速度进行控制,我们发现以上方式直接把电源加载到线圈上,这样会直接使电机很快飙到很高的速度,这样不利于我们控制,按照以下无刷直流电机转速计算公式可知,影响电机转速的三个参量分别是电枢回路的总电阻 Ra, 调整电枢绕组的供电电压 Ua 或者调整励磁磁通 φ。也就是说,想要改变电机的转速,必须对以上三个参量进行调整。 V=(Ua-IaRa)/CEφ Ua——电机定子绕组的实际电压大小 Ia——电机绕组内通过的实际电流大小 Ra——电路系统中包含电机的回路电阻大小 CE——电势系数 φ——励磁磁通   在现实情况下,在已确定无刷直流电机选型及电机参数的情况下,改变系统总的电阻值 Ra 和电机的励磁磁通值难度是比较大的,因此,在一般情况下,我们可以对无刷直流电机的供电电压所处适当调整,从而降低线圈绕组通过电流大小,以期达到控制电机转速的目的,同前面讲到的直流有刷减速电机一样,直流无刷电机也可以使用脉宽调制信号(PWM)来进行速度控制,通常使用的 PWM 频率为十几或者几十千赫兹(不得超过 MOS 管的开关频率),这样把需要通电的MOS 管使用 PWM 来控制就可以实现速度的控制。   使用 PWM 控制直流无刷电机的策略包括 PWM-ON、ON-PWM、H_PWM-L_ON、H_ON-L_PWM和 H_PWM-L_PWM。这 5 种控制策略,均是电机处于 120° 运行方式下进行的。如下图所示: 这 5 种调制方式为: ① PWM-ON 型。在 120° 导通区间,各开关管前 60° 采用 PWM 调制,后 60° 则恒通。 ②ON-PWM 型。在 120° 导通区间,各开关管前 60° 恒通,后 60° 则采用 PWM 调制。 ③H_PWM-L_ON 型。在 120° 导通区间,上桥臂开关管采用 PWM 调制,下桥臂恒通。 ④H_ON-L_PWM 型。在 120° 导通区间,上桥臂开关管恒通,下桥臂采用 PWM 调制。 ⑤H_PWM-L_PWM 型。在 120° 导通区间,上、下桥臂均采用 PWM 调制。 它们特点如下: (1)采用 PWM-ON 方式时,下桥换相和上桥换相的换相转矩脉动相等,且最小;非换向相电流脉动也是最小的; (2)采用 ON-PWM 方式时,下桥和上桥换相转矩脉动相等且比 PWM-ON 方式大,非换向相电流脉动也比 PWM-ON 方式时大。 (3)采用 H_ON - L_PWM 方式时,下桥换相转矩脉动和非换向相电流脉动小且与 PWM-ON 方式时的转矩脉动和电流脉动相等,上桥换相转矩脉动和非换向相电流脉动大且与 ON -PWM 方式时的转矩脉动和电流脉动相等。 (4)采用 H_PWM - L_ON 方式时,下桥换相转矩脉动和非换向相电流脉动大且与 ON-PWM 方式时的转矩脉动和电流脉动相等,上桥换相转矩脉动和非换向相电流脉动小且与PWM-ON 方式时的转矩脉动和电流脉动相等。 (5)采用 H_PWM - L_PWM 方式时,换相转矩脉动最大且非换向相电流脉动也最大。   不同的控制方式在性能上有不同的效果,针对实际的应用场合可以多尝试多种调制方式,然后选择最优调制方式,一般认为:单极性调制转矩波动更小,双极性调制转矩波动较大。我们例程依据我们的驱动硬件所使用的是 H_PWM – L_ON 的驱动方式。 三、霍尔传感器原理   我们虽然已经知道了控制转子的六个节拍的方法。但是你有没有发现一个新的问题:如果不知道转子的位置,就不知道何时该驱动哪个绕组?所以驱动无刷电机的前提是我们必须要知道转子的当前位置!   无刷电机的传感器一般为霍尔传感器,霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应:当电流垂直于外磁场通过半导体时,载流子发生偏转,垂直于电流和磁场的方向会产生一附加电场,从而在半导体的两端产生电势差,这一现象就是霍尔效应,这个电势差也被称为霍尔电势差。   在 BLDC 中一般采用 3 个开关型霍尔传感器测量转子的位置,由其输出的 3 位二进制编码去控制三相六臂全桥中的 6 个 MOS 管的导通实现换相。如果将一只霍尔传感器安装在靠近转子的位置,当 N 极逐渐靠近霍尔传感器即磁感器达到一定值时,其输出是导通状态;当 N 极逐渐离开霍尔传感器、磁感应逐渐小时,其输出仍然保持导通状态;只有磁场转变为 S 极便达到一定值时,其输出才翻转为截止状态。在 S 和 N 交替变化下传感器输出波形占高、低电平各占 50%。如果转子是一对极,则电机旋转一周霍尔传感器输出一个周期的电压波形,如果转子是两对极,则输出两个周期的波形。以霍尔传感器为参照物,定子旋转时,霍尔传感器检测到的磁场变化及输出信号如下所示:   在直流无刷电机中一般把 3 个霍尔传感器按间隔 120 度或 60 度的圆周分布来安装,如果按间隔120 度来安装,则 3 个霍尔传感器输出波形相差 120 度电度角,输出信号中高、低电平各占 180度电度角。如果规定输出信号高电平用“1”表示,低电平用“0”表示,则输出的三个信号可以用三位二进制码表示,如下图所示: 注意:机械角度是指电机转子的旋转角度,电角度是指磁场的旋转角度,它们的关系式满足:电角度 = 机械角度 * 极对数。   转子每旋转一周可以输出 6 个不同的信号,这样正好可以满足我们条件。只要我们根据霍尔传感器输出的值来导通 MOS 管即可。通常厂家也会给出真值表。一般有两个, 一个是对应顺时针旋转,另一个对应的是逆时针旋转。如下表所示:   如表所示,当我们需要无刷电机正转时,如检测霍尔输出的组合值为“101”,那么此时我们需要导通 U 相的上桥臂“U+”,和 V 相的下桥臂“V-”即对应当前转子所在的扇区位置。其他霍尔组合情况同理。最后我们可以得到有感驱动无刷电机整体框图如下: 四、直流无刷电机无感控制   前面我们学习了无刷电机的有感控制,即通过霍尔传感器检测转子位置,实现六步换相,从而使无刷电机旋转起来。本节我们开始来学习无感控制,即不通过位置传感器实现无刷电机的基本驱动。   无感检测的主要方法有:反电动势过零点检测方法、反电动势积分范有电压比较法、反电动势积分及领相环法、续流二极管法、反电动势三次谱波检测法、感侧量法、C(0) 函数法、扩展卡尔曼滤波法、状态观测器法等。   这里我们主要使用反电动势过零点检测方法。它的主要核心就是通过检测定子绕组的反电动势过零点来判断转子当前的位置。与有霍尔的方案相比,最明显的优点就是降低了成本、减小了体积。并且电机引线仅 8 根变为 3 根,使接线调试都大为简化。另外,霍尔传感器容易受到温度和磁场等外界环境的影响,故障率较高。因此,无霍尔 BLDC 得到越来越多的应用,在很多场合正逐步取代有霍尔 BLDC。   在众多检测转子的位置方法中,反电动势检测法最为成熟、应用最广泛的方法,该方法简单可靠、容易实现,但是这种方法也存在一些缺点: ①低速或转子静止时不适用,这是所有反电动势法的共同缺点。 ②电压比较器对被检测信号中的毛刺、噪声非常敏感等等。 4.1 反电动势法控制BLDC电机的原理   三相六状态 120°通电方式运行的无刷电机在任意时刻总是两相通电工作,另相绕组是浮地不导通的。这时候非导通绕组的端电压(从绕组端部到直流地之间)或相电压(从绕组端部到三相绕组中心点之间)就反映出该相绕组的感应电动势(BEMF,BackElectromotiveForce)。BLDC 电机的 BEMF 波形随转子的位置和速度变化,整体上呈现为梯形。   下图给出了电机旋转一个电周期中电流和反电电势的波形,其中实线代表电流,虚线代表反电动势,横坐标为电机旋转的电气角度,根据 BLDC 的“六步换向”控制理论,我们知道在任意时刻三相 BLDC 另有两相通电,另一相开路,三相两两导通,共有 6 种组合,以一定的顺序每 60°变化一次,这样产生旋转的磁场,拉动永磁体转子跟着转动。这里的 60°指的是电气角度,一个电周期可能并不是对应一个完整的转子机械转动周期。完成一圈机械转动要重复的电周期数取决于转子的磁极对数。每对转子磁极需要完成一个电周期,因此,电周期数/转数等于转子磁极对数。   控制 BLDC 的关键就是确定换相的时刻。由上图可以看出,在每两个换相点的中间都对应一个反电动势的磁极改变的点,即反电点势从正变化为负或者从负变化为正的点,称为过零点。利用反电动势的这个特性,只要能够准确检测出反电动势的过零点,将其延迟 30°,即为需要换相的时刻。 4.2 反电动势的检测方法   从上图中可以看到每次的反电动势过零点都发生在不通电的那一相。例如图中第一个 60°内,A 相电流为正,B 相电流为负,C 相电流为零,这说明电机 AB 相通电,电流从 A 相流入 B 相,C 相为开路。反电动势的过零点正好出现在 C 相。而且由于 C相不通电,没有电流,其相电压就与反电动势有直接的对应关系。   由于 BLDC 电机的 Y 形连接,三相都接到公共的中性点,相电压无法直接测量。只能测量各相的端电压,通常将非通电绕组的端电压用于无传感器控制时,称为端电压法,即各相对地的电压,然后与中性点电压比较,当端电压从大于中性点电压变为小于中性点电压,或者从小于中性点电压变为大于中性点电压,即为过零点。如图所示。   但是一般的 BLDC 电机都没有中性点的外接引线,所以无法直接测量中性点电压。解决这个问题最直接的办法就是重构一个"虚拟中性点”,通过将三相绕组分别通过阻值相等的电压连接到一个公共点而成,这个公共点就是虚拟中性点,如图 25.1.3.1( B )所示。将中性点信号和 UVW 信号通过比较器进行比较就可以获得过零信号。由于使用比较器进行外部硬件比较的方式较为稳定,因此得到广泛应用。   上图是我们无刷驱动板的比较器采样过零信号的电路,我们以 U 相来说明:U 相反向电动势和中性点信号通过 U8B 比较器输出过零点信号 ZERO_U。 4.3 闭环的建立   如同霍尔传感器,每一相的反电动势都有两种过零情况:从正变为负和从负变为正。三相共有六种过零情况对应六种换相状态,并且这种对应关系是固定不变的。所以我们可以将这个对应关系写入一个表中,程序中每检测到一个过零点,就通过查表来决定相应 IO 输出状态,控制下一步哪两相通电;然后切换到当前断开相继续检测反电动势过零点,如此循环,直至建立稳定的闭环。下图为我们店铺无刷电机的过零信号组合所对应的绕组导通情况真值表:   理论上,过零点总是超前换相点 30°电角度。因此在检测到过零点后,要先延迟 30°电角度再换相。但是在闭环调速过程中,电机旋转一个电气周期的时间不是固定不变的,因此无法预测在检测到过零点后接下来的这 30°电角度是多长时间。虽然无法预测接下来的 30°电角度是多长,但是刚刚过去的上一个换相周期,即两个换相点之间 60°电角度的长度是可以测量的。于是可以采用近似的办法,用上一个换相周期,即 60°电角度的时间减半,作为接下来的 30°电角度延时时间。这种办法是可行的,因为电机的转速是渐变的,相邻两个换相周期的时间相差不会很大。   由于定子绕组的反电动势与电机的转速成正比,所以电机在静止时反电动势为零或低速时反电动势很小,此时无法根据反电动势信号确定转子磁极的位置,因此反电动势法需要采用特殊起动技术,从静止开始加速,直至转速足够大,当反电势能检测到过零信号时,再切换至无刷直流电机运行状态。这个过程称为“三段式”起动,主要包括转子预定位、加速和运行状态切换三个阶段。这样既可以使电机转向可控,又可以保证电机达到一定转速后再进行切换,保证了起动的可靠性。下面就让我们介绍 BLDC 方波启动技术。 4.4 BLDC方波启动技术 电机转子预定位   要保证无刷直流电机能够正常起动,首先要确定转子在静止时的位置。在轻载条件下,对于具有梯形反电势波形的无刷直流电机来说,一般采用磁制动转子定位方式。系统起动时,任意给定一组触发脉冲,在气隙中形成一个幅值恒定、方向不变的磁通,只要保证其幅值足够大,那么这一磁通就能在一定时间内将电机转子强行定位这个方向上。在应用中,可以在任意一组绕组上通电一定时间,其中预定位的 PWM 占空比和预定位时间的长短设定值可由具体电机特性和负载决定,在实际应用中调试而得。在预定位成功后,转子在起动前可达到预定的位置,为电机起动做好准备。 电机的外同步加速   确定了电机转子的初始位置后,由于此时定子绕组中的反电动势仍为零,所以必须人为的改变电机的外施电压和换相信号,使电机由静止逐步加速运动,这一过程称为外同步加速。对于不同的外施电压调整方法和换相信号调整方法,外同步加速可以划分为三类:换相信号频率不变,逐步增大外施电压使电机加速,称为恒频升压法。保持外施电压不变,逐渐增高换相信号的频率,使电机逐步加速,称为恒压升频法。在逐步增大外施电压的同时,增高换相的频率,称为升频升压法。 电机运行状态的转换   各个方法都有其优点和缺点。如升频升压法是人为地给电机施加一个由低频到高频不断加速的可控同步切换信号,而且电压也在不断地增加。通过调整电机换相频率,即可调整电机起动的速度。调整方法比较简单。但是这个过程比较难实现,切换信号的频率的选择要根据电机的极对数和其它参数来确定,太低电机无法加速,太高电机转速达不到会有噪声甚至无法启动,算法比较困难。无论哪种方法,该过程都是在未检测到反电动势信号时进行,因此对于控制系统来说,此段电机控制是盲区。参数在调试好的时候,可以快速切换至正常运行状态;而参数不理想时,电流可能不稳甚至电机会抖动。因此,在应用中,应根据电机及负载特性设定合理的升速曲线,并在尽可能短的时间内完成切换。   这一步是关键也是比较难实现的一步,有时软件或者硬件设计的不合理都可能导致起动失败。通常是采用估算的方式来选择切换速度。通过上面的分析可知,无位置传感器无刷直流电机控制系统的难点就是加速及切换阶段,当电机顺利起动后,就可以对电机调速操作。其中,无位置传感器无刷直流电机和有位置传感器电机调速原理一致。但由于无感三段式起动过程,转子位置检测无效,因此,对电机进行的速度 PID 闭环控制,需在电机起动顺利完成后进行。至此,我们可以得到一个无感驱动的整体框图: