4、电流环建模:霍尔传感器、运放、PWM驱动与电机的简化模型

做电流环振荡分析,第一步就是把物理世界的东西,变成我们能算的数学表达式。说白了,就是给每个环节建个简化模型。

我刚开始搞这个的时候,总想把模型建得特别精确。结果呢?仿真跑一天,算出来的东西跟实际对不上。后来我明白了——工程建模,不是越细越好,而是抓住主要矛盾。

这一章,我们就来拆解电流环的四个核心模块:霍尔传感器、运放调理、PWM驱动、电机本体。每个模块我都会给出一个工程上够用的简化模型。

核心观点:电流环振荡分析,90%的功夫在建模阶段。模型建对了,后面的补偿设计就是套公式。模型建错了,你调三天三夜也找不到根因。

4.1 霍尔电流传感器模型

霍尔传感器,说白了就是个带延迟的比例环节。

它的物理原理是:电流流过导体,产生磁场,霍尔元件感应磁场,输出一个电压。这个过程不是瞬时的,有延迟。

我习惯用一阶惯性环节来近似:

G_H(s) = K_H / (τ_H * s + 1)

其中:

  • K_H:灵敏度,单位一般是 mV/A。比如 ACS712 的典型值是 185 mV/A。
  • τ_H:时间常数,由传感器带宽决定。τ_H = 1 / (2π * f_BW)。

举个例子,一个带宽 200 kHz 的霍尔传感器:

τ_H = 1 / (2π * 200e3) ≈ 0.8 μs

这个 0.8 μs 的延迟,在低频段(比如 1 kHz 以下)可以忽略。但到了开关频率附近(10~50 kHz),它就会引入明显的相位滞后。

我的经验:选型时别只看带宽参数。我曾经踩过一个坑——某款传感器标称带宽 500 kHz,但实际在 100 kHz 时相位已经偏了 15°。后来发现是封装寄生参数导致的。所以,关键参数一定要实测验证。

4.2 运放调理电路模型

霍尔传感器的输出信号,通常需要经过运放调理——放大、偏置、滤波。这个环节的模型,取决于你用的电路拓扑。

最常见的是一阶低通滤波加同相放大:

G_OP(s) = K_OP / (τ_OP * s + 1)

参数说明:

  • K_OP:直流增益,由反馈电阻决定。K_OP = 1 + R_f / R_g。
  • τ_OP:滤波时间常数,τ_OP = R_f * C_f。

举个例子,一个典型的调理电路:R_f = 10 kΩ,C_f = 1 nF,R_g = 1 kΩ。

K_OP = 1 + 10k / 1k = 11
τ_OP = 10k * 1n = 10 μs
截止频率 f_c = 1 / (2π * 10μ) ≈ 15.9 kHz

这个 15.9 kHz 的截止频率,刚好用来滤除 PWM 开关噪声。但要注意——它也会把电流环的带宽限制住。

避坑指南:我曾经见过一个设计,运放滤波截止频率设得太低(2 kHz),结果电流环带宽怎么也上不去。后来把截止频率改到 20 kHz,带宽从 500 Hz 直接拉到 3 kHz。记住:运放滤波是电流环带宽的第一道瓶颈。

4.3 PWM 驱动与功率级模型

PWM 驱动级,包括死区时间、开关延迟、驱动 IC 的传播延迟。这个环节的模型,我通常用一个纯延迟环节 + 零阶保持器来近似。

G_PWM(s) = K_PWM * e^(-T_d * s) * (1 - e^(-T_sw * s)) / (T_sw * s)

参数说明:

  • K_PWM:增益,K_PWM = V_bus / V_pwm_amp。比如母线电压 48 V,PWM 幅值 3.3 V,则 K_PWM ≈ 14.55。
  • T_d:总延迟时间,包括死区时间 + 驱动 IC 传播延迟 + 功率管开关延迟。
  • T_sw:PWM 开关周期。

在低频段(远低于开关频率),这个模型可以简化为:

G_PWM(s) ≈ K_PWM * e^(-T_d * s)

也就是说,PWM 驱动级在低频段就是一个比例环节加一个延迟。

我的习惯:做电流环设计时,我会把 T_d 设为一个保守值——比如实际测量是 200 ns,我取 300 ns。这样设计出来的补偿器,留有余量,不容易振荡。

4.4 电机本体模型

电机本体,对于电流环来说,就是一个电阻-电感串联的负载。它的传递函数是:

G_M(s) = 1 / (R + L * s)

或者写成标准形式:

G_M(s) = (1/R) / (τ_M * s + 1)

其中:

  • R:电机相电阻(包括线缆电阻和接触电阻)。
  • L:电机相电感(包括自感和互感)。
  • τ_M:电气时间常数,τ_M = L / R。

举个例子,一个典型的直流无刷电机:R = 0.5 Ω,L = 100 μH。

τ_M = 100μ / 0.5 = 200 μs
电气截止频率 f_e = 1 / (2π * 200μ) ≈ 796 Hz

这个 796 Hz 的截止频率,就是电机本身的电气响应速度。电流环的带宽,理论上不能超过这个频率的 1/5 ~ 1/10。

注意:电机参数不是恒定的。温度升高时,R 会增大(铜的电阻温度系数约 0.0039 /°C)。L 会随电流饱和而下降。我建议在设计时,用最恶劣工况下的参数——比如高温时的 R,大电流时的 L。

4.5 完整电流环模型

把上面四个模块串起来,就得到了电流环的开环传递函数:

G_OL(s) = G_H(s) * G_OP(s) * G_PWM(s) * G_M(s)

代入各模块的简化模型:

G_OL(s) = [K_H / (τ_H * s + 1)] * [K_OP / (τ_OP * s + 1)] * [K_PWM * e^(-T_d * s)] * [(1/R) / (τ_M * s + 1)]

合并常数项:

G_OL(s) = K_total * e^(-T_d * s) / [(τ_H * s + 1) * (τ_OP * s + 1) * (τ_M * s + 1)]

其中:

K_total = K_H * K_OP * K_PWM / R

这个模型,就是电流环振荡分析的基础。三个时间常数(τ_H、τ_OP、τ_M)和一个延迟(T_d),决定了系统的稳定性和带宽。

关键洞察:电流环的相位裕度,主要被三个因素吃掉:

  1. 电机时间常数 τ_M:低频段的主要相位滞后源。
  2. 运放滤波时间常数 τ_OP:中频段的相位杀手。
  3. PWM 延迟 T_d:高频段的相位破坏者。

哪个因素最严重,哪个就是振荡的根因。

4.6 模型验证:实测 vs 仿真

模型建好了,怎么知道它准不准?我的做法是:实测频率响应,跟仿真对比。

具体步骤:

  1. 断开电流环(让控制器输出固定占空比)。
  2. 在 PWM 指令上叠加一个正弦扰动(频率从 10 Hz 扫到 10 kHz)。
  3. 用示波器测量实际电流响应。
  4. 用 FFT 提取幅值和相位,画出实测波特图。
  5. 跟仿真模型对比。

如果实测和仿真在 1 kHz 以内误差小于 3 dB 和 10°,说明模型可用。如果偏差大,就要回头检查参数。

我的经验:有一次实测和仿真在 2 kHz 处差了 20°。查了半天,发现是霍尔传感器的安装位置引入了额外的寄生电感。后来在模型里加了一个 50 nH 的寄生电感,就对上了。所以,模型验证不是一次性的,要反复迭代。

4.7 本章小结:模型参数速查表

为了方便你快速搭建模型,我把四个模块的关键参数整理成了一张表:

模块 模型形式 关键参数 典型值 对振荡的影响
霍尔传感器 一阶惯性 K_H, τ_H 185 mV/A, 0.8 μs 高频相位滞后
运放调理 一阶低通 K_OP, τ_OP 11, 10 μs 中频相位滞后
PWM 驱动 延迟 + 零阶保持 K_PWM, T_d 14.55, 300 ns 高频相位破坏
电机本体 RL 串联 R, L, τ_M 0.5 Ω, 100 μH, 200 μs 低频相位滞后

有了这个模型,下一章我们就可以开始做稳定性分析了——看看相位裕度够不够,增益裕度够不够,振荡点在哪里。

记住:模型是工具,不是真理。它帮你理解系统,但不能替代实测。我见过太多人,仿真跑得漂亮,一上电就振荡。原因就是模型没考虑寄生参数、温度变化、老化效应。所以,模型要建,但更要会验证和修正。

电流环四模块串联模型 霍尔传感器 G_H(s) = K_H/(τ_H·s+1) 运放调理 G_OP(s) = K_OP/(τ_OP·s+1) PWM 驱动 G_PWM(s) = K_PWM·e^(-T_d·s) 电机本体 G_M(s) = (1/R)/(τ_M·s+1) I_ref I_fb 开环传递函数 G_OL(s) = G_H(s) · G_OP(s) · G_PWM(s) · G_M(s) = K_total · e^(-T_d·s) / [(τ_H·s+1)(τ_OP·s+1)(τ_M·s+1)] 其中 K_total = K_H · K_OP · K_PWM / R