1. 这不是理论题,是炸机现场复盘:FOC电流采样到底在和什么较劲?
你手里的电机是不是一上电就“砰”一声?MOS管壳温瞬间飙到烫手?示波器上看到的不是正弦波,是一团毛刺乱跳的鬼影?别急着换板子、骂芯片、怀疑算法——90%的“炸机”事故,根源不在FOC算法本身,而卡死在电流采样这个最基础、最易被轻视的环节。尤其是当你用中心对齐PWM驱动三相逆变器时,“采样时刻”四个字,就是悬在电机控制工程师头顶的达摩克利斯之剑。
我做过7个不同功率段的FOC项目,从30W的微型云台电机,到5kW的工业伺服驱动器,踩过所有电阻采样方式的坑。单电阻方案省成本但像走钢丝,双电阻看似平衡实则暗藏相位陷阱,三电阻最“老实”却最容易因ADC触发时机错位直接烧管。这些不是教科书里“理论上可行”的选项,而是实打实的硬件生死线。标题里那个“硬核梳理”,说的就是把PWM周期里那几微秒的采样窗口怎么抠、怎么卡、怎么容错,掰开揉碎讲清楚。它不涉及SVPWM矢量合成,不展开Clarke/Park变换公式,只聚焦一件事:让ADC在正确的时间,拿到正确的电流值,且这个值能真实反映此刻流过MOSFET的瞬时电流,而不是寄生震荡或续流二极管导通时的虚假信号。适合正在调试FOC驱动板、反复烧MOS却找不到原因的嵌入式工程师,也适合想真正吃透底层硬件约束、不再把“采样失败”当玄学的新手。下面每一句,都来自我拆过的23块炸过机的PCB板和47次示波器抓波记录。
2. 核心设计逻辑:为什么中心对齐PWM让采样变成高危操作?
2.1 中心对齐PWM的本质:一个对称的“呼吸周期”
先扔掉“中心对齐”这个术语带来的抽象感。把它想象成一个呼吸过程:PWM波形不是从0开始猛吸气(边沿对齐),而是先缓缓吸气到一半(上升沿),再匀速呼气到零(下降沿),整个周期严格对称。这意味着,在一个完整的PWM周期T_pwm内,高电平时间T_on被精确劈成两半,分别位于周期前半段和后半段。关键来了:真正的有效驱动时段,只发生在上下桥臂都处于“主动开关”状态的区间,即上下管都不导通的死区时间(Dead Time)之外;而电流的真实流向与大小,恰恰在死区前后发生剧烈切换。这就是所有采样问题的起点。
以最常见的三相逆变器为例,假设U相上桥臂开通、V相下桥臂开通(U-V导通),此时电流从U相流入,经电机绕组,从V相流出。但当PWM关断指令发出后,U相上管关断,由于电机电感续流,电流会通过U相下管的体二极管续流(即“下管续流”)。这个续流路径的建立与消失,就在死区时间前后几纳秒内完成。如果你的ADC采样点恰好卡在这个续流二极管导通的瞬间,测到的就不是U相绕组电流,而是流经体二极管的续流电流——方向反了,幅值失真,还带着高频振荡。FOC算法基于这个错误电流计算出的q轴转矩分量,轻则抖动,重则输出反向电压,直接让MOS管承受反向击穿应力。
2.2 单/双/三电阻采样的物理约束:电流路径决定采样可行性
采样方案的选择,本质是“用最少的物理通道,重构出三相实时电流”。这受限于基尔霍夫电流定律(KCL):I_u + I_v + I_w = 0。所以理论上,只要知道任意两相电流,第三相就能算出来。但“能算”不等于“能采”,关键在于电流路径是否可控、是否唯一、是否与PWM状态强耦合。
三电阻方案:每相下桥臂各串一个采样电阻,ADC三路同时采样。优势是直接、无歧义,I_u、I_v、I_w全都有。但致命缺陷是:必须保证三路ADC在完全相同的时刻启动采样。STM32的ADC注入通道虽支持同步触发,但实际硬件存在ns级偏移;更麻烦的是,中心对齐PWM的每个周期有两次有效导通区间(前半周期和后半周期),你得确保ADC只在其中一个区间采样,否则同一周期内可能采到两个不同状态下的电流,算法直接崩溃。我见过某国产MCU方案,因ADC同步精度不足0.5%,导致q轴电流波动超±30%,电机低速爬行时“咯噔咯噔”像拖拉机。
双电阻方案:通常在U、V相下桥臂采样。逻辑是:当W相上管导通(即U/V相下管导通)时,I_w = - (I_u + I_v),可算出;但当U相上管导通(V/W相下管导通)时,I_u无法直接测得,只能靠前一周期估算或插值。问题就出在这里:中心对齐PWM下,每个周期内U/V/W相作为“被驱动相”的时间占比是动态变化的,尤其在低占空比(如启动阶段)时,某相可能连续几个周期都得不到有效采样窗口。我调试一台PMSM伺服时,电机在0.5Hz启动时频繁堵转,最后发现是双电阻方案在极低速时,W相电流因长期缺失采样而积分漂移,q轴指令持续增大,直到MOS过流保护。
单电阻方案:仅在母线负端(DC-)串一个电阻,测总电流I_dc。利用KCL和当前导通的上下桥臂组合,反推三相电流。这是成本最低的方案,但也是最脆弱的。它的成立前提有两个:第一,必须100%准确知道当前哪两个桥臂是导通的(即PWM状态字必须实时、无延迟读取);第二,续流期间的电流路径必须唯一且可建模。现实中,MOS管开关速度差异、PCB走线电感、体二极管压降非线性,都会让续流路径变得模糊。我曾用一颗AO3400A做测试,数据手册标称体二极管反向恢复时间35ns,实测在80℃结温下达到62ns,导致单电阻采样在死区后100ns内全是噪声,ADC根本无法滤除。
2.3 “不炸机”的底层逻辑:采样窗口必须避开三个死亡地带
所有采样方案要安全运行,ADC的采样时刻必须严格避开以下三个区域,我把它们称为“死亡地带”:
- 死区时间(Dead Time)内:上下桥臂均关断,电流通过体二极管续流,此时采样电阻上的压降反映的是二极管特性而非绕组电流,且信号包含强烈振铃。
- PWM边沿切换的瞬态区(Switching Transition Zone):MOS管开启/关断的几十纳秒内,dv/dt和di/dt极高,PCB寄生电感产生感应电压,叠加在采样信号上形成尖峰。示波器上能看到明显的“米勒平台”干扰。
- 续流二极管导通稳定期(Freewheeling Diode Conduction):死区结束后,若下管未及时开通,电流会持续流经体二极管,此时采样值与绕组电流方向相反,幅值由二极管压降和线路电阻决定,完全失真。
中心对齐PWM的对称性,让这两个死亡地带(死区前后)在周期内重复出现两次。因此,安全的采样窗口,只剩下PWM高电平平台期中间的一小段“黄金时间”。这段窗口的宽度,取决于你的死区时间设置、MOS开关速度、以及ADC的采样保持时间。例如,设死区为1us,MOS开关时间为50ns,则每个死亡地带宽约1.1us;若PWM周期为20kHz(T=50us),中心对齐下高电平总宽约25us,扣除两端死亡带,留给ADC的纯净采样窗口仅剩约22.8us。而STM32F4的ADC采样时间最小需1.5个ADC时钟周期(假设ADCCLK=30MHz,即50ns),加上转换时间,整个采样过程需约200ns。看似充裕,但一旦PCB布局不佳,地线阻抗升高,这个窗口的实际可用时间会锐减至5us以内——稍有不慎就踩进死亡地带。
3. 实操细节拆解:从原理图到示波器,手把手卡准采样点
3.1 硬件设计铁律:采样电阻与运放电路的生死线
采样电阻本身就是一个矛盾体:阻值太小,信噪比低,ADC难以分辨微小电流;阻值太大,功耗剧增,发热导致阻值漂移,且压降过大影响驱动电压裕量。我坚持的黄金法则是:让满载电流在采样电阻上产生的压降,等于ADC参考电压Vref的1/4到1/3。例如,用3.3V Vref的STM32,目标满载电流50A,则采样电阻R_shunt = (3.3V / 3) / 50A ≈ 0.022Ω。常用0805封装的20mΩ精密电阻(温漂<50ppm/℃),实测功耗50²×0.022=55W——显然不行。所以必须配合运放放大。这里有个极易被忽略的陷阱:运放的共模输入电压范围(CMRR)必须覆盖从GND到母线电压的全范围。很多工程师选LM358,其共模范围仅到Vcc-1.5V,当母线电压48V时,运放根本无法处理接近48V的共模信号,输出直接饱和。
我的标准配置是:采样电阻用0.01Ω/5W合金电阻(如WSL2512),紧贴PCB铜箔散热;运放选用AD8605或TI的INA240(集成差分放大+高共模抑制)。INA240的共模范围达-4V至80V,完美覆盖48V系统,且内置10倍固定增益,输出直接接ADC。布线时,采样电阻必须放在下桥臂源极与GND之间,四线制Kelvin连接:两根粗走线承载大电流,两根细走线(单独铺地)仅用于运放输入,彻底隔离大电流路径的地弹噪声。我曾因省一根细走线,导致电机高速时电流采样纹波高达2A峰峰值,FOC输出力矩脉动超标。
3.2 PWM与ADC的硬件协同:触发链的每一环都不能松
中心对齐PWM下,ADC采样不是“等一个定时器中断”,而是由PWM硬件事件直接触发。以STM32高级定时器(TIM1/TIM8)为例,其BDTR寄存器中的MOE(Main Output Enable)和AOE(Automatic Output Enable)位控制输出使能,而最关键的是CCMRx寄存器中的OCxM位,必须设置为“PWM模式1”(向上计数时OCxREF=1,向下计数时OCxREF=0),这样才能生成中心对齐波形。ADC触发源不能选“软件触发”或“通用定时器”,必须选“TIMx_CCx”(捕获比较通道)。
具体怎么卡点?以U相下桥臂驱动信号(即TIMx_CH1N)为例:我们希望在CH1N高电平的中点采样。中心对齐模式下,CH1N的高电平起始于计数器从0开始向上计数到ARR-CCRx时,结束于计数器从ARR向下计数到CCRx时。因此,高电平中点对应的计数器值就是ARR/2。所以,将ADC的外部触发源设为TIMx的TRGO事件,而TRGO由TIMx的内部事件生成——在STM32CubeMX里,选择“Update Event”(计数器溢出/下溢)作为TRGO源,然后在代码中,于TIMx初始化后,手动设置:htim.Instance->CR2 |= TIM_CR2_MMS_1; // MMS=10b, TRGO=Update Event。但这还不够,因为Update Event发生在计数器归零或归ARR时,即PWM周期的起点/终点,离高电平中点还差ARR/2个计数。所以必须用另一个技巧:利用TIMx的比较捕获功能,在ARR/2时刻产生一个事件。配置一个额外的通道(如CH2),设置CCRx2 = ARR/2,并启用CCxIE中断,在中断里手动触发ADC。但这样引入软件延迟,不可靠。最优解是使用STM32的“ADC注入通道同步触发”:将TIMx的CH2设置为“输出比较模式”,OCxRef在ARR/2时刻翻转,此翻转边沿通过TIMx的ETR(External Trigger Input)引脚输入到ADC,作为注入转换的触发源。实测此方案触发抖动<2ns,远优于软件触发。
3.3 软件时序精调:用示波器“看见”采样时刻
理论再完美,不实测等于纸上谈兵。我的标准调试流程是:示波器三通道,CH1接U相下桥臂驱动信号(GPIO输出一个同步标记),CH2接采样电阻两端(经运放后的输出),CH3接ADC_DR寄存器读取完成的GPIO翻转(在HAL_ADCEx_InjectedConvCpltCallback里置高,转换结束置低)。首先,关闭FOC算法,只让PWM以固定占空比(如50%)运行。观察CH1,确认是完美的中心对齐波形,高电平严格对称。然后看CH2,调节运放增益,让满载时信号摆幅在0~3V内。关键一步:用CH3的脉冲宽度,反推ADC实际采样时刻。CH3高电平宽度 = ADC转换时间 + 软件开销。若CH3脉冲前沿与CH1高电平中点对齐,则说明触发精准;若滞后,则需在ADC初始化中增加hadc1.Init.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJEC_T1_TRGO;并检查TRGO源是否正确。我曾在一个项目中发现,CH3脉冲始终滞后CH1中点1.2us,查到最后是CubeMX生成的代码里,HAL_ADCEx_InjectedStart_IT(&hadc1)被放在了TIMx启动之后,而TIMx的计数器启动有微秒级延迟,导致第一次触发丢失。解决方案是:在TIMx初始化后,立即写__HAL_TIM_SET_COUNTER(&htim1, 0);强制清零计数器,再启动TIMx,确保第一个TRGO事件准时到来。
3.4 单/双/三电阻的实操配置表:参数与陷阱全公开
| 方案 | 推荐MCU外设 | 关键配置参数 | 典型陷阱 | 我的实测避坑方案 |
|---|---|---|---|---|
| 三电阻 | STM32H7系列,3路ADC同步注入 | ADC预分频=2,采样时间=249.5周期(保证12位精度),触发源=TIM1_TRGO | 三路ADC同步误差导致电流不平衡 | 使用H7的ADC3,其支持真正的硬件同步;在HAL_ADCEx_InjectedStart_DMA()前,调用HAL_ADCEx_DisableVoltageRegulator()降低噪声;DMA缓冲区设为3×16bit,避免字节对齐错误 |
| 双电阻 | STM32F3/F4,2路ADC注入 | 死区时间≥1.2×MOS t_fall,占空比阈值设为15%(低于此值禁用该相采样) | 低速时某相长期无采样,q轴积分饱和 | 在FOC主循环中,加入“采样健康度监测”:统计每100ms内各相有效采样次数,若某相<80次,强制插入一次“虚拟采样”(用上周期值+斜率补偿),并触发告警LED闪烁 |
| 单电阻 | 所有带高速ADC的MCU | 采样频率≥PWM频率×3,ADC分辨率≥12bit,必须启用硬件过采样(Oversampling) | PWM状态读取延迟导致相位误判 | 在TIMx更新中断里,用__HAL_TIM_GET_COUNTER()读取当前计数值,结合CCRx寄存器,实时计算出精确的导通相位;单电阻采样值用滑动平均滤波(窗口=16),但滤波系数随转速自适应(高速时窗口=4,低速时窗口=32) |
提示:所有方案中,ADC的参考电压必须独立于数字电源,最好用TL431等精密基准源提供2.5V或3.0V,避免Vdd波动引入系统误差。我曾用MCU内部Vref,电机启动时Vdd跌落0.2V,导致电流读数整体偏高12%,FOC输出扭矩失控。
4. 完整实操流程:从上电到稳定运行的七步通关
4.1 第一步:静态验证——不接电机,只看波形
这是最枯燥但最关键的一步。断开电机连接,只给驱动板上电。用示波器CH1接U相下桥臂驱动信号(如TIM1_CH1N),CH2接V相驱动信号,CH3接W相驱动信号。确认三点:第一,三相信号相位差严格120°;第二,每个信号的高电平宽度相等,且关于周期中点对称(中心对齐);第三,上下桥臂驱动信号间有清晰的死区空白(用光标测量,应与代码设置一致)。此时,用万用表直流档测采样电阻两端电压,应为0V(无电流)。若CH1高电平不对称,检查TIMx的ARR和CCRx值是否为整数,以及是否启用了CMS(Center-aligned Mode Selection)位。
4.2 第二步:注入测试——用已知信号校准采样链
断开运放输出与ADC的连接,接入一个函数发生器,输出1kHz正弦波(幅值1Vpp)。调整运放增益,使输出信号峰峰值为2.5V。然后用示波器CH1接函数发生器输出,CH2接运放输出,测量两者相位差和幅值误差。要求相位差<1°,幅值误差<0.5%。若不达标,检查运放供电是否干净(加10uF钽电容+100nF陶瓷电容去耦),以及PCB上运放输入端是否有浮空引脚(必须接10MΩ下拉电阻)。
4.3 第三步:空载启动——捕捉第一个电流波形
接上电机(空载),启动FOC算法,但将q轴电流指令设为极小值(如0.1A)。用示波器CH1接U相驱动,CH2接U相采样电阻输出。此时应看到:在U相驱动高电平平台中部,CH2出现一个稳定的、与驱动同相位的正弦波片段。用光标测量CH2波形的上升沿到CH1高电平中点的距离,理想值应<50ns。若距离过大,说明ADC触发延迟,需检查TRGO源配置或降低ADC预分频。若CH2波形在高电平起始/结束处有明显毛刺,说明采样点太靠近死亡地带,需在代码中将CCRx值向ARR/2方向微调(如ARR=1000,原CCRx=500,改为510或490)。
4.4 第四步:负载冲击——验证死区与续流处理
给电机加机械负载(如用手捏住轴),突然加大q轴电流指令(如从0.1A跳到5A)。观察CH2波形:在电流阶跃瞬间,波形不应出现削顶或反向尖峰。若出现削顶,说明运放输出饱和,需降低增益;若出现反向尖峰,说明采样点落入续流二极管导通区,需增大死区时间或重新校准采样点。此时,用红外热像仪扫MOS管,确认温度分布均匀,无单颗管异常发烫。
4.5 第五步:全速测试——覆盖全工作范围
逐步提高电机转速,从0Hz到额定转速的120%。在每个转速点,用逻辑分析仪抓取TIMx的CCRx寄存器值和ADC_DR寄存器值,绘制“转速-采样点偏移量”曲线。正常情况应为一条水平直线,偏移量<2个计数器单位。若曲线斜率明显,说明PLL锁相环或时钟树配置有误,需检查RCC配置。同时,监听电机声音:纯正弦电流驱动下,应只有平稳的电磁声,无“滋滋”高频啸叫(啸叫源于电流谐波,常由采样失真引起)。
4.6 第六步:故障注入——主动制造“炸机”来验证保护
这是最体现功力的一步。故意将死区时间设为0,或短接一个采样电阻,然后启动电机。观察保护机制:首先,硬件过流比较器(如STM32的COMP)应立即翻转,拉低TIMx的BKIN引脚,强制关闭所有输出;其次,软件应能在10us内读取到BKIN状态,并进入故障处理流程(清除TIMx寄存器、禁用MOE位、点亮故障LED)。若保护延迟>50us,MOS管必炸。我的标准是:从BKIN拉低到TIMx输出完全关闭,总延迟≤15us。这要求BKIN引脚必须配置为“快速模式”,且中断优先级设为最高。
4.7 第七步:长期老化——72小时无人值守压力测试
将电机置于恒温箱(60℃),加载额定负载,连续运行72小时。每小时自动记录一次ADC采样值的标准差(衡量噪声)、三相电流幅值偏差(衡量平衡度)、以及MOS管壳温。合格标准:标准差<0.05A,幅值偏差<3%,壳温波动<5℃。曾有一个项目,在48小时后U相电流标准差突增至0.3A,排查发现是U相采样电阻焊盘虚焊,热胀冷缩导致接触电阻变化。这提醒我们:所有采样电阻必须用锡膏焊接,禁止手工烙铁补焊。
5. 常见炸机问题与排查速查表:从现象直击根源
| 现象 | 可能根源 | 示波器验证方法 | 解决方案 | 我的实战备注 |
|---|---|---|---|---|
| 上电即炸,MOS管瞬间击穿 | 采样点落在死区时间内,ADC误判电流方向,FOC输出反向电压 | CH1接U相驱动,CH2接U相采样输出,观察CH2在死区空白期是否有显著电压 | 立即增大死区时间至2us以上;检查ADC触发源是否误设为“边沿对齐PWM”的TRGO | 这是最危险的情况,务必先断电,用万用表二极管档测MOS管D-S是否已短路 |
| 低速运行抖动,有“咔哒”异响 | 双电阻方案在低占空比时,某相长期无有效采样,q轴积分饱和 | CH1接q轴电流指令,CH2接q轴电流反馈,观察低速时反馈是否严重滞后于指令 | 启用“低速采样补偿”算法:当占空比<10%时,强制用Clark变换估算缺失相电流 | 别迷信“平滑滤波”,抖动根源是信息缺失,滤波只会掩盖问题 |
| 高速时电流波形毛刺严重,FFT显示大量5kHz以上谐波 | 运放电源去耦不足,或采样电阻PCB走线过长引入天线效应 | CH1接运放Vcc,CH2接运放输出,观察Vcc是否有高频纹波(>10MHz) | 在运放Vcc引脚就近加100nF X7R陶瓷电容+1uF钽电容;采样电阻走线长度<5mm,两侧包地 | 毛刺不是ADC问题,是模拟前端污染,换更高位ADC毫无意义 |
| 同一块板子,夏天炸机冬天正常 | 采样电阻温漂过大,或MOS体二极管反向恢复时间随温度变化 | 用热风枪将MOS加热至80℃,观察采样波形是否畸变 | 更换温漂<25ppm/℃的合金采样电阻(如Vishay WSHP2818);在FOC算法中加入温度补偿项 | 温度是硬件工程师的终极考官,所有参数必须标定全温区 |
| 电机停转后,偶尔自行转动一下 | 单电阻方案中,PWM状态读取延迟导致相位误判,FOC输出残余转矩 | CH1接TIMx更新中断标志,CH2接FOC q轴输出,观察中断后q轴输出是否延迟出现 | 在TIMx更新中断服务程序(ISR)开头,立即读取__HAL_TIM_GET_COUNTER(),用此值实时计算导通相位,而非依赖静态CCRx | ISR里禁止任何浮点运算,所有计算用定点数实现 |
注意:所有排查必须在断电状态下进行!用万用表欧姆档测量采样电阻两端是否短路(正常应为毫欧级),测量运放输入端对地电阻是否为无穷大(排除焊锡桥连)。我养成的习惯是:每次更换元件后,先用LCR表测采样电阻实际阻值,再上电。
6. 经验沉淀:那些不会写在手册里的硬核技巧
6.1 “黄金采样点”的动态偏移算法
教材里都说“采样点设在PWM高电平中点”,但实际中,MOS管的开启延迟(t_d(on))和关断延迟(t_d(off))并不相等,且随温度、Vgs变化。这意味着,即使你把ADC触发点设在ARR/2,真实的电流平台中点也会漂移。我的解决方案是:在电机静止时,注入一个微小的直流电流(如0.5A),用示波器精确测量电流波形的平台中点位置,记为Offset_static。然后,在运行中,每100ms用ADC采集一次MOS管栅极驱动波形(通过分压电阻),计算其实际t_d(on)和t_d(off),动态修正Offset = Offset_static + K1×(t_d(on)-t_d(off)) + K2×(Vgs-10V)。K1、K2通过实验标定,通常K1≈0.3,K2≈0.05。这个算法让我的驱动器在-40℃到105℃范围内,电流采样精度保持在±0.8%以内。
6.2 PCB布局的“三不原则”
- 不共用地:采样电阻的地(Kelvin检测地)必须单独走线,直接连到ADC的AGND引脚,绝不能与功率地(PGND)或数字地(DGND)在PCB上汇合。我在4层板设计中,专门用第2层整层铺AGND,只供模拟前端使用。
- 不跨分割:ADC的模拟输入走线,绝不能跨越数字信号线或电源平面的分割缝隙。哪怕缝隙只有0.2mm,也会引入mV级干扰。我的做法是:在ADC输入走线下方的参考平面,挖空所有无关铜箔,只保留AGND。
- 不走直角:所有模拟走线必须45°拐角或圆弧,直角会产生阻抗突变,反射高频噪声。曾因一个直角走线,导致80kHz开关噪声耦合进采样信号,花了三天才定位。
6.3 用“电流指纹”诊断电机健康
电流采样不仅是控制输入,更是电机状态的“听诊器”。我开发了一个简单但有效的诊断方法:在电机稳态运行时,截取一个完整电周期(360°电角度)的q轴电流波形,做FFT,提取前5次谐波幅值。健康的PMSM,5次谐波(对应转子磁极数×5)幅值应<基波的1.5%;若3次谐波突增,大概率是定子绕组匝间短路;若7次谐波超标,则可能是转子永磁体局部退磁。这个“电流指纹”比振动传感器更灵敏,且无需额外硬件。我用它提前两周预测出一台伺服电机的轴承磨损,避免了产线停机。
6.4 FOC调试的“三色灯法则”
- 红灯(故障):任何情况下,只要BKIN拉低、过流比较器翻转、或ADC采样值超限(>0.95×Vref),必须立即关闭所有PWM输出,且禁止自动重启。这是安全底线。
- 黄灯(警告):三相电流幅值偏差>5%、采样ADC的EOC(End of Conversion)标志超时、或连续10次采样值标准差>0.2A,点亮黄色LED,记录日志,但允许继续运行。这是预警机制。
- 绿灯(正常):所有采样值在预期范围内,q轴电流跟踪误差<1%,电机运行平稳无声。此时可认为采样链已通过考验。
最后分享一个血泪教训:去年调试一台5kW驱动器,反复炸机,查遍所有环节,最后发现是示波器探头的地线夹太长(15cm),在高频下成了天线,把开关噪声耦合进采样信号,误导了判断。换用接地弹簧后,问题迎刃而解。所以,再硬核的理论,也得靠靠谱的工具和敬畏心来落地。电流采样没有捷径,它就是一场与ns级时间、mΩ级电阻、uV级噪声的持久战。你每一次用示波器光标卡准那几微秒,都是在为电机的安全运行加一道保险。