下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于malab的實時信號采集系統(tǒng)的設計與實現(xiàn)
0基于pci總線的高速模擬量輸入卡隨著微型計算機技術的快速發(fā)展,硬件平臺的信號采集和數(shù)據(jù)處理系統(tǒng)得到了廣泛應用。工控機通過數(shù)據(jù)采集卡對外部的信號進行采集,通過軟件讀取數(shù)據(jù)并完成分析處理。PCL-1713是研華公司生產(chǎn)的一款基于PCI總線的隔離高速模擬量輸入卡。它有以下主要特點:(1)2500V(DC)隔離保護;(2)32路單端或16路差分模擬量輸入,或組合輸入方式;(3)12位AD轉換;(4)采樣速率可達100Kb/s;(5)每個輸入通道均可增益編程;(6)卡上4K采樣FIFO緩沖器;(7)支持軟件、內(nèi)部定時器觸發(fā)或外部觸發(fā);(8)自動通道/增益掃描。其輸入范圍可分為單極性和雙極性:雙極性:±0.625V,±1.25V,±2.5V,±5V,±10V;單極性:0~1.25V,0~2.5V,0~5V,0~10V。1采集系統(tǒng)的設計1.1板卡pcl-173的安裝參照安裝手冊,完成PCI-1713數(shù)據(jù)采集卡的安裝和測試。如圖1所示,安裝完驅動程序后,在DeviceManager界面下,顯示板卡PCL-1713已成功安裝,圖中的C000H是由工控機自動為PCI-1713數(shù)據(jù)采集卡分配的基地址,在每次安裝時都可能不同,序號(如000,001,002)是板卡安裝在工控機上的順序,它在采集系統(tǒng)軟件實現(xiàn)過程中,有著重要的作用。1.2環(huán)境開發(fā)的設計采集系統(tǒng)在Microsoft公司的VisualC++環(huán)境下進行開發(fā)。有兩種方法可以實現(xiàn)VC++基礎上的數(shù)據(jù)采集:DAQ控件和研華提供的動態(tài)庫函數(shù)編程。下面,將對這兩種方法進行探討。1.2.1daqa.c.numhen首先安裝DAQ控件,并在VC中添加DAQ-AI控件到對話框的控件欄中。把控件拖至對話框中,此時在程序中自動添加了有關DAQ控件封裝的類,為控件關聯(lián)一個變量m_Daqai。在研華所給的程序例程中,有一個需要選取設備的過程,即調用函數(shù)SelectDevice打開對話框來選擇所需的板卡。這在實際測試流程中,使用極不方便,不能實現(xiàn)真正的自動檢測。我們可以采用如下方法來跳過選擇設備的步驟。如圖2所示:右擊控件,選擇屬性,在ALL中有一項DeviceNumber,默認情況下為-1,即為不選擇任何板卡。根據(jù)圖1所示板卡在工控機上的安裝順序,我們將-1改為0,此時,當變量m_Daqai調用函數(shù)時,已經(jīng)默認的板卡即為PCI-1713,不需要再進行設備板卡的選擇。如果在某些情況下采集系統(tǒng)需要有兩塊和更多的數(shù)據(jù)采集卡來進行數(shù)據(jù)采集,這時一般采用一個DAQ控件對應一個數(shù)據(jù)采集卡的方法,對每個控件都實行上述屬性的改變,相應的參數(shù)也是由DeviceManager確定的。數(shù)據(jù)讀取流程如下:m_Daqai.OpenDevice();//打開設備m_Daqai.SetOverallInputRange(4);//采集電壓范圍的選取。doubleAdconvert=m_daqai.RealInput(0);//讀取通道0的電壓信號并保存到變量中。在程序結束時,要調用CloseDevice函數(shù),來釋放所分配的內(nèi)存。m_Daqai.CloseDevice();這里只調用了SetOverallInputRange函數(shù)來設定采集電壓范圍,其參數(shù)值可取為0~8。各數(shù)的代表電壓范圍如表1所示。根據(jù)需要,可以在采集系統(tǒng)調用控件的接口函數(shù)中進行采集參數(shù)設置,如(觸發(fā)方式,數(shù)據(jù)采集方式等),詳細情況請參照研華公司的DAQ用戶手冊。DAQ控件的使用,大大簡化了編程,在一般的信號測量中,有著重要的作用。1.2.2壓力和設備設置在研華公司提供的數(shù)據(jù)采集動態(tài)鏈接庫中,封裝了用于該采集卡的各類應用函數(shù),如打開設備函數(shù)、關閉設備函數(shù)、獲取設備設置函數(shù)、讀取信號函數(shù)等。具體的函數(shù)調用順序如圖3所示:在系統(tǒng)開發(fā)過程中,可以利用這些函數(shù)來完成數(shù)據(jù)的采集工作。首先導入外部頭文件和函數(shù),將Adsapi32.lib,Driver.h直接拷貝到這個工程所在的文件夾中。具體添加的程序代碼如下:staticPT_AIVoltageInptAIVoltageIn;staticPT_AIConfigptAIConfig;staticDEVFEATURESDevFeatures;staticPT_DeviceGetFeaturesptDevFeatures;這一步為定義采集函數(shù)動態(tài)鏈接庫中結構的變量,為下一步調用各結構中的成員變量做準備。通過調用成員變量為其賦值,獲取設備信息并對信息進行修改,如改變采集范圍、采集通道、采集模式等。打開設備的操作是在使用設備進行數(shù)據(jù)采集等編程操作之前必須進行的,調用DRV_DeviceOpen(0,(LONGfar*)&DriverHandle)函數(shù)實現(xiàn)。第一個參數(shù)0是設備號,也就是在圖1中查看到的序號000,用它表示所打開的是在工控機中排序第一個設備,在實際的操作中,我們要根據(jù)設備在工控機中具體的排序來確定第一個參數(shù)的值;DriverHandle:設備句柄,對每塊板卡唯一標識。在以后函數(shù)調用中,想要操作哪個設備,直接調用此設備句柄就可以實現(xiàn)。同樣,在多設備的背景下,我們需要為每一個設備都賦予一個不同的設備句柄,代表著不同的設備。接下來,就要進行獲取設備設置的操作,具體代碼如下,獲取設備設置后將值賦予結構的變量。如果獲取失敗,說明此設備出現(xiàn)故障,將不能正確的進行信號采集,就需要報警并退出采集系統(tǒng)。ptDevFeatures.buffer=(LPDEVFEATURES)&DevFeatures;ptDevFeatures.size=sizeof(DEVFEATURES);if((ErrCde=DRV_DeviceGetFeatures(DriverHandle,(LPT_DeviceGetFeatures)&ptDevFeatures))!=SUCCESS){DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);MessageBox((LPCSTR)szErrMsg,“DriverMessage”,MB_OK);DRV_DeviceClose((LONGfar*)&DriverHandle);return;}在上面兩步工作做好之后,我們就要對設備信息進行設定以便可以得到快速、準確的數(shù)據(jù)采集。直接賦值給結構變量ptAIConfig設定采集范圍和采集通道,通過調用DRV_AIConfig函數(shù)將對設備參數(shù)進行設置。調用DRV_AIVoltageIn函數(shù)讀取設置通道的信號,保存到變量中。ptAIConfig.DasGain=DevFeatures.glGainList[gwGain].usGainCde;//設定測量范圍ptAIConfig.DasChan=gwChannel;DRV_AIConfig(DriverHandle,(LPT_AIConfig)&ptAIConfig);ptAIVoltageIn.chan=ptAIConfig.DasChan;//采集通道ptAIVoltageIn.gain=ptAIConfig.DasGain;ptAIVoltageIn.TrigMode=0;//軟件觸發(fā)ptAIVoltageIn.voltage=(FLOATfar*)&fVoltage;DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn));在程序結束時,要調用DRV_DeviceClose函數(shù)來釋放為其分配的內(nèi)存。DRV_DeviceClose((LONGfar*)&DriverHandle);在實際檢測流程中,若是需要采集信號時都進行上述代碼編寫,十分不方便。可將此段代碼封裝到一個采集函數(shù)AdConvert(intchannel,intgwgain)中,其參數(shù)為采集通道與電壓范圍,并返回所采集的電壓值,通過調用此采集函數(shù)就可以完成信號的采集,大大減少了代碼冗余。參數(shù)gwgain為測量電壓范圍設定,其意義和DAQ控件采集中的取值電壓范圍參數(shù)設定相同。如果采集前知道信號的大體范圍,就可以通過設定正確的gwgain值,獲取更為精確的采集電壓值。2數(shù)字干擾技術2.1響應信號的實時采集通過對以上兩種信號采集方法進行實時信號采集和對比分析,檢測結果基本相同。我們可以根據(jù)實際情況采取一種信號采集方法。但是,在微機化測控系統(tǒng)的測量通道中總難免竄入這樣或那樣的隨機干擾,從而使A/D輸入微機的數(shù)據(jù)中存在誤差。就一次測量而言,這樣的隨機誤差沒有規(guī)律,不可預測。但測量次數(shù)足夠多時,其總體服從統(tǒng)計學規(guī)律。數(shù)字濾波是為了提高檢測精度而采取的軟件抗干擾措施,即通過一定的計算程序,對采集的數(shù)據(jù)進行處理,消除或減弱干擾信號的影響,提高測量的可靠性和精度。通常采用的方法有中值濾波、算術平均值濾波、去極值平均濾波等多種濾波方法。在此采用算術平均值濾波法,算術平均值濾波是尋找一個y值,使該值與各采樣值之間誤差的平方和為最小。即如下公式所示:E=min[∑i=1ne2i]=min[∑i=1n(y?xi)2]E=min[∑i=1nei2]=min[∑i=1n(y-xi)2]由一元函數(shù)求極值原理可求得:y=1n[∑i=1nxi]y=1n[∑i=1nxi]式中:xi為第i次采樣值,n為采樣次數(shù),y為n次的采樣的算術平均值。在實際測量中,對每個響應信號采集20次,求其算術平均值。對+5V電壓信號實時采集信號20次后所得到的數(shù)據(jù)結果如表2所示。采用算術平均值濾波法,求得y值為5.043101V。2.2采集結果分析同樣采用算術平均值濾波法,對電壓信號分別為-8V,-5V,-3V,-1V,0V,1V,3V,5V,8V進行采集,采集結果如下表3所示。采用非線性校證中的直線擬合法,利用最小二乘法原理,對以上數(shù)據(jù),求一條直線最接近于這些數(shù)據(jù)點。以實測值為x點,理論值為y點建立坐標系。設最佳擬合直線方程為y=a0x+a1,根據(jù)最小二乘法原理,以MATLAB為工具,可求得回歸系數(shù)a0=0.992652,a1=-0.006144。即:y=0.992652x-0.0061442.3y3.5擬合直線方程對2.5V,-2.5V電壓信號采用算術平均值濾波法進行采集,結果分別為2.527460V,-2.510254V,代入擬合直線方程,擬合后的值為y2.5=2.502744V,y-2.5=-2.497953V。其誤差分別0.002744V,0.002047V。實驗結果滿足實際測量需求。3數(shù)據(jù)采集處理實驗兩種信號采集方法,一個是通過定義控件變量確定控制板卡,一個通過設定儀器句柄確定控制板卡,在函數(shù)的調用和采集步驟上各有不同,但是卻都與設備在工控機上所處位置相關
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣播器材采購合同范例
- 發(fā)廊入股合同范例
- 夫妻合伙生意合同范例
- 天津濱海汽車工程職業(yè)學院《代謝組學》2023-2024學年第一學期期末試卷
- 云南代建合同范例
- 農(nóng)資經(jīng)營聘用合同范例
- 停車場 施工合同范例
- cro服務合同范例
- 保險會計合同范例
- 高級財務會計模擬習題(含答案)
- 紅色簡約中國英雄人物李大釗課件
- 2024版《大學生職業(yè)生涯規(guī)劃與就業(yè)指導》 課程教案
- 上海市住院醫(yī)師規(guī)范化培訓公共科目考試題庫-重點傳染病防治知識
- 人民日報出版社有限責任公司招聘筆試題庫2024
- 2024年煤礦事故匯編
- Unit 2 Different families(教學設計)-2024-2025學年人教PEP版英語三年級上冊
- 西師大版五年級上冊小數(shù)混合運算題100道及答案
- 2022年7月國家開放大學本科《中國法律史》期末紙質考試試題及答案
- 行政文秘筆試題
- 2024年部門年終工作總結參考(四篇)
- 主題四 第1課 節(jié)氣與我們的生活(教學設計)教科版五年級下冊綜合實踐活動
評論
0/150
提交評論