BLDC控制及六步换相

  1. 简介

    BLDC模块,可直接搜索,也可在下图库中找到。

    BLDC电机,通常被视为PMSM的一种,因其采用集中式绕组设计,导致反电动势呈现出梯形波形。这种特性使得BLDC电机与采用分布式定子绕组并产生正弦反电动势的PMSM电机有所区别。Simulink中BLDC电机模块的端口的初始情况有四个,左边为电气端口:~为三相端口,可以扩展为三相端口,n为中性相,与中性相相关的保留端口;右边为机械端口:R为电机转子,与电机转子相关的机械旋转端口,C为电机壳,与电机壳相关的机械旋转端口。

    下图显示了定子绕组的等效电路以及转子上具有单极对的电机结构

 下图为梯形通量变化率,转子磁场由于永磁体产生的磁通随转子角度呈梯形变化率。该图显示了通量的变化率。

2 仿真BLDC的反电势

P1:在 Simulink 中,创建一个场景,在三相端子打开的情况下转动电机轴,然后测量其中一个相位产生的电压以观察反电动势。

(1)目的:学会使用Simulink搭建关于三相 BLDC 模型并研究其反电动势曲线。

(2)方法:

1)在 Simulink 库浏览器中,首先导航到永磁体并将 BLDC 模块拖到画布上。该模块表示具有梯形反电动势曲线的 BLDC。也可以直接搜索BLDC。

  1. 将三相端口~设置为扩展为三相端口,并设定转子和定子参数。

3)模块左侧的端口用于电气连接,右侧的端口用于机械连接。为了创建开放式端子,将复合端口扩展到三相,然后将开路块(open circuit)连接到每个相。为了将电机的中性相连接到地面,使用电气参考块(electrical reference)。

4)对于电机的机械连接,为了使电机轴转动,使用理想的角速度源块驱动电机。可以将此块视为一个扭矩源,它将使转子遵循指定的角度轨迹。机械参考连接到标有 C 的端口。

5)将速度源模块具有第二个输入,即物理信号。为了使电机以恒定速度旋转,将向块输入一个常数值。该模块输出 Simulink 信号,使用 Simulink PS 转换器将其转换为物理信号。

6)为了求解我们刚刚创建的 Simscape 模型,使用一个求解器模块,在其中选择使用本地求解器并设置采样时间。

7)可以简单地从三个相位中选择一个并测量反电动势。将电压传感器连接到 A 相,以测量 A 相的反电动势电压。

8)电压传感器模块的输出是 Simscape 信号。为了将其转换为 Simulink 信号,这次我们使用 PS Simulink 转换器并将信号连接到示波器进行可视化。

9)然后模拟这个模型,并查看A相的反电动势电压。观察到反电动势呈现梯形形状,包括电压保持平坦的区域。

3 三相逆变器仿真

P2:如何对三相逆变器进行建模,以将直流电源转换为三相电流以控制 BLDC 电机。

(1)目的:通过使用逆变器模型为BLDC中一个线圈对通电来驱动电机。

(2)方法:

1)从以前的模型中删除不需要它们来对逆变器进行建模的一些模块。在添加负载惯量并输入其值后,可以开始对三相逆变器进行建模。为了探索转子运动,需要一个传感器来测量速度。这里仿真使用理想的旋转运动传感器模块,它分别通过端口 W 和 A 输出电机速度和位置。在运动传感器块中将初始角位置设置为 0 度。另请注意,这些转换块允许定义单位,因此不需要额外的块来在度数和弧度之间进行转换。

2)三相逆变器基本上是使用三对逆变开关将直流电转换为交流电的电路,每对应一个相位。根据希望对三相逆变器进行建模的方式,可以从 Simscape Electrical 的“半导体和转换器”部分下提供的不同选项中进行选择。

3)在此示例中,使用 MOSFET并使用电源逆变器的数据表来指定此模块的参数。逆变器的直流电压输入可以使用电压源模块进行建模。

4)将通过插入必要的块并将它们连接在一起来构建与此图中相同的电路。让从控制A相电流的第一对开关开始。只需复制开关并将上部开关命名为 AH,因为它是高侧开关,同样,将下部开关标记为低侧开关的 AL。S1 和 S2 显示开关编号。将该电路连接到A相,如图所示。通过复制和粘贴这对开关来完成电路的其余部分。

5)MOSFET的输入是高信号或低信号,分别用于打开和关闭MOSFET。为了将Switching pattern值向量分配给相应的低边和高边开关,使用一个解复用器模块以及“goto”和“from”模块。这样,通过将两个信号连接在一起而不显示任何电线来获得干净的外观。在这里,需要将 Simulink 信号(1 或 0)转换为 Simscape 信号,然后再将其连接到电路。其余端口可以使用“goto”和“from”blcoks连接。

6)为了测量每个相位的电流和电压,可以使用相电压传感器和电流传感器模块。通过右键单击该块并选择此选项,可以扩展端口以显示三个阶段。如果在实验室中,并且想用电流表测量电流,则可以将其端子与电路串联。同样,在仿真中,也可以串联连接电流传感器。电流传感器端口 I 输出测量的三相电流,在将它们转换为 Simulink 信号后,将其连接到示波器进行可视化。为了检测电压,将传感器并联在电机的电气节点之间,并将输出端口连接到示波器。

7)将选择逆变器模块并创建一个子系统,将它重命名为三相逆变器。(可以在 Simscape 库中找到三相逆变器的内置模块。该模块允许从不同的开关器件中进行选择,例如理想的开关、MOSFET或IGBT,用于对逆变器进行建模。)为了正确运行电机,需要在正确的时间驱动正确的相位对。在控制算法中,通过检测角度位置来做出此决策,并在此基础上计算三相逆变器的开关模式。在仿真中将假设一个静态开关模式,A 和 C 相通电,观察转子运动。使用六个常量值的向量来模拟这种静态开关模式,以驱动六个开关打开或关闭。

8)将“开关模式”和“角度位置”信号命名为“开关模式”和“角度位置”信号。然后,通过右键单击每个信号并选择此选项来记录它们。

9)有一个 MATLAB 脚本,在同一个文件夹下,它会自动运行这个 Simulink 模型,然后使用记录的信号创建转子位置的动画。要查看此动画,转到命令行并通过键入脚本名称并点击“Enter”来运行脚本。

10)在这里得到通电相 A 和 C 以及由此产生的转子位置。

4 六步换向控制仿真

P3:在 Simulink 中,创建一个六步换向控制策略建模,以控制BLDC电机的速度。

1目的学习如何对换向逻辑进行建模,以及如何构建反馈控制环路,以使用 Simscape Electrical 控制 BLDC 电机的速度。

2)方法

1在上一个仿真中,模拟了一个三相逆变器,该逆变器将直流电源转换为三相电流以控制 BLDC 电机。三相逆变器的输入是一种开关模式,用于控制电机相对的开断状态。在上一个仿真中使用静态开关模式为A相和C相通电,并得到转子与定子磁场成30度对齐。接下来,将向该模型添加换向逻辑,以动态更改转子连续旋转的开关模式。

2从霍尔效应传感器建模开始。在实践中,霍尔效应传感器感应每个相位周围的磁场,以确定电流扇区。然而,出于仿真目的,假设我们知道角转子位置,我们将从中计算扇区。角位置 theta 始终在 0 到 360 度之间,这意味着在转子每次旋转后, theta 重置为 0 度。通过使用 Math Function 模块中的 remainder 函数来做到这一点。将 theta 和常量值 360 输入到此块中,然后返回 theta 除以 360 度的余数。还将在此处插入一个 Gain 模块并输入极点对数 p,在仿真中极对数为 1,霍尔效应传感器模型的逻辑应如下:如果转子在 0 到 60 度之间,则表示转子位于第一个扇区,因此应该输出 1。

3在完成转子的完全旋转之前,还有五种情况。对于每种情况,需要检查两个条件。为了实现第一个检查,添加了一个 Constant 块,我们将其设置为 0。然后,获取一个关系运算符块,并选择要用于将 theta 与 0 进行比较的正确运算符。同样,对第二个条件进行建模。当这两个条件都满足时,希望将扇区设置为 1。可以通过使用 AND 门以及表示扇区数的增益来做到这一点。请注意,逻辑运算符输出一个布尔值,需要将其转换为与增益相同的数据类型。可以使用 Data Type Conversion 模块来做到这一点,它采用 Boolean 值并将其转换为它从 Gain 模块继承的数据类型。根据此逻辑,当两个条件都满足时,AND 运算符将返回 1,扇区将设置为 1。如果不满足其中一个或两个条件,则输出将为 0,因为这意味着转子位于另一个扇区。要实现其余条件,可以简单地复制并粘贴这部分,然后调整值,如图所示。现在,结果值的总和将为提供扇区编号。请注意,每次这些输出中只有一个为正数,其余为0。

4选择这个部分并创建一个子系统,称之为传感器。现在已经完成了扇区的计算,可以用它来模拟换向逻辑。换向逻辑基本上就像一个包含所有可能的开关模式的表格,并以正确的顺序输出它们,以便根据扇区信息正确旋转转子。

5添加在图片中看到的其余开关模式。根据扇区选择模式,将使用对应开关。为此,使用 Multiport Switch 模块,需要六个输入,将它们连接到刚刚创建的开关模式。第一个输入是通过告诉它选择什么模式来控制这个开关,所以这里需要连接扇区。选择所有这些并创建一个子系统,可以称之为“换向逻辑”。开环模拟扇区对应电机位置

6这样,电机周围闭合一个环路,根据使用霍尔效应传感器确定的扇区为连续旋转的正确相位通电。现在记录Theta,电机只能以恒定的速度,如图所示,因为电源电压是恒定的。

如果电机设置Rotor angle definition改变测出的位置及转速曲线会有变化

7为了能够以不同的速度运行电机,可以通过一个反馈控制器来调节三相逆变器的电源电压。移除电流电压源,并用理想的电压源代替它,无论通过它的电流如何,它都能提供指令电压。

8)为了构建这个控制回路,首先需要计算所需速度和测量速度之间的误差,然后将其馈送到控制器以调整电压电平。测量传感器块下的速度,用 Outport 模块输出测得的速度。将它与所需的速度进行比较,可以使用从 0 到 900 RPM 逐渐变化的重复序列进行建模。插入一个 Sum 模块来计算所需速度和测量速度之间的误差,然后将其输入到 PID 控制器中。对于速度控制,选择使用分立式PI控制器。接下来,添加一个单位延迟,以防止在此模型中可能发生的任何代数循环。现在需要将控制器计算的电压馈入三相逆变器。

    总而言之,在本仿真中,展示了如何对换向逻辑进行建模,以及如何使用反馈控制器控制电机

无刷直流电机 无刷直流电机(或简称BLDC电机)是一种采用直流电源并通过外部电机控制控制实现电子换向的电机。不同于有刷电机,BLDC电机依靠外部控制器来实现换向。简言之,换向就是切换电机各相中的电流以产生运动的过程。有刷电机是指具有物理电刷的电机,其每转一次可实现两次换向过程,而BLDC电机无电刷配备,因此而得名。由于其设计特性,无刷电机能够实现任意数量的换向磁极对。   与传统有刷电机相比,BLDC电机具有极大的优势。这种电机的效率通常可提高15-20%;没有电刷物理磨损,因而能减少维护;无论在什么额定速度下都可以获得平坦的转矩曲线。虽然BLDC电机并不是新发明,但由于需要复杂控制和反馈电路,所以广泛采用的进展较为缓慢。然而,由于近期半导体技术的发展、永磁体品质提升,以及对更高效率不断增长的需求,促使BLDC电机在大量应用中取代了有刷电机。BLDC电机在许多行业找到了市场定位,包括白色家电、汽车、航空航天、消费、医疗、工业化自动设备和仪器仪表等。   随着行业朝着需要在更多应用中使用BLDC电机的方向发展,许多工程师不得不将目光投向该技术。虽然电机设计的基础要素仍然适用,但添加外部控制电路也增加了另一系列需考虑的设计事项。在诸多设计问题中,最重要的一点是如何获取电机换向的反馈。
### BLDC Motor Modeling and Simulation in Simulink In the context of modeling and simulating Brushless DC (BLDC) motors using MATLAB/Simulink, a comprehensive approach has been developed to facilitate this process effectively. The analysis begins with understanding the mathematical model underlying BLDC operation[^1]. This foundational knowledge is crucial as it forms the basis upon which accurate simulations can be constructed. To implement these models within Simulink, independent functional modules are established for various components such as the core BLDC module itself alongside specific controllers like current hysteresis control units[^2]. These modular designs allow users not only to simulate standard operations but also test alternative algorithms efficiently by integrating them into existing frameworks without significant modifications required. For instance, when focusing specifically on implementing PI control or employing hysteresis-based strategies for managing currents flowing through windings during different quadrants' operations, one could leverage pre-built blocks available inside Simulink along with custom scripts written outside if necessary[^3]. Below demonstrates how to set up basic elements needed for creating an effective environment suitable for experimenting with diverse aspects related to BLDC performance: ```matlab % Define parameters for BLDC motor J = 0.01; % Moment of inertia [kg.m^2] b = 0.1; % Damping coefficient [Nms] Ke = 0.01; % Electromotive force constant[V/(rad/s)] Kt = 0.01; % Torque constant[Nm/A] % Create new Simulink model new_system('BLDC_Model'); open_system('BLDC_Model'); % Add necessary blocks from library browser add_block('simulink/Signal Routing/Mux','BLDC_Model/Mux') add_block('simulink/Sources/Step','BLDC_Model/Speed Command') % Configure solver settings appropriately set_param(gcs,'Solver','ode45',... 'StopTime','10',... 'FixedStep','auto'); ``` This setup provides a starting point where additional functionalities—such as incorporating advanced controller logic or visualizing output responses—can easily be added based on project requirements.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值