![]() |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
為用戶提供的各類應用方案,整理歸納后羅列出來,希望有拋磚引玉的作用。 |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
頻率運算法的改進及其誤差分析 返回主頁 作者:范家保 術語:測頻法、測周法、同步計數計時法、連續采樣、定數采樣、定時采樣 l 概述 頻率運算法在速度、流量、以及旋轉加速度等物理量的測量上被廣泛采用。頻率運算方法,有定時計數法(測頻法)、定數計時法(測周法)和同步計數計時法。本文結合實際,對這幾種方法加以探討,并且對主要誤差源加以分析,進而描述改進方法和縮小誤差的過程。 同步計數計時法結合了前兩種方法的優點,在測量準確度上有了新的提高,并且又分出定時采集法和定脈沖采集法,雖然都運用同步計數計時法,但是又分別與早期的測頻法和測周法相似,往往又被歸類為測頻法(新)和測周法(新);至于歸類的合理性問題,在此不做探討,但是將其本源的東西,在本文加以介紹,以便進一步探討誤差的來源和測量方法的改進,以及在運用中如何選擇更加切合實際的測量方法。 l 頻率運算的基本方法 定時計數法(測頻法)在測量上有±1的誤差,低速時誤差較大;定數計時法(測周法)也有±1個時間單位的誤差,在高速時,誤差也很大。 同步計數計時法綜合了上述兩種方法的優點,在整個測量范圍都達到了很高的精度,誤差率在萬分之五以上的頻率測量儀表(轉速表、流量表、頻率計)基本都是這種方法。 下面以XJP-10B為例,介紹以前常被采用的定時計數法(測頻法)、定數計時法(測周法)和同步計數計時法;以便了解方法演變的過程。 早期的XJP-10B轉速數字顯示儀,采用CMOS數字集成電路 。其原理可用如下三個框圖表示:
框圖一 測頻原理 框圖一告訴我們,被測信號通過放大整形進入加法計數器;晶體振蕩器的頻率信號通過分頻產生秒(或分鐘)信號,在計數顯示控制器中生成寄存脈沖和清零脈沖。寄存脈沖將加法計數器的BCD碼送入寄存器,通過譯碼驅動,LED數碼管顯示一秒(或分鐘)內的計數值,直到下一次寄存脈沖的到來;緊接著清零,進行下一輪計數、寄存(譯碼顯示);如此,不間斷測頻。如果我們考察一下這些信號的時序,不難發覺這種定時計數測量方法的缺陷是:被計數脈沖有 ±1的誤差。如果被測頻率為10000Hz,多一或少一的誤差,相對來講只不過萬分之一;如果被測頻率為2Hz, ±1的誤差,相對來講就達到了百分之五十,不難看出頻率越低,誤差越大,而且還有一點,把一秒變成一分鐘,誤差就變小了。低頻時,如不延長采樣時間,要提高精度就要采用測周的方法,框圖二正是說明這種方法。
框圖二 測周原理 將框圖二與框圖一進行比較,我們不難發覺:上述二者的差別在于晶體振蕩器與被測信號的位置作了互換,象是代數上的分子分母的顛倒,也正是物理上的頻率和周期互為倒數,我們不難體會到,學科之間的內在聯系無處不在。 測周的誤差:與測頻相似,是±1一個晶體振蕩器脈沖,也就是±1個時基脈沖,晶體振蕩器脈沖頻率準確度越高誤差越小,晶體振蕩器脈沖頻率越高誤差也越小,被測頻率越高誤差越大;因此測量高頻時,對被測信號進行分頻,確實是提高測周精度的好方法。在周期過長時,還可通過計數器,借助計時器來測量轉速。下面的框圖表示了計數器的工作原理。
框圖三 計數器原理 現在我們可以看出,XJP-10B轉速數字顯示儀,在CMOS數字集成電路的條件下,已經是一款十分完備的轉速測量工具。 早期的XJP-10B轉速數字顯示儀,在今天看來有哪些不足呢?周期和頻率都不能等同轉速,頻率與轉速存在倍數關系,通過時基頻率的分頻(采樣時間的倍乘),基本滿足了大都數用戶的需要,測周則需要用戶自己換算成轉速。在今天的電子技術條件下,解決這些問題用單片機或FPGA都比較方便。那么今天的設計者怎樣設計新的智能頻率計(測速儀)呢?下面以SQY01T智能測速儀計為例,介紹同步計數計時法。 l 同步計數計時法 同步計數計時法,是隨著單片機的普及而得到普及運用。同步計數計時法是怎樣綜合前兩種方法的優點的呢?我們還是用時序來分析。 定時計數時序
時序圖一:計時和計數脈沖不同步;時序圖二:計時和計數脈沖同步。但不管計時和計數脈沖同步與否,都有±1的誤差。同理,定數計時也有±1的誤差。
同步計數計時時序圖 當定時器與被測脈沖同步計數時,為避免被測脈沖計數±1的誤差,將定時作延時調整,等待被測脈沖計數完整;與此同時,取時間基準脈沖計數值。這樣脈沖計數N為零誤差,時間基準脈沖計數T有±1的誤差。當時間基準脈沖源(晶振)誤差小于十萬分之一時,誤差源主要是時間基準脈沖計數±1誤差引起。 頻率F=N/T,假定定時為1秒,時間基準脈沖周期為100μS,T=10000+ΔT F=N/(10000+ΔT), 誤差Δf/f=[N/(10000+ΔT)-N/(10000+ΔT±1)]/[N/(10000+ΔT)] =1-(10000+ΔT±1)/(10000+ΔT) =±1/(10000+ΔT) 可見誤差小于萬分之一,隨著晶振頻率的提高誤差減小。進一步分析誤差源還要考量晶振頻率的穩定度和誤差,以及單片機中斷響應滯后引起的誤差。 下面介紹的改進方法,應用在以32位ARM微處理器做為核心芯片的SQY11-03智能頻率計上。 l 連續采樣的兩種方法及其誤差分析:
1. 連續定時采樣法: Tc:采樣時間 首次中斷:捕捉脈沖上升沿觸發時間t0,記錄脈沖計數值P0同時啟動采樣定時器Tctimer,等采樣時間Tc到,給出采樣時間到的標志;采樣時間到后發生的脈沖上升沿觸發中斷,也就是末次中斷。 末次中斷出現,捕捉脈沖上升沿觸發時間t1,記錄脈沖計數值P1;清時間到的標志(為下次采集做準備),將這次的脈沖上升沿觸發時間t和脈沖計數值P儲存,并且清采樣定時器Tctimer(為下次采集做準備),允許運算;(主程序做運算,保存運算結果。)一次采集結束。 下次等采樣時間到,給出時間到的標志; 末次中斷來,捕捉t1,記錄P1;(上次P1、t1作為這次的P0、t0) 清時間到的標志,將這次的t和P儲存,并且清采樣定時器Tctimer,允許運算;(主程序做運算,保存運算結果。)又一次采集結束。如此循環往復,連續不斷地定時采集脈沖,測量頻率和速度。 F=Pclk *N/(t1-t0),F表示被測頻率;CPU時鐘頻率為66.3552MHz,定時器時鐘頻率Pclk為33.17762MHz;時鐘周期為1/Pclk = 30.140799731867445585307204073107 nS, 因為捕捉計時有±1的誤差,假定Pclk誤差限遠小于1.00 e-8時,Pclk誤差忽略不計 頻率誤差:ΔF = Pclk *N /(t1-t0) - Pclk *N /(t1-t0±1) Pclk *N /(t1-t0) * (1/(t1-t0±1)) 誤差率ΔF/F = ±(1/(t1-t0±1)) 當采樣時間≥10mS時, t1-t0 ≥ 0.01*Pclk =331776.2 ΔF/F ≤±1/331776.2 = 3.01408 e-6 當采樣時間≥1S時, t1-t0 ≥ 1*Pclk =33177620 ΔF/F ≤±1/33177620 = 3.01408 e-8
2. 連續定脈沖采樣法:
P:脈沖采樣數 首次捕捉中斷:捕捉脈沖上升沿觸發時間t0,P計數器置0;捕捉中斷,P計數器加1; 末次中斷:等脈沖數等于P,儲存t0、捕捉t1,儲存t1;P計數器置0,t1做t0;置允許運算標志;做運算,保存運算結果。一次采集結束。 再次捕捉中斷,P計數器加1; 再末次中斷:等脈沖數等于P,儲存t0、捕捉t1,儲存t1;P計數器置0,t1做t0;置允許運算標志;做運算,保存運算結果。又一次采集結束。如此循環往復,連續不斷地定脈沖數采集,測量頻率或速度。 F=Pclk *P/(t1-t0),F表示被測頻率;CPU時鐘頻率為66.3552MHz,定時器時鐘頻率Pclk為33.17762MHz;時鐘周期為1/Pclk = 30.140799731867445585307204073107 nS, 因為捕捉計時有±1的誤差,假定Pclk誤差限遠小于1×10 -8時,Pclk誤差忽略不計 頻率誤差:ΔF = Pclk *P /(t1-t0) - Pclk *P /(t1-t0±1) Pclk *P /(t1-t0) * (1/(t1-t0±1)) 誤差率ΔF/F = ±(1/(t1-t0±1)) = ±1/Pclk*F/P 定脈沖采樣法的誤差率與被測頻率和脈沖采集數的比例成正比,也與計時器的時鐘頻率成反比。 ΔF/F = ±1/Pclk*F/P = ±3.01408e-8 *F/P 假定被測頻率為1.00MHz,脈沖采集數P為10000,則: ΔF/F = ±3.01408e-8 *F/P = ±3.01408e-8 *1000000/10000 = ±3.01408e-6 l 連續采樣(定時采樣法和定脈沖采樣法)的實施方法 連續采樣(定時采樣法和定脈沖采樣法)的實施方法 以SQY11-03智能頻率計為例加以說明: SQY11-03智能頻率計的硬件結構:
SQY11-03智能頻率計,只需要較少的外圍結構,便構成了高性能的頻率計;因為LPC2103豐富的內部資源可以通過軟件配置來實現用戶的目的。 連續采集通過1/N分頻器分頻輸出的信號,由于計數器和計時器完全同步(計時器采用高速捕捉,計時誤差小于30nS,可以理解為同步),如果以10mS為采集周期,采集運算誤差小于±5.00 e-5,,如果以100mS為采集周期,采集運算誤差小于±5.00 e-7,當誤差要求低于±1.00 e-6時,一般來講誤差來自晶體振蕩器;選擇穩定誤差小的晶振(如溫補晶振、壓控晶振、恒溫晶振等),成了提高精度的主要手段。 SQY11-05智能測速儀基本誤差:±5.0e-5, SQY11-03智能頻率計基本誤差:±5.0 e-5。 面板顯示:
第一行顯示頻率或轉速(r/min,SQY11-05); 第二行顯示周期; 第三行顯示計數。 可以根據測量精確度的要求,調整保留的小數點位; 采樣時間可以根據測量的動態實時性需要,在10mS ~ 100S之間調整; 測量分低頻、中頻和高頻三檔: 低頻:0.010Hz ~ 1000.00 Hz ,采樣時間在10mS ~ 100S之間調整; 中頻:0.100Hz ~ 100.000 kHz ,采樣時間在10mS ~ 10S之間調整; 高頻: 100.0Hz ~ 10.0000 MHz ,采樣時間在10mS ~ 1S之間調整。 根據測量范圍的變化,可以通過軟件參數的設置,改變分頻數將進入計數器的信號頻率轉化為 0.10Hz ~ 100.000 kHz ; 比如1.000 ~ 10000kHz,通過100分頻,轉化為 100~ 100000Hz ; 在采樣時間為10 ~100mS時,可以動態記錄測量結果。 l 特色應用 SQY11T-03頻率計采用的芯片LPC2103與以前芯片的比較,體現出較多的優越性,這里要特別提出的主要有兩點:豐富資源和資源可以靈活多樣地加以配置,芯片速度可以達到70MHz。優越的基礎使新的方法得到充分發揮;SQY11-03智能頻率計,在測量方法也有了新的改進,主要表現在以下幾方面: 1. 適合高頻和低頻的寬范圍測量,并且與高精度速度頻率測量軟件配套,可以動態測量記錄速度、頻率、周期和加速度。 2. 由于內部資源可以通過參數改變來重新配置,定時連續采樣和定脈沖連續采樣兩種方法可以由用戶配置參數加以切換。 3. 連續定時采樣:可以檢測以時間為參照的動態變化,比如各種旋轉機械的速度動態變化; 4. 連續定脈沖采樣:可以檢測以空間為參照的動態變化,比如發動機飛輪在每個旋轉角度上的速度變化。
附錄: 頻率與轉速的關系: f=P*v/60 f表示頻率,P表示每轉產生的脈沖個數,v表示轉速。 T=1/f 參考資料: 1. 《轉速測量方法和轉速表》 |