文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190306
中文引用格式: 李緯良,肖輝,方鵬飛. 基于STM32的揚(yáng)聲器定心支片順性測量系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(7):102-106,116.
英文引用格式: Li Weiliang,Xiao Hui,F(xiàn)ang Pengfei. Design of a loudspeaker spider compliance measuring system based on STM32[J]. Application of Electronic Technique,2019,45(7):102-106,116.
0 引言
定心支片是揚(yáng)聲器的核心部件之一,它用于保證揚(yáng)聲器工作時(shí),音圈在磁隙中處于正確的位置,并且保證音圈在振動(dòng)過程中僅沿軸向作往復(fù)運(yùn)動(dòng)[1-2]。受到制作材料和設(shè)計(jì)形狀的影響,在揚(yáng)聲器工作時(shí),定心支片會(huì)產(chǎn)生一定程度的非線性失真。因此,要求在有效的振動(dòng)范圍內(nèi),定心支片的受力和形變需要有良好的線性關(guān)系。
揚(yáng)聲器行業(yè)中用定心支片的順性來表征一個(gè)定心支片的特性,即定心支片彈性系數(shù)的倒數(shù)。較為普遍的測量方法是施加固定負(fù)載(50 g或者100 g標(biāo)準(zhǔn)砝碼)后根據(jù)定心支片的變位來判斷定心支片的順性[3-4]。傳統(tǒng)的定心支片順性測量儀通?;谶@一方法來實(shí)現(xiàn),但是使用過程中,只能粗略地判斷一個(gè)定心支片的線性范圍,不能反映定心支片運(yùn)動(dòng)過程中的受力情況,且不能測量定心支片的最大線性范圍,對于后續(xù)的研究與分析具有很大的局限性。
針對以上問題,本文結(jié)合前人的工作,基于STM32F407單片機(jī)開發(fā)了一種定心支片順性測量系統(tǒng)。該系統(tǒng)結(jié)合步進(jìn)電機(jī)、數(shù)顯游標(biāo)卡尺和壓力傳感器,實(shí)現(xiàn)了自動(dòng)控制定心運(yùn)動(dòng)并檢測位移和受力大小的功能,并使用滑動(dòng)均值濾波算法和最小二乘擬合算法對數(shù)據(jù)進(jìn)行處理,使得測量結(jié)果更加精確。最后通過對順性曲線進(jìn)行計(jì)算來查找被測定心支片的線性范圍。
1 硬件設(shè)計(jì)
1.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
定心支片在持續(xù)受到一個(gè)方向的外力作用時(shí)會(huì)產(chǎn)生一定的塑性形變而無法自動(dòng)復(fù)原,而在揚(yáng)聲器工作中,定心支片的受力的大小與方向?qū)嶋H上是一個(gè)持續(xù)變化的過程,因而需要?jiǎng)討B(tài)地對其進(jìn)行測量,才能準(zhǔn)確反映其運(yùn)動(dòng)時(shí)的真實(shí)受力情況?;谝陨戏治?,本系統(tǒng)使用步進(jìn)電機(jī)和線性滑軌對測量系統(tǒng)進(jìn)行搭建,既可以模擬定心支片運(yùn)動(dòng)的過程,又可以通過單片機(jī)對運(yùn)動(dòng)狀態(tài)進(jìn)行控制,來模擬不同的工作場景。另外,在運(yùn)動(dòng)過程中通過單片機(jī)對各模塊進(jìn)行數(shù)據(jù)采集和計(jì)算,即可得到揚(yáng)聲器工作時(shí)定心支片的運(yùn)動(dòng)參數(shù)。
系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示,使用精度為0.01 mm的數(shù)顯游標(biāo)卡尺與滑軌連接,用于采集定心支片的位移數(shù)據(jù)。壓力傳感器固定于滑軌之上,用于采集壓力數(shù)據(jù)。另外,使用高精度的滾珠絲桿作為步進(jìn)電機(jī)和滑軌的聯(lián)動(dòng)軸使得系統(tǒng)運(yùn)行更加精確。
1.2 電路設(shè)計(jì)
本系統(tǒng)的硬件電路的設(shè)計(jì)從性能、功耗、穩(wěn)定性與可靠性這幾個(gè)方面來綜合考慮,并按照實(shí)現(xiàn)的功能對電路模塊進(jìn)行了分類,使用模塊化的設(shè)計(jì)方法降低了電路系統(tǒng)設(shè)計(jì)的風(fēng)險(xiǎn),并且易于修改和測試。電路整體設(shè)計(jì)框圖如圖2所示,電路系統(tǒng)以STM32F407單片機(jī)作為主控芯片,對各類模塊進(jìn)行控制。其中數(shù)據(jù)采樣模塊使用了低紋波的線性直流穩(wěn)壓電源,來降低電源噪聲對采樣電路的影響,而功耗較大的TFT驅(qū)動(dòng)模塊和步進(jìn)電機(jī)驅(qū)動(dòng)模塊則使用了開關(guān)型穩(wěn)壓電源,降低了電路系統(tǒng)的整體功耗。
1.2.1 線性穩(wěn)壓電源設(shè)計(jì)
采樣電路供電模塊的穩(wěn)定性決定了采樣結(jié)果的正確性,因此,需要低電壓紋波的線性直流穩(wěn)壓電源來為數(shù)據(jù)采樣模塊供電[5]。本系統(tǒng)的線性直流穩(wěn)壓電源使用增加電壓壓降的設(shè)計(jì)方式來提升輸出電壓的穩(wěn)定性,并且使用多路級聯(lián)的方式來分散熱功耗對單個(gè)穩(wěn)壓模塊的影響。另外針對工作過程中可能出現(xiàn)的負(fù)載波動(dòng),設(shè)計(jì)了較寬的電流范圍,并且使用三極管對穩(wěn)壓芯片進(jìn)行并聯(lián)擴(kuò)流,既提升了電路的帶負(fù)載能力,又不會(huì)增加芯片的發(fā)熱量,提升了電路的可靠性。
線性直流穩(wěn)壓電源的設(shè)計(jì)如圖3所示,使用集成三端穩(wěn)壓芯片LM317為核心,并使用可控精密穩(wěn)壓源TL431作為基準(zhǔn)穩(wěn)壓源來對直流穩(wěn)壓電源進(jìn)行設(shè)計(jì)。兩者都具有低噪聲、高紋波抑制比的優(yōu)點(diǎn),非常適合線性穩(wěn)壓電源的設(shè)計(jì)。前級電路使用NPN管Q1對LM317芯片進(jìn)行擴(kuò)流,可有效降低芯片的熱功耗,后級電路使用TL431芯片作為基準(zhǔn),降低了輸出電壓紋波。另外,使用PNP管Q2與負(fù)載并聯(lián),降低了負(fù)載波動(dòng)對穩(wěn)壓效果的影響,提升了電路的帶負(fù)載能力。
1.2.2 壓力采樣電路設(shè)計(jì)
本系統(tǒng)的壓力傳感器為平行梁式鋁合金測力傳感器SBT430,該傳感器為壓阻式應(yīng)變傳感器,其輸出信號為一微弱的差分信號,需要對其進(jìn)行放大和濾波處理后才能進(jìn)行A/D轉(zhuǎn)換。
壓力采樣電路使用單一模塊的設(shè)計(jì)方式,避免了多路放大與A/D轉(zhuǎn)換模塊級聯(lián)帶來的噪聲疊加和溫度漂移。選擇集成有低噪聲可編程放大器、穩(wěn)壓電源以及片內(nèi)時(shí)鐘振蕩器的HX711芯片來進(jìn)行設(shè)計(jì),可以直接控制STM32F407單片機(jī)對其進(jìn)行采樣,既提高了采樣穩(wěn)定性,又簡化了電路設(shè)計(jì)。壓力信號采集電路如圖4所示。
1.2.3 步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)
系統(tǒng)的運(yùn)動(dòng)使用57系列步進(jìn)電機(jī)來進(jìn)行運(yùn)動(dòng)控制,該系列步進(jìn)電機(jī)具有運(yùn)行平穩(wěn)、可靠性高的特點(diǎn)。工業(yè)生產(chǎn)中常使用集成驅(qū)動(dòng)塊來對步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng),使用撥碼開關(guān)對其工作模式進(jìn)行設(shè)定可以應(yīng)對大部分的工作場景,但是本系統(tǒng)的運(yùn)動(dòng)控制需要有較高的靈敏度和更加多樣的工作方式。為此,本文使用驅(qū)動(dòng)芯片加STM32F407單片機(jī)直接驅(qū)動(dòng)的方式來對步進(jìn)電機(jī)的驅(qū)動(dòng)電路進(jìn)行設(shè)計(jì)和優(yōu)化,針對不同的工作狀態(tài),使用單片機(jī)來自動(dòng)選擇不同的細(xì)分方式、驅(qū)動(dòng)電流和驅(qū)動(dòng)電壓頻率,使得控制方式更加靈活。步進(jìn)電機(jī)驅(qū)動(dòng)電路如圖5所示。
2 軟件設(shè)計(jì)
本文的軟件系統(tǒng)主要實(shí)現(xiàn)的功能有數(shù)據(jù)采集、數(shù)據(jù)發(fā)送和系統(tǒng)校正。根據(jù)不同電路模塊的驅(qū)動(dòng)特點(diǎn)和工作方式的需要,使用模塊化編程的思想對各驅(qū)動(dòng)模塊、運(yùn)動(dòng)控制模塊和采樣模塊進(jìn)行設(shè)計(jì)和組合,節(jié)省了開發(fā)時(shí)間,而且便于后期調(diào)試和維護(hù)。系統(tǒng)設(shè)計(jì)中將數(shù)據(jù)采集模塊和數(shù)據(jù)發(fā)送模塊進(jìn)行分離,避免了數(shù)據(jù)發(fā)送中的時(shí)延對采樣等待時(shí)間造成的影響,使得采樣速度更快。另外,使用自動(dòng)校正壓力傳感器壓力值和定心支片起始點(diǎn)的設(shè)計(jì),節(jié)省了儀器校準(zhǔn)的時(shí)間,并使得系統(tǒng)的輸出結(jié)果更加準(zhǔn)確。系統(tǒng)的軟件設(shè)計(jì)流程如圖6所示。
2.1 壓力采樣值濾波
受電源噪聲和外界電磁干擾的影響,對一固定負(fù)載進(jìn)行連續(xù)采樣時(shí),HX711芯片的輸出值會(huì)有較大波動(dòng)。使用數(shù)字濾波法來對數(shù)據(jù)噪聲進(jìn)行濾波處理可以快速去除數(shù)據(jù)中的噪聲干擾,并且不會(huì)占用過多的系統(tǒng)資源。常用的數(shù)字濾波法有限幅濾波法、中位值濾波法、算術(shù)平均法、滑動(dòng)均值濾波法以及幾種方法組合之后的濾波方法[6-8]。結(jié)合各濾波法的優(yōu)缺點(diǎn)和本系統(tǒng)的采樣特點(diǎn),本文采用滑動(dòng)均值濾波法和中位值濾波法相結(jié)合的方式來對壓力信號進(jìn)行處理。濾波算法的實(shí)現(xiàn)過程是構(gòu)建一個(gè)長度為N的FIFO(First Input First Output)存儲(chǔ)空間,對采樣值進(jìn)行存儲(chǔ),每獲得一次數(shù)據(jù)就對存儲(chǔ)空間中的數(shù)據(jù)做一次中位值濾波(去掉N個(gè)數(shù)據(jù)中的最大值和最小值后,對剩下的N-2個(gè)數(shù)據(jù)做一次算術(shù)平均),其結(jié)果就為此次濾波后的結(jié)果。此方法對信號中的脈沖干擾有很好的抑制效果,且實(shí)現(xiàn)簡單,占用系統(tǒng)資源較少。
2.2 數(shù)據(jù)擬合算法設(shè)計(jì)
由于實(shí)驗(yàn)數(shù)據(jù)的離散性,采集的數(shù)據(jù)常需要進(jìn)行擬合或者插值等處理后才能得到反映變量之間相互關(guān)系的曲線。本文使用最小二乘法對數(shù)據(jù)進(jìn)行擬合[9-12],可以降低數(shù)據(jù)誤差帶來的影響,提高擬合優(yōu)度。
為找出壓力值p與位移l之間的關(guān)系曲線,需要依據(jù)s個(gè)實(shí)驗(yàn)樣本來構(gòu)造一個(gè)函數(shù)(l),使得壓力計(jì)算值
(li)與實(shí)測值pi的偏差的平方和達(dá)到最小。
設(shè)n次多項(xiàng)式擬合函數(shù)為:
則s個(gè)實(shí)驗(yàn)樣本與擬合函數(shù)的殘差為:
2.3 最大線性位移查找算法設(shè)計(jì)
系統(tǒng)計(jì)算得到擬合函數(shù)后,使用最大線性位移查找算法可以計(jì)算得到定心支片的最大線性位移。該算法使用線性逼近法來實(shí)現(xiàn),將順性曲線的與其切線進(jìn)行對比,計(jì)算得出低于誤差閾值ε(ε>0)的最大位移值,即為定心支片的最大位移。
設(shè)定心支片的順性曲線為:
從0 mm開始,以0.01 mm為最小單位,對式(9)進(jìn)行計(jì)算,便可以計(jì)算出低于誤差閾值的最大位移。另外,通過最大線性位移和擬合曲線可以計(jì)算出最大線性受力范圍。該方法實(shí)現(xiàn)速度快,通過修改閾值可以應(yīng)用于不同的場合,可移植性好。
2.4 上位機(jī)軟件設(shè)計(jì)
本系統(tǒng)的上位機(jī)軟件設(shè)計(jì)使用Visual Stdio2010軟件來實(shí)現(xiàn),并從系統(tǒng)控制、數(shù)據(jù)接收和系統(tǒng)通信三個(gè)方面來進(jìn)行設(shè)計(jì)。系統(tǒng)控制和數(shù)據(jù)接收主要完成用戶指令獲取和數(shù)據(jù)保存的功能。系統(tǒng)通信主要完成上位機(jī)軟件與單片機(jī)之間的指令和數(shù)據(jù)的傳輸功能,設(shè)計(jì)中使用了將數(shù)據(jù)變量轉(zhuǎn)換成對應(yīng)的字符進(jìn)行傳輸?shù)姆椒▉韺?shù)據(jù)進(jìn)行傳輸,并使用特殊符號標(biāo)記的方法來區(qū)分不同的指令和數(shù)據(jù),避免了字符串?dāng)_帶來的影響,提高了數(shù)據(jù)傳輸?shù)目煽啃?。上位機(jī)軟件設(shè)計(jì)界面如圖7所示。
3 系統(tǒng)測試
3.1 整體測試
使用本系統(tǒng)對一個(gè)5英寸的定心支片進(jìn)行采樣測試來檢驗(yàn)系統(tǒng)的測量功能。在上位機(jī)軟件中設(shè)置采樣范圍為-2.00 mm~2.00 mm,設(shè)置線性判斷誤差閾值為0.004 N,使用上位機(jī)軟件控制系統(tǒng)進(jìn)行采樣,并對數(shù)據(jù)進(jìn)行接收。采樣結(jié)果和擬合曲線如圖8所示,右側(cè)的文本窗顯示了被測定心支片的線性范圍。
可以得到在線性誤差閾值為0.004 N時(shí),該定心支片的位移線性范圍為-0.62 mm~0.85 mm,線性受力范圍為-0.419 N~0.552 N,可見該定心支片在該閾值下的線性范圍并不是上下對稱。
3.2 壓力測量誤差分析
為檢驗(yàn)壓力采樣的準(zhǔn)確性,將壓力測量值與實(shí)際值進(jìn)行比較。使用不同質(zhì)量的標(biāo)準(zhǔn)砝碼來檢測壓力采樣的精度,采樣結(jié)果如表1所示。通過對比可知,采樣值的最大誤差為0.15 g,即壓力采樣值的誤差在0.002 N以內(nèi),具有較高的壓力采樣精度。
4 結(jié)論
本文介紹了一種基于STM32F407單片機(jī)的揚(yáng)聲器定心支片順性測量系統(tǒng),該系統(tǒng)使用動(dòng)態(tài)測量的方式解決了傳統(tǒng)定心支片順性測量儀對定心支片的運(yùn)動(dòng)狀態(tài)把握不準(zhǔn)確以及無法獲得定心支片的最大線性范圍的問題,方便揚(yáng)聲器設(shè)計(jì)人員對其進(jìn)行后續(xù)的研究和分析,具有一定的使用價(jià)值。
參考文獻(xiàn)
[1] 王以真.實(shí)用揚(yáng)聲器技術(shù)手冊[M].北京:國防工業(yè)出版社,2003.
[2] 王以真.實(shí)用揚(yáng)聲器工藝手冊[M].北京:國防工業(yè)出版社,2006.
[3] 王文建,沙家正.揚(yáng)聲器定心支片的非線性失真研究[J].應(yīng)用聲學(xué),1999(5):24-28.
[4] 閆秉耀.揚(yáng)聲器定心支片的順性測量儀[J].電聲技術(shù),2006(5):29-32,36.
[5] 李承煒,韓俊南,杜欣,等.基于ADS1293的穿戴式心電檢測裝置設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(9):8-12.
[6] 郭健忠,程峰,謝斌,等.改進(jìn)型限幅遞推平均濾波法在燃油表中的應(yīng)用[J].科學(xué)技術(shù)與工程,2018,18(16):62-67.
[7] 周繼裕,陳思露,符少文.基于均值滑動(dòng)濾波算法和STM32電子秤的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2017,40(10):10-12,15.
[8] 郭富智,杜紅棉,李肖姝,等.乒乓球/羽毛球運(yùn)動(dòng)狀態(tài)識別手表的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(4):73-76.
[9] 田子林,陳家新.基于最小二乘法與霍夫變換的虹膜定位算法[J].電子技術(shù)應(yīng)用,2019,45(2):75-79.
[10] 王淳,郭靜波,劉紅旗,等.基于最小二乘的極低頻微弱信號實(shí)時(shí)檢測方法[J].儀器儀表學(xué)報(bào),2009,30(12):2468-2473.
[11] 黃靜,劉琴琴.基于曲線擬合改進(jìn)算法的水質(zhì)生物毒性研究[J].儀表技術(shù)與傳感器,2017(7):105-107,120.
[12] 賈小勇,徐傳勝,白欣.最小二乘法的創(chuàng)立及其思想方法[J].西北大學(xué)學(xué)報(bào)(自然科學(xué)版),2006(3):507-511.
[13] 同濟(jì)大學(xué)數(shù)學(xué)系.線性代數(shù)[M].北京:高等教育出版社,2007.
作者信息:
李緯良,肖 輝,方鵬飛
(武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢430072)