要實時地采樣一個按鈕、光開關、分解器、壓力、化學或其它傳感器">

国产精品久久人妻互换毛片,国产av国片偷人妻麻豆,国产精品第12页,国产高清自产拍av在线,潮喷大喷水系列无码久久精品

技術頻道

如何為模擬傳感器確定最佳采樣速率

要實時地采樣一個按鈕、光開關、分解器、壓力、化學或其它傳感器,需要以多高的速率來對輸入進行采樣呢?是間隔10ms還是30ms?怎樣才知道最佳速率是多少呢?我曾問一位工程師在某個應用中最佳的采樣速率是多少,他回答5ms。至于原因,他說:“因為在這個速率下應用能夠工作,我們花了幾天時間來測試各種采樣速率,只有這個速率能很好地工作。”


在另一個應用中,說明書列出了一個采樣速率,這是根據(jù)一個類似應用得到的。在說明書上規(guī)定這個數(shù)值使得系統(tǒng)的設計人員喪失了任何靈活性。如果事實上這個速率不是應用的最佳采樣速率該怎么辦呢?如果新的軟件看來能夠在規(guī)定的采樣速率下工作,那么在應用的整個生命周期中,這個速率將很可能將一直固定不變。只有在當采樣軟件不能工作時,采樣速率才可能會受到懷疑。


為什么要采用試探糾錯法?

在能夠采用科學和數(shù)學的方法時,為什么還要通過試探糾錯法來確定采樣速率呢?本文將詳細討論一個更為有效的簡單過程。利用特別的方法選擇采樣速率會帶來幾個問題。


首先,對于一個給定的應用,不應該花費幾天的時間通過試探糾錯試驗來確定恰當?shù)牟蓸铀俾省H绻苓M行系統(tǒng)的工程分析,只需少量的實驗便可得出正確的答案。


其次,“最佳”的定義是什么?某個應用的最佳答案對于另一個應用未必也是最佳答案。試探糾錯法常用來確定采樣速率,而且測試是在只包含了傳感器采樣程序的最小系統(tǒng)(而非完整系統(tǒng))上進行的。本文開始時所提到的那個工程師選擇“5ms”的采樣間隔,他的程序是為一個需要去抖動處理的按鈕開關所編寫的。通過測試,他最終選擇了5ms的查詢間隔時間,因為這時系統(tǒng)不會把單次按壓誤記為雙次按壓,另一方面這個間隔也足夠短,不至于把一個真正的雙次按壓誤認為抖動。


事實上,5ms的查詢時間對于這個系統(tǒng)來說或許可以接受,但在考慮其它因素(特別是系統(tǒng)的實時響應)之前,很難斷定它是否是最佳選擇。


例如,如果處理器負擔過重,而5ms一次的采樣需要占用CPU 40%的能力時怎么辦呢?一種選擇是將采樣間隔時間增加到10ms,這樣可以把對CPU的占用率降低一半,另一種選擇是以半速執(zhí)行控制程序。從系統(tǒng)的角度看,哪一種方案更好呢?或者更重要的是,在采樣占用的資源與采樣對處理器使用的影響,以及實時調(diào)度能力和優(yōu)先級轉換等其它因素之間是否有一個很好的折衷呢?


在選擇采樣速率時,通常有幾個供選擇的目標,如:


* 盡可能快地采樣,以獲得最高的精度;


* 盡可能慢地采樣,以節(jié)省處理器的時間;


* 采樣速率足夠低,使噪聲對輸入信號的影響不大;


* 采樣速率足夠高,以提供足夠的響應時間;


* 采樣速率是控制算法頻率的倍數(shù),以便將抖動降到最低。


事實上,沒有任何答案能夠最佳地適合所有系統(tǒng),但在針對某個特定應用和目標硬件的特性時,通常有一個答案比其它大多數(shù)答案更好。


本文將示范如何結合試驗和數(shù)學分析,系統(tǒng)地確定一組較好的采樣速率,并討論當應用的實時要求給定時,如何從這組采樣速率中選擇一個恰當?shù)臄?shù)值。


以下是一種確定采樣速率的系統(tǒng)方法:


1. 測量應用的傳感器特性;


2. 如果輸入信號中包含噪聲,選擇一種對數(shù)據(jù)進行濾波的算法;


3. 根據(jù)其功能計算出采樣速率的上限和下限;


4. 分析采用上限和下限采樣速率時對各種性能的影響;


5. 區(qū)分各種影響的輕重主次,在計算出的上限和下限之間確定一個適當?shù)牟蓸铀俾省?/P>


為了設計一個優(yōu)秀的解決方案,這種方法結合了實驗測量和對應用需求的分析理解。雖然此方法可用于大多數(shù)類型的傳感器,但本文將集中討論模擬輸入傳感器。


模擬輸入傳感器


模擬輸入傳感器通過模數(shù)轉換器(ADC)為處理器提供數(shù)據(jù)。采樣速率是指單位時間內(nèi)從ADC讀取數(shù)據(jù)并傳遞給使用該數(shù)據(jù)的其它應用部件的次數(shù)。采樣速率直接影響輸入信號的時間分辨率,其方式與ADC的位數(shù)對空間分辨率的影響大致類似。


最大誤差是采樣速率的函數(shù)。我們將誤差e(t)定義為任意時刻t實際傳感器的值與控制算法所用值之間的差異。注意t是連續(xù)的,因此隨著采樣速率Ts提高,輸入值恒定,誤差通常會增大,如圖1所示。

1

信號處理技術中常用奈奎斯特準則來確定采樣速率。奈奎斯特準則規(guī)定,采樣速率至少必須為輸入信號中最高頻率分量的兩倍。采樣頻率滿足這一要求時,才可以重建原始輸入信號。


但是,在讀取模擬傳感器時,奈奎斯特準則無法適用于大部分嵌入式控制應用。重建原始信號需要較強的計算能力,從而需要數(shù)字信號處理器。另一方面,在嵌入式控制系統(tǒng)中無需重建模擬輸入,它的輸入信號一般是用來提供敏感輸入,以作為反饋控制基礎的,因而系統(tǒng)只需要最近的數(shù)據(jù)。因此,這里的問題是數(shù)據(jù)必須要多“近”,才能將誤差保持在應用規(guī)定的最大范圍之內(nèi)。


確定采樣速率的范圍


對于微控制器而言,采用奈奎斯特準則時,可以通過系統(tǒng)中的最高頻率分量來決定最低采樣速率fmin。我們將最高頻率分量記為F,并定義w=2pF。則模擬輸入中最壞的變化可表示為:

2

上式中,n為ADC的位數(shù)。當g(t)的導數(shù)最大時,g(t)的最大變化率G出現(xiàn)。因此:

3


在許多應用中,最大變化速率可能已由最大斜率限定,例如對于一個數(shù)字溫度計,可能規(guī)定為“1度/秒”。根據(jù)ADC的取值范圍,通過簡單的比例關系,可將此最大變化率轉換為Da/Dt(ADC單位/秒)的形式。


在其它的場合,可以通過試驗來合理估計最大值。例如,假設將一個模擬速度傳感器連接到一臺帶有最小負載的發(fā)動機上,則速度的最大變化率將發(fā)生在發(fā)動機開足馬力后到達穩(wěn)態(tài)的時候。測量時可使用模擬傳感器作為輸入,按處理器的最大能力快速采樣,并按照ADC的單位來記錄速度值。


假設采樣速率為Dt。在一個Dt的間隔期間,讀取測量結果將產(chǎn)生一個DA。如果Da是兩個連續(xù)ADC讀數(shù)之間的差值,且DA=max(Da),我們就可以計算DA/Dt。如果由于Dt太小,輸入DA的有效位成為問題,則可以結合多個采樣轉而計算kDA/kDt,這里k為采樣的個數(shù)目,且k>1。


注意,這個Dt只用于本次試驗,目的是找出Ts(最終應用的最恰當?shù)腄t值),以便在占用資源最少的情況下保證足夠的精度。

由于DA/Dt是規(guī)定的最大變化率,在定義上也稱為G,我們將關系記為:

4

設E為允許的最大誤差,它表示為信號最大范圍的一個百分比。即,對于一個最大值為5%的誤差,E=0.05。


因此,ADC的最低采樣速率fmin可計算如下:

5


例如,如果一個應用的最大變化率相當于采樣一個50Hz的正弦波,用一個8位ADC來讀取傳感器,且最大誤差為5%。則fmin=50p/0.05=3.1kHz,采樣周期Tmin=1/fmin=318μs。


有意思的是需要注意,最低采樣速率不是ADC位數(shù)的函數(shù)。但是,ADC的位數(shù)為最大誤差確定了一個邊界:

2


那么,如果應用規(guī)定的最大誤差為1個ADC單位(即ADC的最佳分辨率),多高的采樣速率能滿足這個誤差要求呢?答案是DA=1。為了計算這個值,在式4中設E=2-n,有:

6


式中fmax為實現(xiàn)最高分辨率的采樣速率。


對于一個具體的ADC器件和應用,比fmax更高的采樣速率毫無必要,因為器件的分辨率限制了誤差的降低。


模擬輸入傳感器的采樣速率下限如式4,上限如式6。作為小結,如果給定F:

7

或者如果已知DA/Dt:

8

注意,這些式子給出了一個限制,它在ADC滿刻度范圍(即0到2n-1)的基礎上假設了一個最大誤差。在一些應用中,可能沒有使用ADC的全部滿刻度范圍,此時應該用ADC的實際范圍來代替2n。


例如,為了確定fs的有效范圍,考慮一個應用在受控高功率加熱系統(tǒng)中的溫度傳感器。這個傳感器連接到一個轉換時間為50μs的10位ADC。系統(tǒng)設計為在-20°C到200°C的溫度范圍之間工作。此外,控制算法要求在所有給定點傳感器讀數(shù)的誤差不超過0.5°C,以保證平穩(wěn)控制。


系統(tǒng)開發(fā)的起始階段通過一個實驗來確定DA/Dt。傳感器在一個小型溫度絕緣密封裝置中被冷卻到-20°C。密封裝置中放置有一個加熱器,它只對傳感器進行加熱。如果同時還對其它物體進行加熱,將使系統(tǒng)的負載增大,并且延緩加熱的速度。編寫并執(zhí)行對傳感器進行采樣和記錄數(shù)據(jù)的程序代碼后,加熱器被開到最大功率。當傳感器被加熱到200°C時,切斷加熱器。此時,在一個反映實際應用的環(huán)境下對最大冷卻速率進行測量。如果是被動冷卻,只需打開熱封閉裝置即可;如果是主動冷卻 (如使用風扇),則應開啟有關的制冷設備。


這里的目標是為了獲得近似的測量值??赡苓€需要一個更為完善的設備(如反映系統(tǒng)實際負載的設備)來對測量結果進行精密調(diào)整。但是,這些初步的估計值可以給出對所需采樣速率的一個相當好的一階近似,用作系統(tǒng)設計和實現(xiàn)中的指導。


假設將傳感器從-20°C加熱到200°C需要380秒。仔細考察這些數(shù)據(jù)后我們發(fā)現(xiàn),在1秒的間隔時間內(nèi),最大溫升為3.5°C。假設這個10位ADC已經(jīng)過校準,ADC輸出為0時對應溫度-20°C,輸出0x3FF時對應溫度200°C,并且這個對應關系是線性的,則每秒變化3.5°C對應每秒變化16個ADC單位。因此,DA/Dt=16。同時,由于在220°C的范圍內(nèi)規(guī)定的最大誤差為0.5°C,因此傳感器讀數(shù)的最大誤差為0.23%,即E=0.0023。


采用式8計算模擬傳感器的采樣速率范圍,得:

9
或:

10

這意味著,采樣速率低于每秒6.8次可能會導致超出控制系統(tǒng)算法規(guī)定范圍的誤差,尤其是在最大加熱或冷卻周期期間。采樣速率的上限是每秒16次。但是注意,與信號跳躍變化的數(shù)字輸入傳感器不同,過快地采樣模擬傳感器不會導致誤差。事實上,采樣速率上限標志著一個閾值,超過這個速率更快地采樣也不會提高控制系統(tǒng)的精度。


確定最佳采樣速率


現(xiàn)在已經(jīng)得到了可用值的一個范圍,下一步是根據(jù)應用和硬件的各種屬性,在這個取值范圍內(nèi)確定最佳的采樣速率。以下是在確定最佳采樣速率時可能遇到的一些問題。


你可能注意到了,ADC的實際轉換時間并不影響采樣速率。當轉換時間與采樣速率相比可以忽略時,這是一種普遍情況。另一方面,假設轉換時間為60ms(對于高分辨率ADC來說這個轉換時間是相當普遍的)。由于轉換時間較長,將ADC配置為連續(xù)模式工作,并將采樣速率設置為16.67Hz(正好是轉換速率的一個倍數(shù))相當理想。如果想節(jié)省處理器的時間,也可以按照這個速率的一半-即8.33Hz-進行采樣。由于這個速率處在計算范圍之內(nèi),應用仍能正確工作。但是,不能以四分之一速率(4.16Hz)對模擬輸入進行采樣,因為這個速率在計算范圍之外,并且會導致超出規(guī)定范圍的誤差。以非轉換時間倍數(shù)的任何頻率采樣都將導致時鐘畸變,并有可能引發(fā)更多的問題,即使采樣速率在計算范圍之內(nèi)亦然。


作為另一個微幅調(diào)整的例子,假設已經(jīng)確定控制系統(tǒng)需要更精確的傳感器讀數(shù),即傳感器讀數(shù)的百分數(shù)誤差E必須降低。這使得fmin的下限必須提高,意味著傳感器需要更快地采樣。在新的規(guī)定值E已經(jīng)給定的情況下,可以采用式8來快速確定新的最低采樣速率。這樣只花幾分鐘便可分析確定對采樣速率的調(diào)整,而不必花上幾小時或幾天來嘗試通過實驗進行調(diào)整。

注意,這個例子考慮采用未經(jīng)濾波的模擬輸入數(shù)據(jù),如果需要采用輸入濾波來減小噪聲,那么在分析中必須考慮對濾波算法的需求。


概括地說,采樣速率的取值范圍為設計提供了一個起點。如果有任何參數(shù)發(fā)生變化,可以相應地改變計算,根據(jù)需要獲得新的采樣速率。


本文小結


本文提供的方案不是一個適用于所有模擬傳感器的解決方案,而是展示了一條分析與實驗相結合的途徑。讀者應根據(jù)所選用的特定傳感器、具體應用的需求,以及自己通過簡單實驗獲得的合理測量結果,不斷修改這一方法。需要記住的一點是,在為嵌入式系統(tǒng)開發(fā)軟件時,應用基本設計可以顯著節(jié)省開發(fā)過程中的時間,并能獲得更好的結果,至少是與任何特別的方法同樣好的結果。

文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉載。