2. 电流采样电路调试

任务目标

在FOC控制系统中,电流采样是闭环控制的基础。本案例要求使用示波器检查三相电流采样电阻上的电压波形,确认采样信号无异常噪声且幅值符合预期,为后续FOC算法提供可靠的电流反馈。

硬件环境与测量点

以典型的三相逆变器下桥臂采样方案为例(低端采样),采样电阻(如10mΩ)串联在逆变器下桥臂MOSFET源极与功率地之间。三相采样电压分别记为V_ia、V_ib、V_ic,经运放放大后送入MCU的ADC引脚。示波器探头应直接测量运放输出端(即ADC输入引脚处),而非采样电阻两端,以包含完整信号链路的噪声情况。

调试步骤

  1. 断开电机负载,仅给控制板上电,确认母线电压稳定(如24V)。
  2. 将示波器探头(1×或10×档位,需匹配)连接至A相运放输出测试点,地线夹就近接模拟地(AGND),避免与功率地形成大环路。
  3. 设置示波器:时间轴10ms/div,电压档位根据运放输出范围调整(如500mV/div),触发模式设为单次或自动,触发电平设为0V附近。
  4. 通过MCU调试接口发送PWM开环指令(占空比10%,频率10kHz),使电机轴缓慢转动或静止输出。
  5. 观察并记录A相波形,随后依次测量B相、C相。

关键完整代码(PWM开环输出与ADC采样触发)

以下代码用于产生固定占空比的PWM输出,使逆变器工作,便于示波器观察采样波形。该代码基于STM32 HAL库,仅包含核心配置与输出逻辑。

// main.c 核心片段 —— 产生10kHz、10%占空比PWM用于调试
#include "stm32f4xx_hal.h"

// 定时器句柄(假设TIM1用于PWM输出,通道1/2/3对应U/V/W相上桥臂)
TIM_HandleTypeDef htim1;

void PWM_Debug_Init(void) {
    // 时钟使能已在SystemClock_Config()中完成
    htim1.Instance = TIM1;
    htim1.Init.Prescaler = 84 - 1;        // 84MHz/84 = 1MHz计数频率
    htim1.Init.Period = 100 - 1;          // 1MHz/100 = 10kHz PWM频率
    htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
    htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    HAL_TIM_PWM_Init(&htim1);

    TIM_OC_InitTypeDef sConfigOC = {0};
    sConfigOC.OCMode = TIM_OCMODE_PWM1;
    sConfigOC.Pulse = 10;                 // 占空比 = 10/100 = 10%
    sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
    sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;

    // 仅配置上桥臂三通道(下桥臂恒关断,采样电阻无电流)
    HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
    HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2);
    HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3);
}

void PWM_Debug_Start(void) {
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
}

int main(void) {
    HAL_Init();
    SystemClock_Config();   // 系统时钟配置为84MHz
    PWM_Debug_Init();
    PWM_Debug_Start();

    while (1) {
        // 空循环,PWM持续输出,便于示波器观察
    }
}

说明:上述代码仅用于产生调试用PWM信号。实际FOC运行时,下桥臂在PWM周期内会短暂导通,采样窗口需避开开关瞬态。本调试步骤中下桥臂恒关断,因此采样电阻上无电流,运放输出应为0V附近直流——这用于验证采样电路的偏置与噪声底。若要观察真实电流波形,需接入电机并运行FOC开环强拉(另见后续案例),本案例聚焦于采样电路本身。

验证方法与判定标准

  • 零电流噪声检查:在上述代码运行下(下桥臂关断),示波器显示A/B/C三相运放输出均应为平滑直流,幅值接近0V(或运放参考电压Vref,如1.65V,取决于偏置设计)。波形上不应出现毛刺、振铃或周期性尖峰。若存在高频噪声,检查探头接地方式、采样电阻布局及运放供电去耦。
  • 幅值正确性:若运放采用同相放大,增益为G = 1 + R2/R1,则输出V_out = V_ref + I_load × R_sense × G。在零电流时,输出应等于V_ref(典型1.65V),偏差应小于±20mV。若偏差过大,检查运放偏置电阻网络。
  • 通道一致性:三路输出直流电平应一致(差异<10mV),否则说明采样电阻或运放参数不一致,需检查硬件。
  • 通过条件:三相波形均无可见噪声(示波器带宽限制20MHz时峰峰值<50mV),且直流偏置与设计值偏差在允许范围内,即可判定采样电路调试通过。

常见问题

  • 波形出现尖峰毛刺:多为示波器探头地线过长引入共模噪声,应使用接地弹簧,缩短地线环路。
  • 输出直流电平异常:检查运放供电是否正常、参考电压Vref是否准确、采样电阻是否虚焊。
  • 三相波形不一致:重点检查B相和C相的PCB走线是否与A相等长,运放反馈电阻是否焊错。

完成上述检查后,采样电路即可认为具备可靠采集电流信号的基础,可进入后续FOC开环调试阶段。