一个半夜被叫去现场的故事
前年冬天,有个做小型运动控制器的项目,样机在实验室跑得好好的,送到客户那边装到整机上,一上电就出事了。操作人员说电机在低速段会发出一种很尖的“吱——”声,像金属摩擦又像高频啸叫,人站在一米外都听得见。更奇怪的是,同一批控制器,有的机器有,有的机器没有;同一台机器,有时候有,有时候没有;用手摸一下外壳,声音还会变。
客户那边直接停了线,要求三天内给结论。我半夜被电话叫起来,第二天一早飞到现场。到了之后先做的事不是拆机,而是拿手机录了一段音频,用手机上的频谱软件看。峰值集中在8kHz附近,还有几个谐波。这个频率很敏感——它既不是开关频率本身,也不是明显的开关频率两倍,而是落在两者之间一个很尴尬的位置。
后来花了整整两天,把问题定位到载波频率和死区补偿更新周期不匹配上。这个坑在公开资料里几乎没人专门讲,但它在实际项目里出现的概率不低,尤其是那些“参数可以配”的通用控制器。
现场先做什么:听、看、摸、断
遇到音频噪声,不要一上来就改代码。先做四件事:
第一,听。噪声是持续的、断续的、还是随转速变化的?低频段有还是全速段都有?这决定了它是PWM相关还是机械共振相关。
第二,看。用示波器看相电流波形,重点看电流过零点附近。如果电流波形在过零附近有明显的台阶或畸变,那基本可以锁定在死区补偿环节。
第三,摸。用手轻触散热片或外壳,如果噪