详解无刷直流电机的超前角和导通角

原文链接:详解无刷直流电机的超前角和导通角

在无刷直流电机BLDC 控制里,无论对于带传感器还是无传感器电机,经常会用到超前角 / 导通角(Lead Angle)。因为电机线圈是感性负载,所以相对于线圈上的加载电压,线圈里的电流会有一定的时延,这会影响电机的效率和产生噪音震动等。

对于 BLDC 的梯形波 / 方波控制,调试并选取合适的超前角能在不改变基本控制算法的情况下,明显提升电机控制的效率和震动噪音水平。特别对于带传感器电机,控制时序里的超前角相当于调整电机内部的传感器位置,从而通过用简单易行的软件方法实现等同于以不方便或困难的方式调整传感器物理位置的效果。

1、三相 BLDC 控制原理(梯形波)

下图表示了无刷电机梯形波控制算法的基本原理。首先,交流电整流为直流电压,后级为变频部分(inverter),包含 6 个开关器件(FET):上桥臂的 U、V、W 和下桥臂的 X、Y、Z。

按照一定顺序控制这些 FET 开关器件,比如:

1:U->Y

2:U->Z

3:V->Z

4:V->X

5:W->X

6:W->Y(假定电机方向为正转)

那么电流会按照下面的顺序流过电机线圈:

1:U 相到 V 相(U->V)

2:U 相到 W 相(U->W)

3:V 相到 W 相(V->W)

4:V 相到 U 相(V->U)

5:W 相到 U 相(W->U)

6:W 相到 V 相(W->V)

共 6 步,如此循环。(如图 1 所示)
在这里插入图片描述
同理,若电机方向为反转,则开关顺序为:

1:U->Z

2:U->Y

3:W->Y

4:W->X

5:V->X

6:V->Z

这就是无刷电机 BLDC 的梯形波 / 方波控制算法。

2、三相 BLDC 控制时序

无刷电机的控制时序依赖于电机转子位置,为方便说明超前角 / 导通角,这里以带霍尔传感器的电机为例。按照霍尔芯片的位置判断,反馈应为中断。每检测到一个有效的霍尔位置信号编码(Pattern),就开始换相到下一步,然后接着开始检测下一次的位置反馈中断。如下图 2。按照上述 6 步不断换相的顺序:

1:U->V

2:U->W

3:V->W

4:V->U

5:W->U

6:W->V

再循环往复。
在这里插入图片描述

在每次检测到霍尔位置 Pattern 时,换相并输出对应的脉宽调制(PWM - Pulse Width Modulation)Pattern。之后,对位置反馈信号开始采样监控,直到再次检测到有效的霍尔位置 Pattern。

图中 PWM 开关信号(U~Z)中的黑色区块为有效电平,内含 PWM 载波(从几 K 到几十 KHz,Duty 可变)。图中的相电压(U 相~W 相)中的黑色窄柱状波形是在此换相时刻(从此一步切换到下一步 PWM Pattern),由于续流等原因(电机线圈的电感)造成的换相电压跳变。

3、超前角

在无刷直流电机(BLDC - BrushLess DC)控制里经常会用到 Lead Angle,即超前角 / 导通角。因为电机线圈是感性负载,所以相对于线圈上的加载电压,线圈里的电流会有一定的时延,从而影响电机的效率和产生噪音。以电机 U 相电压举例,把上图 PWM 信号 U、X 和 U 相电压波形放大,如下图。其中 U 相展开可看到实际电压波形,内含 PWM 载波。忽略 PWM 载波看包络图,如下图 3 最下面波形所示

在这里插入图片描述

这里,绿色虚线处是换相点,定义为超前角 / 导通角 0 度点。该点位于相电压中点右边(后边)30 度。而 Lead Angle 超前角 / 导通角,顾名思义就是从超前角 0 度往左(往前)提前多少度。

一般来说,特别是无刷电机 BLDC 梯形波控制算法,在电机高转速情况下,需要在每个换相点前对 6 个 PWM 输入信号(U~Z)插入一定的 Lead Angle 超前角 / 导通角,图 4 是不同超前角 / 导通角,从 0 度、7.5 度、15 度到 30 度,所分别对应的输入信号。

在这里插入图片描述

超前角 / 导通角的调试取决于电机本身参数、电机电压以及电机转速等。一般从经验来说,对于相同电机,在给定的电压下,电机的转速越高,那么就需要更高的超前角 / 导通角。调试合适的 Lead Angle 的关键方法就是在电机带负载情况下,在感兴趣的工作转速(或范围)下找出电机效率最高(输出功率 / 输入功率)、电机噪音和震动最小的情况。

对于带霍尔传感器的电机来说,调整霍尔传感器的物理位置(对应到电子角度)也能起到类似效果。而一般来说,霍尔传感器位于电机内的 PCB 板上,不太容易调整。反过来说,通过调整 Lead Angle 超前角 / 导通角,只要对应好物理角度和电子角度(取决于电机转子的极对数)关系,也能起到类似修正电机内部霍尔传感器物理位置的作用,从而通过简单易行的软件方式(超前角 / 导通角的调整)实现等同于以不方便或复杂的方式调整传感器物理位置的效果。

版权归原作者所有,如有侵权,请联系删除。

  • 3
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的使用Matlab的Sources模块库进行切削振动信号仿真,并提取位移和声音两种频域信号的示例代码: ```matlab % 定义切削参数 f = 1000; % 切削频率 vc = 20; % 切削速度 ap = 0.1; % 切削深度 ae = 0.002; % 切削宽度 rake = 0; % 刀具前 nose = 0; % 刀尖倒半径 k = 1.5; % 切削力系数 kc = 0.8; % 切屑系数 kt = 0.6; % 刀具系数 % 定义工件材料参数 E = 2.1e11; % 弹性模量 nu = 0.3; % 泊松比 rho = 7800; % 密度 % 定义仿真参数 L = 0.05; % 仿真长度 Nx = 4096; % 空间点数 dt = 1e-7; % 时间步长 Nt = 4096; % 时间点数 % 生成切削力信号 t = linspace(0, dt*Nt, Nt); Fc = k * ae * ap * vc * cos(2*pi*f*t); % 生成工件初始状态 x = linspace(0, L, Nx); u0 = zeros(1, Nx); v0 = zeros(1, Nx); % 调用Sources模块库进行仿真 [u, v, p, fs] = sources(x, u0, v0, Fc, dt, rho, E, nu, rake, nose, ae, ap, kc, kt); % 计算位移和声音频域信号 U = fft(u); P = fft(p); % 绘制结果 figure; subplot(2, 1, 1) plot(x, u); title('位移信号'); xlabel('位置 (m)'); ylabel('位移 (m)'); subplot(2, 1, 2) plot(fs/1000, abs(P)); title('声音信号'); xlabel('频率 (kHz)'); ylabel('声音幅值'); ``` 在代码中,我们首先定义了切削参数和工件材料参数,然后定义了仿真参数,包括仿真长度、空间点数、时间步长和时间点数。接着,我们生成了切削力信号,然后调用Sources模块库进行仿真,并计算位移和声音频域信号。最后,我们绘制了位移和声音信号的时域和频域图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值