一種高精度滑動測頻法
【專利摘要】本發明公開了一種高精度滑動測頻法,包括如下步驟:脈沖信號計數值的實時更新,記錄采集到的脈沖信號的個數;脈沖信號采集時間的實時更新,記錄定時計數器的計數值;定時時間t到后,進行運行參數序列的定時更新;計算頻率測量值。本發明實現簡單,設計新穎,能夠提高頻率信號測量的實時性和精度,解決了一般測頻法測量結果實時性低、只適用于高頻信號的測量等問題,具有一定的工程實用價值。
【專利說明】
一種高精度滑動測頻法
技術領域
[0001] 本發明涉及一種高精度滑動測頻法,屬于傳感器信號處理技術領域。
【背景技術】
[0002] 測頻法是一種常用的頻率信號測量方法:在一定的時間間隔,計數脈沖信號 的個數為N,則脈沖信號頻率fx = N/tm。其測量準確度主要有兩項誤差決定:一項是時基誤 差;一項是量化± 1誤差。當時基誤差小于量化誤差一個或兩個數量級時,這時測量準確度 主要由量化誤差來確定,
[0003] 由于時間間隔tm的存在,導致一般測頻法測量結果的更新時間間隔也為tm,就會導 致測量結果更新不及時,影響控制系統的控制效果。
[0004] 公開號為CN103499739A的中國專利公開了一種基于FPGA的頻率測量方法,采用門 控信號和被測信號對計數器的使能信號進行雙重控制,降低了量化±1誤差對測量結果的 影響。公開號為CN105203793A的中國專利公開了一種精確測量齒輪轉速的方法,該專利一 方面測量單位時間內通過的齒數,再加上單位時間后下一個齒的到來所需要的時間,兩者 組合得出當前轉速值,該專利自述測量誤差小,精度高,使用范圍廣。但上述兩個專利均未 能同時解決測頻法測量結果更新不及時和低頻信號測量誤差大的問題。
【發明內容】
[0005] 發明目的:為了克服現有技術中存在的不足,本發明提供一種高精度滑動測頻法, 旨在解決一般測頻法測量結果更新不及時和低頻信號測量誤差大的問題。
[0006] 技術方案:為實現上述目的,本發明采用的技術方案為:
[0007] -種高精度滑動測頻法,包括如下步驟:
[0008] (1)脈沖信號計數值的實時更新,記錄采集到的脈沖信號的個數;
[0009] (2)脈沖信號采集時間的實時更新,記錄定時計數器的計數值;
[0010] (3)定時時間t到后,進行運行參數序列的定時更新;
[0011] (4)計算頻率測量值。
[0012] 進一步的,所述步驟(1)采用嵌入式系統的中斷功能,當芯片采集到脈沖信號的上 升沿,程序立即進入中斷服務程序,將當前的脈沖信號計數值加1。
[0013] 進一步的,所述步驟(2)采用嵌入式系統的中斷功能和定時計數器功能,當芯片采 集到脈沖信號的上升沿,程序立即進入中斷服務程序,讀取當前的定時計數器的值作為脈 沖信號采集時間。
[0014]進一步的,所述步驟(3)的具體方法為:
[0015] 3-1)運行參數序列是一個行數為L列數為2的數組,數組中每行存儲兩個數據,分 別是脈沖信號計數值和脈沖信號采集時間;
[0016] 3-2)運行參數序列的定時更新采用嵌入式系統的中斷功能,當定時時間t到后程 序立即進入中斷服務程序,記錄當前的脈沖信號計數值和最新的脈沖信號采集時間,將其 更新進入運行參數序列;
[0017] 3-3)將運行參數序列的每行2個數據看做一個整體,在tn+1時刻采集到一個新的脈 沖信號計數值和脈沖信號采集時間Data n+1,則Datan+1將被加入到運行參數序列的入口端, tn時刻的數據整體往出口端平移,Data ni從出口端去除。
[0018] 進一步的,所述步驟(4)的具體方法為:
[0019] 4-1)求取運行參數序列對應的時間跨度T:取運行參數序列入口端數據中的脈沖 信號采集時間減去出口端數據中的脈沖信號采集時間,再除以定時計數器的計數頻率;
[0020] 4-2)取運行參數序列入口端的脈沖信號計數值減去出口端的脈沖信號計數值,得 到時間跨度T內嵌入式系統采集的脈沖信號個數m;
[0021 ] 4-3)脈沖信號個數m除以時間跨度T得到頻率測量值。
[0022]進一步的,所述定時時間t等于實際要求的頻率測量更新時間間隔。
[0023] 進一步的,所述運行參數序列行數L的選取依據定時時間t和頻率測量實時性的要 求,
小于等于延遲時間。
[0024] 有益效果:本發明提供的高精度滑動測頻法,實現簡單,設計新穎,能夠提高頻率 信號測量的實時性和精度,解決了一般測頻法測量結果實時性低、只適用于高頻信號的測 量等問題,具有一定的工程實用價值。
【附圖說明】
[0025] 圖1為本發明高精度滑動測頻法的流程圖;
[0026] 圖2是運行參數序列的更新示意圖;
[0027]圖3是實際使用效果圖。
【具體實施方式】
[0028] 下面結合附圖對本發明作更進一步的說明。
[0029] 如圖1所示為一種高精度滑動測頻法,包括如下步驟:
[0030] (1)脈沖信號計數值的實時更新:
[0031] 1)脈沖信號計數值記錄的是從程序運行開始采集到的轉速脈沖信號的歷史個數;
[0032] 2)脈沖信號計數值的實時更新采用嵌入式系統的中斷功能,當芯片采集到轉速傳 感器發出的脈沖信號的上升沿,程序立即進入中斷服務程序,將當前的轉速脈沖信號計數 值加1。
[0033] (2)脈沖信號采集時間的實時更新:脈沖信號采集時間的實時更新采用嵌入式系 統的中斷功能和定時計數器功能,當芯片采集到脈沖信號的上升沿,程序立即進入中斷服 務程序,讀取當前的定時計數器的值作為脈沖信號采集時間。
[0034] (3)運行參數序列的定時更新:
[0035] 1)運行參數序列是一個行數為L列數為2的數組,數組中每行存儲兩個數據,分別 是脈沖信號計數值和脈沖信號采集時間;
[0036] 2)運行參數序列的定時更新采用嵌入式系統的中斷功能,當定時時間t到后程序 立即進入中斷服務程序,記錄當前的脈沖信號計數值和最新的脈沖信號采集時間,將其更 新進入運行參數序列;
[0037] 3)更新方式如圖1所示:在tn+1時刻采集到一個新的脈沖信號計數值和脈沖信號采 集時間Datan+i,則Datan+i將被加入到運行參數序列的入口端,tn時刻的數據整體往出口端 平移,Datan-J人出口端去除。
[0038] (4)計算頻率測量值:
[0039] 1)求取運行參數序列對應的時間跨度T:取運行參數序列入口端數據中的脈沖信 號采集時間減去出口端數據中的脈沖信號采集時間,再除以定時計數器的計數頻率;
[0040] 2)取運行參數序列入口端的脈沖信號計數值減去出口端的轉速脈沖信號計數值, 得到時間跨度T內嵌入式系統采集的轉速脈沖信號個數m;
[0041 ] 3)轉速脈沖信號個數m,除以時間跨度T得到頻率測量值。
[0042] 所述的定時時間t需依據實際頻率測量結果更新時間間隔要求,等于頻率測量要 求的更新時間間隔。
[0043] 所述的運行參數序列行數L的選取依據定時時間t和頻率測量實時性的要求,需保 證
小于等于延遲時間要求。
[0044] 實施例
[0045] -種高精度滑動測頻法過程如下:
[0046] 1)脈沖信號計數值的實時更新采用TM4C123GHP6M嵌入式處理器芯片32/64位定時 計數器的輸入邊沿計數捕獲中斷功能,當芯片采集到轉速傳感器發出的脈沖信號的上升 沿,程序立即進入中斷服務程序,將當前的轉速脈沖信號計數值加1。
[0047] 2)脈沖信號采集時間的實時更新更新采用TM4C123GHP6M嵌入式處理器芯片32/64 位定時計數器的輸入邊沿計數捕獲中斷功能和32/64位定時計數器的定時計數功能,當芯 片采集到轉速傳感器發出的脈沖信號的上升沿,程序立即進入中斷服務程序讀取當前的定 時計數器的值作為脈沖信號采集時間。定時計數器的計數頻率設為80MHz。
[0048] 3)運行參數序列的定時更新采用TM4C123GHP6M嵌入式處理器芯片32/64位定時計 數器的定時中斷功能,當定時時間t到后程序立即進入中斷服務程序,記錄當前的脈沖信號 計數值和脈沖信號采集時間,將其更新進入運行參數序列;試驗系統要求的轉速更新時間 間隔為20毫秒,設定定時時間t等于20毫秒。
[0049] 4)在tn+1時刻采集到一個新的脈沖信號計數值和脈沖信號采集時間Data n+1,則 Datan+i將被加入到運行參數序列的入口端,tn時刻的數據整體往出口端平移,Data n-m從出 口端去除。
[0050] 5)選擇運行參數序列行數L:試驗系統要求的測量延遲時間不高于0.5秒,選擇運 行參數序列行數L為51。
[0051] 6)求取運行參數序列對應的時間跨度T:取運行參數序列入口端數據中的脈沖信 號采集時間減去出口端數據中的脈沖信號采集時間,再除以定時計數器的計數頻率。
[0052] 7)取運行參數序列入口端的脈沖信號計數值減去出口端的脈沖信號計數值,得到 時間跨度T內嵌入式系統采集的脈沖信號個數m。
[0053] 8)計算頻率測量值:脈沖信號個數m,除以時間跨度T,得到頻率測量值。
[0054]實際測量效果如圖3所示:圖中傳統測頻法曲線的時間間隔tm選擇為1秒。可以明 顯的看到在61.5秒左右轉速開始升高,傳統測頻法的測量值只能1秒更新一次,而高精度滑 動測頻法的更新時間顯著小于1秒,大大提高了轉速測量值的實時性。同時分別給定500HZ, 1500HZ和4500HZ的被測信號,實際測量結果分別為499.9HZ,1499.9HZ和4499.8HZ,對于低 頻信號測量精度同樣很高,達到了本發明的設計目標。
[0055]以上所述僅是本發明的優選實施方式,應當指出:對于本技術領域的普通技術人 員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應 視為本發明的保護范圍。
【主權項】
1. 一種高精度滑動測頻法,其特征包括如下步驟: (1) 脈沖信號計數值的實時更新,記錄采集到的脈沖信號的個數; (2) 脈沖信號采集時間的實時更新,記錄定時計數器的計數值; (3) 定時時間t到后,進行運行參數序列的定時更新; (4) 計算頻率測量值。2. 根據權利要求1所述的高精度滑動測頻法,其特征在于:所述步驟(1)采用嵌入式系 統的中斷功能,當芯片采集到脈沖信號的上升沿,程序立即進入中斷服務程序,將當前的脈 沖信號計數值加1。3. 根據權利要求1所述的高精度滑動測頻法,其特征在于:所述步驟(2)采用嵌入式系 統的中斷功能和定時計數器功能,當芯片采集到脈沖信號的上升沿,程序立即進入中斷服 務程序,讀取當前的定時計數器的值作為脈沖信號采集時間。4. 根據權利要求1所述的高精度滑動測頻法,其特征在于:所述步驟(3)的具體方法為: 3-1)運行參數序列是一個行數為L列數為2的數組,數組中每行存儲兩個數據,分別是 脈沖信號計數值和脈沖信號采集時間; 3-2)運行參數序列的定時更新采用嵌入式系統的中斷功能,當定時時間t到后程序立 即進入中斷服務程序,記錄當前的脈沖信號計數值和最新的脈沖信號采集時間,將其更新 進入運行參數序列; 3- 3)將運行參數序列的每行2個數據看做一個整體,在tn+1時刻采集到一個新的脈沖信 號計數值和脈沖信號采集時間Data n+1,則Datan+1將被加入到運行參數序列的入口端,^時 刻的數據整體往出口端平移,Data ni從出口端去除。5. 根據權利要求1所述的高精度滑動測頻法,其特征在于:所述步驟(4)的具體方法為: 4- 1)求取運行參數序列對應的時間跨度T:取運行參數序列入口端數據中的脈沖信號 采集時間減去出口端數據中的脈沖信號采集時間,再除以定時計數器的計數頻率; 4-2)取運行參數序列入口端的脈沖信號計數值減去出口端的脈沖信號計數值,得到時 間跨度T內嵌入式系統采集的脈沖信號個數m; 4-3)脈沖信號個數m除以時間跨度T得到頻率測量值。6. 根據權利要求1所述的高精度滑動測頻法,其特征在于:所述定時時間t等于實際要 求的頻率測量更新時間間隔。7. 根據權利要求1所述的高精度滑動測頻法,其特征在于:所述運行參數序列行數L的 選取依據定時時間t和頻率測量實時性的要求,其中難小于等于延遲時間。
【文檔編號】G01R23/10GK105866542SQ201610345834
【公開日】2016年8月17日
【申請日】2016年5月23日
【發明人】陳飛, 羅震, 張天宏
【申請人】南京航空航天大學