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