无刷直流电机(BLDC)因其高效率、长寿命和低维护需求,在工业自动化、家电和汽车电子等领域广泛应用。传统BLDC控制依赖霍尔传感器检测转子位置,但传感器增加了系统复杂性和故障率。无传感器控制技术通过检测电机运行时的反电动势(BEMF)来确定转子位置,实现了更简洁可靠的解决方案。
当BLDC电机旋转时,定子绕组切割转子磁场会产生反电动势,其幅值与转速成正比,相位与转子位置直接相关。BEMF的数学表达式为:
code复制Back EMF = N × l × r × B × ω
其中N为绕组匝数,l为转子长度,r为转子半径,B为磁密,ω为角速度。对于已制造完成的电机,前四项为常数,因此BEMF仅与转速相关。
检测BEMF过零点的三种典型方法:
半桥电压比较法:将绕组电压与直流母线电压的一半进行比较。这种方法硬件简单,但受电机三相不对称性影响较大,可能导致相位偏差。
虚拟中性点法:通过电阻网络生成虚拟中性点,将各相电压与之比较。电阻值通常选择100kΩ级,需满足:
ADC采样法:利用MCU内置ADC直接采样BEMF电压,通过软件算法检测过零点。PIC18F2431的10位ADC在24V系统下分辨率约23mV,足以检测中高速时的BEMF信号。
实际电路设计时需特别注意:
低通滤波:PWM开关噪声(通常20kHz以上)会干扰BEMF检测。二阶RC滤波器(如27kΩ+47nF)可将截止频率设为约125Hz,有效抑制高频噪声而不影响BEMF信号。
电压分压:24V电机系统需通过电阻分压(如27kΩ/2.2kΩ)将信号降至MCU可接受的0-5V范围。分压比计算:
code复制Vout = Vin × R2/(R1+R2) = 24×2.2/(27+2.2) ≈ 1.81V
保留足够裕量应对BEMF尖峰。
比较器选择:Microchip MCP6544等低功耗比较器适合此应用,其典型响应时间1μs远快于电机的电气周期(如10极电机在3000RPM时约400μs)。
PIC18F2431凭借其专用外设成为无传感器BLDC控制的理想选择。其关键特性包括:
电机驱动采用6路PWM输出控制三相全桥,配置要点:
死区时间设置:防止上下管直通,根据MOSFET开关特性(如IRFR2407的turn-off延迟约60ns),建议设置1-2μs死区:
c复制PTCON2bits.DTCY = 0b01; // 死区周期=1*PWM周期/128
PWM频率选择:综合考虑开关损耗和电流纹波,通常选择15-20kHz。时钟源为10MHz时:
code复制PWM周期 = (PTMRPR + 1) × 4 × Tosc × Prescaler
20kHz => PTMRPR ≈ 124
独立模式配置:允许每对PWM独立控制,便于实现电子换相:
c复制PWMCON1bits.PMOD = 1; // 独立模式
MFM模块集成了输入捕捉和数字滤波功能,极大简化BEMF信号处理:
数字滤波配置:根据转速动态调整滤波强度:
c复制DFLTCONbits.CKDF = 0b01; // 时钟分频比
DFLTCONbits.BLANK = 0b10; // 消隐时间
输入捕捉设置:使用IC1-IC3捕捉三个BEMF过零点:
c复制CAPCONbits.ICM = 0b011; // 输入捕捉模式
故障保护:FAULTA引脚连接过流信号,可在μs级关闭PWM输出:
c复制FLTCONFIGbits.FAULTEN = 1; // 使能故障保护
由于静止时BEMF为零,必须采用特殊启动方法:
阶段一(开环加速):
code复制Timer1周期 = 60/(RPM×极对数×6) = 5ms
阶段二(同步过渡):
进入闭环后,系统通过以下流程维持同步:
过零点检测:
c复制void __interrupt() IC1_ISR() {
if(IC1BUF > threshold) {
Timer1 = 60度时间值;
// 换相逻辑
}
}
换相时序控制:
抗干扰措施:
启动反转问题:
高速失步问题:
滤波器优化:
过零点补偿:
c复制const int8_t phase_comp[8] = {0,2,3,5,7,8,10,12};
电流限制设置:
code复制Vlimit = Ilimit × Rshunt × Gain = 1.5×0.1×10 = 1.5V
对于需要更低速运行的场合,可考虑以下增强措施:
这套方案已在24V/2500RPM的Hurst电机上验证,实测可在10%-100%额定转速范围内稳定运行,速度波动小于±2%。相比传统霍尔方案,BOM成本降低约15%,MTBF提高30%以上。