謝 逍 姜學(xué)慶 王 琰
(天華化工機(jī)械及自動(dòng)化研究設(shè)計(jì)院有限公司,蘭州 730060)
過程氣相色譜儀(Process Gas Chromatography,PGC)又稱工業(yè)氣相色譜儀,是一種精密且具有防爆功能的在線過程分析儀器,主要功能是實(shí)現(xiàn)對(duì)混合氣體中各組分的成分分析和檢測(cè),廣泛應(yīng)用于石油、化工、生物化學(xué)、醫(yī)藥衛(wèi)生、食品工業(yè)及環(huán)保等領(lǐng)域。工業(yè)氣相色譜儀基于先分離后檢測(cè)的原理進(jìn)行分析,具有選擇性好、靈敏度高、分析對(duì)象廣泛、多流路及多組分分析等優(yōu)勢(shì)。
目前,國(guó)內(nèi)使用的工業(yè)氣相色譜儀大多為進(jìn)口產(chǎn)品。國(guó)際上,以德國(guó)西門子、美國(guó)ABB和日本橫河公司的產(chǎn)品為代表,其技術(shù)較先進(jìn)。國(guó)內(nèi)工業(yè)氣相色譜儀的設(shè)計(jì)生產(chǎn)廠商相對(duì)較少,市場(chǎng)占有率極低。因此,研發(fā)國(guó)產(chǎn)化的工業(yè)氣相色譜儀意義重大。在此,筆者主要介紹整個(gè)工業(yè)氣相色譜儀產(chǎn)品研發(fā)過程中控制系統(tǒng)中的色譜圖處理系統(tǒng)(數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、色譜峰峰面積計(jì)算及干擾峰處理等)的實(shí)現(xiàn)過程。
開發(fā)上位機(jī)控制系統(tǒng)首先要選擇合適的編程語(yǔ)言。目前使用比較廣泛的編程語(yǔ)言有:C語(yǔ)言、C++、Visual Basic(VB)、組態(tài)王、MCGS及Lab Windows/CVI等[1]??紤]到研發(fā)成本、開發(fā)難易度、維護(hù)的便捷性、系統(tǒng)穩(wěn)定性及合理性等因素,最終決定選用VB語(yǔ)言來實(shí)現(xiàn)上位機(jī)控制系統(tǒng)的編程。
VB是一種由Microsoft公司開發(fā)的結(jié)構(gòu)化、模塊化、面向?qū)ο蟮?、包含協(xié)助開發(fā)環(huán)境的、以事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語(yǔ)言。VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕松地使用DAO、RDO和ADO連接數(shù)據(jù)庫(kù),或者輕松地創(chuàng)建ActivateX控件[2]。選擇使用VB的主要原因是,VB可以很方便地建立簡(jiǎn)潔、人性化、易操作的用戶界面,可以大幅減少界面部分的編程工作量,同時(shí)又可以與Access數(shù)據(jù)庫(kù)很好地連接,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)并方便后續(xù)數(shù)據(jù)處理。
工業(yè)氣相色譜儀的工作原理為先分離、后檢測(cè)。樣品首先經(jīng)過預(yù)處理裝置進(jìn)行簡(jiǎn)單的穩(wěn)流、穩(wěn)壓處理,然后經(jīng)采樣閥定量后隨載氣送入色譜柱,色譜柱是色譜儀的核心,主要對(duì)樣品中各組分進(jìn)行分離;分離后的各組分先后進(jìn)入到檢測(cè)器中,轉(zhuǎn)換成相應(yīng)的電信號(hào)(mV),此信號(hào)經(jīng)放大和模/數(shù)轉(zhuǎn)換后生成相應(yīng)的色譜圖和數(shù)據(jù),再對(duì)色譜圖和數(shù)據(jù)進(jìn)行相關(guān)的計(jì)算處理,即可得到其分析結(jié)果。如圖1所示,由A+B組分組成的樣品經(jīng)過色譜柱后,由于A、B兩種組分在固定相(色譜柱)中具有不同的分配系數(shù),所以其通過色譜柱所需的時(shí)間不同,在色譜柱中分離以后再先后進(jìn)入到檢測(cè)器,隨著時(shí)間的推移,分離后的A、B組分先后進(jìn)入到熱導(dǎo)檢測(cè)器中,產(chǎn)生了相應(yīng)的毫伏信號(hào),從而達(dá)到先分離的目的。
圖1 色譜柱分離過程示意圖
色譜圖指樣品流經(jīng)色譜柱和檢測(cè)器后得到的電信號(hào)—時(shí)間曲線,又稱色譜流出曲線,如圖2所示,從色譜圖中可以很清楚地看出樣品中包含的組分?jǐn)?shù),根據(jù)各組分的色譜峰峰頂(電信號(hào)最大值)出現(xiàn)的時(shí)間(保留時(shí)間)可實(shí)現(xiàn)其定性分析;又根據(jù)峰面積與組分濃度或者質(zhì)量成正比的關(guān)系,對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)進(jìn)行處理后,計(jì)算出色譜峰高或者峰面積即可實(shí)現(xiàn)定量分析。
圖2 色譜圖
工業(yè)氣相色譜儀常用的檢測(cè)器主要有熱導(dǎo)檢測(cè)器(TCD)和氫火焰離子化檢測(cè)器(FID)兩種。雖然兩種檢測(cè)器的檢測(cè)原理不同,但是對(duì)其產(chǎn)生的電信號(hào)的處理方法卻是大同小異。數(shù)據(jù)采集部分主要包括硬件連接和數(shù)據(jù)通信。
2.1.1硬件連接
主要的硬件設(shè)備包括:檢測(cè)器、放大模塊、采集卡及控制器等。經(jīng)色譜柱分離后的各組分經(jīng)檢測(cè)器產(chǎn)生相應(yīng)的電信號(hào)(mV),由于該信號(hào)較弱,故增加放大模塊,將該信號(hào)放大到0~5V范圍內(nèi)方便采集卡采集,經(jīng)過采集卡后該信號(hào)被送到上位機(jī)控制系統(tǒng)。信號(hào)由采集卡送到上位機(jī)控制系統(tǒng)必須要編寫相應(yīng)的接口程序與采集程序,才能實(shí)現(xiàn)數(shù)據(jù)的識(shí)別和接收。
2.1.2數(shù)據(jù)通信
通過VB編寫相應(yīng)的硬件接口程序?qū)崿F(xiàn)數(shù)據(jù)的通信,達(dá)到采集數(shù)據(jù)的目的[3]。由于電信號(hào)的采集是一個(gè)持續(xù)的過程,會(huì)根據(jù)不同的采集頻率產(chǎn)生大量的數(shù)據(jù),后續(xù)還需要對(duì)數(shù)據(jù)進(jìn)行計(jì)算處理,因此需要將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。數(shù)據(jù)采集部分程序代碼如下:
Read:
If PCH2953_ReadDeviceProAD_Half(hDevice1,ADBuffer(0),nReadSizeWords,nRetSizeWords) =False Then
MsgBox "ReadDevice Error"
End If
For Index=1 To 4 Step 1
ADData1=(ADBuffer(1) And 65535)
ADData2=(ADBuffer(2) And 65535)
ADData3=(ADBuffer(3) And 65535)
ADData4=(ADBuffer(4) And 65535)
Case 4:′ 0V - +5V
fVolt1=(5000# / 65536) * ADData1
fVolt2=(5000# / 65536) * ADData2 / 4095 * 200
fVolt3=(5000# / 65536) * ADData3 / 4095 * 200
fVolt4=(5000# / 65536) * ADData4 * 0.249- 0.8 * 0.249
strTemp1=fVolt1
strTemp2=fVolt2
strTemp3=fVolt3
strTemp4=fVolt4
Text6.Text=Format(strTemp1,"00.00")
Text2.Text=Format(strTemp2,"00.0")
Text4.Text=Format(strTemp3,"00.0")
Text5.Text=Format(strTemp4,"00")
選擇使用VB實(shí)現(xiàn)上位機(jī)控制系統(tǒng)編程的重要原因就是VB可以和Access數(shù)據(jù)庫(kù)很好地結(jié)合,將采集到的實(shí)時(shí)數(shù)據(jù)存儲(chǔ)到Access數(shù)據(jù)庫(kù)中,方便后續(xù)處理和歷史數(shù)據(jù)查詢。數(shù)據(jù)存儲(chǔ)包括Access數(shù)據(jù)庫(kù)的設(shè)計(jì)和VB與數(shù)據(jù)庫(kù)的連接。
首先打開Access數(shù)據(jù)庫(kù),根據(jù)設(shè)計(jì)向?qū)гO(shè)計(jì)需要的數(shù)據(jù)庫(kù),由于在后續(xù)的數(shù)據(jù)處理部分需要使用到時(shí)間、電信號(hào)值及序號(hào)等參數(shù),所以在數(shù)據(jù)庫(kù)的表中定義了單位時(shí)間及電壓(峰值)等字段,并選擇相應(yīng)的數(shù)據(jù)類型,然后將該數(shù)據(jù)庫(kù)命名為dianya.mdb并保存在E盤,方便后續(xù)的查看與連接。
設(shè)計(jì)好數(shù)據(jù)庫(kù)后就需要編寫相應(yīng)的代碼將采集到的實(shí)時(shí)數(shù)據(jù)按照約定的規(guī)則存儲(chǔ)到數(shù)據(jù)庫(kù)中,部分程序代碼如下:
Dim dbs As Database
Dim recordsetdb1 As Recordset
Set dbs=OpenDatabase("E:dianya.mdb")
Set recordsetdb1=dbs.OpenRecordset("表1")
recordsetdb1.AddNew
recordsetdb1(1).Value=Time
recordsetdb1(2).Value=fVolt1
recordsetdb1(3).Value=m
recordsetdb1.Update
recordsetdb1.Close
如果說色譜柱是色譜儀的“心臟”,那么檢測(cè)器就是色譜儀的“眼睛”,上位機(jī)控制系統(tǒng)就是色譜儀的“大腦”。在上位機(jī)控制系統(tǒng)中完成了色譜儀所有的數(shù)據(jù)處理、狀態(tài)分析和閥件控制,包括數(shù)據(jù)的采集、存儲(chǔ)與處理、閥件的控制及判斷等。色譜圖處理部分主要介紹了峰面積的計(jì)算、干擾峰處理和定量分析,色譜峰面積的計(jì)算又可實(shí)現(xiàn)樣品組分的定量分析,因此是整個(gè)控制系統(tǒng)中很重要的一環(huán)。色譜圖處理包括峰面積算法介紹、干擾峰處理、定量分析和編程實(shí)現(xiàn)。
2.3.1峰面積算法改進(jìn)
色譜儀定量的基礎(chǔ)是峰面積A和樣品組分含量m成函數(shù)關(guān)系(m∝A),所以進(jìn)行定量分析就必須計(jì)算峰面積。即使用峰高定量也是以峰面積為基礎(chǔ)的,只是假定半高峰寬是常數(shù)而已。計(jì)算峰面積的常用方法有峰高乘半高峰寬和三角形法。
峰高乘半高峰寬法是將色譜流出曲線下面和基線上面所包括的面積定義為峰面積,如圖3所示。
學(xué)者們從不同角度對(duì)企業(yè)文化進(jìn)行了界定,有的認(rèn)為,“企業(yè)文化是逐步形成并為全體員工所認(rèn)同、遵循、帶有本企業(yè)特點(diǎn)的價(jià)值觀念、經(jīng)營(yíng)準(zhǔn)則、經(jīng)營(yíng)作風(fēng)、企業(yè)精神、道德規(guī)范、發(fā)展目標(biāo)的總和”;有的認(rèn)為,“企業(yè)文化是一種群體文化,是企業(yè)內(nèi)在的文化特質(zhì)、外在文化環(huán)境和群體的文化素質(zhì)的綜合體現(xiàn)”;有的認(rèn)為,“企業(yè)文化是由企業(yè)的行為文化、心理文化和物質(zhì)文化構(gòu)成的”;有的認(rèn)為,“企業(yè)文化是一種觀念形態(tài)的價(jià)值觀,是企業(yè)的經(jīng)營(yíng)哲學(xué),也是企業(yè)信仰。”這些定義雖然側(cè)重點(diǎn)不同,但都表達(dá)了“企業(yè)文化能夠引導(dǎo)員工行為并支持企業(yè)持續(xù)發(fā)展”的觀點(diǎn)。
圖3 峰高乘半高峰寬法測(cè)面積
由圖3可知,采用峰高乘半高峰寬法計(jì)算的峰面積A為:
A=1.056hWh/2
在實(shí)際計(jì)算時(shí),總是將峰面積(未知與標(biāo)準(zhǔn),或未知與未知)進(jìn)行互相比較,因此在計(jì)算時(shí)往往把系數(shù)1.056約掉,即:
A=hWh/2
在使用這種方法測(cè)量面積時(shí),往往由于半高峰寬的測(cè)量誤差較大而造成測(cè)量面積的誤差,當(dāng)半高峰寬小于3mm時(shí)想要把誤差精度控制在小于4%是很困難的。
用三角形法求色譜峰的面積,是從色譜峰的兩個(gè)拐點(diǎn)做切線和基線相交,變成一個(gè)三角形,如圖4所示。用三角形ABC的面積代表色譜峰的面積,即:
圖4 三角形法測(cè)面積
但真正的峰面積是0.94A,和峰高乘以半高峰寬表示峰面積一樣把系數(shù)0.94略去了。
由于以上兩種計(jì)算峰面積的方法都是以色譜峰是對(duì)稱峰為前提條件來計(jì)算的,而實(shí)際峰形不可能都是對(duì)稱的,因此就需要采用一種更合理的計(jì)算峰面積的方法。經(jīng)過大量的分析研究后,筆者決定采用一種新方法——梯形法。
梯形法是將色譜峰先分割成眾多的小梯形,如圖5所示,然后將這些小梯形的面積累加起來,用累加和來表示該峰的峰面積,即:
式中f——采集頻率;
hi——第i個(gè)梯形的上底;
hi+1——第i個(gè)梯形的下底;
n——有效的采集次數(shù);
Si——第i個(gè)小梯形的面積。
代入整理后可得:
由于S1和Sn的數(shù)值非常小,因此可以忽略不計(jì),故最終的峰面積計(jì)算公式為:
圖5 梯形法測(cè)面積
理論上,只要小梯形分割得足夠多,計(jì)算出的峰面積就越接近真實(shí)值,誤差也就越小。
2.3.2干擾峰的處理
在計(jì)算峰面積時(shí),給出的計(jì)算方法都是在沒有干擾峰的情況下。儀表實(shí)際運(yùn)行當(dāng)中,干擾峰是經(jīng)常出現(xiàn)的,因此排除干擾峰是必須要解決的問題。
經(jīng)過研究思考后提出了“峰窗”的概念,如圖6所示,首先將需要處理或者需要計(jì)算峰面積的色譜峰框定在一個(gè)范圍內(nèi),然后再在這個(gè)范圍內(nèi)根據(jù)斜率檢測(cè)電平判斷是否有峰并實(shí)現(xiàn)其峰面積的計(jì)算。利用峰窗的概念不僅可以有效地去除干擾峰,使其不影響有效峰,還可以根據(jù)實(shí)際工藝需要有選擇性地計(jì)算色譜峰的峰面積。
圖6 峰窗示意圖
2.3.3定量分析
氣相色譜的定量分析就是計(jì)算各組分的百分含量,定量分析只與各組分的峰面積和色譜儀整機(jī)運(yùn)行狀態(tài)有關(guān),與組分的結(jié)構(gòu)和性質(zhì)沒有固定關(guān)系,因此在進(jìn)行定量分析時(shí)必須使用標(biāo)準(zhǔn)物質(zhì)進(jìn)行對(duì)比。由于使用的標(biāo)準(zhǔn)不同,就派生出不同的定量方法,工業(yè)色譜中常用的計(jì)算方法有外標(biāo)法、全面積歸一法和全組分歸一法。
外標(biāo)法就是不往待測(cè)樣品中加標(biāo)準(zhǔn)樣,而是在與測(cè)定樣品相同的色譜條件下,用已知含量的標(biāo)準(zhǔn)物單獨(dú)進(jìn)行色譜測(cè)定,用得到的結(jié)果和被測(cè)未知樣品相同組分的色譜峰進(jìn)行比較,通過標(biāo)準(zhǔn)樣的含量來計(jì)算未知樣品相對(duì)應(yīng)組分的含量,即:
式中Ai——未知組分峰面積;
As——標(biāo)準(zhǔn)物峰面積;
ωi——未知組分百分含量;
ωs——標(biāo)準(zhǔn)物百分含量。
全面積歸一法是將測(cè)量得到的所有色譜峰面積進(jìn)行100%的歸一化計(jì)算,即所有的組分含量累加和應(yīng)為100%,計(jì)算公式為:
式中Ai——相應(yīng)組分的峰面積;
ωi——相應(yīng)組分的百分含量;
ΣAk——各組分所測(cè)峰面積之和。
全組分歸一法是把樣品中所有組分的峰面積全部測(cè)量出來,再乘以各自的校正因子并求和,把總和作為全組分樣品的含量(100%),用此總和去除每一組分的峰面積和校正因子的乘積即可算出這一組分的百分含量,即:
式中 ΣAiFi——各組分峰面積乘以各自校正因子的總和。
各種化合物在不同的檢測(cè)器上都有不同的應(yīng)答值,所以盡管往色譜儀中注入相同質(zhì)量的物質(zhì),但得到的峰面積卻不一樣,因此用峰面積定量時(shí)就必須給色譜儀上得到的峰面積乘以一個(gè)系數(shù),從而得到此成分的質(zhì)量。在實(shí)際分析中,常用某一物質(zhì)作為標(biāo)準(zhǔn),得到一個(gè)相對(duì)的校正系數(shù),該校正系數(shù)即為校正因子。
使用全組分歸一法定量時(shí)同樣會(huì)有一些限制:樣品中某些組分不能出現(xiàn)色譜峰時(shí)不能使用,即必須使所含組分全部流出色譜柱,在檢測(cè)器上要有信號(hào);樣品中有些組分在色譜系統(tǒng)中有部分分解時(shí)不能使用。
目前使用的標(biāo)定方法為外標(biāo)法,即使用標(biāo)準(zhǔn)氣來進(jìn)行標(biāo)定,利用標(biāo)準(zhǔn)氣求得的校正因子來標(biāo)定樣品氣與標(biāo)準(zhǔn)氣中相同氣體的組分含量。
2.3.4編程實(shí)現(xiàn)
首先利用“峰窗”概念從數(shù)據(jù)庫(kù)中選擇出有效峰的數(shù)據(jù),按照梯形法計(jì)算該有效峰的峰面積,再利用外標(biāo)法對(duì)其進(jìn)行標(biāo)定,進(jìn)而求得樣品氣中該組分的含量。
梯形法算法和“峰窗”的部分代碼如下:
Do While Adodc1.Recordset.Fields(3).Value < a
Adodc1.Recordset.MoveNext
nn=nn + 1
Loop
Do While Adodc1.Recordset.Fields(3).Value >= a And Adodc1.Recordset.Fields(3) <= b
If Adodc1.Recordset.Fields(2).Value > e Then
n1=Adodc1.Recordset.Fields(2).Value
n2=n1 + n2
n=n + 1
nn=nn + 1
Adodc1.Recordset.MoveNext
Else
nn=nn + 1
Adodc1.Recordset.MoveNext
End If
Loop
Text1.Text=n2 * 1 / 16
Text2.Text=Text1.Text * d
Text3.Text=nn - n / 2
Text4.Text=n
標(biāo)定部分代碼如下:
Do While Adodc1.Recordset.Fields(3).Value < a
Adodc1.Recordset.MoveNext
Loop
Do While Adodc1.Recordset.Fields(3).Value >= a And Adodc1.Recordset.Fields(3) <= b
If Adodc1.Recordset.Fields(2).Value > e Then
n1=Adodc1.Recordset.Fields(2).Value
n2=n1 + n2
Adodc1.Recordset.MoveNext
Else
Adodc1.Recordset.MoveNext
End If
Loop
Text5.Text=x /(n2 * 1 / 16)
Text6.Text=n2 * 1 / 16
當(dāng)檢測(cè)器和整機(jī)達(dá)到穩(wěn)定狀態(tài)后開始進(jìn)樣、采集與分析,這時(shí)色譜圖即時(shí)間—峰值曲線就實(shí)時(shí)地顯示在界面中了(圖7)。
圖7 色譜峰顯示界面
色譜圖顯示部分代碼如下:
m=m+1
Dim dbs As Database
Dim recordsetdb1 As Recordset
Set dbs=OpenDatabase("E:dianya.mdb")
Set recordsetdb1=dbs.OpenRecordset("表1")
recordsetdb1.AddNew
recordsetdb1(1).Value=Time
recordsetdb1(2).Value=fVolt1
recordsetdb1(3).Value=m
recordsetdb1.Update
recordsetdb1.Close
Dim i As Integer
Dim a(20) As Integer
i=i + 1
a(i - 1) =a(i)
a(19) =fVolt1
Text2.Text=a(19)
If i > 19 Then i=0
hh=1 / 20 *(a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6) + a(7) + a(8) + a(9) + a(10) + a(11) + a(12) + a(13) + a(14) + a(15) + a(16) + a(17) + a(18) + a(19) )
hh=a(19)
Text1.Text=Format(hh,"#.00")
整個(gè)色譜圖處理系統(tǒng)主要實(shí)現(xiàn)了數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、譜圖顯示及色譜圖處理等功能,最終通過對(duì)采集到的數(shù)據(jù)進(jìn)行一系列的處理后計(jì)算出樣品中各組分的含量,實(shí)現(xiàn)定性分析和定量分析的目的,對(duì)新型工業(yè)氣相色譜儀的研究與開發(fā)提供了理論支持。
[1] 馬珊珊,程明霄.基于工業(yè)色譜儀的上位機(jī)色譜圖處理[J].化工自動(dòng)化及儀表,2010,37(12) :51~54.
[2] 靳方方,程明霄,謝玲.基于LabWindows_CVI的工業(yè)色譜儀虛擬儀器開發(fā)[J].儀表技術(shù)與傳感器,2009,(1) :26~28.
[3] 傅若農(nóng).色譜分析概論[M].北京:化學(xué)工業(yè)出版社,2006.