油噴霧閥監(jiān)測(cè)裝置的開發(fā)與設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:噴霧閥;系統(tǒng)設(shè)計(jì);控制;多線程;抗干擾
前言
在船舶動(dòng)力工程設(shè)計(jì)中,有一個(gè)重要的裝置,即油的噴霧閥,其性能的好壞直接影響著柴油發(fā)電機(jī)的發(fā)電效率和性能。本文在廣泛分析噴霧閥噴吹過(guò)程的基礎(chǔ)上,設(shè)計(jì)了噴霧閥性能監(jiān)測(cè)裝置。該裝置借助壓力變送器、加速度變送器等,通過(guò)計(jì)算機(jī)采集噴霧閥出口的壓力、氣包壓力、標(biāo)靶加速度信號(hào),能實(shí)時(shí)在線評(píng)估噴霧閥的性能品質(zhì),適應(yīng)各種不同結(jié)構(gòu)與尺寸的噴霧閥監(jiān)測(cè)需求。
監(jiān)測(cè)的狀態(tài)量主要有:
噴霧閥出口的壓力波形及其上升速率();噴吹令標(biāo)靶產(chǎn)生的加速度波形 ; 穩(wěn)壓氣包內(nèi)壓力變化波形;噴吹氣量(△Q);電噴霧時(shí)間(te)。
監(jiān)測(cè)原理及監(jiān)測(cè)過(guò)程的實(shí)現(xiàn)
空壓機(jī)為穩(wěn)壓氣包提供壓縮空氣,通過(guò)調(diào)壓閥調(diào)節(jié)至需要壓力,由計(jì)算機(jī)向噴霧閥發(fā)出開啟指令噴霧噴吹(延時(shí)設(shè)定時(shí)間關(guān)閉,電噴霧時(shí)間可調(diào)),在計(jì)算機(jī)向噴霧閥發(fā)送開啟指令的同時(shí)啟動(dòng)采樣程序,采集氣包壓力、噴霧閥出口的壓力(全壓)、標(biāo)靶加速度信號(hào),并將采樣數(shù)據(jù)存入計(jì)算機(jī),對(duì)采樣數(shù)據(jù)進(jìn)行處理分析,實(shí)時(shí)在線繪制噴霧閥出口壓力、穩(wěn)壓氣包內(nèi)壓力變化及標(biāo)靶加速度波形圖。通過(guò)分析以上圖形,可評(píng)估噴霧閥性能品質(zhì)的優(yōu)劣。裝置的主要功能如下:
1)信號(hào)采集功能:主要完成包括噴霧閥出口的壓力、氣包壓力、標(biāo)靶加速度信號(hào)等在內(nèi)的實(shí)時(shí)采集,且采樣頻率可調(diào);
2)屏幕顯示功能:以曲線和數(shù)字方式分別顯示各通道數(shù)據(jù)趨勢(shì)曲線以及分析后的數(shù)據(jù)和譜線數(shù)據(jù);
3)存儲(chǔ)和回放功能:完成采集數(shù)據(jù)和分析數(shù)據(jù)的存儲(chǔ)、回放分析、信號(hào)分離并進(jìn)行數(shù)據(jù)的時(shí)域和頻域分析;
4)噴霧閥性能評(píng)定功能:通過(guò)對(duì)輸入標(biāo)定數(shù)據(jù)的分段擬合進(jìn)行數(shù)據(jù)修正。
系統(tǒng)配置
為滿足檢測(cè)裝置對(duì)控制系統(tǒng)的設(shè)計(jì)要求,我們選用了Advantech的IPC-610P型工業(yè)控制計(jì)算機(jī)(PCA6180主板、256MSDRAM、PIII 1GH CPU)作為主控制器,完成人機(jī)交互、實(shí)時(shí)數(shù)據(jù)采集、分析、存貯、圖形繪制與打印等任務(wù);WP系列的一體化(傳感器和變送器合二為一)壓力變送器、CA-GT系列的一體化加速度變送器分別變送氣包壓力、噴霧閥出口壓力和標(biāo)靶加速度電信號(hào);高性能、高采集速率的數(shù)據(jù)采集板卡PCL-818HD用來(lái)采集三個(gè)變送器的標(biāo)準(zhǔn)電信號(hào),同時(shí),由于要在電磁閥開啟的同時(shí)啟動(dòng)采樣線程,選用三菱PCL協(xié)助主控制器來(lái)控制電磁閥的開啟、延時(shí)、關(guān)閉等動(dòng)作,其驅(qū)動(dòng)由繼電器輸出板卡PCL-725來(lái)完成。
PCL-818HD 能保證在所有增益(x 1, 2, 4 或 8, 可編程)和輸入范圍內(nèi)都有 100kHz 采樣速率和轉(zhuǎn)換速度。它有一個(gè) 1 K 的 FIFO(先進(jìn)先出)緩沖器以獲得更快的數(shù)據(jù)傳輸和 Windows 下更好的性能。這正是本系統(tǒng)選用該板卡的重要依據(jù)。同時(shí)為提高信號(hào)的抗共模干擾的能力,本系統(tǒng)采用差分模擬量輸入方式。
為了提高整個(gè)控制系統(tǒng)的抗干擾能力,選用繼電器隔離的數(shù)字輸入輸出板卡PCL-725,其板上的八個(gè) SPDT 繼電器非常適合本系統(tǒng)電磁閥的開/關(guān)控制。每個(gè)繼電器旁邊的紅色 LED 用來(lái)顯示繼電器的開/關(guān)狀態(tài)。
模擬量輸出板卡PCL-728,能輸出-10V~+10V的模擬信號(hào),實(shí)時(shí)控制變頻器的反、正轉(zhuǎn),PCL-728采用光隔離措施,提高系統(tǒng)的抗干擾能力。
為保證噴霧閥動(dòng)作的可靠性及獲得噴霧閥不同開啟時(shí)間,噴霧閥的開啟延時(shí)采用日本三菱公司的FX2N系列的可編程控制器(PLC)進(jìn)行控制。噴霧閥電磁閥的開啟延時(shí)由PLC內(nèi)部定時(shí)器自動(dòng)延時(shí),延時(shí)時(shí)段為20ms、30ms、50ms,延時(shí)時(shí)段的選擇通過(guò)改變PLC的外部輸入點(diǎn)的地址來(lái)實(shí)現(xiàn)。系統(tǒng)框圖見圖1所示。
圖1 系統(tǒng)框圖
監(jiān)測(cè)系統(tǒng)中幾項(xiàng)關(guān)鍵技術(shù)
A/D觸發(fā)方式的選擇
因?yàn)榭刂瞥绦蜻\(yùn)行于Windows平臺(tái),而Windows是一多任務(wù)、多用戶的而非實(shí)時(shí)操作系統(tǒng),在高速數(shù)據(jù)采集時(shí)有可能會(huì)丟失數(shù)據(jù),數(shù)據(jù)的丟失意味著測(cè)試數(shù)據(jù)不完整。為滿足控制系統(tǒng)的高速數(shù)據(jù)采集的需要,保證采集數(shù)據(jù)的連續(xù)性、完整性,采用了定時(shí)器同步觸發(fā)A/D與FIFO數(shù)據(jù)傳輸方式相結(jié)合的方法,大大提高了系統(tǒng)的采樣頻率和數(shù)據(jù)的可靠性,改善了在Windows環(huán)境下數(shù)據(jù)傳輸?shù)男阅堋?BR>
多種應(yīng)用程序的無(wú)縫連接技術(shù)
Visual C++是Windows平臺(tái)下強(qiáng)大的應(yīng)用程序開發(fā)環(huán)境,MATLAB是一個(gè)功能強(qiáng)大的數(shù)值計(jì)算和結(jié)果可視化的軟件。假如將MATLAB和Visual C++結(jié)合起來(lái),取長(zhǎng)補(bǔ)短無(wú)疑是一個(gè)有效的途徑。本設(shè)計(jì)利用MATLAB Compile (編譯器),將MATLAB函數(shù)編譯成可以脫離MATLAB環(huán)境使用的C函數(shù),在Visual C++中將此C函數(shù)編譯成動(dòng)態(tài)連接庫(kù),在Visual C++中加載這個(gè)動(dòng)態(tài)連接庫(kù),這種方法能實(shí)現(xiàn)兩者之間的無(wú)縫連接,僅需利用相關(guān)的MATLAB應(yīng)用程序接口(API)函數(shù)編寫一個(gè)C語(yǔ)言的接口函數(shù)即可。
多線程的數(shù)據(jù)采集軟件設(shè)計(jì)
由于整個(gè)應(yīng)用程序需要在較短的時(shí)間內(nèi)完成數(shù)據(jù)采集、去噪聲、數(shù)據(jù)整理與分析、壓力數(shù)據(jù)實(shí)時(shí)圖表顯示、數(shù)據(jù)分析計(jì)算以及數(shù)據(jù)存儲(chǔ)與管理等任務(wù),如果僅使用單線程模型來(lái)設(shè)計(jì)系統(tǒng),就不能很好地完成數(shù)據(jù)采集和分析的任務(wù),因此考慮采用多線程模型,利用多個(gè)線程分別完成各項(xiàng)任務(wù)。
本系統(tǒng)通過(guò)并行設(shè)計(jì)充分利用Win32 操作系統(tǒng)的多任務(wù)特點(diǎn)將不同的任務(wù)分布到各個(gè)線程中,使各個(gè)任務(wù)同步進(jìn)行而互不影響。系統(tǒng)中的主線程負(fù)責(zé)創(chuàng)建用戶界面、接收消息等工作。另外,由于Win32 系統(tǒng)是搶先式系統(tǒng),為了保證數(shù)據(jù)的采集不被其他線程中斷就要開辟一個(gè)優(yōu)先級(jí)較高的線程來(lái)采集數(shù)據(jù)。同時(shí),為保證系統(tǒng)硬件相關(guān)部分和硬件不相關(guān)部分的相互獨(dú)立,將采集模塊做成動(dòng)態(tài)鏈接庫(kù),采集到的數(shù)據(jù)存入內(nèi)存池中,然后調(diào)用動(dòng)態(tài)鏈接庫(kù)中的相應(yīng)函數(shù)定時(shí)獲取內(nèi)存池中的數(shù)據(jù)。由于數(shù)據(jù)的分析、存儲(chǔ)和性能在線評(píng)估耗時(shí)較多,且各個(gè)任務(wù)所占用的時(shí)間段不同,故將其分別置于不同的線程中,在數(shù)據(jù)采集的同時(shí)進(jìn)行數(shù)據(jù)的分析存儲(chǔ)和各通道的巡回監(jiān)視,各個(gè)線程(數(shù)據(jù)采集線程、數(shù)據(jù)分析與處理線程以及數(shù)據(jù)動(dòng)態(tài)顯示線程)中所要完成的工作并行進(jìn)行,線程間的通信可以通過(guò)消息響應(yīng)函數(shù)PostMessage 來(lái)實(shí)現(xiàn)。
由于本系統(tǒng)是一個(gè)工業(yè)化的連續(xù)運(yùn)行的實(shí)用系統(tǒng),系統(tǒng)的可靠性非常重要,必須協(xié)調(diào)以下工作:
1)注意釋放內(nèi)存, 在系統(tǒng)的調(diào)試過(guò)程中避免線程阻塞。在Windows環(huán)境下若有某個(gè)任務(wù)持續(xù)長(zhǎng)時(shí)間運(yùn)行時(shí),會(huì)導(dǎo)致所占用的存儲(chǔ)空間逐漸膨脹,因此有時(shí)會(huì)因內(nèi)存自由空間的過(guò)少而出現(xiàn)有關(guān)線程阻塞的現(xiàn)象,甚至出現(xiàn)死機(jī),故在開發(fā)程序的過(guò)程中,必須考慮有效措施使程序能自動(dòng)釋放內(nèi)存。
2)注意節(jié)約占用CPU的時(shí)間。系統(tǒng)規(guī)定數(shù)據(jù)采集線程和數(shù)據(jù)處理線程的優(yōu)先級(jí)為最高,其余任務(wù)必須注意節(jié)約占用CPU的時(shí)間,否則會(huì)降低系統(tǒng)的運(yùn)行效率。
3)合理規(guī)劃線程內(nèi)容,控制線程個(gè)數(shù)。雖然系統(tǒng)采用多線程模型可以有效地提高采集和監(jiān)控效率,但系統(tǒng)中所擁有的線程不能太多。因?yàn)榭蛇\(yùn)行的線程越多,對(duì)所有線程輪詢一次所需的時(shí)間越長(zhǎng),系統(tǒng)延時(shí)越大。同時(shí)系統(tǒng)的吞吐量將相對(duì)減少,當(dāng)系統(tǒng)總的延時(shí)超過(guò)一定的限制時(shí),系統(tǒng)將變得不可使用。
4) 合理解決數(shù)據(jù)緩沖區(qū)的并發(fā)和同步。多線程應(yīng)用程序基于優(yōu)先級(jí)的可搶先調(diào)度和不可預(yù)測(cè)性,使得其同步問(wèn)題變得非常重要。如何正確、高效地實(shí)現(xiàn)多線程系統(tǒng)中各個(gè)線程之間的通信,使得相關(guān)線程之間能夠?qū)εR界區(qū)的訪問(wèn)達(dá)成同步,對(duì)提高多線程數(shù)據(jù)采集系統(tǒng)的效率有著重要的作用。在本系統(tǒng)中,采用事件Event方法,用于封鎖對(duì)一個(gè)資源的訪問(wèn)直到出現(xiàn)了某些線程或進(jìn)程的信號(hào)即指定一個(gè)指定事件的信號(hào)。使用事件同步一般用CreateEvent 創(chuàng)建事件,WaitForMultiObject等待事件的發(fā)生,SetEvent 標(biāo)記一個(gè)事件的發(fā)生,ResetEvent 清除事件發(fā)生的標(biāo)記。由于CPU的運(yùn)行速度遠(yuǎn)高于采集卡采集數(shù)據(jù)的速度,因此,數(shù)據(jù)處理線程的大部分時(shí)間是在等待讀取緩沖區(qū)的數(shù)據(jù),不會(huì)因?yàn)閬?lái)不及處理緩沖區(qū)的數(shù)據(jù)而使數(shù)據(jù)采集線程因等待緩沖區(qū)的釋放造成采集數(shù)據(jù)的丟失。這樣線程之間較好地實(shí)現(xiàn)了對(duì)數(shù)據(jù)緩沖區(qū)訪問(wèn)的并發(fā)和同步。
控制系統(tǒng)軟件設(shè)計(jì)
整個(gè)控制系統(tǒng)軟件基于Windows 9X操作系統(tǒng)平臺(tái),人機(jī)交互的應(yīng)用程序采用編程功能強(qiáng)大的Visual C++,并輔以多線程編程技術(shù)以及和具有強(qiáng)大數(shù)值計(jì)算和處理功能的Matlab進(jìn)行無(wú)縫連接技術(shù),完善和彌補(bǔ)了Visual C++的功能。程序采用面向?qū)ο蟮脑O(shè)計(jì)方法,增強(qiáng)了應(yīng)用程序的實(shí)用性、可靠性。整個(gè)程序流程框圖見圖2所示。
圖2 程序流程框圖
系統(tǒng)抗干擾措施
在本實(shí)時(shí)控制系統(tǒng)中,必須采用各種抗干擾手段來(lái)抑制干擾對(duì)測(cè)量結(jié)果的影響。其主要干擾有:部分電氣的脈沖型干擾、繼電器開斷產(chǎn)生的隨機(jī)型脈沖干擾、傳感器以及變送器自身噪聲等,這些干擾進(jìn)入監(jiān)測(cè)系統(tǒng)主要通過(guò)(1)從系統(tǒng)的工頻電源進(jìn)入,(2)通過(guò)電磁耦合,(3)通過(guò)監(jiān)測(cè)元件進(jìn)入。為獲得較好的試驗(yàn)結(jié)果,本設(shè)計(jì)采取以下抗干擾措施:
共模抑制技術(shù)
為提高系統(tǒng)的抗干擾性能,系統(tǒng)采用差分輸入方式,差分輸入可使來(lái)自設(shè)備震動(dòng)、以及變送器的白噪聲干擾相互抵消,實(shí)現(xiàn)共模抑制電噪聲。
模擬地隔離技術(shù)
為了使控制系統(tǒng)防止外界干擾,除了供電系統(tǒng)采用隔離變壓器以外,在過(guò)程與過(guò)程通道之間也采取隔離方法,使其計(jì)算機(jī)系統(tǒng)與外界的過(guò)程控制器和變送儀表之間沒(méi)有公共地線,而是采用繼電器隔離方式,以提高系統(tǒng)的抗干擾能力。
數(shù)字濾波處理技術(shù)
在數(shù)據(jù)處理過(guò)程中,對(duì)于采樣信號(hào)中的各類噪音和失真采取了軟件濾波與硬件濾波相結(jié)合的方法,首先通過(guò)模擬低通濾波器(硬件濾波)濾去5Hz的噪音,對(duì)于低于5Hz的噪音則采取軟件方法進(jìn)行濾波。
1)對(duì)采集到的數(shù)據(jù)實(shí)行五點(diǎn)三次平滑法濾波
2)在信號(hào)采集中,常有系統(tǒng)誤差,而這些誤差主要是由系統(tǒng)噪音引起的,與當(dāng)時(shí)實(shí)驗(yàn)的條件如溫度、儀器老化時(shí)間等因素有關(guān),所以在正式采樣之前需進(jìn)行全程背景噪音扣除,以消除系統(tǒng)噪音,在正式采樣之前先進(jìn)行一次與正式采樣相同條件的空采樣,得到的數(shù)據(jù)全部是背景噪音,在正式采樣中將剛才的背景噪音全程扣除。
3)在采集信號(hào)中,常有“毛刺”干擾,根據(jù)經(jīng)驗(yàn),確定出兩次采樣輸入信號(hào)可能出現(xiàn)的最大偏差ΔH,兩次采樣值之差若超過(guò)此偏差值且又持續(xù)時(shí)間很短,則表明該輸入信號(hào)是干擾“毛刺”,應(yīng)該去掉,若小于此偏差值,可將信號(hào)作為本次采樣值。
經(jīng)過(guò)以上軟硬結(jié)合的濾波,微伏級(jí)的信號(hào)可正確分辨,大信號(hào)也不會(huì)失真,效果顯著。
結(jié)語(yǔ)
系統(tǒng)設(shè)計(jì)采用了較為先進(jìn)的設(shè)計(jì)方案,并加入了多種硬件和軟件抗干擾措施,同時(shí),在軟件設(shè)計(jì)時(shí),充分考慮了Windows操作系統(tǒng)的特點(diǎn),應(yīng)用了多種應(yīng)用程序無(wú)縫連接以及多線程編程技術(shù),保證了系統(tǒng)設(shè)計(jì)的先進(jìn)性,提高了系統(tǒng)的穩(wěn)定性以及自動(dòng)化水平。
參考文獻(xiàn)
1 吳道虎.高速數(shù)據(jù)采集可靠性的研究,電子技術(shù)應(yīng)用.2002.6
2 Davis etc.學(xué)用Visual C++,北京:清華大學(xué)出版社.1999.6
3 徐士良.計(jì)算機(jī)算法方法,北京:清華大學(xué)出版社.1998.6
4 Advantech handbook.1999.7