【云小課】EI第29課 大數據時代的隱私利器-GaussDB(DWS)數據脫敏
789
2025-03-31
pdf版-:http://pan.baidu.com/s/1hrKoza8
文件名:ccsa4_5
模擬量輸入輸出
第四章
4-1 模擬量輸入通道基本組成包括哪些環節,各環節的作用是什么?
⒈模擬量輸入通道的基本組成
模擬量輸入通道一般由前置調理電路、采樣保持器、A/D轉換器和計算機I/O接口電路組成,如圖4-1所示。來自生產現場的過程工藝參數由傳感變送器轉換為模擬電信號,再依次經過前置調理、采樣保持和模數轉換環節,轉化為數字信號,最后通過I/O接口電路由計算機接收。
圖4-1? 模擬量輸入通道基本組成框圖
傳感變送器在計算機控制系統中作為廣義被控對象的一個組成部分,是模擬量輸入通道的信息提供者,它通常包括傳感器和變送器(兩者配套使用)兩個部分。傳感器是將某一物理量,如溫度、流量、壓力等生產過程工藝參數,轉換為電參量的裝置,電參量的形式有電流值、電壓值、電阻值、電容值、電感值、電荷值和頻率值等。變送器也稱信號調理單元,一般包括標度變換、濾波、非線性校正、零點和滿刻度調整等電路。其中標度變換電路將傳感器輸出的電參量進行規格化處理,變換成0~5V、1~5 V 、0~±10 V 或0~10mA、4~20mA等統一標準信號;有些傳感器的輸出信號與被測物理量之間呈非線性關系,為提高測量轉換的靈敏度,可以用軟件或硬件方法來實現線性化,應用硬件方法時就需要變送器中的線性化校正電路。為了便于使用,大多數傳感器生產商往往將傳感器與變送器做成一體,直接輸出0~5V、-5V~5V、0~10V、-10V~10V等電壓信號,或0~10mA、4~20mA的電流信號。傳感器和變送器的種類繁多,電路組成復雜多樣,有許多相關的文獻和書籍,因其是廣義被控對象的一部分,在本教材中不做介紹。
模擬量輸入通道各組成部分的作用分述如下:
⑴前置調理電路:在計算機控制系統中,傳感變送器的輸出信號多數采用標準電流0~10mA或4~20mA,以便經雙絞線進行遠程傳送。在信號到達模擬量輸入通道后,需要將現場傳送來的電流信號轉換為電壓信號。不論是電流型信號還是電壓型信號,來自現場的信號本身會有噪聲,在傳送過程中也會受到干擾,因此需要在采樣環節之前設置硬件濾波電路消除高頻干擾。前置調理電路包括濾波電路和I/V轉換電路,可以根據模擬信號的實際情況靈活設置。
⑵采樣保持器:模擬量在進行A/D轉換時需要一個過程,如果信號變化很快則A/D轉換結果是不確定的。采樣保持器的作用在于,保證A/D轉換期間待轉換的電壓信號保持不變,避免引起A/D的轉換誤差。
⑶A/D轉換器:A/D轉換是模擬信號向數字信號轉換的關鍵環節,A/D轉換器一端連接模擬量輸入通道的模擬電路部分,另一端連接計算機I/O接口電路,它將模擬電壓信號轉化為數值上等效的數字信號,以便計算機接收和識別。
⑷計算機接口和控制電路:該電路是計算機與模擬量輸入通道之間的連接電路,其功能包括兩個方面:一是啟動A/D轉換,并將結果送計算機;二是控制模擬量輸入通道中的其它受控元件,如采樣保持器和多路轉換開關等。
4-2 簡述模擬量輸入通道的結構類型,并分析它們的特點。
⒉模擬量輸入通道的結構類型
計算機控制系統在實際應用中往往需要檢測多種物理量,或者對同一種物理量的多個參數測量點進行檢測,在時間安排上采取同步檢測或者巡回檢測的方式。針對控制系統的技術要求,應當為模擬量輸入通道選配適當的結構形式,這主要取決于需要檢測的參數測量點數量和相應的時序關系。圖4-1所示的模擬量輸入通道,只能檢測一種物理量的一個參數測量點,稱為模擬量單輸入通道;能完成多個參數測量點同時或巡回檢測任務的模擬量輸入通道,稱為多路模擬量輸入通道。按照A/D轉換器的利用情況和各路模擬量采集時序,多路模擬量輸入通道可分為兩大類型,即多路獨立設置A/D轉換器形式和多路共享A/D轉換器形式。
多路共享A/D轉換器形式如圖4-2(a)所示,多路模擬量輸入通道由被測信號各自對應的前置調理電路(1……n)、模擬多路開關、前置放大器、采樣保持器、A/D轉換器、邏輯控制電路和計算機I/O接口電路組成。其中,模擬多路開關相當于一個單刀多擲開關,它的作用是把各路被測信號按預定時序分時地接入通道。該結構的特點是多路信號共同使用一個前置放大器、采樣保持器和A/D轉換器,由多路模擬開關輪流采入各路模擬信號,經放大、采樣、保持和A/D轉換,送入計算機I/O接口電路。優點是能夠以較低的成本采集多路信號,但是存在兩方面的缺點,一是各路信號在時間是依次被采集的,不能獲得同一時刻的數據,二是多路模擬開關不是理想開關,易受失調電壓、開關噪聲、非線性和信號之間竄擾的影響,系統精度因此受到影響。這種形式通常用于對速度要求不高的數據采集系統中,對于要求多路信號嚴格同步采集測量的系統是不適用的。
(a)多路共享A/D轉換器形式
(b)多路獨立設置A/D轉換器形式
圖4-2? 多路模擬量輸入通道結構圖
多路獨立設置A/D轉換器形式如圖4-2(b)所示,多路模擬量輸入通道由若干模擬量單輸入通道并聯組成。該結構的特點是每路信號都有獨自的采樣保持器和A/D轉換器,每一組采樣保持器和A/D轉換器只對本路模擬信號進行轉換,允許各路通道同時進行采樣、保持和A/D轉換,采集的數據在計算機I/0接口的協調下按一定順序輸入計算機。優點是各路通道互不影響,如果某一路產生故障,不影響其它通道正常工作,而且可同步采樣,信號轉換速度快。缺點是通道路數越多,成本越高,而且會使系統體積增大。這種形式通常用于高速數據采集系統,能夠滿足多路信號同步采集的需要。
4-3 說明模擬量輸入通道的信號變換過程和香農采樣定理。
⒈模擬量輸入通道的信號變換
在圖4-1所示的模擬量輸入通道中,傳感變送器輸出的模擬信號經前置調理電路后,仍然是模擬電壓信號,向計算機I/O接口傳送還需要完成模擬信號到數字信號的轉換,包括采樣和量化兩個過程,先是經過采樣保持器實現信號采樣,然后保持。在信號保持過程中,由A/D轉換器實現量化過程,保持是為量化提供保障的。
⑴信號采樣
通過特定的裝置,獲取模擬信號瞬時量值的過程,叫作采樣。執行采樣動作的裝置是采樣器(s),其采樣開關(k)周期性地閉合并迅速斷開。如圖4-3所示,采樣開關(k)為常開狀態,每間隔一個時間段T閉合一次,閉合持續時間為t,然后再迅速斷開。采樣開關閉合持續的時間(t)是極短的,稱之為采樣時間,采樣開關周期性閉合的時間間隔(T),稱之為采樣周期。采樣開關隨采樣周期的節拍,一次次動作的時點,即0T、1T、2T、3T……,各時間點稱為采樣時刻。
(a)被采樣信號?????????? (b)脈沖序列信號????? (c)采樣信號
圖4-3? 采樣過程示意圖
采樣器的輸入端為時間連續的模擬信號y(t),經過采樣開關后在采樣器的輸出端產生一系列時間上離散的模擬信號y*(kT),該系列信號稱為脈沖序列信號,脈沖的寬度等于采樣時間t。在t≤T的情況下,y*(kT)稱為采樣信號。模擬信號y(t)在t= kT采樣時刻轉換為采樣信號y*(kT)的過程,稱為采樣過程或離散過程。
⑵信號保持
采樣信號時間上離散而在幅值上仍是模擬量,需經過A/D轉換成為相應的數字量,才能被計算機接收處理。完成A/D轉換總需要一定的時間,為保證測量結果的準確性,需要將采樣信號保持到下一采樣時刻到來,至少要保持A/D轉換結束。因此需要在采樣器的基礎上增加保持器的功能,統稱為采樣保持器(S/H)。
圖4-4? 采樣保持器電路原理圖
采樣保持器的工作原理如圖4-4所示,采樣保持器(S/H)由采樣開關(K)、保持電容(CH)、輸入緩沖放大器(A1)、輸出緩沖放大器(A2)和控制端(P)組成。在控制端(P)的作用下,S/H有兩種工作方式:一種是采樣方式,另一種是保持方式。當采樣開關(K)閉合時,S/H處于采樣狀態,輸入電壓信號y(t)通過緩沖放大器(A1)對保持電容(CH)快速充電,保持電容(CH)的電壓迅速達到輸入模擬信號y(t)的電壓值,S/H的輸出跟隨輸入的模擬電壓信號。當采樣開關(K)斷開,保持電容(CH)的電容電壓與采樣時刻y(kT)的電壓瞬時量值相同,輸出緩沖放大器(A2)的輸出電壓與保持電容(CH)的電容電壓相同,由于輸出緩沖放大器(A2)的輸入阻抗極高,可使電容電壓衰減很慢,在理想情況下可將本次采樣信號y*(kT)維持到下一采樣時刻到來。采樣與保持的過程如圖4-5所示。
圖4-5? 采樣與保持過程示意圖
⑶信號量化
將采樣信號轉化為相應的數字信號的過程,稱為量化。在采樣信號被保持期間,A/D轉換器執行量化動作。設有一個n位字長的A/D轉換器,將量程為Ymax~Ymin范圍內的采樣信號y*(kT),變換為0~(2n-1)范圍內的數字信號,共有2n種可能的取值。它能分辨的最小模擬量值q,稱為量化單位。
(4-1)
式(4-1)表明,量化單位是A/D轉換器輸出的數字量中最低位為1、其它位均為0時所對應的模擬量,也稱為1LSB。實際上,量化就是把待測模擬信號轉化為量化單位(q)的整數倍的過程,即以q為法碼來衡量待測模擬信號幅值高低的小數取整過程。量化算法表達式下:
(4-2)
式(4-2)中y*(kT)為采樣保持器輸出的待測模擬量,Ymin表示A/D轉換器量程的下限,q是量化單位,[? ]表示取整運算,YN為y*(kT)對應的數字量。在A/D轉換過程中,由于(y*(kT)-Ymin)不一定恰好被量化單位整除,余數被近似處理的結果必然產生誤差,該誤差稱為量化誤差。A/D轉換器對式(4-2)進行計算產生的余數,有兩種處理方法,即截尾法和舍入法。
截尾法規定,凡是小于量化單位的余數均視為零。所產生的量化誤差始終為正數,其值隨機分布在0~q之間。最大量化誤差為q,即。
舍入法規定,小于半個量化單位的余數視為零,大于或等于半個量化單位的余數則計入為1。所產生的量化誤差可能為正,也可能為負,其值隨機分布在之間,最大誤差為,即。一般情況下,A/D轉換器總存在的量化誤差,因為舍入法的量化誤差小,所以被大多數A/D轉換器所采用。
⒉模擬量輸入通道的相關定理
模擬量輸入通道的信號變換過程及信號形態的變化,可在圖4-6集中體現出來,由此產生的問題是:采樣信號y*(kT)能否反映原模擬信號y(t)的全部信息,怎樣才能如實地反映模擬信號y(t)的所有變化與特征?
圖4-6? 模擬量輸入通道信號變換過程示意圖
采樣信號y*(kT)僅獲得模擬信號y(t)在t=KT(K=0,1,2,3……)時刻的瞬時值,而相鄰兩次采樣相隔時間段內的模擬信號y(t)的信息則處于檢測盲區。如果采樣周期越長則丟失的信息就越多,反之,采樣的頻率越高,采樣信息y*(kT)的系列值越可以逼真地反映模擬信號y(t)。同時,也不能認為采樣頻率越高越好,因為采樣頻率越高,計算機會把許多寶貴的時間用于采樣,而無法進行數據分析和算法處理,從而失去實時控制的機會。那么在確保采樣信號y*(kT)能唯一地復現模擬信號y(t)的條件下,采樣頻率最低取多少為宜呢?香農采樣定理指出:如果模擬信號(包括噪聲干擾在內)頻譜的最高頻率為,只要按照采樣頻率≥2進行采樣,那么采樣信號y*(kT)就能唯一地復現模擬信號y(t)。在實際的計算機控制系統中,通常取≥(5~10)。
香農采樣定理僅給出了采樣信號能恢復模擬信號的理論依據,然而并非所有的模擬信號y(t)都是有限帶寬,有的y(t)的最高頻率是很難確定的。如果模擬信號y(t)中含有高于的頻率分量,則會產生頻率混淆。因此模擬量輸入通道中一般都設置低通濾波器,截頻,把高于的頻率分量,即滿足采樣定理。當然,如果被采樣模擬量y(t)的頻譜中不包含高于的頻率分量,或者即使存在也很微弱,那就不必增加去混淆濾波環節。設置低通濾波器之后,去混淆濾波器的截頻即為被測信號的最高頻率,與采樣周期保持固定的關系,即:
(4-3)
式中,C為選定的截頻因數,根據香農采樣定理,至少C>2, C通常取5~10。確定工程實際需要的采樣頻率有兩條途徑:一條是根據信號的最高頻率(去混淆濾波后),按照香農采樣定理取≥(5~10);另一條是根據工業參數的經驗采樣時間,確定。表6-1列出了過程控制中各種物理量檢測時采樣周期選取的經驗值。
4-4 為什么A/D轉換需要采樣/保持器?是否設置采樣/保持器的依據是什么?
采樣保持器的工作原理如圖4-4所示,采樣保持器(S/H)由采樣開關(K)、保持電容(CH)、輸入緩沖放大器(A1)、輸出緩沖放大器(A2)和控制端(P)組成。在控制端(P)的作用下,S/H有兩種工作方式:一種是采樣方式,另一種是保持方式。當采樣開關(K)閉合時,S/H處于采樣狀態,輸入電壓信號y(t)通過緩沖放大器(A1)對保持電容(CH)快速充電,保持電容(CH)的電壓迅速達到輸入模擬信號y(t)的電壓值,S/H的輸出跟隨輸入的模擬電壓信號。當采樣開關(K)斷開,保持電容(CH)的電容電壓與采樣時刻y(kT)的電壓瞬時量值相同,輸出緩沖放大器(A2)的輸出電壓與保持電容(CH)的電容電壓相同,由于輸出緩沖放大器(A2)的輸入阻抗極高,可使電容電壓衰減很慢,在理想情況下可將本次采樣信號y*(kT)維持到下一采樣時刻到來。采樣與保持的過程如圖4-5所示。
圖4-5? 采樣與保持過程示意圖
如果直接將模擬量送入A/D轉換器進行轉換,則應考慮到任何一種A/D轉換器都需要有一定的時間來完成量化及編碼的操作。在轉換過程中,如果模擬量產生變化,將直接影響轉換結果。特別是在同步系統中,幾個并列的參量均需取自同一瞬時,如果所得到的采樣結果不是同一時刻的值,就無法進行計算和比較。所以要求輸入到A/D轉換器的模擬量在整個轉換過程中保持不變,但轉換之后,又要求A/D轉換器的輸入信號及時跟隨模擬量變化,能夠在完成上述任務的器件叫采樣/保持器(Sample/Hold),簡稱S/H。描述上述采樣/保持過程的示意曲線圖,如圖4-15所示。
圖4-15? 采樣/保持器的工作方式
采樣/保持器的作用如下:
①穩定地保持模擬信號以便能夠完成A/D轉換;
②在測量中同時對若干個模擬輸入量采樣(每個輸入需要一個采樣/保持電路);
③消除A/D轉換器的輸出瞬變,如限制輸出電壓的尖峰。
假定A/D轉換器之前無采樣/保持器,直接對正弦波信號進行轉換,則A/D轉換器的轉換時間基本上就等于采樣時間,用tc表示。如圖4-16所示,正弦信號的最大變化率為:,
由上式可以看出,采樣時間tC內信號幅值允許變化為一個量化單元q(1LSB)時,在沒有使用保持電路的條件下允許采樣的最大信號頻率是:,即:
(4-4)
若A/D轉換器使用n位編碼,滿量程為2E,則? ,此時。
從上式可以看出,被采樣的信號頻率受A/D轉換器的分辨率和采樣速度的限制。
4-5 模擬量輸入通道的性能指標包括哪些內容?A/D轉換速度和A/D轉換位數如何確定?
模擬量輸入通道的性能指標如下:
⑴輸入信號量程和類型:輸入量程是指所能轉變的電壓或電流幅值的范圍,常見的有0~5V,0~10V,-2.5V~2.5V,-5V~5V,-10V~10V,以及4~20mA、0~10mA等,或直接輸入毫伏級電壓信號,輸入方式有單端輸入和差分輸入兩種。
⑵輸入通道數目和結構類型:由現場模擬量參數測量點的數量,決定采取模擬量單輸入通道或多路模擬量輸入通道;根據系統對各路模擬量采樣的時序要求,選擇多路共享A/D轉換器形式或多路獨立設置A/D轉換器形式。
⑶分辨率:分辨率是指能對轉換結果發生影響的最小輸入量,與轉換成數字量的二進制位數相對應。分辨率越高,轉換時對輸入模擬信號變化的反應就越靈敏,常用的分辨率有8位、10位、12位和16位等,由A/D轉換器所決定。對二進制而言,實際分辨值為,n為位數。分辨率有時也用十進制位數表示,如位、位…位是對十進制而言,實際分辨值為。
⑷精度:是指轉換后所得結果相對于實際值的偏差,有絕對精度和相對精度兩種表示法。常用數字量的位數作為度量絕對精度的單位,如精度為最低位LSB的1/2,即為1/2LSB。相對精度常用百分比來表示滿量程時的相對誤差,如“±0.04%FSR25℃”,表示在25℃環境溫度下,相對滿量程時的相對誤差為0.04%。工業常用儀表精度為0.1級、0.2級、0.5級、1.0級、1.5級等,其對應的相對誤差是該值加百分號。一般情況是分辨率越高,精度越高。但這又是兩個不同的指標概念,例如分辨率即使很高,但由于溫度漂移、線性不良等原因使得附加誤差很大,總的精度并不一定很高。
⑸采樣速率:是指每秒能轉換多少個點(通道)或對一個通道重復采樣多少次,采樣速率決定了A/D轉換的速率。采樣速率高,則在一定時間內采樣點就多,對信號的數字表達就越精確。根據采樣定理,采樣頻率必須是信號最高頻率的兩倍以上,采集到的數據才可以有效地復現出原始的采集信號。
在上述指標中,分辨率、精度和采樣速率是關鍵性指標,其中分辨率的設置應服從于精度的要求。系統的精度既與傳感器和變送器有關,又與模擬量輸入通道有關,在設計上可采取如下辦法進行誤差分配。
A/D轉換器是模擬量輸入通道的核心部件,它的轉換位數和轉換速度與模擬量輸入通道的精度、分辨率和采樣速率密切相關,因此要著重了解A/D轉換位數和轉換速度的確定方法。
⑴A/D轉換位數的確定
假定傳感變送器的量程為0~Ymax,分辨率為Ymin,實質上Ymin即為傳感變送器在零點的絕對誤差,通過調整信號檢測裝置的零位,可以使Ymin是整個量程范圍內的最大絕對誤差,則傳感變送器的相對誤差可以表示為。傳感變送器的輸出即為A/D轉換器的輸入,兩者的量程范圍應該是相同的,而A/D轉換器的最大絕對誤差可以調節為量化單位q,其相對誤差可以表示為
為保證模擬量輸入通道的精度不因為A/D轉換而下降,要求A/D轉換器的相對誤差,不應超過傳感變送器的相對誤差,即:
顯然,上式可以變換為:
又因為,得:
可以求得:? ????????????????????????????????????(4-5)
A/D轉換位數也可以按分配的誤差進行推測,系統要求模擬量輸入通道的精度指標δ,n位ADC量化誤差為±LSB,即滿度值的;按選擇元件精度的一般規則,每個元件的精度指標應優于系統精度的10倍左右。可由式(4-6)估算所需A/D轉換器的位數n。
(4-6)
4-6 模擬量輸入通道為何需要設置濾波環節?數字濾波和模擬濾波器各自有何特點?
計算機控制系統處理原始采樣數據的一般流程是,先進行數字濾波,獲得代表被測量的“真值”;再進行標度變換,獲得有物理量綱的數值;最后才送去顯示或進行控制計算。
⒈模擬量輸入通道的數字濾波
在計算機控制系統中,由于被控對象的環境一般比較惡劣,存在各種干擾源,如環境溫度、電場、磁場等,使來自傳感器及其變送器的被測信號中混入了隨機性的干擾信號,而干擾信號的存在會導致A/D采樣的數值偏離真實值。為了準確地測量和控制,需要通過模擬濾波器和數字濾波器統籌配置,以減小乃至消除疊加在被測信號中的隨機干擾信號。數字濾波即通過一定的計算程序,對多次采樣數據進行加工處理,減小或消除干擾信號在有用信號中的比重,確保測量和控制精度,提高計算機控制系統的可靠性與穩定性。
模擬模擬器和數字濾波器各有所長,互為補充。數字濾波不能解決連續信號中有頻率高于奈奎斯特頻率的分量所引起的混淆問題,只能依靠模擬濾器來實現;模擬濾波器由于受到電容容量的限制,對頻率很低的信號無法實現濾波,而數字濾波恰好適用于0~頻率段信號的濾波。因此,數字濾波器不能完全取代模擬濾波器,通常在模擬信號輸入通道配置RC低通濾波器以抑制高頻干擾信號,同時在計算機軟件中采用數字濾波器對低頻干擾信號進行濾波,以彌補RC低通濾波器的不足。數字濾波器不需要增加硬件設備,可以根據需要選擇不同的濾波方法和濾波器參數。
4-7 常用的數字濾波方法有哪些?簡述它們各自的含義和應用場合。
⑴限幅濾波
在工業現場由于大功率用電設備的啟動或停止,會造成電流的尖峰干擾。這種隨機脈沖干擾通過變送器進入模擬量輸入通道,從而造成測量信號的嚴重失真。經驗表明,許多物理量的變化都需要一定的時間,相鄰兩次采樣值之間的變化幅度有一定的限度。限幅濾波是根據這種實際經驗,確定出相鄰兩次采樣信號之間可能出現的最大偏差,以此作為程序判斷的標準。當本次采樣值和上次采樣值的差值小于或等于,則本次采樣值有效;當本次采樣值和上次采樣值的差值大于,則取上次采樣值作為本次采樣值。即
當≤時,;
當>時,。
該方法對變化比較緩慢的輸入量,如溫度、液位等信號,濾波效果較好。在應用該方法時,關鍵在于的取值。一般按照被測參數可能的最大變化速度及采樣周期來測算值,即。
⑵中位值濾波
中位值濾波就是在采樣時刻,對某一被測參數連續采樣次(取為奇數),得到采樣序列、……,然后將其從大到小或從小到大排序,取中間值為本次采樣值。
該方法對于濾除偶然因素引起的波動,或者儀器不穩定所引起的脈沖干擾比較有效。適用于物理量變化緩慢的被測參數,如溫度、液位等過程參數測量。
⑶算術平均值濾波
算術平均值濾波的方法是,在采樣時刻,對被測參數連續采樣次,得到采樣序列、……,將這個數的算術平均值作為本次采樣值,其數學表達式為:
…
該方法對于濾除周期性脈動干擾比較有效,如信號本身在某一數值范圍附近作上下波動的情況。適用于變化比較快的參數,如壓力、流量等在檢測時的數字濾波。取值越大,對信號濾波的平滑程度越高,但靈敏度降低,同時采樣時間也增加。在一個采樣周期內,采樣次數的取值決定于對參數平滑度和靈敏度的要求,應視具體對象而定。流量測量時,取;壓力測量時,取。
⑷滑動平均值濾波
滑動平均值濾波也稱為遞推平均濾波,把個采樣數據看成一個隊列,從隊首到隊尾依次、、……、、、,每進行一次新的采樣,把測量結果作為隊尾,將保留時間最長的采樣隊首數據移走,其余數據依次向隊首方向移動一位,然后把隊列中的個數據進行算術平均就可得到新的濾波值。其數學表達式為:
式中,為經濾波后輸出的第次采樣值,為隊列中未經濾波的第次采樣值,為隊列中數據項數。
與算術平均值濾波法相比,滑動平均值濾波有很強的優勢。前者在每一個采樣時刻到來時都要采樣次,如果通道采樣速度較慢而系統要求計算速度較高,則該方法是不適用的。后者在每一個采樣時刻只進行一次采樣,就可以計算得到濾波結果,因而減少了總的采樣次數,減少了占用計算機的時間。
滑動平均值濾波算法對周期性干擾有良好的抑制作用,平滑度高,但靈敏度低,對偶然出現的脈沖性抑制作用差。在工程應用中的經驗值如表4-4所示。
表4-4 的經驗值表
被測參數
溫度
流量
壓力
液面
N值
1~4
12
4
4~12
⑸加權滑動平均值濾波
在算術平均值濾波和滑動平均值濾波算法中,次采樣值在輸出結果中的權重是均等的。因此對時變信號會引入滯后,越大則滯后越嚴重。為了提高系統對當前采樣值的靈敏度,需要改進滑動平均濾波算法,增加最近采樣數據的比重。即不同時刻的采樣數據賦予不同的權值,越靠近當前時刻的數據,其權值取得越大。加權滑動平均值濾波算法為:
式中為經濾波后輸出的第次采樣值,為第次采樣值,、、……為常數,且滿足以下條件:
……,(其中……)
該算法適用于有較大純滯后時間常數的對象和采樣周期較短的系統,而對于純滯后時間常數較小、采期周期較長、變化緩慢的信號,因其不能迅速反映當前所受干擾的嚴重程度,故濾波效果差。
⑹一階慣性濾波
一階慣性濾波即仿照RC低通濾波器的方式,用數字形式實現低通濾波。對第次采樣值的濾波算法為:
式中表示本次采樣經濾波值后的輸出值,為本次采樣值,表示濾波器的上次輸出值,為濾波常數,。
該方法對于周期性干擾具有良好的抑制作用,不足之處是相位滯后,靈敏度低,同時它不能濾除頻率高于采樣頻率1/2(即奈奎斯特頻率)的干擾信號。
⑹復合數字濾波
模擬量輸入通道在接收工業現場信號過程中,所受的擾動往往不是單一的,如有時既受隨機性脈沖干擾,也受周期性脈動干擾。復合數字濾波就是把兩種以上的濾波方法結合使用,以進一步提高濾波效果。例如防脈沖干擾平均值濾波算法就是一種復合數字濾波方法,以算術平均濾波或加權平均值波動對周期性的脈動采樣值進行平滑加工,以中值濾波濾除隨機的脈沖干擾。具體操作算法是:
…+
式中…為在采樣時刻對被測參數的采樣序列,其中為該序列中的最大值,為該序列中的最小值。該方法集中了平均值濾波算法和中位值濾波算法的優點,所以對緩慢變化的過程變量和快速變化的過程變量都能起到良好的濾波效果。
上面介紹了幾種常用的數字濾波方法,每種都有各自的特點,可根據具體的測量對象合理地選用。特別說明的是:數字濾波在過程控制中并非一定需要,應根據具體情況,經過實驗和分析加以選用。不適當地使用數字濾波,可能將待控制的偏差值濾掉,反而會降低控制效果,甚至失控。
4-8 用8051系列單片機和ADC0809設計一個8通道的數據采集電路,ADC0809參考電壓UREF(+)=5.12V,UREF(-)=0V,要求:⑴畫出硬件電路圖;⑵自行設計程序,并畫出程序流程圖;⑶求其量化單位,當0#通道輸入模擬信號為3.67V,對應的數字量是多少?⑷ 如0#通道測量溫度,其量程為10℃~50℃,A/D采樣值經數字濾波后得到的數值為7BH,那么本次采樣獲得的溫度值是多少?
(1)
A/D數據采集系統硬件電路如圖4-23所示。
圖4-23? A/D數據采集系統硬件原理圖
(1)51單片機、時鐘電路和復位電路構成一個基本的單片機系統。
(2)在單片機外部擴展ADC0809芯片,單片機的P0口與ADC0809的數據輸出口D0~D7相連,用于接收A/D轉換后的數據。
(3)ADC0809的工作頻率由外部時鐘振蕩電路提供。
(4)ADC0809芯片的3個地址選擇端連接到單片機的P0口,由編程實現模擬通道的選擇。本項目中選擇0通道。
(5)0通道(ADC0809的IN0端)接液位傳感器的正輸出端,負輸出端接地,注意傳感器地與單片機地要共地。
(6)當單片機接收到液位值經計算處理后,在7289上顯示出來,其硬件連線見圖2-1。
ADC0809工作時序如圖4-24所示。
圖4-24? ADC0809工作時序圖
(2)
A/D轉換程序流程圖如圖4-25所示,在程序中給出ADC0809所需要的轉換控制信號,采用延時方式等待數據的轉換完成。
圖4-25? A/D轉換程序流程圖
(3)
根據式(4-1),它的量化單位是:;
若輸入模擬電壓為3.67V,由式(4-2)及舍入法,求得量化結果為:
=10111000B=B8H
(4)
=10,=50,=00H=0D,=FFH=255D,=7BH=123D
=29.3
附加:
/***************?? code??******************/
#include
#defineuint unsigned int
#defineuchar unsigned char
ucharcode LEDData[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
sbitOE? = P1^0;
sbit EOC= P1^1;
sbit ST ?= P1^2;
sbit CLK= P1^3;
voidDelayMS(uint ms)
{
uchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
voidDisplay_Result(uchar d)
{
P2= 0xf7;
P0 = LEDData[d%10];
DelayMS(5);
P2 = 0xfb;
P0 = LEDData[d%100/10];
DelayMS(5);
P2 = 0xfd;
P0 = LEDData[d/100];
DelayMS(5);
}
voidmain()
{
TMOD= 0x02;
TH0?= 0x14;
TL0?= 0x00;
IE??= 0x82;
TR0?= 1;
P1??= 0x3f;
while(1)
{
ST = 0;
ST = 1;
ST = 0;
while(EOC == 0);
OE = 1;
Display_Result(P3);
OE = 0;
}
}
voidTimer0_INT() interrupt 1
{
CLK= !CLK;
}
第五章
5-1 什么是模擬量輸出通道?它是由哪些部分組成的?
模擬量輸出通道(Analog Output ,縮寫AO)是計算機控制系統實現控制輸出的關鍵部件,它的任務把計算機輸出的數字量信號轉換成相應的模擬量信號(如電壓、電流信號),以便驅動執行機構,以達到對被控對象進行控制的目的。
分析和設計模擬量輸出通道,需要了解模擬量輸出通道的一般結構,并且掌握其中的各個環節。本章首先講述模擬量輸出通道的兩種基本結構形式,然后依次說明數模轉換器的工作原理、性能指標、與計算機的接口電路,以及電壓/電流變換器和信號隔離技術。
5-2 模擬量輸出通道的結構有幾種形式?各有何特點?
輸出保持分為數字量保持和模擬量保持,因此,輸出通道也有兩種基本結構形式。一種結構如圖5-2所示,在這種結構中每一個通道都有一個D/A轉換器。D/A轉換器是按照采樣周期T對控制器輸出的數字量進行D/A轉換的,但由于D/A轉換器具有數據輸入鎖存功能,它能夠在接收下一組數字量之前,一直保持前一組數字量不變,因而D/A轉換器的輸出模擬量,能夠在一個采樣周期內保持不變,也就是說,D/A轉換器本身就具有零階保持器的功能。
零階保持作用的實質,就是在兩次輸出模擬量之間進行插值,插值的結果能夠使時間軸上的離散信號,變為時間軸上的連續信號,是由數字控制信號重構模擬控制信號的重要步驟。
圖5-2? 輸出通道結構
圖中各個部分的作用為:
I/O接口:接受來自主機系統總線的數據、地址及控制信號,并向主機送應答信號。主要包括數據緩沖器、地址譯碼器、數據寄存器以及相應的控制邏輯。
D/A轉換器:作用是將數字量轉換成相應的模擬量。
隔離級:將計算機與被控對象隔離開來,以防止來自現場的干擾。圖中所示為模擬側隔離,另外也可將隔離級放到D/A轉換器之前,構成數字側隔離。
輸出級:由運算放大器、V/I轉換器等組成,以提供不同形式的輸出信號。
執行器:作用是接受計算機發出的控制信號,并把它轉換成調整機構的動作,使生產過程按照預先規定的要求正常進行。它包括電動、氣動和液壓執行器。
這種結構的優點是轉換速度快、工作可靠、精度高且各個通道相互獨立而互不影響;缺點是要使用較多的D/A轉換器,投資偏高,在工業過程控制中多采用此種形式。
另一種結構如圖5-3所示,其多個輸出通道共享一個D/A轉換器,這種結構需要在每一個輸出通道中都加入一個采樣保持器(S/H),是采用模擬量保持的方案。
圖5-3? 共享D/A的輸出通道結構
圖中的采樣保持電路(S/H)的作用,是將D/A轉換器輸出的離散模擬信號轉換成執行器能夠接受的連續信號,即把上一采樣時刻的輸出值保持到下一次采樣輸出。這種結構的優點是節省D/A轉換器,但由于共用一個D/A,故它必須在CPU的控制下分時工作,即D/A轉換器依次把數字量轉換成模擬電壓(或電流),通過多路模擬開關傳送給各路輸出采樣保持器(S/H)。而S/H又不能長久保持信號不變,因此這種結構精度較差,只適用于轉換速度要求不高、通路較多的系統中。由于S/H和多路開關在前章已詳細敘述,因此下面將分別講述圖5-2中D/A轉換器、輸出級常用的電壓/電流轉換(V/I)電路。
5-3 為何有的模擬量輸出通道需要設置采樣保持器?
圖中的采樣保持電路(S/H)的作用,是將D/A轉換器輸出的離散模擬信號轉換成執行器能夠接受的連續信號,即把上一采樣時刻的輸出值保持到下一次采樣輸出。這種結構的優點是節省D/A轉換器,但由于共用一個D/A,故它必須在CPU的控制下分時工作,即D/A轉換器依次把數字量轉換成模擬電壓(或電流),通過多路模擬開關傳送給各路輸出采樣保持器(S/H)。而S/H又不能長久保持信號不變,因此這種結構精度較差,只適用于轉換速度要求不高、通路較多的系統中。由于S/H和多路開關在前章已詳細敘述,因此下面將分別講述圖5-2中D/A轉換器、輸出級常用的電壓/電流轉換(V/I)電路。
5-4 為何在模擬量輸出通道中通常有V/I轉換電路?
因為電流信號易于遠距離傳送,且不易受干擾,因而在輸入、輸出通道中常以電流信號來傳送信息,此外測控系統中的有些儀表只提供電流輸入口,這些都需要采用V/I變換器將電壓信號轉換成相應的電流信號。實現V/I變換可以采用專用的電流輸出型運放F3080和F3094來實現;也可以利用通用運放構成V/I變換電路;還有適用于高精度要求的集成V/I轉換器,如AD694、2B20/21等。
⒈ 采用F3080組成的V/I變換電路
F3080是電流輸出型運放,其輸入特性與通常運放是相同的,而輸出是以電流的形式出現。
圖5-11是用F3080 組成的基本V/I變換電路。圖中IABC為⑤腳注入電流,可在0.1μA~500μA 范圍內自由設置,可以是直流或交流控制信號。采用直流控制就成為可控式V/I轉換器。W用做失調補償,使Vi=0V時輸出Io=0。F3080的失調溫漂雖然不太大(約3μV/℃),但對于0mV~50mV小信號輸入仍然可能產生約1%的誤差,因此其僅適用于精度要求一般的場合。輸出電流Io≈19.2IABCVi。
圖5-11? 基本V/I變換
⒉ 運放V/I變換電路
采用通用運放實現V/I的方法很多,考慮實際電流信號多采用統一標準值(0mA~10mA或4mA~20mA),故這里只介紹如圖5-12所示的V/I轉換電路。
由圖可見,兩個運放A1、A2均接成射隨輸出形式。在穩定工作時Vi=V1,所以
又由I1≈I2,所以
,即
在穩定狀態下,V2=V3,If≈Io,故
由上兩式可得
式中:R1、R2、Rf均為精密電阻,所以輸出電流I。線性比例于輸入電壓Vi,且與負載無關,即近似于恒流。若R1=5kΩ,R2=2 kΩ, R3=100Ω,當Vi=1V~5V時,輸出電流Io=4mA~20mA。
⒊ 集成V/I轉換器
采用普通運放和分立元件構成的V/I轉換電路結構簡單,價格低,但精度受外接電阻等元件的性能及參數匹配的影響很大,故對精度要求較高的場合應采用集成V/I轉換器。下面就以美國AD公司生產的ZF2B20/21為例予以介紹。ZF2B20/21電壓/電流轉換器的外引腳圖如圖5-13所示,輸入電壓范圍為0V~10V,輸出電流為4mA~20mA,采用單正電源供電,電源電壓范圍為10V~32V。其特點是低漂移,在工作溫度為-25℃~+85℃范圍內,最大漂移為0.005%℃;其輸入電阻為10kΩ,非線性小于0.025%,動態響應時間小于25ms。
圖5-12? 輸出4mA~20mA的V/I電路? ? ? 圖5-13??? ZF2B20/21外引腳
利用ZF2B20/21實現V/I轉換,只需外接很少的調節元件即可,圖5-14外接初始校準電位器即可實現0V~10V/4mA~20mA的轉換,圖5-15是一種帶滿度校準的0V~10V/0mA~10mA的轉換電路。
圖5-14?? 0V~10V/4mA~20mA轉換 ? ? 圖5-15? 0V~10V/0mA~10mA轉換
5-5 DAC0832與CPU有幾種連接方式?各有何用途?
D/A轉換器的種類很多,這里以DAC0832為例介紹其與單片機的接口電路。DAC0832是8位分辨率的D/A芯片,與微處理器完全兼容,具有價格低廉、接口簡單、轉換控制容易等優點,在單片機應用系統中得到了廣泛的使用。
⑴ DAC0832的結構
DAC0832的結構框圖如圖5-7所示,它由8位輸入寄存器、8位DAC寄存器、8位D/A轉換器及轉換控制電路組成,可直接與CPU總線連接。
圖中輸入寄存器用來鎖存數據總線上送來的數據。當輸入鎖存允許信號ILE、片選信號和寫控制信號同時有效時,數據總線DI7~DI0上的數據送輸入寄存器鎖存。當寫控制信號和傳送控制信號同時有效時,輸入寄存器中的數據送DAC寄存器,然后由D/A轉換電路進行轉換,最后在和端獲得模擬量的輸出信號。VREF為基準電壓,其范圍為-10V~+10V。Vcc可在+5~+15V范圍內選取。
DAC0832是電流型輸出,外接運算放大器可以獲得單極性或雙極性模擬電壓,如圖5-8所示。圖中,A點輸出為單極性模擬電壓,其值為
(數字量/256)
從B點輸出為雙極性模擬電壓,其值為
(數字量-128)/128
以上兩式輸出電壓的極性由VREF確定。其中的數字量是指DAC0832的數字量輸入,其范圍為00~FFH,在計算時應將其轉換成十進制數。如若VREF=+5V,則A點的輸出電壓可算得為0V~-5V,B點輸出電壓為-5V~+5V。
圖5-7?? DAC0832結構框圖
圖5-8? DAC0832模擬電壓輸出電路
⑵ DAC0832與MCS-51單片機的接口電路
DAC0832與MCS-51單片機有兩種基本的接口方法,即單緩沖器方式和雙緩沖同步接法。
①單緩沖器方式 單緩沖方式是使DAC0832中的輸入寄存器和DAC寄存器中的任意一個始終處于常通方式或同時處在選通和鎖存的工作狀態。它適用于系統只有一路D/A轉換或雖然是多路轉換但不要求同步輸出時采用。單緩沖器方式的電路有三種接法:一是DAC寄存器處在常通狀態時,、接地,使輸入寄存器成選通工作狀態;二是輸入寄存器處在常通狀態時,、接地,ILE接高電平,使DAC處在選通工作狀態;三是兩個寄存器同時處于選通及鎖存工作狀態時,ILE接高電平,和同時接受芯片選中信號,而、同時與CPU的相連。圖5-9是采用第三種接法的單緩沖器方式接口電路。圖中和都與8031的高位地址線P2.7相連。由于0832具有數字量的輸入鎖存功能,故數字量可直接從P0口送給0832。
圖5-9 DAC0832單緩沖器方式單極輸出接口電路
可見,DAC0832的口地址為7FFFH。執行下面的程序段,可以完成一次D/A轉換:
MOV? DPTR,#7FFFH???? ;指向0832
MOV? A,#DATA??????? ;要轉換的數裝入A中
MOVX @DPTR,A?????? ;數據送入0832,并轉換
②雙緩沖器同步方式接口?? DAC0832芯片內有輸入寄存器和DAC寄存器,它們和、鎖存控制信號構成兩級鎖存。這樣,若要求多個數據同時轉換輸出時,可以先將這些數據分別送入對應的多路D/A轉換器的輸入寄存器中保存,待所有數據傳送完畢后,再對所有的D/A轉換器同時發出轉換控制信號,使各D/A轉換器將輸入寄存器中的數據同時送至各自的DAC寄存器中,因而實現同步轉換輸出。設現有兩組8位數據,每組中均有8個數據,分別存在以#DATA1和DATA2為首地址的內存中。若要對兩組數據同時轉換并單極性輸出,可用圖5-10電路實現。
圖5-10? DAC0832的雙緩沖器同步方式輸出接口電路
圖中P2.5和P2.6分別用于兩路D/A轉換器的輸入寄存器的選擇及鎖存控制,P2.7與兩路D/A轉換器的端相連用于控制同步轉換輸出,兩路的、均與CPU的寫信號相連。上面問題的實現程序如下:
MOV? R0,#DATA1?????? ;第一組數據首地址
MOV? R1,#DATA2?????? ;第二組數據首地址
MOV? R2,#08H????????? ;每組數據個數
LOOP:MOV? DPTR,#0DFFFH?? ;指向0832(1)
MOV?A,@R0?????????? ;將第一組數據之一送入A中
MOVX @DPTR,A??????? ;A中數據送入0832(1)中鎖存
MOV?DPTR,#0BFFFH??? ;指向0832(2)
MOV?A,@R1??????????? ;將第二組數據之一送入A中
MOVX @DPTR,A????????? ;A中數據送入0832(2)中鎖存
MOV?DPTR,#7FFFH????? ;同時指向0832(1)、0832(2)
MOVX @DPTR,A??????????? ;同時完成D/A轉換輸出
INC? R0?????????????????? ;指向第一組的下一個數據地址
INC? R1?????????????????? ;指向第二組的下一個數據地址
DJNZR2,LOOP??????????? ;轉換結束否,未完轉LOOP
END?????????????????????? ;轉換輸出結束
5-6 試用DAC0832與單片機設計一個單緩沖的D/A轉換器,要求繪制接口電路圖,編寫程序,使DAC0832產生方波、三角波和鋸齒波,并畫出波形,標明波峰和波谷的電壓值。
/***************?? code??******************/
#include
#include
#defineuint unsigned int
#defineuchar unsigned char
#defineDAC0832 XBYTE[0xfffe]
char codesin_data[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,
0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,
0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,
0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,
0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,
0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,
0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,
0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,
0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,
0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23,0x25,0x27,
0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,
0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};//正弦碼表,可通過SIN()函數獲得
voidDelayMS(uint ms)
{
uchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void? delay_nus(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0;j<127;j++);
}
}
/**********************************************/
voiddelay(unsigned char i)
{
unsignedchar t;
for(t=0;t
}
/**********************************************
輸出數據到端口(注意考慮延時)
**********************************************/
voidconversion(unsigned char out_data)
{
DAC0832 =out_data; //輸出數據
delay(1);
//delay_nus(10);???????? //延時等待轉換
}
/************************************************
產生正弦波函數
************************************************/
voidsine(void)
{
unsignedchar i;
for(i=0;i<255;i++)
{
conversion(sin_data[i]);
}
}
/***********************************************
產生鋸齒波(下降型)
***********************************************/
voidsaw(void)
{
unsignedchar j;
for(j=0;j<255;j++)
conversion(j);
}
/***********************************************
產生方波(脈沖)
***********************************************/
void pulse(void)
{
conversion(0xff);
delay_nus(1000);
conversion(0x00);
delay_nus(1000);
}
/***********************************************
產生三角波
***********************************************/
voidtriangle(void)
{
unsignedchar k;
for(k=0;k<255;k++)
conversion(k);
for(;k>0;k--)
conversion(k);
}
voidmain()
{
// ??? uint i;
while(1)
{
//?????????????? if(i)
pulse();
//saw();
//sine();
//triangle();
}
}
硬件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。