常廣暉,張亞超,蘇攀,劉樹(shù)勇
(海軍工程大學(xué)動(dòng)力工程學(xué)院,湖北武漢 430033)
轉(zhuǎn)速是工業(yè)控制中重要的測(cè)量參數(shù),艦船的很多動(dòng)力設(shè)備需要轉(zhuǎn)速的實(shí)時(shí)監(jiān)測(cè)與控制。動(dòng)力設(shè)備轉(zhuǎn)速測(cè)量原理是將磁電傳感器產(chǎn)生的信號(hào)放大整形,濾波處理為標(biāo)準(zhǔn)方波信號(hào),然后對(duì)方波信號(hào)進(jìn)行頻率測(cè)量。不同艦船動(dòng)力設(shè)備的轉(zhuǎn)速范圍區(qū)別很大,低速設(shè)備(如推進(jìn)軸系)的轉(zhuǎn)速最低可低至幾十轉(zhuǎn)每分鐘,高速設(shè)備(如燃?xì)廨啓C(jī))的高壓壓氣機(jī)轉(zhuǎn)速最高可達(dá)八、九千轉(zhuǎn)每分鐘,這些設(shè)備的轉(zhuǎn)速信號(hào)是監(jiān)控系統(tǒng)控制邏輯的重要判斷條件,所以大范圍全頻段內(nèi)轉(zhuǎn)速的精確測(cè)量對(duì)于監(jiān)控系統(tǒng)設(shè)計(jì)至關(guān)重要。在實(shí)際應(yīng)用中,低頻轉(zhuǎn)速測(cè)量通常采用測(cè)周法,高頻轉(zhuǎn)速測(cè)量通常采用測(cè)頻法,兩者各有局限性。對(duì)于從低速到高速的全頻段轉(zhuǎn)速測(cè)量,M/T 法更有優(yōu)勢(shì),它結(jié)合了測(cè)周法和測(cè)頻法的優(yōu)點(diǎn),很多學(xué)者對(duì)提高M(jìn)/T 法測(cè)量精度進(jìn)行了研究,提出了新的設(shè)計(jì)方案。周昂揚(yáng)[1]等提出一種基于誤差分析的M/T 混合測(cè)速法,利用M 法和T 法在恰當(dāng)時(shí)刻的切換,實(shí)現(xiàn)較寬速度范圍內(nèi)的高精度測(cè)速,并利用TMS320 F28335 芯片實(shí)現(xiàn)了該算法;王海勇[2]等提出一種變M/T 測(cè)速方法,彌補(bǔ)了傳統(tǒng)M/T 法在低速時(shí)實(shí)時(shí)性差的不足,提高了測(cè)速的精度,并在STM32 開(kāi)發(fā)板上實(shí)現(xiàn)了該算法;金鋒[3]等在通過(guò)粗測(cè)輸入信號(hào)頻率值的基礎(chǔ)上,選擇合適的分頻因子,動(dòng)態(tài)控制閘門(mén)時(shí)間,拓寬了頻率測(cè)量范圍,提高了測(cè)量精度;謝波[4]等結(jié)合計(jì)數(shù)法和測(cè)周法的優(yōu)勢(shì),提出了一種頻率自適應(yīng)的最大化周期的計(jì)數(shù)測(cè)頻方法。
各學(xué)者對(duì)于在寬轉(zhuǎn)速范圍內(nèi)如何提高M(jìn)/T 轉(zhuǎn)速測(cè)量的精度問(wèn)題都進(jìn)行了深入的研究,各自提出了針對(duì)不同應(yīng)用場(chǎng)合的設(shè)計(jì)方案,但是對(duì)于為滿足工業(yè)常用的儀表精度等級(jí)如何科學(xué)動(dòng)態(tài)調(diào)整M/T 法的計(jì)數(shù)系數(shù)M和分頻系數(shù)k,缺乏更為深入的研究分析,缺少對(duì)于M/T 法實(shí)時(shí)性的分析,具有一定的局限性。文中針對(duì)以上問(wèn)題,在深入分析影響測(cè)速精度因素的基礎(chǔ)上,提出一種自適應(yīng)M/T 轉(zhuǎn)速測(cè)量法,并采用STM32F103 高速定時(shí)器的輸入捕獲功能對(duì)算法進(jìn)行了實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果表明,算法在很寬的測(cè)速范圍內(nèi)保持同樣的測(cè)速精度,同時(shí)具有很好的實(shí)時(shí)性。
M/T 法是一種在一定時(shí)間間隔內(nèi)同時(shí)對(duì)被測(cè)信號(hào)和基準(zhǔn)脈沖信號(hào)進(jìn)行計(jì)數(shù)來(lái)測(cè)量速度的方法,時(shí)間間隔由對(duì)被測(cè)信號(hào)定時(shí)來(lái)實(shí)現(xiàn)[5-6],其原理如圖1所示。
圖1 M/T法測(cè)量原理
被測(cè)信號(hào)通過(guò)放大整形電路后變?yōu)闃?biāo)準(zhǔn)的方波信號(hào),其未知頻率為。已知頻率為f0的基準(zhǔn)脈沖信號(hào)經(jīng)分頻后在計(jì)數(shù)及同步觸發(fā)電路的控制下對(duì)被測(cè)信號(hào)進(jìn)行頻率測(cè)量。理想情況下,兩個(gè)信號(hào)在邊沿同步觸發(fā)后,在一定時(shí)間間隔T內(nèi),通過(guò)計(jì)數(shù)器分別對(duì)兩個(gè)信號(hào)進(jìn)行計(jì)數(shù),被測(cè)信號(hào)計(jì)數(shù)值為M,基準(zhǔn)脈沖信號(hào)計(jì)數(shù)值為N,由此可求解被測(cè)信號(hào)的頻率為:
實(shí)際上由于停止計(jì)數(shù)時(shí),被測(cè)信號(hào)邊沿不一定與基準(zhǔn)脈沖信號(hào)的邊沿對(duì)齊,可能超前或者滯后,這樣會(huì)造成基準(zhǔn)脈沖信號(hào)的計(jì)數(shù)誤差。假設(shè)計(jì)數(shù)值N的誤差為ΔN,則||ΔN≤1,同理計(jì)數(shù)值M的誤差為ΔM。同時(shí)由晶振和振蕩電路產(chǎn)生的基準(zhǔn)信號(hào)本身頻率也存在誤差,假設(shè)誤差為Δf0,考慮到以上兩個(gè)因素,則被測(cè)信號(hào)的準(zhǔn)確頻率為:
由式(2)可知,被測(cè)信號(hào)頻率的相對(duì)誤差為:
在實(shí)際轉(zhuǎn)速測(cè)量電路設(shè)計(jì)中,采用高穩(wěn)定、恒溫晶振可以大大降低基準(zhǔn)信號(hào)頻率誤差Δf0,而為了測(cè)量高頻信號(hào),f0設(shè)計(jì)的也很高,這樣基準(zhǔn)信號(hào)頻率相對(duì)誤差Δf0/f0可以忽略。同時(shí)在轉(zhuǎn)速測(cè)量程序設(shè)計(jì)中,可以采用對(duì)被測(cè)信號(hào)計(jì)數(shù)來(lái)進(jìn)行定時(shí),所以M沒(méi)有誤差,則:
相對(duì)誤差δ相當(dāng)于頻率測(cè)量時(shí)的讀數(shù)精度[7]。例如,通過(guò)STM32 單片機(jī)選用測(cè)頻法進(jìn)行轉(zhuǎn)速測(cè)量,要求讀數(shù)精度不大于0.01,STM32 通用定時(shí)器的基準(zhǔn)信號(hào)頻率選為f0=32 MHz,定時(shí)間隔系數(shù)M取100。
假設(shè)頻率測(cè)量要求的讀數(shù)精度為η0,即,根據(jù)式(1)可以推導(dǎo)出頻率測(cè)量范圍的上限為,所需要的最短測(cè)量時(shí)間為:
通過(guò)以上分析可以看出,在給定測(cè)量要求的讀數(shù)精度和基準(zhǔn)信號(hào)頻率后,頻率測(cè)量范圍上限與M成正比,最短的測(cè)量時(shí)間與M無(wú)關(guān),且與讀數(shù)精度成反比。如果固定M值,那么被測(cè)信號(hào)的頻率越低,所需的測(cè)量時(shí)間就越長(zhǎng),而此時(shí)的測(cè)量精度隨著N值的增大而增大。所以在低頻時(shí),M/T 法測(cè)量的測(cè)量精度會(huì)很高,但是轉(zhuǎn)速測(cè)量實(shí)時(shí)性會(huì)大大降低,這不利于艦船動(dòng)力系統(tǒng)的轉(zhuǎn)速控制[7-16]。
通過(guò)M/T 法測(cè)量原理分析可以看出,為了提高在低頻段轉(zhuǎn)速測(cè)量的實(shí)時(shí)性,在滿足測(cè)量讀數(shù)精度的前提下,可以適當(dāng)降低M的設(shè)定值,使M根據(jù)被測(cè)信號(hào)的頻率自適應(yīng)變化。為了通用化考慮,以下分析中相對(duì)誤差可以參考我國(guó)工業(yè)常用的儀表精度等級(jí)例如:0.005、0.02、0.05、0.1、0.2等,即δ的取值為0.005、0.02、0.05、0.1、0.2。根據(jù)式(1)和(4)可推導(dǎo)出在選定基準(zhǔn)信號(hào)頻率下,滿足相對(duì)誤差的最大可測(cè)信號(hào)頻率值和系數(shù)M之間的關(guān)系:
根據(jù)M/T 法測(cè)量原理可知,M為大于0 的整數(shù),最小為1,假設(shè)基準(zhǔn)信號(hào)頻率為1 MHz,δ按以上5 種精度等級(jí)取值,根據(jù)式(6)可以繪制等精度前提下的最大可測(cè)信號(hào)頻率值和系數(shù)M關(guān)系曲線,如圖2 所示。
圖2 信號(hào)頻率與系數(shù)M的等精度曲線
以精度δ=0.1 的曲線為例,隨著最大可測(cè)信號(hào)頻率值的增長(zhǎng),增加系數(shù)M可以保持測(cè)量精度不變,當(dāng)M取最小值1 時(shí),測(cè)量頻率下限為1 kHz。但測(cè)量頻率小于1 kHz 時(shí),測(cè)量方法演變?yōu)橹芷诜?。隨著被測(cè)信號(hào)頻率的降低,測(cè)量值N會(huì)迅速增大,測(cè)量精度也會(huì)隨之增高。
為了考察在不同精度等級(jí)下頻率測(cè)量的實(shí)時(shí)性,需要將被測(cè)信號(hào)頻率范圍分為兩段進(jìn)行分析:當(dāng)被測(cè)信號(hào)頻率大于滿足精度的頻率下限時(shí),所需最短測(cè)量時(shí)間由式(6)可得:
可見(jiàn)測(cè)量時(shí)間是常量,當(dāng)基準(zhǔn)信號(hào)頻率保持不變時(shí)與測(cè)量精度成反比。
當(dāng)被測(cè)信號(hào)頻率小于滿足精度的頻率下限值時(shí),所需最短測(cè)量時(shí)間為:
根據(jù)式(7)和(8)繪制不同精度對(duì)應(yīng)的被測(cè)信號(hào)頻率值和最短測(cè)量時(shí)間關(guān)系曲線,如圖3 所示。
圖3 信號(hào)頻率與測(cè)量時(shí)間的等精度曲線
從圖3 中可以看出,頻率測(cè)量時(shí)間與要求的測(cè)量精度有直接關(guān)系,精度越高,測(cè)量所需時(shí)間越長(zhǎng),而且在高頻段(大于等精度頻率下限)測(cè)量時(shí)間保持不變,在低頻段測(cè)量時(shí)間是被測(cè)頻率的倒數(shù)。
低頻段頻率測(cè)量時(shí),系數(shù)測(cè)量值N會(huì)隨著被測(cè)信號(hào)頻率的降低迅速增大,在實(shí)際測(cè)量時(shí)計(jì)數(shù)器是有上限的,超過(guò)計(jì)數(shù)器上限會(huì)引發(fā)額外的溢出中斷,通過(guò)中斷累計(jì)計(jì)數(shù)會(huì)降低程序的可靠性和實(shí)時(shí)性。為了改進(jìn)低頻段測(cè)量值N過(guò)大的問(wèn)題,可以考慮在測(cè)量的同時(shí)根據(jù)被測(cè)信號(hào)頻率自適應(yīng)調(diào)整分頻系數(shù)k,從而改變基準(zhǔn)信號(hào)頻率以降低測(cè)量值N。對(duì)式(6)中M取1 可得:
根據(jù)式(9)繪制在低頻段不同精度對(duì)應(yīng)的等精度被測(cè)信號(hào)頻率值和分頻系數(shù)k的關(guān)系曲線,如圖4所示。
圖4 信號(hào)頻率與分頻系數(shù)k 的等精度曲線
綜上,為了綜合考慮頻率測(cè)量的精確性和實(shí)時(shí)性,在等精度前提下可以根據(jù)被測(cè)信號(hào)頻率動(dòng)態(tài)自適應(yīng)調(diào)整計(jì)數(shù)系數(shù)M和分頻系數(shù)k,以取得最佳結(jié)果。
嵌入式轉(zhuǎn)速測(cè)量電路板采用核心板+底板結(jié)構(gòu)的模塊化設(shè)計(jì)方案。核心板采用ST 公司的32 bit Cortex-M3 內(nèi)核ARM STM32F103ZET6 作為MCU,在此基礎(chǔ)上集成DM9000BI 以太網(wǎng)通信電路和FLASH存儲(chǔ)電路等。以太網(wǎng)通信功能由DM9000BI 實(shí)現(xiàn),DM9000BI 通 過(guò)FSMC 總 線 與MCU 連 接,選 用HR911105A 作為RJ45 網(wǎng)絡(luò)接口,實(shí)現(xiàn)100BASE-T網(wǎng)絡(luò)通信。FLASH存儲(chǔ)芯片選用W25Q128,通過(guò)SPI2總線和MCU 連接,存儲(chǔ)容量為16 MB。W25Q128 將16 MB的容量分為256個(gè)塊,每個(gè)塊大小為64 kB,在使用時(shí)第一個(gè)塊存放模塊功能參數(shù)(比如模塊節(jié)點(diǎn)地址、轉(zhuǎn)速上下限報(bào)警值、測(cè)量齒數(shù)、測(cè)量間隔、程序版本號(hào)等),其他塊用于轉(zhuǎn)速采集數(shù)據(jù)的本地存放空間。
底板電路如圖5 所示,主要包括由濾波、放大整形、光耦隔離電路組成的4 路轉(zhuǎn)速輸入通道。在工業(yè)現(xiàn)場(chǎng)復(fù)雜環(huán)境下,轉(zhuǎn)速信號(hào)輸入通道容易耦合電磁干擾信號(hào),為了減少或消除干擾信號(hào)帶來(lái)的測(cè)量誤差,在輸入通道前端增加RC 低通濾波器,濾波器帶寬為100 kHz。放大整形電路以LM224 為核心,將磁電轉(zhuǎn)速傳感器發(fā)出的類正弦信號(hào)經(jīng)比較、施密特方向和共發(fā)射極放大后整形為標(biāo)準(zhǔn)的方波信號(hào)。光耦隔離通過(guò)TLP2362 實(shí)現(xiàn),實(shí)現(xiàn)了輸入通道和核心電路板之間的電氣隔離。隔離后的轉(zhuǎn)速信號(hào)通過(guò)定時(shí)器輸入端口傳送給STM32F103 微控制器進(jìn)行自適應(yīng)M/T 測(cè)量。
圖5 底板電路
為了驗(yàn)證上節(jié)提出的自適應(yīng)M/T 測(cè)量法[17-18],實(shí)驗(yàn)選用STM32F103 微控制器芯片實(shí)現(xiàn)頻率測(cè)量,該芯片具有兩個(gè)高級(jí)控制定時(shí)器和4 個(gè)通用定時(shí)器以及兩個(gè)基本定時(shí)器,定時(shí)器核心都是16位計(jì)數(shù)器[11],其中通用定時(shí)器具有可編程預(yù)分頻器,分頻系數(shù)可在1~65 535 之間任意設(shè)定。每個(gè)通用定時(shí)器具有4 個(gè)獨(dú)立輸入通道,具有輸入捕獲功能。根據(jù)功能劃分,捕獲通道可以分為3 部分:輸入電路(數(shù)字濾波、多路復(fù)用和預(yù)分頻器)、主控電路、捕獲寄存器(包括影子寄存器)[9,14]。通過(guò)定時(shí)器的輸入捕獲功能實(shí)現(xiàn)轉(zhuǎn)速的M/T 測(cè)量需要做以下配置工作。以TIM2 為例,首先選擇內(nèi)部時(shí)鐘分頻后作為基準(zhǔn)信號(hào),分頻系數(shù)P1寫(xiě)入預(yù)分頻寄存器TIMx_PSC,將TIM2 設(shè)置為16 位向上計(jì)數(shù)器,用于對(duì)基準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù)。其次設(shè)置TIM2 的輸入捕獲工作模式,目的是使外部被測(cè)信號(hào)從TI1 端輸入經(jīng)過(guò)濾波、分頻后作為捕獲控制的邊沿觸發(fā)信號(hào),分頻系數(shù)為P2,當(dāng)觸發(fā)捕獲后計(jì)數(shù)器的當(dāng)前值被鎖存到捕獲寄存器TIM2_CCR1 中,捕獲通道配置如圖6 所示。最后設(shè)置中斷,在每次捕獲事件發(fā)生時(shí)引發(fā)捕獲中斷,在中斷響應(yīng)函數(shù)里對(duì)捕獲中斷計(jì)數(shù),這相當(dāng)于對(duì)被測(cè)信號(hào)進(jìn)行計(jì)數(shù),同時(shí)通過(guò)讀取捕獲寄存器計(jì)算對(duì)基準(zhǔn)信號(hào)的計(jì)數(shù)值N,當(dāng)完成被測(cè)信號(hào)的M次計(jì)數(shù)后,利用式(1)計(jì)算被測(cè)信號(hào)頻率。
圖6 STM32F103定時(shí)器的捕獲通道配置
通過(guò)自適應(yīng)M/T 測(cè)量法的實(shí)現(xiàn),可以將被測(cè)信號(hào)頻率大致分為兩段,M>1 時(shí)的高頻段及M=1 時(shí)的低頻段。在高頻段主要是計(jì)數(shù)值M根據(jù)測(cè)量頻率值自動(dòng)調(diào)整,在低頻段根據(jù)測(cè)量精度要求自動(dòng)調(diào)整分頻系數(shù)k,從而達(dá)到在全部測(cè)量頻段精度保持不變,同時(shí)在低頻段增加測(cè)量的實(shí)時(shí)性。為了減小計(jì)算開(kāi)銷(xiāo),M和k的自適應(yīng)調(diào)整可通過(guò)查表的方法實(shí)現(xiàn)。例如,信號(hào)測(cè)量范圍要求為1~100 kHz,全量程讀數(shù)精度為0.1,定時(shí)器基準(zhǔn)頻率選為1 MHz。根據(jù)第二節(jié)的分析,計(jì)數(shù)系數(shù)M和分頻系數(shù)k可以按照表1 所示的插值表格進(jìn)行取值,由此可以實(shí)現(xiàn)全頻段的等精度測(cè)量。
表1 選定條件下計(jì)數(shù)系數(shù)和分頻系數(shù)的插值表格
采用TIM2 加計(jì)數(shù)對(duì)基準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),同時(shí)開(kāi)通輸入捕獲功能和捕獲中斷在被測(cè)信號(hào)的上升沿捕獲計(jì)數(shù)器的計(jì)數(shù)值,在捕獲中斷響應(yīng)里同時(shí)對(duì)中斷次數(shù)的累加和捕獲計(jì)數(shù)值的累積進(jìn)行累加,實(shí)現(xiàn)對(duì)捕獲次數(shù)的計(jì)數(shù)和基準(zhǔn)頻率的計(jì)數(shù)。當(dāng)捕獲次數(shù)達(dá)到M的設(shè)定值后通過(guò)公式計(jì)算被測(cè)信號(hào)的頻率值,同時(shí)根據(jù)頻率值通過(guò)查表自適應(yīng)調(diào)整計(jì)數(shù)系數(shù)M和分頻系數(shù)k,軟件流程圖如圖7 所示。
圖7 頻率測(cè)量算法流程圖
為了驗(yàn)證自適應(yīng)M/T 頻率的測(cè)量方法,實(shí)驗(yàn)通過(guò)固緯AFG-2225 多功能信號(hào)發(fā)生器模擬艦船動(dòng)力設(shè)備轉(zhuǎn)速傳感器產(chǎn)生的頻率信號(hào),設(shè)定測(cè)量范圍為1~100 kHz,這樣可以滿足絕大部分動(dòng)力設(shè)備的測(cè)速需求,全量程讀數(shù)精度為0.1。選用STM32F103 微控制器定時(shí)器T2 進(jìn)行頻率測(cè)量,基準(zhǔn)頻率設(shè)為1 MHz。計(jì)數(shù)系數(shù)和分頻系數(shù)初始設(shè)定為M=10,k=1,測(cè)量結(jié)果利用DM9000C 芯片通過(guò)TCP/IP 網(wǎng)絡(luò)上傳至上位機(jī)監(jiān)控程序。實(shí)驗(yàn)結(jié)果如表2 所示。
表2 頻率測(cè)量實(shí)驗(yàn)數(shù)據(jù)
從實(shí)驗(yàn)結(jié)果可以看出,自適應(yīng)M/T 算法達(dá)到了預(yù)先設(shè)定的讀數(shù)精度要求,而且實(shí)時(shí)性較好。在全量程范圍內(nèi)讀數(shù)精度基本保持不變,在低頻段通過(guò)增加基準(zhǔn)頻率分頻系數(shù)的方法解決了N多次溢出的問(wèn)題。當(dāng)被測(cè)信號(hào)頻率大于20 kHz 時(shí),實(shí)際測(cè)量精度比設(shè)定精度要低,主要是在TI1 上升沿和計(jì)數(shù)器脈沖在輸入捕獲時(shí)存在延時(shí),延時(shí)時(shí)間取決于TI1 輸入端的重同步電路,同時(shí)要響應(yīng)多次捕獲中斷。為了增加測(cè)量精度可以在每個(gè)頻段適當(dāng)增大M的數(shù)值。
文中在分析傳統(tǒng)M/T 測(cè)頻法的基礎(chǔ)上提出了一種自適應(yīng)M/T 測(cè)頻法,以全頻段讀數(shù)精度保持不變?yōu)樵瓌t,繪制了5 種讀數(shù)精度下的計(jì)數(shù)系數(shù)M、分頻系數(shù)k分別與被測(cè)信號(hào)頻率之間的關(guān)系曲線,以表格的方式給出了系數(shù)M、分頻系數(shù)k根據(jù)頻率變化而自適應(yīng)調(diào)整的原則。通過(guò)自適應(yīng)調(diào)整M參數(shù)保證了高頻段讀數(shù)精度不變,低頻度大大增強(qiáng)計(jì)算的實(shí)時(shí)性。在低頻段通過(guò)自適應(yīng)調(diào)整k參數(shù),在保證讀數(shù)精度保持不變的前提下,改進(jìn)了因N過(guò)大而導(dǎo)致記錄的溢出中斷次數(shù)值減少的缺點(diǎn)。最后通過(guò)32 位STM32F103VCT6單片機(jī)通用定時(shí)器的輸入捕獲功能實(shí)現(xiàn)了該自適應(yīng)算法,并給出了硬件配置方案和軟件設(shè)計(jì)流程圖,通過(guò)實(shí)驗(yàn)證明了該方法的有效性,為高精度速度測(cè)量和速度控制場(chǎng)合的應(yīng)用提供了借鑒價(jià)值。