工作中的電機(jī)在低速時(shí)像得了帕金森——電流波形畸變、轉(zhuǎn)矩脈動、轉(zhuǎn)速不穩(wěn)。工程師把PID參數(shù)調(diào)了無數(shù)遍,換用更高分辨率的編碼器,甚至升級了主控芯片,問題依舊。這很可能是死區(qū)效應(yīng)在作祟。而這個(gè)問題的根源,不在控制算法,而在功率硬件本身。
鏈路吞吐一上來,最難查的往往不是帶寬不足,而是數(shù)據(jù)明明搬完了卻仍然不對。嵌入式平臺只要同時(shí)啟用 DMA 和 Cache,緩沖區(qū)所有權(quán)與同步時(shí)機(jī)沒管住,內(nèi)存里看到的就會是一份被不同主機(jī)各自相信的舊數(shù)據(jù)。
很多實(shí)時(shí)故障并不是主頻不夠,而是最短響應(yīng)路徑被自己切碎了。嵌入式系統(tǒng)一旦把中斷抖動和臨界區(qū)膨脹帶進(jìn)控制鏈,現(xiàn)場看到的就不是偶發(fā)慢一拍,而是每次邊沿都帶著不確定時(shí)差。
同一條控制鏈上,數(shù)據(jù)明明都能到,卻未必活在同一個(gè)時(shí)間線上。嵌入式系統(tǒng)若把采樣、計(jì)算和執(zhí)行分布在多個(gè)時(shí)鐘域里,卻沒有明確校準(zhǔn)時(shí)間戳與生效延遲,閉環(huán)就會一邊讀過去,一邊控未來,結(jié)果不是發(fā)抖就是發(fā)鈍。