
做FOC電機控制的朋友大概率都遇到過這個場景算法在仿真里跑得挺漂亮一上真板子電流波形就毛刺滿天飛PI參數(shù)怎么調(diào)都不對最后發(fā)現(xiàn)是電流采樣環(huán)節(jié)出了問題。想拿示波器看看真實相電流吧普通電壓探頭根本沒法直接測——電機驅(qū)動是高壓大電流的浮地系統(tǒng)探頭地線一夾就可能炸管。這時候就需要一個專門測電流的探頭而市面上能測高頻、帶隔離、量程又合適的電流探頭動輒大幾千甚至上萬對個人開發(fā)者和小團隊來說實在不友好。這次我把自己做的一版FOC電機控制測電流專用電流探頭參考設(shè)計完整開源出來原理圖、PCB圖、BOM、關(guān)鍵參數(shù)計算過程全部放出來目的就是讓做電機控制的人能用低成本拿到一個夠用的電流觀測工具把精力真正花在算法和控制上而不是卡在看不見電流這一步。1. 為什么FOC調(diào)試繞不開一個專用電流探頭1.1 普通探頭在電機驅(qū)動上為什么不好使先說清楚一個基本事實FOC控制的核心是電流環(huán)而電流環(huán)調(diào)不好的原因里采樣鏈路的問題占了相當大的比例。你想驗證采樣是否準確、是否有相位延遲、是否有噪聲耦合最直接的辦法就是用示波器看真實電流波形然后和ADC采回來的值做對比。問題在于電機三相橋的電流是浮地的而且開關(guān)頻率通常在10kHz到40kHz甚至更高dv/dt非常陡。普通無源電壓探頭測電流需要串一個采樣電阻但采樣電阻本身會引入壓降和寄生電感而且探頭地線夾在橋臂上等于把示波器地直接接到功率地上一旦有電位差就是大電流灌進示波器輕則波形失真重則燒探頭燒示波器。用差分探頭可以解決浮地問題但差分探頭測的是電壓差你還是得串采樣電阻而且差分探頭帶寬夠的價格也不便宜。所以真正適合這個場景的是基于磁場耦合原理的電流探頭——它通過感應(yīng)導(dǎo)線周圍的磁場來測量電流天然隔離不需要斷開電路串電阻也不存在共地問題。這就是我做這個參考設(shè)計的出發(fā)點。1.2 這個探頭要滿足哪些硬指標在動手畫原理圖之前我先把需求列清楚因為需求決定了后面所有的選型和拓撲選擇。針對FOC電機控制這個具體場景我給自己定的指標是這樣的指標項目標值說明測量帶寬DC ~ 1MHz以上要能看清PWM開關(guān)沿和電流紋波量程雙向 ±30A 可擴展覆蓋大多數(shù)中小功率電機相電流隔離電氣完全隔離浮地系統(tǒng)必須輸出接口標準BNC接示波器通用性供電單5V或±5V方便取電成本控制在百元級個人開發(fā)者能承受這里有個關(guān)鍵取舍帶寬和量程是一對矛盾。帶寬越高感應(yīng)信號的頻率成分越豐富但高頻段的噪聲和振鈴也越難處理量程越大磁芯越容易飽和線性度越難保證。我最終選擇的是霍爾加磁芯的混合方案而不是純羅氏線圈原因后面會詳細講。1.3 開源這個設(shè)計的真實動機說實話網(wǎng)上關(guān)于電流探頭的資料不少但大多是兩種一種是廠商的成品datasheet只告訴你參數(shù)不告訴你內(nèi)部怎么做的另一種是純理論推導(dǎo)講安培環(huán)路定理講得頭頭是道但落到具體電路和PCB布局就沒了。真正做電機控制的人需要的不是理論而是我照著這個圖能不能做出來、做出來能不能用。我把原理圖、PCB、BOM全部開源就是想讓這個門檻降下來。你可以直接拿去打樣也可以根據(jù)自己的量程需求改磁芯和增益。下面我會把每個關(guān)鍵環(huán)節(jié)的設(shè)計邏輯講透包括我踩過的坑和最后怎么解決的。2. 電流探頭的核心原理與拓撲選型邏輯2.1 從安培環(huán)路定理到實際感應(yīng)電壓電流探頭的基本原理其實不復(fù)雜導(dǎo)線中流過電流周圍會產(chǎn)生磁場磁場強度H和電流I的關(guān)系由安培環(huán)路定理給出對于環(huán)形磁芯近似有 H I / (2πr)其中r是磁芯的平均磁路半徑。磁芯中的磁通密度 B μHμ是磁芯材料的磁導(dǎo)率。如果磁芯上繞了N匝線圈那么線圈兩端的感應(yīng)電壓 V -N · dΦ/dt -N · A · dB/dtA是磁芯截面積。把這個鏈條串起來感應(yīng)電壓正比于電流的變化率 di/dt。這就帶來一個直接后果純感應(yīng)式類似電流互感器的方案測不了直流因為直流下di/dt為零沒有感應(yīng)電壓。而FOC控制里相電流在低速和堵轉(zhuǎn)時接近直流所以必須解決直流測量問題。解決直流測量有兩條路一是用霍爾元件直接測磁場霍爾輸出正比于B也就是正比于I能測直流二是用磁通門或者磁平衡零磁通方案精度更高但電路復(fù)雜。我這個設(shè)計走的是霍爾加磁芯的路線兼顧直流能力和成本。2.2 為什么選霍爾方案而不是羅氏線圈羅氏線圈Rogowski coil是空心線圈沒有磁芯帶寬可以做到很高線性度也好但它同樣測不了直流而且輸出需要積分器積分器本身會引入漂移和低頻噪聲問題。對于FOC調(diào)試來說你既要看高頻開關(guān)紋波也要看低頻的電流基波和直流分量羅氏線圈在這個場景下反而不方便?;魻柗桨傅膬?yōu)勢在于霍爾元件直接輸出與磁場成正比的電壓能測直流電路簡單成本低。缺點是霍爾元件本身有零點漂移和溫漂帶寬受限于霍爾元件的響應(yīng)速度通常幾十kHz到幾百kHz。為了補帶寬我在磁芯上同時繞了一個次級線圈高頻段用線圈感應(yīng)低頻段用霍爾兩者疊加這就是所謂的混合式電流探頭思路。具體來說磁芯采用高磁導(dǎo)率的環(huán)形磁芯我用的是一款鎳鋅鐵氧體初始磁導(dǎo)率在2000左右霍爾元件放在磁芯開的氣隙里氣隙的作用是降低磁芯的有效磁導(dǎo)率防止大電流下飽和同時讓霍爾元件處的磁場更線性。次級線圈繞在磁芯上匝數(shù)根據(jù)需要的靈敏度確定。2.3 磁芯氣隙與飽和電流的計算氣隙大小直接決定了量程和靈敏度這里必須算清楚。設(shè)磁芯磁路長度為le氣隙長度為lg磁芯磁導(dǎo)率為μr則有效磁導(dǎo)率 μe ≈ μr / (1 μr · lg/le)。氣隙越大有效磁導(dǎo)率越低磁芯越不容易飽和但靈敏度也越低。我用的磁芯le大約是40mmμr取2000如果氣隙lg取1mm那么 μe ≈ 2000 / (1 2000 × 1/40) 2000 / 51 ≈ 39。這個有效磁導(dǎo)率下磁芯的飽和電流會大幅提高。具體飽和電流還要看磁芯的飽和磁通密度Bs一般鐵氧體Bs在0.3T到0.4T之間。用公式 B μ0 · μe · H而 H I / le近似所以 I_sat Bs · le / (μ0 · μe)。代入 Bs0.35Tle0.04mμ04π×10^-7μe39算出來 I_sat ≈ 0.35 × 0.04 / (4π×10^-7 × 39) ≈ 285A。這個量程遠遠夠用了說明氣隙1mm是偏保守的實際可以減小氣隙提高靈敏度。我最后用的是0.5mm氣隙重新算一下 μe ≈ 2000/(12000×0.5/40)2000/26≈77飽和電流約145A依然足夠而靈敏度提高了一倍。提示氣隙不是隨便開的開氣隙會引入邊緣磁通導(dǎo)致霍爾元件處的磁場分布不均勻。實際調(diào)試時要把霍爾元件盡量放在氣隙中心并且氣隙面要平整否則零點會漂。3. 原理圖逐模塊拆解與關(guān)鍵參數(shù)計算3.1 霍爾前端與信號調(diào)理電路霍爾元件我選的是線性霍爾輸出是模擬電壓典型靈敏度在幾mV/Gauss量級?;魻栞敵鱿冉?jīng)過一個RC低通濾波截止頻率設(shè)在500kHz左右目的是濾掉開關(guān)噪聲但保留主要的高頻成分。RC參數(shù)選R1kΩC330pF截止頻率 f 1/(2πRC) ≈ 482kHz符合預(yù)期。濾波之后進一級運放做緩沖和增益調(diào)整。這里運放的選擇很關(guān)鍵要選低失調(diào)、低漂移、帶寬足夠的型號。我用的是一款通用精密運放增益帶寬積在10MHz以上失調(diào)電壓在百微伏級。增益通過反饋電阻網(wǎng)絡(luò)設(shè)置我設(shè)計成可調(diào)用多圈電位器方便不同量程下校準。增益的計算假設(shè)霍爾靈敏度為SmV/Gauss磁芯氣隙處磁場與電流的關(guān)系為 B k·I那么霍爾輸出 Vh S·k·I。經(jīng)過增益G的放大后輸出電壓 Vo G·S·k·I。我們希望滿量程30A時輸出對應(yīng)示波器合適的電壓比如1V那么 G·S·k 1/30 V/A。具體數(shù)值要根據(jù)實際磁芯和霍爾參數(shù)標定這也是為什么增益要做成可調(diào)的原因。3.2 次級線圈的疊加與高通網(wǎng)絡(luò)次級線圈負責(zé)高頻段它的輸出正比于di/dt所以需要一個積分器還原成電流波形。但純積分器在低頻會漂所以我用的是一個高通加積分的組合網(wǎng)絡(luò)讓次級線圈只在高于某個轉(zhuǎn)折頻率比如10kHz時才起作用低頻段完全交給霍爾。具體電路上次級線圈兩端接一個RC網(wǎng)絡(luò)轉(zhuǎn)折頻率 f0 1/(2πRC)。我取R10kΩC1.6nFf0 ≈ 10kHz。高于10kHz時次級線圈信號通過積分網(wǎng)絡(luò)輸出低于10kHz時信號被衰減霍爾信號主導(dǎo)。兩路信號在運放輸入端相加實現(xiàn)全頻段覆蓋。這里有個坑兩路信號的相位必須對齊否則在交叉頻率附近會出現(xiàn)波形畸變。我調(diào)試的時候在10kHz方波下觀察發(fā)現(xiàn)交叉點有明顯的臺階后來通過微調(diào)積分電容和霍爾通道的相位補償電容才對齊。這個對齊過程需要反復(fù)試沒有捷徑。3.3 電源與隔離設(shè)計探頭供電我用的是單5V通過一個隔離DC-DC模塊給探頭內(nèi)部電路供電保證探頭和示波器之間電氣隔離。隔離模塊的選型要注意隔離電壓和寄生電容寄生電容太大會把高頻共模噪聲耦合過去影響測量。我選的模塊隔離電壓在1kV以上寄生電容在幾十pF量級。電源進來之后先過一級LC濾波再經(jīng)過LDO穩(wěn)壓到運放需要的電壓。LDO的選擇同樣要注意噪聲因為運放供電噪聲會直接調(diào)制到輸出上。我在LDO輸出端加了10μF和100nF的并聯(lián)去耦靠近運放電源引腳再放一個1μF實測下來電源紋波對輸出的影響可以忽略。注意隔離DC-DC模塊本身是個開關(guān)電源開關(guān)頻率可能在幾百kHz如果濾波不好這個頻率會串到測量輸出里。我一開始就吃了這個虧后來在模塊輸入輸出都加了共模電感和π型濾波才壓下去。4. PCB布局與電磁兼容的實戰(zhàn)細節(jié)4.1 磁芯與霍爾元件的機械定位PCB設(shè)計里最容易被忽視但最影響性能的就是磁芯和霍爾元件的相對位置?;魻栐仨毦_放在磁芯氣隙的中心偏差哪怕0.5mm零點漂移都會明顯變大。我的做法是在PCB上做一個定位槽磁芯卡進去之后氣隙正好對準霍爾元件的封裝中心。磁芯的固定也很講究不能用金屬夾具否則會改變磁路。我用的是尼龍或者3D打印的塑料支架把磁芯和PCB固定在一起。導(dǎo)線穿孔的位置要保證導(dǎo)線從磁芯中心穿過不能偏否則磁場分布不對稱正反向電流的靈敏度會不一致。4.2 模擬小信號走線的抗干擾處理霍爾輸出和運放輸入都是毫伏級的小信號PCB走線稍不注意就會引入噪聲。我的處理原則是小信號走線盡量短、盡量遠離功率和開關(guān)節(jié)點、下方鋪完整地平面?;魻柕竭\放的走線我控制在10mm以內(nèi)而且全程包地。運放的反饋網(wǎng)絡(luò)要靠近運放引腳反饋走線不能繞遠否則寄生電容會引起振蕩。我在第一版里反饋電阻放得離運放有點遠結(jié)果運放輸出有高頻自激后來把反饋網(wǎng)絡(luò)緊貼運放重新布局才解決。這個教訓(xùn)很典型小信號高增益電路的布局反饋路徑越短越好。4.3 地平面分割與單點接地模擬電路和數(shù)字電路如果有的地要分開最后在電源入口處單點連接。這個探頭里其實沒有數(shù)字部分但隔離前后的地必須嚴格分開隔離DC-DC的輸入地和輸出地之間只能通過隔離模塊耦合PCB上不能有任何其他連接否則隔離就失效了。我在PCB上把隔離前后的區(qū)域明確劃分中間留了足夠的爬電距離。爬電距離的確定要考慮工作電壓雖然探頭本身工作在低壓但被測系統(tǒng)可能是高壓所以隔離帶寬度我留了至少2mm保證安全。4.4 屏蔽與外殼設(shè)計探頭的外殼我用的是金屬屏蔽盒把整個電路包起來只留出導(dǎo)線穿孔和BNC輸出。金屬外殼接到探頭內(nèi)部的地隔離后的地可以有效屏蔽外部電磁干擾。實測下來加屏蔽盒前后輸出噪聲能差一個數(shù)量級。外殼上導(dǎo)線穿孔的位置要加一個絕緣套管防止被測導(dǎo)線和金屬外殼短路。如果被測導(dǎo)線是高壓的這個絕緣套管的耐壓等級要足夠。我用的是一段熱縮管加一個塑料護套簡單但有效。5. 實測驗證與常見問題排查5.1 用標準電流源做靜態(tài)標定探頭做出來之后第一件事是標定。我用的是一個可編程直流電子負載配合一個高精度采樣電阻產(chǎn)生已知的直流電流然后記錄探頭輸出。從0A到30A每隔5A記錄一個點畫出輸入輸出曲線看線性度。實測下來在±20A范圍內(nèi)線性度很好誤差在1%以內(nèi)超過20A之后開始有輕微的非線性主要是磁芯接近飽和區(qū)。這個結(jié)果符合預(yù)期因為我的設(shè)計量程是±30A但最佳線性區(qū)在±20A。如果你需要更大的線性范圍可以加大氣隙或者換更大截面的磁芯。標定的時候要注意零點校準?;魻栐辛泓c漂移而且受溫度影響。我在常溫下標定完之后用熱風(fēng)槍稍微加熱探頭發(fā)現(xiàn)零點漂了大概幾十毫伏。所以如果你要在寬溫范圍使用要么選低溫漂的霍爾要么加溫度補償電路。我這個版本沒有做溫補因為FOC調(diào)試通常在常溫下進行影響不大。5.2 動態(tài)響應(yīng)與相位延遲測量靜態(tài)標定只能說明直流準動態(tài)性能還得單獨測。我用信號發(fā)生器驅(qū)動一個功率級產(chǎn)生不同頻率的正弦電流然后用探頭和標準采樣電阻同時測量對比兩者的相位差和幅值差。在10kHz以下探頭輸出和采樣電阻的波形幾乎重合相位差在幾度以內(nèi)。到50kHz時相位差開始明顯大約有十幾度。到100kHz以上幅值也開始衰減。這個帶寬對于觀察PWM開關(guān)紋波是夠的但如果你要精確測量高頻諧波就需要更高帶寬的方案。相位延遲對FOC控制有實際影響如果你的電流采樣有相位延遲而算法里沒有補償那么電流環(huán)的相位裕度會下降嚴重時會引起振蕩。所以用這個探頭測出來的相位延遲數(shù)據(jù)可以直接用來指導(dǎo)算法里的采樣延遲補償。5.3 典型問題輸出噪聲大怎么辦這是我最常被問到的問題。輸出噪聲大通常有幾個來源一是電源噪聲二是地環(huán)路三是外部電磁干擾四是運放自激。排查順序我建議這樣先把探頭輸入端短路或者夾一個零電流的導(dǎo)線看輸出噪聲。如果這時候噪聲就很大那問題在探頭內(nèi)部重點查電源和運放。如果短路時噪聲小接上被測導(dǎo)線才大那可能是外部干擾或者地環(huán)路。電源噪聲的排查用示波器交流耦合看運放電源引腳如果紋波超過幾毫伏就要加強濾波。地環(huán)路的問題確保探頭和示波器之間只有BNC連接不要額外接地線。外部干擾加屏蔽盒或者把探頭遠離電機和驅(qū)動器。運放自激的判斷輸出有高頻正弦波頻率通常在幾MHz這時候要檢查反饋網(wǎng)絡(luò)布局和補償電容。我遇到過一次最后發(fā)現(xiàn)是反饋電阻的寄生電容太大換了一個小封裝的電阻就好了。5.4 量程擴展與靈敏度調(diào)整如果你需要測更大的電流比如上百安培這個設(shè)計的磁芯和氣隙需要重新計算。思路是加大氣隙降低有效磁導(dǎo)率或者換更大截面的磁芯。但要注意氣隙加大之后靈敏度下降需要提高增益而增益提高會放大噪聲所以要在量程和信噪比之間權(quán)衡。反過來如果你只需要測幾安培的小電流可以減小氣隙提高靈敏度但要注意飽和問題。小電流場景下其實可以考慮去掉次級線圈純霍爾方案就夠用電路更簡單。靈敏度調(diào)整主要通過增益電位器實現(xiàn)但調(diào)整之后要重新標定。我建議在PCB上留一個測試點方便接萬用表監(jiān)測輸出標定的時候不用一直連著示波器。6. 從參考設(shè)計到你自己項目的移植建議6.1 哪些部分可以直接抄哪些必須改原理圖的框架、電源和隔離部分、運放調(diào)理電路這些基本可以直接復(fù)用。需要根據(jù)你的具體需求改的是磁芯型號和氣隙、霍爾元件型號、增益網(wǎng)絡(luò)的電阻值、次級線圈的匝數(shù)。這幾個參數(shù)是強耦合的改一個就要重新算其他的。PCB布局的思路可以復(fù)用但具體尺寸要根據(jù)你選的磁芯和外殼調(diào)整。我建議第一版先按我的參數(shù)做跑通之后再改。因為同時改多個參數(shù)出了問題很難定位是哪個參數(shù)引起的。6.2 物料選型的替代方案霍爾元件我用的是某款通用線性霍爾如果你買不到可以找參數(shù)接近的替代關(guān)鍵是靈敏度和帶寬要匹配。磁芯方面鎳鋅鐵氧體是常見選擇但如果你要更高頻率可以考慮鐵粉芯雖然磁導(dǎo)率低但高頻損耗小。運放的選擇范圍很寬只要滿足低失調(diào)、足夠帶寬、低噪聲就行。我試過幾款不同的運放性能差異主要體現(xiàn)在噪聲和失調(diào)上對最終測量精度有影響但不算致命。隔離DC-DC模塊選標準品即可注意隔離電壓和寄生電容參數(shù)。6.3 調(diào)試順序與驗證清單拿到打樣回來的板子我建議按這個順序調(diào)試先不裝磁芯和霍爾只焊電源部分確認各路電壓正常然后焊運放輸入端接地看輸出是否在零點附近有沒有自激接著裝霍爾和磁芯做靜態(tài)標定最后裝次級線圈調(diào)交叉頻率和相位對齊。每一步都要驗證通過再進下一步不要一次全焊完再調(diào)那樣出了問題很難定位。我第一版就是全焊完才上電結(jié)果發(fā)現(xiàn)輸出飽和查了半天才發(fā)現(xiàn)是霍爾裝反了。提示霍爾元件是有方向的裝反了輸出會反向飽和。焊接前一定要確認datasheet上的敏感面朝向。6.4 這個設(shè)計還能怎么擴展如果你想讓這個探頭更實用可以考慮幾個擴展方向一是加一個可切換的增益檔位用撥碼開關(guān)或者模擬開關(guān)實現(xiàn)方便在不同量程間切換二是加一個電池供電和充電管理做成便攜式三是把輸出做成差分提高抗共模干擾能力四是加一個簡單的峰值檢測電路方便捕捉瞬態(tài)大電流。我自己下一步打算做的是加一個可切換增益因為現(xiàn)在換量程要拆開調(diào)電位器不太方便。另外也在考慮把磁芯換成開合式的這樣不用斷開導(dǎo)線就能夾上去使用體驗會好很多。這個參考設(shè)計的全部資料我已經(jīng)整理好包括原理圖源文件、PCB工程、BOM清單和標定記錄。做電機控制這行工具順手了調(diào)試效率真的能差好幾倍。希望這個探頭能幫到正在被電流采樣問題困擾的朋友少走點彎路把時間花在真正有價值的算法和控制策略上。