先讲一个我最近遇到的真实场景。上周帮一位同行调一块750W伺服驱动板,速度阶跃刚发下去,示波器还没抓到完整波形,板子先“啪”一声——三相下桥MOSFET全穿,采样电阻烧出一股焦味,运放也跟着报废。拆板排查,问题根本不在管子选型,而在采样时序完全错位:中心对齐PWM下,ADC触发点落在开关切换的死区时间里,电流环读到的全是毛刺,过流保护还没来得及动作,管子已经没了。
这种炸机方式,十有八九都是电流采样链路出的问题。FOC说白了就是靠准确的相电流闭环,采样一旦失真,后面矢量控制算得再漂亮也是白搭。这篇文章我想把FOC电流采样这件事从头到尾捋一遍:中心对齐PWM为什么是主流,三电阻、双电阻、单电阻三种拓扑分别怎么搭、为什么有些配置天生容易炸、最终怎么选型和调参。适合正在选采样方案、或者已经炸过板子还找不到原因的工程师朋友,看完至少能避开我踩过的大部分坑。
1. 中心对齐PWM:采样时序的总裁判,摸清它才不会踩雷
1.1 中心对齐到底对齐了什么
我们平时说的中心对齐PWM,在STM32的高级定时器里叫Center-Aligned Mode,计数器从0往上计数到ARR,再往下计数到0,如此往复,形成对称三角波。PWM输出在计数等于比较寄存器CCR时翻转,这样一来,产生的脉冲中心天然落在三角波的顶点或底点位置,所以叫“中心对齐”。
这个“对齐”不是单纯为了波形好看。对FOC来说,中心对齐带来的直接好处是电流纹波小、谐波小,因为在一个PWM周期内,电流上升和下降的时间是等长的,电流平均值和几何中心重合。实际测试中,同样的开关频率,中心对齐比边沿对齐的电流噪声能小三分之一左右,这直接影响电流环的带宽和电机的噪声表现。
大多数MCU里的高级定时器都能配置中心对齐模式。以STM32为例,TIM1/TIM8的CR1寄存器CMS位设置为0b10就是中心对齐模式2。模式1、2、3的区别在于更新事件和计数方向的关系,但对大多数FOC工程来说,模式2用得最多——它在向上和向下计数到达极值时都能触发更新事件,方便和ADC触发时序配合。
1.2 FOC为什么离不开中心对齐PWM
FOC的核心是SVPWM空间矢量调制。SVPWM要求在一个PWM周期内,把零矢量和两个相邻有效矢量的作用时间按特定顺序排布,这跟中心对齐PWM天然匹配。
可以这样理解:边沿对齐PWM是一条锯齿波,所有脉宽都从周期起点开始堆积,三相开关状态的变化都集中在周期起始处,导致电流纹波集中在一个时间段内,母线电压利用率也偏低。中心对齐PWM则是把零矢量劈成两半,放在周期两端,中间放有效矢量,整个开关序列关于周期中心对称。这样电流在半个周期内上升、半个周期内下降,纹波均匀,电压利用率也更高。
另外一个关键点:中心对齐PWM下,在三角波的顶点和底点处,三相开关状态处于稳定区间。FOC电流采样恰恰需要在这种“稳定区间”内触发ADC,才能采到平稳的相电流平均值。如果采样点落在开关切换瞬间,采进去的是尖峰毛刺,电流环马上就会“抽风”。
1.3 采样点到底该放在三角波的哪个位置
这是整个电流采样的核心问题,也最容易被新手忽略。在中心对齐PWM中,每个PWM周期有两个天然节点:上溢(CNT从ARR回0)和下溢(CNT从0往下到最低点再往上),这两个节点对应三角波的顶点和底点。
实际配置时,大多数方案选择在下溢时刻触发ADC,因为此时三相下桥都处于导通状态(零矢量000),每相采样电阻上都流有真实的相电流,且开关状态已经稳定,没有开关噪声。这个时刻对应的电流纹波也正好是周期内的最小值,采样值最接近电流平均值。
具体到STM32上,需要把定时器TRGO事件配置为“更新事件触发”,然后ADC选择定时器触发源,再配置成注入组采样。注意一个容易踩的坑:定时器更新事件在上溢和下溢都会发生,如果你用的是中心对齐模式,更新事件频率是PWM频率的两倍。也就是说20kHz的PWM,会产生40kHz的更新事件。如果ADC配置不正确,可能出现一个周期内采了两次,或者采样时刻不一致的情况。我习惯把ADC触发配置成仅下溢触发(通过设置定时器的重复计数器或利用从模式),确保每个PWM周期只在固定的那个点采一次。
2. 三电阻采样:公认最稳,但不代表可以乱来
2.1 三电阻采样的工作原理与典型配置
三电阻采样,拓扑上就是三个下桥MOSFET的源极各接一个采样电阻,电阻的另一端接到母线负极。当某相下管导通时,该相电流流过对应的采样电阻,产生压降,经过运放放大后送给ADC。因为三相电流之和为零,理论上只需要两相电流就能算出第三相,但三电阻方案直接采三路,好处是每一相都有独立测量通道,可以做一致性校验,也可以在某一相通道故障时继续运行。
硬件配置上,三个采样电阻通常选用毫欧级的合金电阻,比如2mΩ、5mΩ、10mΩ。阻值选太大,损耗和温漂压不住;选太小,采样信噪比上不去。我常用的做法:电流范围30A的驱动器,选3mΩ到5mΩ;电流范围10A的,选5mΩ到10mΩ。采样电阻上的压降经过差动放大器放大,常见运放有TI的INA240、INA181,ADI的AD8418等。选择运放时优先看输入共模电压范围、失调电压和建立时间,这几项直接影响采样精度和最小采样窗口。
对于三电阻采样,ADC的触发策略相对宽松。因为三个下管在零矢量000期间是同时导通的,可以在下溢时刻触发ADC同步采样三相。但如果设备没有三相同步采样ADC,也可以用规则组连续扫描,只要三路通道之间的采样间隔足够短(最好在几百纳秒以内),对FOC来说误差可以接受。
2.2 采样窗口的死穴:调制比和零矢量时间
三电阻方案看起来稳妥,实际上有一个绕不开的敌人:调制比太高时,零矢量时间不够。
原因在于,零矢量000(三个下管全导通)对应的时长等于整个PWM周期减去三相上管导通的最长时长。当电机运行在高速、高调制比区间,某一相占空比接近100%时,000持续的时间会变得非常短。全球通用经验值是:下管导通时间至少要有2~3微秒,运放建立时间加ADC采样时间才够用。当PWM频率为20kHz(周期50μs)时,如果占空比达到94%,000的总时间就只剩下3μs,各占一半在上溢和下溢附近就只剩1.5μs,很可能不够运放和ADC完成转化。
在实际SVPWM中,当调制比超过一定值后会进入过调制区,三电阻采样的性能急剧恶化。所以三电阻方案通常需要配合最小占空比限制:比如把每相占空比限制在5%到95%之间,虽然牺牲了一点电压利用率,但换来了采样窗口的可靠。另一种做法是在采样窗口不足时切换采样策略,不在000时刻采,而是在有效矢量作用期间采两相,用KCL算第三相。
如果占空比限制和动态切换采样策略都没做,那在高速运转时获得错误的电流采样值几乎是必然的,电流环读到的是乱七八糟的“假电流”,自然会产生错误的电压矢量,MOSFET过热炸机只是时间问题。
2.3 硬件上最容易忽略的三个细节(运放、RC、地线)
三电阻方案的硬件,有三个地方很容易被忽略。
第一个是运放的建立时间。很多人选运放只看带宽,但如果运放建立时间太长,采样时刻虽然对准了,运放输出却还在振荡,ADC采到的值依然是错的。建议选择建立时间小于1μs的运放,并把建立时间纳入最小采样窗口的计算中。
第二个是采样电阻到运放之间的RC滤波器。为了滤除开关噪声,几乎所有人都会加一个RC低通滤波。但RC时间常数一旦过大,信号的相位延迟和幅值衰减会让电流环在高速时产生明显的相位滞后,严重时导致电流环振荡。一个相对安全的组合是100Ω电阻加1nF电容,时间常数100ns,既能抑制振铃,又不会对20kHz的电流环造成明显影响。还有一个细节:RC滤波器的电容必须靠近运放输入引脚放置,不然滤波效果大打折扣。
第三个是地线处理。采样电阻的接地端和运放的参考地必须单点连接,最好用开尔文连接方式,把采样电阻的电流回路和信号回路分开走线。很多三电阻板子炸机,不是因为原理图错了,而是PCB上大电流地线跟模拟地线混在一起,采样信号上叠加了几十毫伏的噪声,导致过流保护阈值失真。这个我后面会专门讲一个案例。
2.4 三电阻照样炸机?问题出在保护链路上
三电阻方案在原理上最稳,但依然会炸机,而且往往炸得莫名其妙。我遇到最多的一个模式是:控制器启动正常,轻载也正常,一加负载或者速度一拉高,直接炸下桥。
这种问题九成出在保护链路。FOC控制系统里,过流保护不能只靠软件里的电流环调节,必须在硬件上做实时过流比较。三电阻采样电路天然适合做硬件过流保护——三路运放输出分别接三个比较器,任意一路超过阈值立即封锁PWM。但很多板子只做了软件过流保护,依赖ADC采样值判断。而ADC采样值在高调制比区间可能已经失真,软件自然判断不出来,等到真实电流超过管子额定值,硬件又没有任何拦截手段,炸机就是必然。
所以我的建议是:三电阻拓扑中,硬件过流比较器不是可选项,是必选项。比较器阈值按照采样电阻阻值、运放放大倍数和MOSFET最大峰值电流反推,留20%以上的裕量。比较器输出直接连接到MCU的刹车引脚(如STM32的BKIN)或驱动芯片的使能引脚,确保在微秒级别封锁PWM,而不是等软件中断。
3. 双电阻采样:成本与性能的折中,难在扇区边界的处理
3.1 两相采样+三相重构的原理
双电阻采样是在三相中只选两相(通常是A相和B相)放采样电阻,第三相电流通过基尔霍夫电流定律计算得到:Ic = -Ia - Ib。硬件成本比三电阻少一个采样电阻和一路运放,PCB面积也更小,在很多中低功率电机驱动器中是主流方案。
双电阻方案的采样时机和三电阻类似,最好也在零矢量000期间采样。此时A、B两相的下管都导通,两个采样电阻上的压降分别对应Ia和Ib,同时采样两相即可。由于只需要两路,可以用ADC的注入组同步采样或规则组快速交替采样,对采样同步性的要求相对宽松。
实际运行中,采样窗口同样受调制比限制。如果调制比太高,000时间不足,那就需要切换采样策略:在有效矢量作用期间采A相和B相。举例来说,当SVPWM输出矢量100时,A相上管导通、B和C相下管导通,此时B相下管电流对应Ib,A相电流不流经下管电阻,无法采到。所以有效矢量期间只能采到一相或两相的部分组合,需要根据扇区动态决定采哪两相。
3.2 扇区边界采样失效的根因
双电阻方案最头疼的问题,是在某些扇区边界处采样窗口严重不足。用SVPWM的中心对齐波形来看,一个周期内三相占空比有大小关系,当三相占空比相差很大的时候,总有一相的下管导通时间非常短。
举个直观的例子:在扇区I中,A相占空比最大,C相最小,B相居中。当A相占空比接近100%时,C相下管导通时间已经非常短;此时如果在000期间采样,由于000时间本身就短,B相或A相的下管可能也在同一个窗口临近关闭,采样窗口容不下运放建立和ADC转换时间。这种情况下,即使两路采样电阻都流过电流,ADC触发时刻稍微偏一点,采到的就不是平顶,而是上升或下降沿上的值,误差极大。
这个问题的根源在于SVPWM本质上是通过三个桥臂的开关组合来合成电压矢量,任何一相占空比接近满幅或零幅时,必然会压缩某个下管或上管的导通时间。双电阻方案简化掉了第三路采样通道,就失去了在窗口不足时灵活切换到另一相的硬件基础,所以必须在软件算法上做文章。
3.3 动态采样点调整和最小占空比约束
解决扇区边界采样失效,第一个方法是动态调整ADC触发点。也就是说,不要让ADC固定在下溢时刻触发,而是根据当前扇区、三相占空比实时计算一个采样点,保证触发时刻落在一个相对稳定的采样窗口内。
具体做法是:在每个PWM周期开始前,根据SVPWM计算出的三相占空比,预测下一个周期哪些采样窗口可用。比如当某一相占空比很小、下管导通时间很长时,就在该窗口内触发采样;当所有相下管导通时间都足够时,优先选000窗口。这个计算量并不大,在中断里用查表和判断就能完成。
第二种方法是强制最小占空比约束。允许的最大占空比和最小占空比都限制在比如2%到98%之间,加上死区后,实际最小下管导通时间就不会低于一个安全值。代价是电压利用率略降,但对大多数应用来说完全够用。
第三种更进阶的做法是修改PWM波形本身,也就是后面章节要讲的移相PWM。在双电阻方案中也可以对相邻两相的PWM中心点做微小偏移,来“制造”一个更宽的有效采样窗口。移相后的波形不再是严格中心对齐,但矢量和保持不变,不影响FOC控制效果。
3.4 重构失败后的兜底策略
即使用了动态调整和移相,也不可能覆盖所有工况。采样重构失败时的兜底策略,直接决定了系统的安全性。
我的做法是:每一拍都做采样有效性检查。ADC值完成采集后,先判断当前采样窗口是否有效——检查当时的三相占空比、死区时间和采样时刻是否满足窗口要求。如果判定为无效采样,不把这个值送给电流环,而是使用上一拍的有效采样值,同时给一个标记,让观测器做补偿。连续多拍无效时,直接封锁PWM并报故障,因为此时电流环已经失去反馈,再继续运行风险太高。
很多初学者不愿意这么做,认为“放弃采样”会让电流环性能变差。其实恰恰相反,一个延后一拍但不震荡的电流反馈,远好于一个时刻可能异常的实时值。我实测过,在重构失败时直接丢弃坏值,用上一拍值替代,电流环的动态响应几乎没有可感知的下降,但系统的抗炸机能力大幅提升。
4. 单电阻采样:最省钱也最考验软件功底的方案
4.1 单电阻两次采样的基本思路
单电阻采样只放一个采样电阻,一般放在母线负端,即三个下桥共地端与母线负极之间。所有流过下桥的电流都会经过这个电阻,所以只要在正确的时刻采样,就能获取某一相或某两相的电流信息。
因为单电阻无法同时采到两相,要靠在一个PWM周期内采样两次,分别在两个不同的开关状态组合中进行。中心对齐PWM在一个周期内会经历两段有效矢量。例如“100”状态下,A相上管导通、B和C下管导通,母线电流等于A相电流;在“110”状态下,A和B上管导通、C下管导通,母线电流等于C相电流的负值(或者说与C相电流方向相反)。把这两拍采到的值组合起来,就可以重构出三相电流。
核心逻辑是:每次采样时刻的母线电流值,对应的是当前开关组合中从母线下端流出的那一路电流。只要知道当前占空比组合对应的开关状态,就能反推出某一相电流。这个反推关系虽然有点绕,但用SVPWM的矢量表可以提前查好。
4.2 采样窗口不足:单电阻方案最大的坑
单电阻方案最大的坑,跟双电阻、三电阻类似但更严重:当两个有效矢量的作用时间有一个太短,就采不到对应那一拍的电流值。因为单电阻需要两拍信息才能重构三相,任何一拍缺失,整个重构就失败了。
在低调制比区间,两个有效矢量的作用时间都很短,可能都达不到最小采样窗口要求,重构基本不可用。为了解决这个问题,很多方案会在零矢量期间插入额外的“测量矢量”,强制制造一个足够宽的采样窗口。但这种测量矢量会带来额外的电流纹波和噪声,作用时间越长,电机的“嘶嘶声”越大。
在高速高调制比区间,两个有效矢量作用时间接近整周期,零矢量时间很短,但有效矢量本身的窗口足够宽,单电阻采样反而好使。所以单电阻方案在“中间地带”——中等调制比时比较难办,两头反而相对容易。
4.3 移相PWM如何解决窗口问题
移相PWM其实是一种“把脉冲挪一挪”的技术。在保证SVPWM矢量总作用时间不变的前提下,将各相PWM脉冲的中心点做适当偏移,使得两个有效矢量在时间轴上有更宽的重叠段,从而让采样窗口变宽。
用通俗的话说:原来三个桥臂的开关时刻都对齐在一个节奏点上,某个瞬间可能出现所有下管同时关断的情况,导致采样窗口断裂。移相PWM就是主动把其中一两个桥臂的开关时刻稍微错开,让“能采样的时间段”连续起来。
实现上,移相PWM通常需要在中心对齐PWM的基础上再做一次“不对称”调整:一个相位的上升沿保持不动,下降沿向前或向后移一点;另一个相位的上升沿/下降沿做相应反向调整,确保整体矢量和不变。这个调整量一般不超过PWM周期的十分之一,对谐波的影响可控。
移相PWM的代价是控制算法的复杂度明显上升。每个PWM周期都需要根据当前调制比、扇区角度计算移相量,还要更新定时器的比较寄存器。如果MCU算力不够,建议直接用硬件比较器配合DMA来做波形更新,避免在中断里做太多浮点运算。
4.4 零矢量期间的坑与死区补偿
单电阻方案里还有一个很容易忽略的点:零矢量期间采样极不稳定。原因是零矢量000期间三相下管全导通,母线电流几乎为零,采样电阻上没有有用的电流信号;而零矢量111期间三相上管全导通,母线电流也不流经采样电阻。所以不要在零矢量期间触发采样,否则采到的是噪声和续流残影。
死区时间对单电阻采样的影响也比双电阻、三电阻更大。因为采样窗口本身就很短,死区时间会进一步压缩有效窗口。另一个问题是,插入死区后,实际开关状态和理想SVPWM状态不完全一致。比如100状态插入死区时,如果A相下管还没完全关断,母线电流可能有一小段路径和理论不符,导致采样值有一定误差。
解决办法是死区补偿算法。在软件里根据当前电流方向和死区时间,把采样时刻往死区结束方向偏移几十纳秒到几百纳秒,避开死区中段的开关振荡区。更精细的做法是记录实际PWM比较值的修正量,把死区造成的时间偏移折算到采样值上。对于追求极致降本的项目,单电阻+移相PWM+死区补偿是必经之路;但如果项目周期紧,建议老老实实上双电阻甚至三电阻。
5. 炸机案例分析:四个真实场景还原与修复
5.1 采样地线噪声引出的“幽灵过流”
一个典型的故障场景:驱动器在较轻负载下运行稳定,但转速升高到某个区间后,偶尔会听到“滋”一声,然后随机炸管。用示波器抓运放输出,发现电流波形上有明显的高频毛刺,毛刺幅度超过过流阈值,但软件ADC采到的值却是正常的。
排查了很久,最后定位到大电流回流路径和采样电阻的参考地之间存在较大寄生电感。当电机电流摆率很高时,寄生电感上产生较大的压降,这个压降通过地线耦合到运放输入端,导致运放输出出现真实但无意义的“过流信号”。如果把硬件比较器的过流阈值设在这个毛刺之下,就会触发误保护;如果把阈值抬高,真实过流时又来不及保护。
修复方案:采样电阻改成四脚开尔文连接,把电流回路和电压检测回路分开走线;所有采样电阻的地在PCB上单点汇合,再接到母线电容的地。处理好之后,毛刺幅度下降了80%以上,调高的保护阈值可以重新降回去。
5.2 运放饱和导致电流环失控
另一个案例是国产某驱动板在加大负载后,电流环突然出现持续振荡,随后炸管。查运放输出波形,发现电流大时运放输出已经削顶在电源轨上,进入饱和区。
问题在于选运放时没有考虑输出摆幅限制。很多普通运放在接近电源轨时线性度恶化,甚至完全饱和。饱和状态下,电流环读到的最大值可能只有真实电流的一半,于是控制器认为电流不够,继续加大占空比,越打越大,最后MOSFET实在扛不住了。
修复办法分两步:换用轨到轨输出的运放,并把运放供电适当提高(比如3.3V系统用5V供电);同时调整运放放大倍数,让额定电流对应的输出电压不超过电源轨的85%。另外在软件里加一个“饱和检测”,当连续多拍ADC值都卡在接近满量程位置时,判定为运放饱和,立即限制占空比增量。
5.3 采样时刻偏移导致的高频抖动炸机
有一个项目改版时把PWM频率从16kHz提升到20kHz,只改了定时器分频参数,ADC触发点没有同步修改。结果运行在高转速时,电流波形出现明显的高频抖动,随后下桥炸管。
从示波器看,ADC触发时刻已经落在了开关切换沿附近。因为PWM频率变了,死区时间和开关边沿的绝对位置都变了,但ADC的相位偏移还是按原来的补偿值设置,导致采样点刚好采在开关振铃上。电流环读到的电流有强烈的高频分量,输出占空比开始抖动,形成正反馈,最后电流超限炸管。
这个案例给我的教训是:修改任何影响PWM时序的参数(频率、死区、中心对齐模式),都必须同时检查和校准ADC触发相位。最好在代码里把采样时刻的计算做成一个独立模块,每次修改PWM参数后自动重新计算,而不是靠手动改一个魔数。
5.4 上电时序错乱导致的IGBT误导通
还有一种炸机发生在“上电瞬间”。很多MCU的GPIO在复位期间是浮空或高阻状态,如果驱动芯片的使能脚恰好由这个GPIO控制,而上电时驱动芯片已经得到供电,那么驱动输出可能被不确定电平拉高,导致上下桥直通。
更隐蔽的情况是母线电容通过采样电阻充电的冲击电流。如果预充电阻太小,上电瞬间母线电容相当于短路,冲击电流可能超过采样电阻的峰值功率,直接把电阻烧断,同时浪涌电流也可能击穿整流桥。
正确的上电顺序是:先给MCU和其他弱电供电,等时钟稳定、GPIO状态确定后,再给驱动芯片供电,最后才闭合母线电源。硬件上一定要加预充电阻和接触器控制逻辑,不要直接大容量电容硬冲。软件里上电初始化流程要先把PWM输出引脚配置为无效电平,再使能PWM输出,这个顺序反了也容易炸。
6. 采样方案选型对照与工程落地清单
6.1 三种方案怎么选:一张表说清楚
| 维度 | 三电阻 | 双电阻 | 单电阻 |
|---|---|---|---|
| 硬件成本 | 高 | 中 | 低 |
| PCB面积 | 大 | 中 | 小 |
| 采样精度 | 最高 | 较高 | 受重构算法影响 |
| 最小采样窗口要求 | 中 | 中高 | 高 |
| 低调制比性能 | 好 | 中 | 差 |
| 高调制比性能 | 中 | 中 | 好 |
| 算法复杂度 | 低 | 中 | 高 |
| 动态响应 | 最好 | 好 | 中 |
| 抗炸机能力(硬件保护齐全时) | 强 | 强 | 中 |
实际选型时,我一般这样判断:功率在千瓦以上、运行工况苛刻、项目周期紧的,直接上三电阻;几百瓦到千瓦级别、成本敏感,但对性能有一定要求的,双电阻最均衡;消费级小功率、极低成本、并且团队里有人能把移相PWM和重构算法写明白的,再考虑单电阻。
还有一个容易被忽视的维度是故障诊断能力。三电阻方案在某一相采样通道故障时,还能靠另外两相继续估算;双电阻方案如果采样通道之一坏掉,基本只能停机;单电阻方案只要采样通道异常,整个电流反馈直接丢失。工业设备对可靠性的要求高,最好别用单电阻。
6.2 从原理图到PCB的落地方案清单
原理图阶段,先确定采样电阻阻值和功率。功率计算按最大相电流的RMS值平方乘以电阻阻值,再乘以1.5到2倍安全系数。比如10A电流对应5mΩ电阻,P = 100×0.005 = 0.5W,实际选1W封装比较稳妥。同时关注电阻的温度系数,合金电阻的温度系数一般能做到50ppm以内,不要为了省几毛钱选普通贴片电阻。
运放选型重点看:输入共模电压范围能否覆盖母线下管导通时的共模电压,建立时间是否小于1μs,失调电压对采样误差的影响是否在可接受范围。如果信号路径上没有做隔离,运放供电和MCU的模拟供电最好用同一路低噪声LDO,避免开关电源的纹波直接进入采样链路。
PCB布局上,采样电阻尽量靠近MOSFET源极,所有采样电阻的信号端走线要等长且远离栅极驱动走线。运放和比较器放在采样电阻附近,避免长距离传输模拟信号。母线电容要靠近逆变桥,减少回路面积,否则电流环的噪声怎么滤波都滤不干净。
软件配置上,初始化顺序建议:先配置时钟和GPIO,再配置ADC和DMA,然后配置定时器PWM,最后才使能PWM输出。每路ADC采样完成中断里做好数据校验,如果连续多次采样值异常,立即进入故障态。
6.3 实测验证步骤与调试技巧
硬件拿到手,先别急着转电机。我的调试顺序一般是:
第一步,只给控制电,不接母线电压,手动输出固定的占空比(比如5%),用示波器测量运放输出,确认波形没有异常振铃,ADC读到的值符合预期。
第二步,接上低压直流源(比如24V或36V),母线电压慢慢往上加,观察三路采样在零矢量期间的波形是否平直。如果波形上有毛刺,优先检查地线和RC滤波器参数。
第三步,给电机轴堵转或带一个固定负载,用电流探头对比实际相电流和ADC重构电流。误差在5%以内说明采样链路基本合格。
第四步,开环运行到目标转速附近,确认电流波形没有畸变,再闭合电流环。闭合后如果出现振荡,优先怀疑采样相位延迟,而不是盲目调PI参数。此时可以在示波器上同时看电流实际值和反馈值,如果两者相位差太大,就需要调整ADC触发时刻或加上补偿相位。
调试时有一个小技巧:把ADC触发信号引到一个空闲GPIO上,方便用示波器定位采样时刻和PWM边沿的相对位置。很多炸机问题,其实只要眼睛看到采样点落在开关边沿上,就能瞬间明白原因在哪里。
最后再分享一个经验:正式跑大电流之前,把硬件过流保护阈值降到正常值的八成,先验证保护链路是否可靠。确认过流能可靠封锁PWM后,再把阈值调回设计值。这一步看起来保守,但能帮你避免很多次“整板报废”级别的翻车。FOC调试本来就是一场和细节较劲的工程持久战,采样链路稳了,后面的调试才有意义。