2. 调试环境搭建:示波器设置、电流探头校准、PWM信号注入方法

做电流环调试,第一步不是写代码,而是把「眼睛」擦亮。示波器和电流探头就是你的眼睛。眼睛花了,后面再努力也是白搭。我见过不少工程师,花了两周调参数,最后发现是探头没校准——白白浪费时间。

这一节,我带你把调试环境搭扎实。说白了,就是三件事:示波器怎么设、电流探头怎么校、PWM信号怎么注进去

2.1 示波器设置:别让噪声骗了你

示波器设置看似简单,其实坑很多。我个人习惯,拿到示波器先做三件事:

  1. 带宽限制:测电流环时,我通常把带宽限制在20MHz。为什么?因为电机驱动现场的开关噪声、辐射干扰,高频分量特别多。你不限带宽,看到的波形全是毛刺,根本没法看。
  2. 采样率:至少设到1GSa/s。你想想看,PWM频率如果是10kHz,一个周期才100μs。采样率不够,电流纹波的细节根本抓不住。
  3. 触发模式:用PWM同步信号做触发。我习惯把触发源设在PWM的上升沿,这样每次看到的电流波形都是从同一个开关周期开始,便于对比。
我的小技巧:如果示波器有「高分辨率模式」(Hi-Res),记得打开。它能在不降低带宽的前提下,有效抑制随机噪声。我在一个伺服项目里,靠这个模式把电流波形的信噪比提升了将近3倍。

2.2 电流探头校准:这一步省不得

电流探头是电流环调试的核心工具。但很多人拿来就用,结果测出来的数据偏差很大。为什么会这样?因为探头有零点漂移增益误差

校准步骤其实不复杂,我总结成四步:

  1. 消磁:把探头夹在空气中,按下「Degauss」按钮。这一步能消除探头磁芯的剩磁。我曾经有一次忘了消磁,测出来的直流分量偏了200mA,查了半天才发现。
  2. 零点校准:消磁后,把探头夹在无电流的导线上,按下「Zero」按钮。注意,导线必须断开负载,确保没有电流流过。
  3. 增益校准:用已知电流源(比如精密电阻+电压源)产生一个1A的直流电流,夹住导线,调整探头上的增益旋钮,让示波器读数等于1A。
  4. 相位校准:这个很多人忽略。用信号发生器输出一个1kHz的正弦波电流,夹住导线,观察示波器上电压和电流的相位差。理想情况下应该是0°。如果有偏差,用探头上的相位补偿旋钮调回来。
注意:电流探头有最大电流限制和频率范围。比如常用的TCP0030A,最大连续电流30A,峰值50A,带宽120MHz。超过这个范围,测量结果会严重失真,甚至损坏探头。

2.3 PWM信号注入方法:把激励送进去

调试电流环,你需要给电机注入特定的PWM信号,观察电流响应。常用的方法有三种:

方法 适用场景 优点 缺点
直接修改占空比 开环测试 简单直接 无法精确控制频率
注入正弦波调制 频率响应测试 可扫频分析 需要DSP计算
注入阶跃信号 时域响应测试 直观看到上升时间 容易引起过流

我个人最常用的是注入正弦波调制。具体做法是:在电流环的给定值上叠加一个正弦波信号,频率从低到高扫过去,观察实际电流的幅值和相位变化。这样就能画出电流环的波特图,带宽一目了然。

代码实现上,我一般这样写:

// 注入正弦波到电流给定
float inject_sine_wave(float amplitude, float frequency, uint32_t time_us) {
    float omega = 2.0f * 3.14159f * frequency;
    float t = (float)time_us / 1e6f;  // 微秒转秒
    return amplitude * sinf(omega * t);
}

// 在主循环中调用
void current_loop_task(void) {
    static uint32_t timer = 0;
    float injection = inject_sine_wave(0.1f, 100.0f, timer);  // 100Hz, 10%幅值
    current_ref += injection;  // 叠加到给定值
    // ... 执行PI控制 ...
    timer += 100;  // 假设100μs执行一次
}

关键点:注入信号的幅值不要太大。我一般控制在额定电流的5%~10%。太大了容易触发过流保护,太小了信噪比不够。另外,扫频时从低频开始,比如10Hz,逐步升到电流环截止频率的2~3倍。

2.4 知识体系总览

下面这张图,把调试环境搭建的核心逻辑串起来了。你照着这个流程走,基本不会漏掉什么。

调试环境搭建核心流程 示波器设置 带宽限制 | 采样率 | 触发 电流探头校准 消磁 | 零点 | 增益 | 相位 PWM信号注入 正弦波 | 阶跃 | 占空比 各环节关键参数 示波器:带宽20MHz,采样率≥1GSa/s,触发源选PWM上升沿 探头:消磁后零点校准,用1A直流源做增益校准,1kHz正弦波做相位校准 注入:幅值5%~10%额定电流,扫频从10Hz到2~3倍截止频率 验证:观察电流波形是否平滑,相位延迟是否在预期范围内

2.5 避坑指南

调试环境搭建,我踩过的坑不少。挑几个典型的跟你说说:

  • 探头地线太长:我曾经用了一根15cm长的地线夹,结果测出来的电流波形全是振铃。后来换成短地线(3cm以内),波形立马干净了。记住,地线就是天线,越短越好。
  • 忘记设置触发延迟:示波器触发后,波形默认从触发点开始显示。如果你想看PWM导通期间的电流细节,记得把触发延迟设到几百微秒,把波形「拉」到屏幕中间。
  • 注入信号频率太高:有一次我想测电流环的高频响应,直接注入了5kHz的正弦波。结果电流纹波和注入信号混在一起,根本分不清。后来我先把PWM频率降到2kHz,再注入信号,效果就好多了。
我的习惯:每次调试前,我都会用示波器的「自检」功能跑一遍。虽然麻烦点,但能确保仪器本身没问题。另外,电流探头用完后记得放回保护盒,磁芯很脆弱,摔一下可能就废了。

好了,环境搭好了,下一节我们就可以正式开始调电流环了。记住一句话:工欲善其事,必先利其器。示波器和探头就是你的「器」,别在这上面省钱省时间。


公众号:蓝海资料掘金营,微信deep3321