測功機(jī):從方案選型到實測驗證的完整指南)
過去半年我一直在做小型無刷電機(jī)的性能摸底評測手頭攢了各種渠道弄來的電機(jī)從幾十瓦的云臺無刷電機(jī)到幾百瓦的電動自行車輪轂電機(jī)都有。標(biāo)稱參數(shù)一個比一個漂亮但實際跑起來到底什么水平不上設(shè)備測根本說不清楚。要給電機(jī)做性能標(biāo)定核心設(shè)備就是一臺電機(jī)測功機(jī)Motor Dynamometer。我最初想直接買現(xiàn)成的查了一輪下來發(fā)現(xiàn)這個市場對個人開發(fā)者很不友好進(jìn)口產(chǎn)品從幾萬到幾十萬國產(chǎn)入門級的也在萬元以上而且多數(shù)測功機(jī)是為特定安裝接口、特定功率段定制的換個電機(jī)尺寸就得換整套夾具。更麻煩的是很多商品測功機(jī)的軟件和報告格式是封閉的數(shù)據(jù)導(dǎo)出來很麻煩。綜合算下來自己動手造一臺反而成了性價比最高、也最能貼合自己需求的選擇。這篇文章就從方案選型、機(jī)械結(jié)構(gòu)、電子系統(tǒng)、軟件標(biāo)定和實測結(jié)果五個方面完整記錄我的Build a Motor Dynamometer全過程給正在猶豫要不要自制的朋友一個參考。1. 為什么不用現(xiàn)成的一臺DIY測功機(jī)到底要解決什么問題1.1 成品測功機(jī)的價格與定制化困局先說說我為什么被逼到要自己造。市面上的電機(jī)測功機(jī)從原理上分成兩大類一類是面向發(fā)動機(jī)、電機(jī)臺架測試的重型設(shè)備扭矩量程幾十牛米起步配套的底座、聯(lián)軸器、冷卻系統(tǒng)都是工業(yè)級整套下來十幾萬很正常另一類是針對小功率電機(jī)開發(fā)的桌面型測功機(jī)扭矩量程在0.01到5牛米之間聽起來很合適但問題也不少。首先是價格。我聯(lián)系了幾家國產(chǎn)廠家一臺扭矩量程2牛米、帶基礎(chǔ)軟件的小型測功機(jī)報價在一萬二到一萬八之間如果是進(jìn)口品牌比如Magtrol、Himmelstein這些價格直接翻到三萬以上。這個價位對做產(chǎn)品開發(fā)的公司來說不算什么但對個人開發(fā)者、開源硬件玩家、或者還在驗證階段的小團(tuán)隊來說就是一筆不小的負(fù)擔(dān)。其次是適配問題。測功機(jī)的機(jī)械接口通常要跟被測電機(jī)的法蘭、軸徑、安裝孔距完全匹配。我手上有幾種不同尺寸的電機(jī)有的軸徑3.175mm有的5mm有的8mm法蘭孔距更是五花八門。買一臺成品回來還得為每一種電機(jī)定制聯(lián)軸器和安裝板這套開模或機(jī)加工費用算下來又是一筆錢。第三是軟件封閉。很多成品測功機(jī)自帶的上位機(jī)軟件只能輸出固定的測試報告格式數(shù)據(jù)導(dǎo)出還要額外收費想自己寫腳本批量處理曲線、和自研驅(qū)動器的數(shù)據(jù)做對比都非常困難。所以我在立項時給自己定了一個硬性指標(biāo)整套系統(tǒng)的數(shù)據(jù)格式必須完全開放想怎么處理就怎么處理。1.2 自制測功機(jī)的目標(biāo)邊界自己造測功機(jī)不等于要跟工業(yè)級的設(shè)備硬碰硬。測功機(jī)本質(zhì)上就是一臺可控負(fù)載加上扭矩、轉(zhuǎn)速測量裝置我在做之前先劃了一個清晰的邊界明確這臺設(shè)備要干什么、不干什么。測量對象小功率無刷電機(jī)和直流電機(jī)功率范圍在幾十瓦到五百瓦之間扭矩量程設(shè)計在5牛米以內(nèi)。這覆蓋了云臺電機(jī)、無人機(jī)電機(jī)、小型電動工具電機(jī)、滑板車輪轂電機(jī)等大多數(shù)個人開發(fā)者會接觸到的類型。測量參數(shù)主要測四個量——扭矩、轉(zhuǎn)速、母線電壓、母線電流。由這四個量可以推出輸出功率、輸入功率和效率這是電機(jī)選型最核心的參考數(shù)據(jù)。測量模式以穩(wěn)態(tài)特性曲線為主也就是讓電機(jī)在每個負(fù)載點穩(wěn)定運(yùn)行后記錄一組數(shù)據(jù)然后逐步改變負(fù)載畫出完整的扭矩-轉(zhuǎn)速曲線、功率-轉(zhuǎn)速曲線和效率-轉(zhuǎn)速曲線。這種模式對采樣率要求不高但對數(shù)據(jù)穩(wěn)定性和重復(fù)性要求很高。能力邊界我很清楚不做幾百安培大電流的沖擊測試不去測幾千牛米的重載臺架也不追求實驗室級別的瞬態(tài)響應(yīng)。這個定位非常關(guān)鍵它幫我避開了很多不必要的復(fù)雜設(shè)計比如水冷系統(tǒng)、四象限能量回饋裝置、高動態(tài)扭矩傳感器。把邊界劃清楚之后整個項目的技術(shù)路線就變得非常清晰了。2. 測功機(jī)的核心原理與加載方案怎么選2.1 測功機(jī)在測什么扭矩、轉(zhuǎn)速、功率三者的關(guān)系測功機(jī)的底層邏輯其實很簡單就是讓電機(jī)帶著一個可控的負(fù)載旋轉(zhuǎn)同時測量電機(jī)輸出的扭矩和轉(zhuǎn)速然后用公式算出功率。核心公式就三個輸出機(jī)械功率P T × ω其中ω是角速度單位rad/s角速度與轉(zhuǎn)速的關(guān)系ω 2πn / 60其中n是轉(zhuǎn)速單位rpm所以功率也可以寫成P T × 2πn / 60舉個例子如果測得某電機(jī)在3000rpm時輸出扭矩0.2Nm那么輸出功率就是P 0.2 × 2π × 3000 / 60 ≈ 62.8W這個計算本身沒什么難度真正難的是如何讓電機(jī)在一個可控的負(fù)載下穩(wěn)定運(yùn)行。要知道電機(jī)的特性曲線不是一條固定直線而是多個工作點的集合。空載時轉(zhuǎn)速很高扭矩幾乎為零堵轉(zhuǎn)時扭矩最大轉(zhuǎn)速為零。測功機(jī)要做的就是把電機(jī)從空載到堵轉(zhuǎn)之間的每一個工作點都穩(wěn)定地抓住然后記錄下對應(yīng)的數(shù)據(jù)。要抓住工作點需要解決兩個問題一是給電機(jī)加一個可調(diào)的負(fù)載二是測量這個負(fù)載施加給電機(jī)的扭矩有多大。前者是加載方式的問題后者是扭矩測量方式的問題。2.2 四種加載方式對比磁粉制動器為何是首選加載方式?jīng)Q定了測功機(jī)的性格。我認(rèn)真對比了四種常見方案結(jié)論很明確對小功率電機(jī)的穩(wěn)態(tài)測功來說磁粉制動器是最省心、最穩(wěn)妥的選擇。四種方案的對比放在下面。加載方式基本原理優(yōu)點缺點適合場景磁粉制動器勵磁線圈產(chǎn)生磁場磁粉鏈在旋轉(zhuǎn)件之間形成剪切阻力扭矩平穩(wěn)、低速扭矩大、勵磁電流與扭矩線性度好、控制響應(yīng)快需要散熱有少量剩磁連續(xù)大功率加載容易發(fā)熱小功率電機(jī)精確特性曲線測量渦流制動器旋轉(zhuǎn)的金屬盤在磁場中產(chǎn)生渦流渦流損耗形成制動力矩結(jié)構(gòu)簡單、高速性能好、無接觸磨損低速時扭矩很小低速段測量困難高速電機(jī)額定點測試電機(jī)對拖能量回饋用另一臺電機(jī)作為負(fù)載反向拖動被測電機(jī)通過變頻器控制負(fù)載扭矩可以四象限運(yùn)行、能量回饋電網(wǎng)、適合長時間加載和動態(tài)測試需要第二臺電機(jī)和變頻器控制系統(tǒng)復(fù)雜度高、成本高實驗室和產(chǎn)線級測功臺架摩擦制動用摩擦片直接壓緊旋轉(zhuǎn)件產(chǎn)生阻力結(jié)構(gòu)最簡單、成本最低摩擦片磨損快、扭矩不穩(wěn)定、重復(fù)性差只能做臨時性粗測磁粉制動器的工作原理可以這樣理解勵磁線圈通入直流電流后產(chǎn)生磁場讓制動器內(nèi)部工作間隙中的磁粉磁化形成一個個細(xì)小的磁鏈轉(zhuǎn)子旋轉(zhuǎn)時這些磁粉鏈被剪切產(chǎn)生一個與勵磁電流成正比的阻力扭矩。調(diào)節(jié)勵磁電流的大小就能平滑地改變負(fù)載扭矩而且這種扭矩在低速下依然能保持穩(wěn)這一點對測功特別重要。實際選購時要注意額定扭矩的匹配。我選了一個額定扭矩5Nm的磁粉制動器配12V供電、最大勵磁電流0.6A左右。為什么選5Nm這個檔位因為我需要測的電機(jī)最大堵轉(zhuǎn)扭矩大概在1Nm上下制動器額定扭矩留出3倍以上的余量有兩個好處一是在低勵磁電流下就能覆蓋被測電機(jī)的全扭矩范圍控制精度更高二是制動器自身的熱容量更大連續(xù)運(yùn)行時間可以更長。2.3 測扭矩的兩條路旋轉(zhuǎn)扭矩傳感器與反作用力法扭矩測量的思路決定機(jī)械結(jié)構(gòu)怎么搭。市面上有兩種主流方案。方案一是把旋轉(zhuǎn)扭矩傳感器直接串聯(lián)在電機(jī)軸和制動器之間。這種傳感器內(nèi)部有應(yīng)變橋安裝在旋轉(zhuǎn)軸上通過滑環(huán)或無線方式輸出信號。它的優(yōu)點是可以直接測出傳動軸上的真實扭矩不依賴外部結(jié)構(gòu)但價格高一個量程合適的旋轉(zhuǎn)扭矩傳感器在國產(chǎn)市場也要兩三千起步進(jìn)口的更貴而且它對聯(lián)軸器的同軸度要求極其苛刻安裝不好誤差很大。方案二是反作用力法也叫浮動定子法。它不直接測傳遞扭矩而是把制動器的機(jī)殼定子部分做浮動安裝讓機(jī)殼可以繞輸出軸軸線微微轉(zhuǎn)動。機(jī)殼上固定一根力臂桿桿的另一端頂在一個固定安裝的力傳感器上。當(dāng)電機(jī)帶著制動器的轉(zhuǎn)子旋轉(zhuǎn)時磁粉產(chǎn)生的阻力扭矩會反作用到機(jī)殼上機(jī)殼有繞軸旋轉(zhuǎn)的趨勢這個趨勢通過力臂桿壓在力傳感器上。扭矩就等于力傳感器讀到的力乘以力臂桿的有效長度。我選的是方案二。原因很簡單成本低一個數(shù)量級力傳感器加變送器一共兩三百塊錢精度對DIY來說完全夠用而且結(jié)構(gòu)上天然把扭矩變成了力這個更容易標(biāo)定的物理量后面校準(zhǔn)非常直觀。這套方法也是很多實驗室老前輩常用的土辦法聽起來樸素但完全經(jīng)得起推敲。3. 機(jī)械本體對中、浮動支架與力臂設(shè)計3.1 底座與對中這是測量穩(wěn)定性的根基整體結(jié)構(gòu)上我選用了4080鋁型材搭底座尺寸控制在600mm長、300mm寬。鋁型材的好處是靈活電機(jī)安裝板、制動器安裝板、傳感器支架都可以用T型螺母固定在型材槽內(nèi)后續(xù)調(diào)整位置非常方便。如果直接用鑄鐵平板或者鋼板焊接框架剛性更好但改造空間小個人DIY沒必要一開始就上那么重的方案。整個機(jī)械系統(tǒng)里最容易栽跟頭的就是電機(jī)軸和制動器軸的同心度。如果兩個軸不對中聯(lián)軸器在轉(zhuǎn)動時會產(chǎn)生周期性彎矩扭矩讀數(shù)會跟著波動轉(zhuǎn)速越高波動越明顯。更麻煩的是不對中帶來的附加彎矩會通過軸系傳遞到浮動支架的軸承上增加軸承阻力造成額外的測量誤差。所以我把對中分成了兩步做。第一步是粗對中用百分表架在電機(jī)軸上轉(zhuǎn)動軸分別檢查電機(jī)安裝板連接法蘭的徑向跳動和端面跳動。調(diào)整電機(jī)安裝板在型材上的位置和墊片厚度把跳動控制在0.1mm以內(nèi)。第二步是精對中裝好彈性聯(lián)軸器后用手轉(zhuǎn)動聯(lián)軸器中間體感受轉(zhuǎn)動是否順暢、有沒有卡澀感再配合百分表在聯(lián)軸器外圓復(fù)查一次徑向跳動控制在0.05mm以內(nèi)。對于沒有百分表的朋友有一個簡易替代法找一根直的金屬棒用磁力表座吸附在電機(jī)側(cè)讓金屬棒指向聯(lián)軸器的外圓面轉(zhuǎn)動電機(jī)軸粗略觀察間隙變化。雖然精度不如百分表但至少能把明顯的偏斜暴露出來。3.2 制動器浮動安裝與力臂桿設(shè)計磁粉制動器的浮動安裝是整個機(jī)械結(jié)構(gòu)里最關(guān)鍵的一步。我需要讓制動器的外殼能夠在支架上自由、低摩擦地旋轉(zhuǎn)一個很小的角度同時承受徑向和軸向的載荷。我的做法是用兩塊20mm厚的鋁板做支撐側(cè)板側(cè)板上各裝一個帶座軸承UCP204兩個軸承支撐一根轉(zhuǎn)軸磁粉制動器的機(jī)殼通過法蘭盤固定在轉(zhuǎn)軸上。這樣制動器外殼整體變成了一根可以繞軸微轉(zhuǎn)的擺外殼旋轉(zhuǎn)時只受軸承的滾動摩擦阻力很小。外殼上沿徑向方向固定一根力臂桿桿長我取300mm桿末端頂住S型拉壓傳感器。這里有幾個設(shè)計要點要特別說。力臂長度不是隨便定的。傳感器受力等于扭矩除以力臂力臂越長同樣扭矩下傳感器受力越小但分辨率越好、量程利用率越高。以我的設(shè)備為例額定扭矩5Nm力臂0.3m滿量程時傳感器受力約16.7N也就是1.7公斤力。我選了一個50kg量程的S型傳感器因為它在受力小于2kgf時仍然有很高的分辨率同時又留出了很大的過載保護(hù)余量。如果力臂太長結(jié)構(gòu)占用空間大輕微變形就會被放大太短則傳感器受力過大容易接近量程上限。力臂桿的剛性也要注意。桿子如果太軟在受力時會產(chǎn)生明顯彎曲等效力臂長度發(fā)生變化影響線性度。我用的是12mm直徑的不銹鋼圓棒一端焊接一個連接塊固定到浮動轉(zhuǎn)軸上另一端加工出一個螺紋頭方便連接傳感器。安裝時要用水平尺確認(rèn)力臂桿在水平位置傳感器也保持水平確保傳感器受力方向與力臂桿垂直。如果不垂直實際的有效力臂要乘以cos夾角這個誤差會直接體現(xiàn)在標(biāo)定結(jié)果里。此外我在浮動結(jié)構(gòu)上加了一個限位擋塊限制外殼最大轉(zhuǎn)角在正負(fù)5度以內(nèi)。這樣做是為了防止意外過載時外殼旋轉(zhuǎn)角度過大把力傳感器或力臂桿頂壞。限位擋塊用螺栓固定在一塊鋁板上位置調(diào)整好后就鎖死平時運(yùn)行完全碰不到只起保護(hù)作用。3.3 聯(lián)軸器選型與轉(zhuǎn)速傳感器安裝聯(lián)軸器我踩過坑后面實測部分會詳細(xì)講。這里直接說結(jié)論不要用頂絲固定的剛性聯(lián)軸器哪怕扭矩不大也容易打滑而且打滑是間歇性的扭矩讀數(shù)會莫名其妙地跳。我最終用的是夾緊式梅花聯(lián)軸器中間帶一個彈性梅花墊。這種聯(lián)軸器對同軸度的要求比波紋管聯(lián)軸器寬松又比梅花直連的軸套連接可靠能吸收一定的徑向偏差非常適合DIY改裝。轉(zhuǎn)速測量方面我一開始想用電機(jī)自帶的霍爾信號因為無刷電機(jī)的三根霍爾線直接就能輸出方波。實測發(fā)現(xiàn)低速時霍爾信號頻率太低比如電機(jī)極對數(shù)為7、三相霍爾信號每機(jī)械轉(zhuǎn)產(chǎn)生21個脈沖轉(zhuǎn)速降到100rpm時每秒鐘只有35個脈沖采樣窗口稍微短一點誤差就很大。所以后來改為在電機(jī)軸端加裝一個100線的光電增量編碼器歐姆龍E6B2系列配一個簡單的碼盤支架。編碼器輸出兩路正交脈沖既能測轉(zhuǎn)速也能判斷方向而且低速性能比霍爾信號好得多。轉(zhuǎn)速測量精度直接關(guān)系到輸出功率計算的準(zhǔn)確性這筆投入值得花。編碼器安裝要注意碼盤不能與電機(jī)軸之間有任何彈性連接否則轉(zhuǎn)速讀數(shù)會有相位滯后碼盤和光電探頭的間隙要嚴(yán)格按廠家手冊調(diào)整太近會蹭到、太遠(yuǎn)會漏脈沖。我的安裝方式是用一個3D打印的碼盤座直接把編碼器殼體固定在電機(jī)安裝板上碼盤緊套在電機(jī)軸上然后用聯(lián)軸器把電機(jī)軸與制動器軸連接。4. 電子系統(tǒng)的三條線信號調(diào)理、數(shù)據(jù)采集與負(fù)載控制4.1 力傳感器信號調(diào)理與ADC選擇力傳感器的原始輸出非常微弱。我的S型傳感器靈敏度是2.0mV/V當(dāng)供橋電壓為10V時滿量程輸出也只有20mV。這類差分信號不能直接接到單片機(jī)的ADC輸入端因為普通單片機(jī)ADC參考電壓通常是3.3V或5V輸入信號太小分辨率完全不夠。信號調(diào)理有三個方向可以選擇。第一是直接用稱重ADC模塊比如HX711。它內(nèi)部集成了儀表放大器和24位Delta-Sigma ADC專門為應(yīng)變式橋式傳感器設(shè)計接上傳感器就能讀數(shù)據(jù)成本只要幾塊錢。缺點是采樣率很低默認(rèn)10SPS做一些快速的動態(tài)測試就不夠用了但穩(wěn)態(tài)測功場景完全沒問題。第二是儀表放大器加低速高分辨率ADC比如INA125加ADS1115。INA125可以用一個電阻設(shè)置增益把20mV信號放大到2V左右再用ADS1115以16位分辨率、860SPS采樣率讀取。這種方案動態(tài)響應(yīng)比HX711好成本也不高。第三是工業(yè)級變送器把傳感器信號直接變成0-10V或4-20mA的模擬量輸出再接通用采集卡。這是最穩(wěn)妥、抗干擾最好的方案但價格會高一些。我實際用的是HX711。原因很簡單測功機(jī)只需要穩(wěn)態(tài)數(shù)據(jù)10SPS完全夠用而且HX711的24位分辨率讓扭矩讀數(shù)非常平滑省掉了很多軟件濾波工作。唯一要注意的是HX711模塊上通常會有兩個通道用A通道接傳感器增益默認(rèn)128倍B通道接參考電壓用不上。供電方面我給傳感器用獨立10V精密穩(wěn)壓電源HX711模塊用5V供電兩者共地信號線用雙絞屏蔽線引出。4.2 電壓電流采樣與輸入功率計算要算電機(jī)效率必須知道輸入功率。輸入功率等于母線電壓乘以母線電流所以我要在電機(jī)驅(qū)動器的供電母線上同時采樣電壓和電流。電壓采樣比較簡單用電阻分壓把母線電壓降到ADC可測范圍就可以了。但電流采樣要注意方法。常見的兩種方案是用分流電阻加差分放大器或者用霍爾電流傳感器。分流電阻方案精度高、響應(yīng)快、成本低但需要在主回路串電阻會產(chǎn)生發(fā)熱損耗霍爾電流傳感器不侵入主回路電隔離但價格稍高零漂也大一些。我選擇的是INA226模塊方案。這個芯片是TI出的內(nèi)部集成了電流采樣放大器和16位ADC專門用于測量功率。INA226通過I2C接口輸出母線電壓、分流電阻電壓和功率三個值我不需要自己搭差分放大電路代碼里直接讀寄存器就可以。分流電阻我用的是10毫歐的錳銅電阻最大可測電流約20A對500W的小電機(jī)來說足夠。INA226的供電和被測電路之間是共地的使用時要確保測量端和主控端的地電位一致否則I2C通信會不穩(wěn)定。還要提一個容易忽略的問題輸入功率的測量位置在哪里。我測的是驅(qū)動器直流母線的輸入功率這個值包含了驅(qū)動器自身的損耗。如果你關(guān)心的是電機(jī)本體效率嚴(yán)格來說應(yīng)該測電機(jī)三相輸入端的電壓和電流那需要用三相功率分析儀復(fù)雜度高很多。對于電機(jī)選型和電機(jī)系統(tǒng)評估來說母線功率更有意義因為它代表了你整個電驅(qū)系統(tǒng)實際消耗的能量。我寫測試報告時特意標(biāo)明了輸入功率母線側(cè)功率免得后續(xù)看數(shù)據(jù)時長誤導(dǎo)。4.3 磁粉制動器的勵磁電流閉環(huán)控制磁粉制動器的特性是勵磁電流和輸出扭矩在一定范圍內(nèi)近似線性。但這里的坑在于勵磁線圈溫度升高后電阻會變大同樣的驅(qū)動電壓下電流會下降扭矩就跟著漂移。所以直接用固定PWM占空比控制制動器是不可靠的必須加一個電流閉環(huán)。控制電路很簡單一個NMOS管IRLZ44N做低壓側(cè)開關(guān)磁粉制動器的勵磁線圈一端接12V電源另一端接MOS管的漏極源極接一個0.1歐姆采樣電阻到底。單片機(jī)用PWM輸出控制MOS管柵極通過采樣電阻兩端的電壓反饋給單片機(jī)ADC用軟件PID調(diào)節(jié)占空比讓勵磁電流穩(wěn)定在目標(biāo)值。PWM頻率我設(shè)在20kHz比音頻范圍高安靜也能避開力傳感器采樣頻段。20kHz的PWM對MOS管開關(guān)損耗來說略高但電流只有0.6A這個MOS管完全扛得住。實際驅(qū)動時要注意磁粉制動器線圈是感性負(fù)載MOS管漏極必須加續(xù)流二極管否則關(guān)斷瞬間的尖峰電壓會擊穿MOS管。我用了SS34肖特基二極管反向耐壓40V對這個電壓等級有足夠的裕量。電流閉環(huán)的PID參數(shù)比例系數(shù)要小一些因為勵磁電流只要調(diào)到穩(wěn)態(tài)值不需要快速響應(yīng)積分系數(shù)稍大一些用來消除穩(wěn)態(tài)誤差。我自己的參數(shù)大概是P0.3、I0.5、D0.1實際效果是約1秒內(nèi)電流穩(wěn)定到目標(biāo)值的正負(fù)2%。測功機(jī)本來就是要等電機(jī)穩(wěn)定后再讀數(shù)這個響應(yīng)速度完全夠用。5. 上位機(jī)編程與砝碼標(biāo)定把傳感器讀數(shù)變成可信數(shù)據(jù)5.1 數(shù)據(jù)采集協(xié)議與上位機(jī)架構(gòu)下位機(jī)用STM32F103作為主控以10Hz的頻率采集HX711力值、編碼器轉(zhuǎn)速、INA226電壓電流和勵磁電流反饋四個數(shù)據(jù)通過串口以CSV格式發(fā)送給上位機(jī)。串口波特率115200每一幀數(shù)據(jù)形如t1.2, T0.153, n2456, I0.82, V11.96, I_load0.24對應(yīng)的字段分別是測試時間、扭矩(單位Nm由力值乘以力臂換算)、轉(zhuǎn)速(rpm)、母線電流(A)、母線電壓(V)、制動器勵磁電流(A)。上位機(jī)用Python腳本寫的核心功能有三個讀取串口數(shù)據(jù)并實時繪制曲線、向制動器發(fā)送目標(biāo)勵磁電流指令、將數(shù)據(jù)保存為CSV文件。繪圖用matplotlib串口通信用pyserial。整個測試流程是這樣操作的先讓電機(jī)空載運(yùn)行等轉(zhuǎn)速穩(wěn)定后記錄第一個工作點然后通過上位機(jī)將制動器勵磁電流增加一小步比如從0增加到0.05A等待扭矩和轉(zhuǎn)速重新穩(wěn)定記錄第二個工作點如此循環(huán)直到轉(zhuǎn)速降到額定轉(zhuǎn)速的20%以下或者扭矩達(dá)到設(shè)定上限。自動掃描的工作流也可以實現(xiàn)。我已經(jīng)在腳本里寫好了一個簡單的負(fù)載掃描函數(shù)設(shè)定好起始電流、步進(jìn)電流和末電流腳本會按順序自動修改勵磁電流目標(biāo)值每個電流檔位等待5秒后取數(shù)據(jù)平均值。因為電機(jī)在不同負(fù)載點需要幾秒的穩(wěn)定時間所以整個測試過程走一遍大概需要兩三分鐘效率還不錯。5.2 砝碼標(biāo)定的完整步驟測功機(jī)做出來的第一件事不是接電機(jī)而是標(biāo)定。標(biāo)定的目的是確定力傳感器讀到的ADC值跟真實扭矩之間的一一對應(yīng)關(guān)系。最可靠的辦法就是砝碼標(biāo)定法。我專門做了一套標(biāo)定工具一塊用來掛砝碼的托盤掛在力臂桿末端確保吊點位置與正常運(yùn)行傳感器受力點在同一位置。標(biāo)定步驟如下先把力臂桿調(diào)水平確認(rèn)砝碼掛點位置到制動器軸心線的垂直距離L用卡尺多次測量取平均。我的力臂L0.300m。不加砝碼讓系統(tǒng)處于自由狀態(tài)采集HX711的ADC原始值作為零點記為zero。依次在托盤上放置1kg、2kg、3kg、4kg、5kg標(biāo)準(zhǔn)砝碼在每個重量下等HX711讀數(shù)穩(wěn)定后記錄ADC平均值。每個重量重復(fù)三次取平均。將每個重量換算成扭矩。例如2kg砝碼產(chǎn)生的扭矩為T m × g × L 2 × 9.8 × 0.3 5.88Nm。注意這里g取當(dāng)?shù)刂亓铀俣热绻阍诔鞘欣镒鰷y試用9.8就足夠了如果要更高的精度可以查當(dāng)?shù)氐闹亓铀俣戎怠S米钚《朔〝M合ADC值與扭矩之間的線性關(guān)系得到斜率k和截距b。實際擬合出來的線性相關(guān)系數(shù)R2在0.999以上說明整個測量鏈路的線性度非常好。標(biāo)定過程有一個容易被忽略的點傳感器在受力方向上的預(yù)緊。我在安裝S型傳感器時會給它一個很小的初始拉力預(yù)緊保證它在整個工作范圍內(nèi)都處于拉伸狀態(tài)不會出現(xiàn)間隙導(dǎo)致的非線性。標(biāo)定時要確保力臂桿仍然保持水平因為砝碼重力垂直向下如果力臂桿不水平砝碼力臂的有效長度就不再是L而要用三角函數(shù)修正。5.3 從原始數(shù)據(jù)到特性曲線的計算過程標(biāo)定完成后下一步就是把每次測得的扭矩、轉(zhuǎn)速、電壓、電流變成特性曲線。這個階段我完全不依賴測功機(jī)自帶軟件所有計算都用Python完成。數(shù)據(jù)清洗要做的第一件事是去抖動。由于電機(jī)運(yùn)行存在輕微的轉(zhuǎn)速波動實時讀數(shù)會有隨機(jī)噪聲我做了一個簡單的滑動平均窗口每20個連續(xù)采樣點取平均把平滑后的值作為該工作點的數(shù)據(jù)。另一個問題是異常值剔除比如聯(lián)軸器偶爾打滑時扭矩讀數(shù)會突然跌落這種點通過設(shè)定一個與相鄰點差值超過10%就標(biāo)記為異常值的方式去除。清洗完成后對每個工作點計算三個衍生量輸出功率P_out T × 2πn / 60輸入功率P_in V × I效率η P_out / P_in × 100%然后繪制三張曲線T-n曲線、P_out-n曲線、η-n曲線。我把它們整合在一張圖里用雙縱軸表示。下面是一個簡化版的上位機(jī)數(shù)據(jù)讀取和計算代碼框架可以參考import serial import numpy as np import matplotlib.pyplot as plt ser serial.Serial(/dev/ttyUSB0, 115200, timeout1) data [] while True: line ser.readline().decode().strip() if not line.startswith(t): continue parts dict(item.split() for item in line.split(, )) t float(parts[t]) torque float(parts[T]) speed float(parts[n]) current float(parts[I]) voltage float(parts[V]) data.append((torque, speed, current, voltage)) # 按設(shè)定步進(jìn)修改勵磁電流或者等待手動指令 # 當(dāng)采集夠一個工作點后暫停并計算平均值 # 假設(shè) data_t、data_n、data_i、data_v 是平滑后的工作點數(shù)組 data_t np.array([d[0] for d in data]) data_n np.array([d[1] for d in data]) data_i np.array([d[2] for d in data]) data_v np.array([d[3] for d in data]) # 計算功率和效率 omega 2 * np.pi * data_n / 60 p_out data_t * omega p_in data_v * data_i eff p_out / p_in * 100 # 繪制扭矩-轉(zhuǎn)速曲線和效率-轉(zhuǎn)速曲線 fig, ax1 plt.subplots() ax1.plot(data_n, data_t, b-o, labelTorque) ax1.set_xlabel(Speed (rpm)) ax1.set_ylabel(Torque (Nm), colorb) ax2 ax1.twinx() ax2.plot(data_n, eff, r-s, labelEfficiency) ax2.set_ylabel(Efficiency (%), colorr) plt.show()6. 實測結(jié)果、精度驗證與踩坑記錄6.1 一臺720KV無刷電機(jī)的完整測試設(shè)備搭建完成并標(biāo)定之后我找了一臺720KV的無人機(jī)無刷電機(jī)來試機(jī)。這個電機(jī)的標(biāo)稱參數(shù)是電壓12V最大持續(xù)電流30A這里只是標(biāo)稱值實測結(jié)果很能說明問題。測試時供電電壓設(shè)定為11.1V3S鋰電滿電值附近制動器從零電流開始每次增加0.05A勵磁電流每個點穩(wěn)定5秒后記錄數(shù)據(jù)。從空載到堵轉(zhuǎn)整個掃描過程一共采集了24個工作點下面是其中幾個有代表性的點勵磁電流(A)扭矩(Nm)轉(zhuǎn)速(rpm)母線電壓(V)母線電流(A)輸出功率(W)輸入功率(W)效率(%)0.000.008492011.10.94.110.041.00.050.052398011.12.821.731.169.80.100.098342011.14.335.147.773.70.200.185273011.18.152.889.958.70.300.276181011.113.552.3149.934.9從實測數(shù)據(jù)可以明顯看到這臺電機(jī)在扭矩0.1Nm附近、轉(zhuǎn)速3400rpm左右時效率最高達(dá)到73.7%再繼續(xù)增大負(fù)載輸出功率雖然還在上升但輸入功率增長更快效率反而下降。這個規(guī)律對無人機(jī)選型非常有參考價值——懸停工況的四分之一油門附近處于高效區(qū)而暴力加速工況則處于低效區(qū)長時間運(yùn)行就要考慮散熱問題。我注意到一個問題空載轉(zhuǎn)速4920rpm按KV720算理論空載轉(zhuǎn)速應(yīng)該是11.1×7207992rpm實測明顯偏低。原因有兩點一是空載損耗軸承摩擦、風(fēng)阻、鐵損使實際轉(zhuǎn)速低于理想值二是我的編碼器測的是電機(jī)軸端包含了聯(lián)軸器和制動器軸承的阻力這個阻力在高速時形成附加的制動扭矩。這個現(xiàn)象也說明測功機(jī)的空載扭矩不為零不能把空載轉(zhuǎn)速當(dāng)成理想空載轉(zhuǎn)速。6.2 實際運(yùn)行中遇到的