吸尘器无刷电机驱动板 FOC 控制算法流程设计

2026年5月13日 14:02
浏览量:0
收藏

吸尘器无刷直流电机驱动板(BLDC)需兼顾高速启停响应(吸尘瞬时吸力需求)、宽调速范围(不同清洁场景适配)与高效能耗控制(电池续航优化),传统方波六步换向因转矩脉动大、低速性能差,已无法满足高端吸尘器的性能要求。磁场定向控制(Field-Oriented Control, FOC)通过矢量变换将三相定子电流解耦为励磁分量(id)与转矩分量(iq),实现二者独立闭环控制,可显著降低转矩脉动、提升调速精度与系统效率,成为吸尘器无刷电机驱动的核心方案。

本文基于 STM32G4 系列 MCU,结合吸尘器电机低电感、高转速(最高 30krpm)的特性,设计一套完整的 FOC 控制算法流程,涵盖信号采集、矢量变换、闭环调节、PWM 生成等关键环节,兼顾实时性与控制精度。

 FOC 控制算法核心原理

FOC 的核心思想是将三相静止坐标系(abc)的非线性电流关系,转换为两相旋转坐标系(dq)的线性关系,通过控制 dq 轴电流实现对电机磁场与转矩的精准调控。其理论基础为:

  • 三相定子电流在 abc 坐标系中为正弦变化,通过 Clark 变换转换为两相静止坐标系(αβ)的正交电流;
  • 再通过 Park 变换将 αβ 坐标系电流转换为随转子磁场同步旋转的 dq 坐标系电流,此时 id 对应励磁电流、iq 对应转矩电流;
  • 在 dq 坐标系中,id 与 iq 相互独立,可通过 PI 调节器分别控制,实现 “磁场定向”(使 id=0,转矩仅由 iq 决定),最终通过逆 Park 变换、SVPWM 生成驱动信号。

系统硬件支撑

FOC 算法的实现需依赖以下硬件模块,为算法提供信号输入与执行输出:

  • 位置 / 速度检测模块:采用磁编码器(如纳芯微 MT6816),输出转子位置角 θ 与转速 n,采样频率≥10kHz,位置分辨率≥12 位;
  • 电流采样模块:采用分流电阻 + 运放(如 TI INA282)采样三相定子电流 Ia、Ib、Ic,采样精度≤1%,带宽≥1MHz,适配电机最大电流(通常 20~30A);
  • MCU 核心:STM32G474,内置 FPU 浮点运算单元,主频 170MHz,支持硬件乘法器与 DMA,满足算法实时性要求;
  • 功率驱动模块:采用三相半桥拓扑,MOSFET 选用低导通电阻型号(如英飞凌 IPB05N100C3),搭配栅极驱动芯片(如 IR2104),支持 PWM 频率 10~20kHz。4 FOC 控制算法详细流程

初始化配置

系统上电后,首先完成 MCU 与外设的初始化,为算法运行奠定基础:

MCU 外设配置

  • 配置 ADC 通道(采集 Ia、Ib、Ic 电流),采样模式为定时器触发同步采样;
  • 定时器(如 TIM1)为 PWM 生成模式,设定载波频率 15kHz,死区时间 2μs(防止上下桥臂直通);
  • 配置编码器接口(TIM2),采用正交解码模式,读取转子位置角 θ 与转速 n;
  • 启用 DMA 通道,实现电流采样数据的高速传输,减少 CPU 占用率。
  1. 算法参数初始化
  • 电机参数配置:定子电阻 Rs、定子电感 Ld/Lq、反电动势系数 Ke、极对数 p;
  • PI 调节器参数:id 轴 PI 参数(Kp_id、Ki_id)、iq 轴 PI 参数(Kp_iq、Ki_iq)、转速 PI 参数(Kp_n、Ki_n);
  • 保护阈值配置:过流阈值(25A)、过压阈值(24V)、欠压阈值(18V)、过热阈值(125℃)。

 信号采集与预处理

  1. 电流采集:通过 ADC 同步采样 Ia、Ib 电流(Ic=-Ia-Ib,无需额外采样,降低硬件成本),采样数据经 DMA 传输至 MCU 内存;
  1. 数据滤波:采用滑动平均滤波(窗口大小 8)抑制电流采样噪声,同时通过软件消抖处理异常采样值(如超出合理范围则替换为前一次有效值);
  1. 位置与转速计算:通过编码器接口读取转子位置角 θ(单位:rad),基于相邻两次位置差与采样周期 Ts,计算电机机械转速 n(单位:rpm):

\( n = \frac{|\theta_k - \theta_{k-1}|}{2\pi p Ts} \times 60 \)

其中 θ_k 为当前位置角,θ_{k-1} 为上一周期位置角,p 为电机极对数。

 矢量变换环节

Clark 变换(abc→αβ)

将三相静止坐标系的电流 Ia、Ib、Ic 转换为两相静止坐标系的 αβ 轴电流,消除三相电流的耦合关系。因 Ic=-Ia-Ib,简化变换公式如下:

\( \begin{cases} i_\alpha = \frac{2}{3}(i_a - \frac{1}{2}i_b - \frac{1}{2}i_c) = i_a - \frac{1}{2}i_b \\ i_\beta = \frac{2}{3}(\frac{\sqrt{3}}{2}i_b - \frac{\sqrt{3}}{2}i_c) = \frac{\sqrt{3}}{2}i_b \end{cases} \)

变换后得到正交的 iα、iβ 电流,为后续 Park 变换做准备。

 Park 变换(αβ→dq)

将 αβ 静止坐标系的电流转换为 dq 旋转坐标系的电流,旋转角度由转子位置角 θ 提供,实现电流解耦。变换公式:

\( \begin{cases} i_d = i_\alpha \cos\theta + i_\beta \sin\theta \\ i_q = -i_\alpha \sin\theta + i_\beta \cos\theta \end{cases} \)

其中 id 为励磁电流,iq 为转矩电流。在 FOC 控制中,通过控制 id=0,使电机转矩仅与 iq 成正比,实现线性转矩控制。

 闭环调节环节

闭环调节分为转速环电流环,采用双 PI 闭环结构,确保系统动态响应与稳态精度。

转速环 PI 调节

输入为转速给定值 n_ref(由吸尘器档位控制,如 1 档 = 5krpm、2 档 = 15krpm、3 档 = 25krpm)与实际转速 n 的差值 Δn,输出为 iq 轴电流给定值 iq_ref:

\( \Delta n = n_{\text{ref}} - n \)

\( i_{q_{\text{ref}}} = K_{p_n} \Delta n + K_{i_n} \int \Delta n dt \)

为防止 iq_ref 过大导致电机过流,需设置限幅(通常 ±15A),同时加入转速前馈补偿,提升动态响应速度。

 电流环 PI 调节

输入为电流给定值(id_ref=0,iq_ref 由转速环输出)与实际电流(id、iq)的差值,输出为 dq 轴电压给定值 ud_ref、uq_ref:

\( \Delta i_d = i_{d_{\text{ref}}} - i_d \)

\( \Delta i_q = i_{q_{\text{ref}}} - i_q \)

\( u_{d_{\text{ref}}} = K_{p_id} \Delta i_d + K_{i_id} \int \Delta i_d dt - \omega L_q i_q \)

\( u_{q_{\text{ref}}} = K_{p_iq} \Delta i_q + K_{i_iq} \int \Delta i_q dt + \omega L_d i_d + \omega K_e \)

其中 ω 为电机电角速度(ω=p×2πn/60),加入反电动势补偿(ωKe)与交叉耦合补偿(-ωLq iq、ωLd id),可消除 dq 轴电流的耦合影响,提升电流环响应速度。

 逆矢量变换与 SVPWM 生成

 逆 Park 变换(dq→αβ)

将 dq 坐标系的电压给定值 ud_ref、uq_ref 转换为 αβ 坐标系的电压给定值 uα_ref、uβ_ref,为 SVPWM 提供输入:

\( \begin{cases} u_\alpha = u_d \cos\theta - u_q \sin\theta \\ u_\beta = u_d \sin\theta + u_q \cos\theta \end{cases} \)

 SVPWM 生成

空间矢量脉宽调制(SVPWM)通过控制三相桥臂的开关状态,生成逼近圆形旋转磁场的电压矢量,相比正弦 PWM 具有更高的电压利用率(提升 15.47%)与更低的谐波畸变率。

实现步骤:

  1. 计算电压空间矢量的模长 U1 与扇区角 φ:

\( U_1 = \sqrt{u_\alpha^2 + u_\beta^2}, \quad \phi = \arctan2(u_\beta, u_\alpha) \)

  1. 根据 φ 判断电压矢量所在扇区(共 6 个扇区);
  1. 计算相邻基本矢量的作用时间 T1、T2 与零矢量作用时间 T0(T0=Ts-T1-T2,Ts 为 PWM 周期);
  1. 分配各矢量的作用顺序,生成三相 PWM 信号(PA8、PA9、PA10),驱动 MOSFET 桥臂导通与关断。

保护与故障处理

为确保系统安全稳定运行,需在算法中加入实时保护机制:

  1. 过流保护:若 Ia、Ib 电流超过 25A,立即封锁 PWM 输出,延时 10ms 后重启;
  1. 过压 / 欠压保护:检测母线电压(Vbus),若 Vbus>24V 或 Vbus,封锁 PWM 并报警;
  1. 过热保护:通过 MCU 内置温度传感器检测芯片温度,若温度 > 125℃,降低输出转矩或停机;
  1. 编码器故障保护:若连续 5 个周期未检测到编码器信号,判定为故障,封锁 PWM 并提示用户。

算法优化策略

针对吸尘器电机高转速、低电感的特性,对算法进行以下优化,提升控制性能:

  1. PI 参数自整定:通过离线辨识电机参数,结合模糊控制算法,根据转速与负载变化动态调整 PI 参数,避免低速振荡与高速超调;
  1. 弱磁扩速:当电机转速接近额定转速时,适当减小 id_ref(id<0),利用弱磁效应提升最高转速,满足吸尘器强力模式需求;
  1. 死区补偿:因 MOSFET 开关延迟存在死区时间,导致输出电压畸变,通过测量死区时间,在 PWM 生成环节加入电压补偿量,修正 uα、uβ 给定值;
  1. 低功耗优化:在吸尘器待机或轻载时,降低 PWM 频率至 10kHz,关闭冗余外设,减少 MCU 与驱动电路的功耗。

实验验证

基于上述算法流程,搭建吸尘器无刷电机驱动板实验平台,电机参数:极对数 p=4,定子电阻 Rs=0.1Ω,定子电感 Ld=Lq=0.5mH,额定转速 20krpm,额定电流 10A。

实验结果:

  • 调速范围:300~30000rpm,稳态转速误差≤±1%;
  • 转矩脉动:≤5%,低速运行(300rpm)无明显振动;
  • 动态响应:转速从 5krpm 升至 20krpm 的响应时间≤50ms,无超调;
  • 效率:在额定负载下,系统效率≥88%,相比传统方波六步换向提升 10%。

吸尘器无刷电机 FOC 控制算法流程,通过矢量变换实现电流解耦,双 PI 闭环确保控制精度,SVPWM 提升电压利用率,同时加入完善的保护机制与优化策略,满足吸尘器高速、高效、低噪声的控制需求。该算法基于 STM32G4MCU 实现,硬件成本低、实时性强,可直接应用于中高端吸尘器无刷电机驱动板的设计与开发。