如果您需要對(duì)按鈕、光電開關(guān)、旋轉(zhuǎn)變壓器、壓力、化學(xué)或其他傳感器進(jìn)行實(shí)時(shí)采樣,您應(yīng)該以多快的速度對(duì)輸入進(jìn)行采樣?每 10 毫秒?每 30 毫秒?您怎么知道惠的價(jià)格是多少?在之前的一篇文章(“如何選擇合理的采樣率”,2002 年 7 月,第 20 頁(yè))中,我講述了我與一位工程師的對(duì)話。我問(wèn)他的特定應(yīng)用的采樣率是多少。
他的回答是“5毫秒”。
“為什么?” 我問(wèn)。
“因?yàn)樗行?,”他說(shuō)?!拔覀兓藥滋鞎r(shí)間測(cè)試各種采樣率,這就是有效的。”
在另一個(gè)應(yīng)用中,規(guī)范列出了僅根據(jù)其在類似應(yīng)用中的使用而制定的采樣率。將此值包含在規(guī)范中,給系統(tǒng)設(shè)計(jì)者帶來(lái)了任何靈活性。如果該速率實(shí)際上不是該應(yīng)用程序的采樣率怎么辦?如果新軟件似乎可以在指定的采樣率下工作,那么該采樣率將在應(yīng)用程序的生命周期內(nèi)保持固定,并且該值永遠(yuǎn)不會(huì)受到質(zhì)疑。只有當(dāng)采樣軟件不起作用時(shí),采樣率才會(huì)受到質(zhì)疑。
在我之前的文章中,我解釋了一種科學(xué)地確定數(shù)字輸入采樣率的方法。在本文中,我將回顧這些信息并討論它如何應(yīng)用于模擬傳感器。
選擇多個(gè)
選擇采樣率的臨時(shí)方法會(huì)帶來(lái)幾個(gè)問(wèn)題。
首先,不應(yīng)該花費(fèi)數(shù)天的試錯(cuò)測(cè)試來(lái)確定給定應(yīng)用程序的正確采樣率。相反,對(duì)當(dāng)前的應(yīng)用和問(wèn)題進(jìn)行系統(tǒng)工程分析只需進(jìn)行幾次實(shí)驗(yàn)就可以得出正確的答案。
其次,“”的定義是什么?一個(gè)應(yīng)用程序的答案不一定是另一應(yīng)用程序的答案。通常,使用試錯(cuò)法來(lái)確定采樣率,并且測(cè)試是在僅包含傳感器采樣代碼(而不是整個(gè)應(yīng)用程序)的系統(tǒng)上執(zhí)行的。還記得對(duì)我的問(wèn)題回答“5ms”的工程師嗎?他的代碼是為需要一些去抖的按鈕開關(guān)創(chuàng)建的。通過(guò)測(cè)試,他終選擇了 5 毫秒的輪詢時(shí)間,因?yàn)樗坪醪粫?huì)將單次推送錯(cuò)誤地記錄為兩次,并且速度足夠快,不會(huì)將故意的兩次推送誤解為彈跳。
實(shí)際上,5 毫秒的輪詢時(shí)間對(duì)于該系統(tǒng)來(lái)說(shuō)可能是可以接受的,但如果不考慮其他因素(特別是系統(tǒng)的實(shí)時(shí)響應(yīng)),很難說(shuō)這是否是答案。
例如,如果處理器過(guò)載并且 5ms 采樣使用了 CPU 容量的 40%,該怎么辦?將采樣間隔增加到 10 毫秒將使 CPU 利用率減半。另一種選擇可能是以一半的速度執(zhí)行控制代碼。從系統(tǒng)的角度來(lái)看,哪個(gè)更好?或者更重要的是,用于采樣的資源、采樣對(duì)處理器使用的影響以及實(shí)時(shí)可調(diào)度性和優(yōu)先級(jí)反轉(zhuǎn)等其他因素之間是否存在良好的折衷?
選擇采樣率時(shí),通常有幾個(gè)相互競(jìng)爭(zhēng)的目標(biāo),例如:
盡可能快地采樣以獲得的準(zhǔn)確性。
盡可能慢地采樣以節(jié)省處理器時(shí)間。
采樣速度足夠慢,噪聲不會(huì)在輸入信號(hào)中占主導(dǎo)地位。
采樣速度足夠快以提供足夠的響應(yīng)時(shí)間。
以控制算法頻率的倍數(shù)進(jìn)行采樣,以限度地減少抖動(dòng)。
事實(shí)上,通常沒(méi)有適用于所有系統(tǒng)的答案,但當(dāng)考慮特定應(yīng)用程序和目標(biāo)硬件的特殊性時(shí),通常有一個(gè)答案比大多數(shù)其他答案都更好。在本文中,我將展示如何系統(tǒng)地識(shí)別一個(gè)解決方案。通過(guò)實(shí)驗(yàn)和數(shù)學(xué)分析相結(jié)合,確定一組良好的采樣率,并討論如何根據(jù)應(yīng)用程序的實(shí)時(shí)要求從該組中選擇正確的值。以下是確定采樣率的系統(tǒng)方法:
測(cè)量應(yīng)用的傳感器特性。
如果輸入中存在噪聲,請(qǐng)選擇用于過(guò)濾數(shù)據(jù)的算法。
僅根據(jù)函數(shù)計(jì)算采樣率的下限和上限。
確定使用下限利率和上限利率之間的權(quán)衡。
優(yōu)先考慮權(quán)衡,以確定計(jì)算的下限和上限之間的合適采樣率。
該方法將實(shí)驗(yàn)測(cè)量與對(duì)應(yīng)用需求的分析理解相結(jié)合,以便設(shè)計(jì)出良好的解決方案。雖然該方法可用于大多數(shù)類型的傳感器,但在本文中我們僅關(guān)注模擬輸入。
模擬輸入
模擬輸入通過(guò)模數(shù)轉(zhuǎn)換器 (ADC) 向處理器提供數(shù)據(jù)。采樣率是指從 ADC 讀取數(shù)據(jù)并將其傳遞到使用該數(shù)據(jù)的其他應(yīng)用程序組件的次數(shù)。采樣率直接影響輸入信號(hào)的時(shí)間分辨率,就像 ADC 中的分辨率位數(shù)影響空間分辨率一樣。
誤差是采樣率的函數(shù)。我們將誤差 ε( t ) 定義為實(shí)際傳感器值與控制算法在任何時(shí)間使用的值t 之間的差值。 請(qǐng)注意,t 是連續(xù)的,因此隨著采樣率T s 的增加,輸入值恒定,誤差通常會(huì)增加。如圖 1 所示。

圖 1:模擬信號(hào)采樣產(chǎn)生的誤差示例 ε( t )=|y-Ksin(ω t )|
在信號(hào)處理中,奈奎斯特準(zhǔn)則用于確定采樣率。具體來(lái)說(shuō),奈奎斯特準(zhǔn)則規(guī)定采樣率必須至少是輸入信號(hào)中頻率分量的兩倍。給定這樣的采樣率,就可以重建原始輸入信號(hào)。
不幸的是,在讀取模擬傳感器時(shí),奈奎斯特準(zhǔn)則不能用于大多數(shù)嵌入式控制應(yīng)用。重建原始信號(hào)需要強(qiáng)大的計(jì)算能力;因此需要數(shù)字信號(hào)處理器。另一方面,在嵌入式控制系統(tǒng)中,模擬輸入不需要重構(gòu)。相反,輸入通常用于提供感覺輸入作為反饋控制的基礎(chǔ)。因此,只需要的數(shù)據(jù)。因此,問(wèn)題是該數(shù)據(jù)必須有多“新”才能將誤差保持在應(yīng)用程序指定的范圍內(nèi)。
電子發(fā)燒友App






























評(píng)論