常廣暉,張亞超,蘇攀,劉樹勇
(海軍工程大學動力工程學院,湖北武漢 430033)
轉速是工業控制中重要的測量參數,艦船的很多動力設備需要轉速的實時監測與控制。動力設備轉速測量原理是將磁電傳感器產生的信號放大整形,濾波處理為標準方波信號,然后對方波信號進行頻率測量。不同艦船動力設備的轉速范圍區別很大,低速設備(如推進軸系)的轉速最低可低至幾十轉每分鐘,高速設備(如燃氣輪機)的高壓壓氣機轉速最高可達八、九千轉每分鐘,這些設備的轉速信號是監控系統控制邏輯的重要判斷條件,所以大范圍全頻段內轉速的精確測量對于監控系統設計至關重要。在實際應用中,低頻轉速測量通常采用測周法,高頻轉速測量通常采用測頻法,兩者各有局限性。對于從低速到高速的全頻段轉速測量,M/T 法更有優勢,它結合了測周法和測頻法的優點,很多學者對提高M/T 法測量精度進行了研究,提出了新的設計方案。周昂揚[1]等提出一種基于誤差分析的M/T 混合測速法,利用M 法和T 法在恰當時刻的切換,實現較寬速度范圍內的高精度測速,并利用TMS320 F28335 芯片實現了該算法;王海勇[2]等提出一種變M/T 測速方法,彌補了傳統M/T 法在低速時實時性差的不足,提高了測速的精度,并在STM32 開發板上實現了該算法;金鋒[3]等在通過粗測輸入信號頻率值的基礎上,選擇合適的分頻因子,動態控制閘門時間,拓寬了頻率測量范圍,提高了測量精度;謝波[4]等結合計數法和測周法的優勢,提出了一種頻率自適應的最大化周期的計數測頻方法。
各學者對于在寬轉速范圍內如何提高M/T 轉速測量的精度問題都進行了深入的研究,各自提出了針對不同應用場合的設計方案,但是對于為滿足工業常用的儀表精度等級如何科學動態調整M/T 法的計數系數M和分頻系數k,缺乏更為深入的研究分析,缺少對于M/T 法實時性的分析,具有一定的局限性。文中針對以上問題,在深入分析影響測速精度因素的基礎上,提出一種自適應M/T 轉速測量法,并采用STM32F103 高速定時器的輸入捕獲功能對算法進行了實現,實驗結果表明,算法在很寬的測速范圍內保持同樣的測速精度,同時具有很好的實時性。
M/T 法是一種在一定時間間隔內同時對被測信號和基準脈沖信號進行計數來測量速度的方法,時間間隔由對被測信號定時來實現[5-6],其原理如圖1所示。

圖1 M/T法測量原理
被測信號通過放大整形電路后變為標準的方波信號,其未知頻率為。已知頻率為f0的基準脈沖信號經分頻后在計數及同步觸發電路的控制下對被測信號進行頻率測量。理想情況下,兩個信號在邊沿同步觸發后,在一定時間間隔T內,通過計數器分別對兩個信號進行計數,被測信號計數值為M,基準脈沖信號計數值為N,由此可求解被測信號的頻率為:

實際上由于停止計數時,被測信號邊沿不一定與基準脈沖信號的邊沿對齊,可能超前或者滯后,這樣會造成基準脈沖信號的計數誤差。假設計數值N的誤差為ΔN,則||ΔN≤1,同理計數值M的誤差為ΔM。同時由晶振和振蕩電路產生的基準信號本身頻率也存在誤差,假設誤差為Δf0,考慮到以上兩個因素,則被測信號的準確頻率為:

由式(2)可知,被測信號頻率的相對誤差為:

在實際轉速測量電路設計中,采用高穩定、恒溫晶振可以大大降低基準信號頻率誤差Δf0,而為了測量高頻信號,f0設計的也很高,這樣基準信號頻率相對誤差Δf0/f0可以忽略。同時在轉速測量程序設計中,可以采用對被測信號計數來進行定時,所以M沒有誤差,則:

相對誤差δ相當于頻率測量時的讀數精度[7]。例如,通過STM32 單片機選用測頻法進行轉速測量,要求讀數精度不大于0.01,STM32 通用定時器的基準信號頻率選為f0=32 MHz,定時間隔系數M取100。
假設頻率測量要求的讀數精度為η0,即,根據式(1)可以推導出頻率測量范圍的上限為,所需要的最短測量時間為:

通過以上分析可以看出,在給定測量要求的讀數精度和基準信號頻率后,頻率測量范圍上限與M成正比,最短的測量時間與M無關,且與讀數精度成反比。如果固定M值,那么被測信號的頻率越低,所需的測量時間就越長,而此時的測量精度隨著N值的增大而增大。所以在低頻時,M/T 法測量的測量精度會很高,但是轉速測量實時性會大大降低,這不利于艦船動力系統的轉速控制[7-16]。
通過M/T 法測量原理分析可以看出,為了提高在低頻段轉速測量的實時性,在滿足測量讀數精度的前提下,可以適當降低M的設定值,使M根據被測信號的頻率自適應變化。為了通用化考慮,以下分析中相對誤差可以參考我國工業常用的儀表精度等級例如:0.005、0.02、0.05、0.1、0.2等,即δ的取值為0.005、0.02、0.05、0.1、0.2。根據式(1)和(4)可推導出在選定基準信號頻率下,滿足相對誤差的最大可測信號頻率值和系數M之間的關系:

根據M/T 法測量原理可知,M為大于0 的整數,最小為1,假設基準信號頻率為1 MHz,δ按以上5 種精度等級取值,根據式(6)可以繪制等精度前提下的最大可測信號頻率值和系數M關系曲線,如圖2 所示。

圖2 信號頻率與系數M的等精度曲線
以精度δ=0.1 的曲線為例,隨著最大可測信號頻率值的增長,增加系數M可以保持測量精度不變,當M取最小值1 時,測量頻率下限為1 kHz。但測量頻率小于1 kHz 時,測量方法演變為周期法。隨著被測信號頻率的降低,測量值N會迅速增大,測量精度也會隨之增高。
為了考察在不同精度等級下頻率測量的實時性,需要將被測信號頻率范圍分為兩段進行分析:當被測信號頻率大于滿足精度的頻率下限時,所需最短測量時間由式(6)可得:

可見測量時間是常量,當基準信號頻率保持不變時與測量精度成反比。
當被測信號頻率小于滿足精度的頻率下限值時,所需最短測量時間為:

根據式(7)和(8)繪制不同精度對應的被測信號頻率值和最短測量時間關系曲線,如圖3 所示。

圖3 信號頻率與測量時間的等精度曲線
從圖3 中可以看出,頻率測量時間與要求的測量精度有直接關系,精度越高,測量所需時間越長,而且在高頻段(大于等精度頻率下限)測量時間保持不變,在低頻段測量時間是被測頻率的倒數。
低頻段頻率測量時,系數測量值N會隨著被測信號頻率的降低迅速增大,在實際測量時計數器是有上限的,超過計數器上限會引發額外的溢出中斷,通過中斷累計計數會降低程序的可靠性和實時性。為了改進低頻段測量值N過大的問題,可以考慮在測量的同時根據被測信號頻率自適應調整分頻系數k,從而改變基準信號頻率以降低測量值N。對式(6)中M取1 可得:

根據式(9)繪制在低頻段不同精度對應的等精度被測信號頻率值和分頻系數k的關系曲線,如圖4所示。

圖4 信號頻率與分頻系數k 的等精度曲線
綜上,為了綜合考慮頻率測量的精確性和實時性,在等精度前提下可以根據被測信號頻率動態自適應調整計數系數M和分頻系數k,以取得最佳結果。
嵌入式轉速測量電路板采用核心板+底板結構的模塊化設計方案。核心板采用ST 公司的32 bit Cortex-M3 內核ARM STM32F103ZET6 作為MCU,在此基礎上集成DM9000BI 以太網通信電路和FLASH存儲電路等。以太網通信功能由DM9000BI 實現,DM9000BI 通 過FSMC 總 線 與MCU 連 接,選 用HR911105A 作為RJ45 網絡接口,實現100BASE-T網絡通信。FLASH存儲芯片選用W25Q128,通過SPI2總線和MCU 連接,存儲容量為16 MB。W25Q128 將16 MB的容量分為256個塊,每個塊大小為64 kB,在使用時第一個塊存放模塊功能參數(比如模塊節點地址、轉速上下限報警值、測量齒數、測量間隔、程序版本號等),其他塊用于轉速采集數據的本地存放空間。
底板電路如圖5 所示,主要包括由濾波、放大整形、光耦隔離電路組成的4 路轉速輸入通道。在工業現場復雜環境下,轉速信號輸入通道容易耦合電磁干擾信號,為了減少或消除干擾信號帶來的測量誤差,在輸入通道前端增加RC 低通濾波器,濾波器帶寬為100 kHz。放大整形電路以LM224 為核心,將磁電轉速傳感器發出的類正弦信號經比較、施密特方向和共發射極放大后整形為標準的方波信號。光耦隔離通過TLP2362 實現,實現了輸入通道和核心電路板之間的電氣隔離。隔離后的轉速信號通過定時器輸入端口傳送給STM32F103 微控制器進行自適應M/T 測量。

圖5 底板電路
為了驗證上節提出的自適應M/T 測量法[17-18],實驗選用STM32F103 微控制器芯片實現頻率測量,該芯片具有兩個高級控制定時器和4 個通用定時器以及兩個基本定時器,定時器核心都是16位計數器[11],其中通用定時器具有可編程預分頻器,分頻系數可在1~65 535 之間任意設定。每個通用定時器具有4 個獨立輸入通道,具有輸入捕獲功能。根據功能劃分,捕獲通道可以分為3 部分:輸入電路(數字濾波、多路復用和預分頻器)、主控電路、捕獲寄存器(包括影子寄存器)[9,14]。通過定時器的輸入捕獲功能實現轉速的M/T 測量需要做以下配置工作。以TIM2 為例,首先選擇內部時鐘分頻后作為基準信號,分頻系數P1寫入預分頻寄存器TIMx_PSC,將TIM2 設置為16 位向上計數器,用于對基準信號進行計數。其次設置TIM2 的輸入捕獲工作模式,目的是使外部被測信號從TI1 端輸入經過濾波、分頻后作為捕獲控制的邊沿觸發信號,分頻系數為P2,當觸發捕獲后計數器的當前值被鎖存到捕獲寄存器TIM2_CCR1 中,捕獲通道配置如圖6 所示。最后設置中斷,在每次捕獲事件發生時引發捕獲中斷,在中斷響應函數里對捕獲中斷計數,這相當于對被測信號進行計數,同時通過讀取捕獲寄存器計算對基準信號的計數值N,當完成被測信號的M次計數后,利用式(1)計算被測信號頻率。

圖6 STM32F103定時器的捕獲通道配置
通過自適應M/T 測量法的實現,可以將被測信號頻率大致分為兩段,M>1 時的高頻段及M=1 時的低頻段。在高頻段主要是計數值M根據測量頻率值自動調整,在低頻段根據測量精度要求自動調整分頻系數k,從而達到在全部測量頻段精度保持不變,同時在低頻段增加測量的實時性。為了減小計算開銷,M和k的自適應調整可通過查表的方法實現。例如,信號測量范圍要求為1~100 kHz,全量程讀數精度為0.1,定時器基準頻率選為1 MHz。根據第二節的分析,計數系數M和分頻系數k可以按照表1 所示的插值表格進行取值,由此可以實現全頻段的等精度測量。

表1 選定條件下計數系數和分頻系數的插值表格
采用TIM2 加計數對基準信號進行計數,同時開通輸入捕獲功能和捕獲中斷在被測信號的上升沿捕獲計數器的計數值,在捕獲中斷響應里同時對中斷次數的累加和捕獲計數值的累積進行累加,實現對捕獲次數的計數和基準頻率的計數。當捕獲次數達到M的設定值后通過公式計算被測信號的頻率值,同時根據頻率值通過查表自適應調整計數系數M和分頻系數k,軟件流程圖如圖7 所示。

圖7 頻率測量算法流程圖
為了驗證自適應M/T 頻率的測量方法,實驗通過固緯AFG-2225 多功能信號發生器模擬艦船動力設備轉速傳感器產生的頻率信號,設定測量范圍為1~100 kHz,這樣可以滿足絕大部分動力設備的測速需求,全量程讀數精度為0.1。選用STM32F103 微控制器定時器T2 進行頻率測量,基準頻率設為1 MHz。計數系數和分頻系數初始設定為M=10,k=1,測量結果利用DM9000C 芯片通過TCP/IP 網絡上傳至上位機監控程序。實驗結果如表2 所示。

表2 頻率測量實驗數據
從實驗結果可以看出,自適應M/T 算法達到了預先設定的讀數精度要求,而且實時性較好。在全量程范圍內讀數精度基本保持不變,在低頻段通過增加基準頻率分頻系數的方法解決了N多次溢出的問題。當被測信號頻率大于20 kHz 時,實際測量精度比設定精度要低,主要是在TI1 上升沿和計數器脈沖在輸入捕獲時存在延時,延時時間取決于TI1 輸入端的重同步電路,同時要響應多次捕獲中斷。為了增加測量精度可以在每個頻段適當增大M的數值。
文中在分析傳統M/T 測頻法的基礎上提出了一種自適應M/T 測頻法,以全頻段讀數精度保持不變為原則,繪制了5 種讀數精度下的計數系數M、分頻系數k分別與被測信號頻率之間的關系曲線,以表格的方式給出了系數M、分頻系數k根據頻率變化而自適應調整的原則。通過自適應調整M參數保證了高頻段讀數精度不變,低頻度大大增強計算的實時性。在低頻段通過自適應調整k參數,在保證讀數精度保持不變的前提下,改進了因N過大而導致記錄的溢出中斷次數值減少的缺點。最后通過32 位STM32F103VCT6單片機通用定時器的輸入捕獲功能實現了該自適應算法,并給出了硬件配置方案和軟件設計流程圖,通過實驗證明了該方法的有效性,為高精度速度測量和速度控制場合的應用提供了借鑒價值。