吳 達(dá), 時(shí)軍偉, 段清明,b
(吉林大學(xué) a. 儀器科學(xué)與電氣工程學(xué)院;b. 地球信息探測儀器教育部重點(diǎn)實(shí)驗(yàn)室,吉林 長春 130000)
?
基于LabVIEW的核磁共振探測儀控制系統(tǒng)設(shè)計(jì)
吳 達(dá)a, 時(shí)軍偉a, 段清明a,b
(吉林大學(xué) a. 儀器科學(xué)與電氣工程學(xué)院;b. 地球信息探測儀器教育部重點(diǎn)實(shí)驗(yàn)室,吉林 長春 130000)

針對現(xiàn)有的基于VB編程語言的控制系統(tǒng)代碼過長、冗雜、不便修改,難以滿足復(fù)雜多變的野外實(shí)驗(yàn)和后期擴(kuò)展的需要,通過圖形化編程語言LabVIEW設(shè)計(jì)核磁共振儀器的控制系統(tǒng),采用自頂向下的設(shè)計(jì)方法,將各個(gè)需要實(shí)現(xiàn)的功能模塊化,供頂層統(tǒng)一調(diào)用;通過本系統(tǒng),設(shè)置儀器參數(shù),檢測儀器狀態(tài),控制儀器運(yùn)行,并將采集到的數(shù)據(jù)處理、保存。同時(shí)詳細(xì)研究了LabVIEW實(shí)現(xiàn)儀器控制的關(guān)鍵技術(shù)。經(jīng)驗(yàn)證,系統(tǒng)能夠滿足控制儀器正常運(yùn)行,實(shí)現(xiàn)所有功能的要求,且界面友好,操作簡便,穩(wěn)定可靠,便于修改和擴(kuò)展。
LabVIEW; 核磁共振探測; 控制系統(tǒng)
核磁共振探測(Magnetic Resonance Sounding, MRS)是一種直接探測地下水的地球物理方法,該方法是基于有順磁性的氫質(zhì)子的核磁共振弛豫現(xiàn)象[1-3]。通過向鋪設(shè)的線圈通入拉莫爾頻率的電流,在地下形成一個(gè)穩(wěn)定的一次場,使氫質(zhì)子發(fā)生共振躍遷,當(dāng)電流關(guān)斷,產(chǎn)生弛豫現(xiàn)象并用線圈接收到核磁共振信號,通過對該信號的處理和反演,可以得到地下的水文信息。目前,核磁共振方法已經(jīng)廣泛應(yīng)用于地下水、堤壩滲漏、礦井隧道水害、滑坡等領(lǐng)域的探測[4-7]。
現(xiàn)有的吉林大學(xué)JLMRS型核磁共振地下水探測儀使用的仍是最初的基于VB編程語言的控制軟件系統(tǒng),代碼有幾萬行,較為冗雜,不便于修改,且儀器正向新一代發(fā)展,需要拓展更多功能以及采用新的軟件系統(tǒng)構(gòu)架,遇到了發(fā)展中的困難。
針對上述問題,本文提出了一種基于LabVIEW的控制系統(tǒng)設(shè)計(jì)方案。采用自頂向下的設(shè)計(jì)方法,將各個(gè)需要實(shí)現(xiàn)的功能分別編寫成子程序,供頂層調(diào)用;實(shí)現(xiàn)串口設(shè)置、設(shè)備檢測、參數(shù)設(shè)置、系統(tǒng)運(yùn)行、數(shù)據(jù)處理保存等功能,并對激發(fā)脈沖矩自動選擇,提取信號包絡(luò)進(jìn)行波形顯示。同時(shí)研究了LabVIEW實(shí)現(xiàn)儀器控制的關(guān)鍵技術(shù),包括實(shí)時(shí)監(jiān)測技術(shù)、用戶交互技術(shù)以及仿真測試技術(shù)。
1.1 系統(tǒng)總體設(shè)計(jì)思想
復(fù)雜的測控系統(tǒng)由于其結(jié)構(gòu)復(fù)雜,功能多樣,內(nèi)部相互嵌套,設(shè)計(jì)時(shí)如果沒有按照一定的規(guī)則而隨意設(shè)計(jì),往往會使整個(gè)系統(tǒng)結(jié)構(gòu)紊亂,不便于后期功能的修改、拓展以及系統(tǒng)維護(hù)。系統(tǒng)級的設(shè)計(jì)往往采用自頂向下的設(shè)計(jì)方法。就是設(shè)計(jì)者首先從整體上規(guī)劃整個(gè)系統(tǒng)的功能和性能,然后對系統(tǒng)進(jìn)行劃分,分解為規(guī)模較小、功能較為簡單的局部模塊,并確立它們之間的相互關(guān)系,這種劃分過程可以不斷地進(jìn)行下去,直到劃分得到的單元可以映射到物理實(shí)現(xiàn)。
首先,系統(tǒng)由主程序和子程序構(gòu)成。主程序?qū)?yīng)呈現(xiàn)給用戶的主界面,而子程序集成一個(gè)或多個(gè)功能,主程序通過調(diào)用子程序?qū)崿F(xiàn)所有功能。在主界面上,實(shí)現(xiàn)用戶操作的部分主要是窗口頂部的菜單和下方的功能按鍵,用戶通過點(diǎn)擊菜單中的選項(xiàng)或功能按鍵執(zhí)行相應(yīng)的功能或命令。秉承著自頂向下的設(shè)計(jì)思路,可以通過以下方式完成系統(tǒng)的構(gòu)架:首先建立一個(gè)系統(tǒng)主循環(huán),用于實(shí)時(shí)監(jiān)測用戶的操作指令。然后在主循環(huán)中創(chuàng)建一個(gè)事件結(jié)構(gòu)(相當(dāng)于C語言中的中斷),向事件結(jié)構(gòu)里添加事件,比如用戶按下“參數(shù)設(shè)置”這一功能按鈕想執(zhí)行參數(shù)設(shè)置操作,在事件結(jié)構(gòu)里添加了“參數(shù)設(shè)置:鼠標(biāo)按下”這一事件就會被觸發(fā),轉(zhuǎn)而去執(zhí)行這一事件中所包含的的子程序。同樣,來自菜單的指令也可以在事件結(jié)構(gòu)中添加一個(gè)“菜單選擇(用戶)”事件,用以處理菜單中的功能。同理,其他所要實(shí)現(xiàn)的功能都可以通過向事件結(jié)構(gòu)中添加相應(yīng)的事件來完成。通過這種結(jié)構(gòu)的測控系統(tǒng)設(shè)計(jì),可以很方便地向系統(tǒng)中添加新的功能或修改,同時(shí)整個(gè)系統(tǒng)結(jié)構(gòu)清晰,層次分明,便于設(shè)計(jì)時(shí)不同功能之間的協(xié)同和后期的維護(hù)。
本系統(tǒng)中,利用LabVIEW函數(shù)庫[8-10]中的“While循環(huán)結(jié)構(gòu)”作為最頂層,里面嵌套一個(gè)“事件結(jié)構(gòu)”,各個(gè)要實(shí)現(xiàn)的功能,如串口設(shè)置、參數(shù)設(shè)置、脈沖矩設(shè)置、設(shè)備檢測等作為一個(gè)個(gè)事件分支添加于“事件結(jié)構(gòu)”之中,循環(huán)不斷執(zhí)行以等待事件(中斷)的到來。當(dāng)用儀器測量時(shí),按下某個(gè)功能按鈕,就會進(jìn)入該事件分支執(zhí)行其代碼,實(shí)現(xiàn)該事件分支所對應(yīng)的功能。這種設(shè)計(jì)結(jié)構(gòu)便于修改和擴(kuò)展,如果想刪除某個(gè)功能,只需將對應(yīng)事件分支刪除,同樣,想增加某個(gè)新功能,也只需添加一個(gè)新的事件分支,不需要對整個(gè)系統(tǒng)結(jié)構(gòu)做很大的改動。
1.2 通訊部分
儀器通訊協(xié)議格式,包括起始碼、標(biāo)志碼、設(shè)備號、功能碼、數(shù)據(jù)位、校驗(yàn)位和結(jié)束碼。其中起始碼在控制端定義為0x09,在儀器端定義為0x0A;結(jié)束碼在兩端都定義為0x0D;標(biāo)志碼默認(rèn)為A;設(shè)備號中P、T、C、A、S、J分別對應(yīng)電源控制板、發(fā)射控制板、電流采集板、放大器板、信號采集板和繼電器板。
如圖1所示,利用LabVIEW提供的VISA庫函數(shù),實(shí)現(xiàn)控制系統(tǒng)和儀器的串口通訊。通過調(diào)用VISA庫函數(shù)下的“VISA打開”、“VISA寫入”、“VISA讀取”、“VISA關(guān)閉”等子函數(shù),將串口波特率設(shè)置為9600bps,通訊模式設(shè)置為異步串行通信方式,向儀器按通訊協(xié)議所規(guī)定的格式發(fā)送指令,對儀器參數(shù)進(jìn)行相應(yīng)設(shè)置或控制儀器執(zhí)行某個(gè)動作,同時(shí)接收儀器返回的指令或數(shù)據(jù)。

圖1 VISA串口通訊
1.3 設(shè)備檢測
核磁共振地下水探測儀的控制箱主要由電源控制板、發(fā)射控制板、放大器板、電流采集板、信號采集板和繼電器板組成。任何一部分損壞或異常都將導(dǎo)致儀器無法使用,因此在用儀器測量之前,需要先進(jìn)行設(shè)備檢測,檢測各個(gè)板是否正常。儀器會對每一條發(fā)給它的指令返回一條反饋指令,首先向儀器發(fā)送設(shè)備檢測的指令組并接收返回指令,通過“截取字符串”函數(shù),設(shè)置偏移量為3,截取長度為1,將截取出的字符與“S”進(jìn)行比較,來判斷每一條返回指令的第4位是否為“S”,若是,則該板正常,否則為異常,并將各個(gè)板的狀態(tài)通過指示燈的亮滅直觀地顯示在控制系統(tǒng)的前面板上。
1.4 激發(fā)脈沖矩自動選取
激發(fā)脈沖矩是核磁共振探測中一個(gè)重要的參數(shù)。激發(fā)磁場是由激發(fā)電流產(chǎn)生的一次場,該磁場的強(qiáng)度,由激發(fā)脈沖矩來衡量。激發(fā)脈沖矩越大,所能探測的深度就越深。通過改變激發(fā)脈沖矩的大小,就可以探測不同的深度。激發(fā)脈沖矩q等于激發(fā)電流I和激發(fā)時(shí)間τ(通常為40 ms)的乘積,如下式所示:

(1)
一個(gè)周期的測量需要從淺到深,也就是激發(fā)脈沖矩從小到大逐個(gè)依次進(jìn)行,通常的做法是事先預(yù)置一組激發(fā)脈沖矩,但靈活性差,不便于修改,并且隨著深度的增加,儀器探測的分辨率[11]降低,增加大脈沖矩的個(gè)數(shù)也無法提高分辨率,科學(xué)合理的一組脈沖矩應(yīng)該是在淺層的區(qū)域密一些,在深層區(qū)域疏一些,近似于指數(shù)遞增。本控制系統(tǒng)能根據(jù)實(shí)測諧振阻抗對脈沖矩進(jìn)行自動選取。

(2)

1.5 系統(tǒng)主界面和運(yùn)行流程
系統(tǒng)運(yùn)行流程如圖2所示。

圖2 系統(tǒng)運(yùn)行流程
2.1 實(shí)時(shí)監(jiān)測技術(shù)
對于一個(gè)功能簡單的儀器來說,其通過LabVIEW編寫的控制系統(tǒng)往往只需在一個(gè)主程序中即可實(shí)現(xiàn)所有功能,實(shí)現(xiàn)實(shí)時(shí)監(jiān)測也相對容易。但是,一個(gè)復(fù)雜的測控系統(tǒng)由于其功能較多,為了避免程序混亂和冗雜,編程時(shí)一般都用模塊化的思想,將一個(gè)功能單獨(dú)編寫成一個(gè)子程序,由主程序調(diào)用子程序來實(shí)現(xiàn)功能。這樣就出現(xiàn)了一個(gè)問題:某個(gè)要監(jiān)測的參數(shù)位于子程序中,想將它實(shí)時(shí)顯示在主程序的前面板上,而LabVIEW運(yùn)行的機(jī)制是調(diào)用子程序后,子程序執(zhí)行完才統(tǒng)一把所有輸出傳遞給主程序,普通的做法就監(jiān)測不出參數(shù)的動態(tài)變化過程了。
以本系統(tǒng)為例,其中需要監(jiān)測發(fā)射機(jī)的發(fā)射電壓、電瓶電壓、電容電壓等參數(shù),將它們實(shí)時(shí)顯示在主界面上,便于用戶監(jiān)視儀器運(yùn)行的狀態(tài)。為了實(shí)現(xiàn)這一功能,需要用到LabVIEW中的全局變量,全局變量可以在主程序、多個(gè)子程序之間傳遞數(shù)據(jù)。首先為要監(jiān)測的參數(shù)創(chuàng)建一個(gè)與之對應(yīng)的全局變量,在主程序和子程序中都用這個(gè)全局變量來進(jìn)行數(shù)據(jù)的傳遞。其次,由于要實(shí)時(shí)監(jiān)測,要保持在子程序運(yùn)行的同時(shí)讀取全局變量并顯示監(jiān)測值這一命令也一直在重復(fù)執(zhí)行,可以將這個(gè)命令嵌套在一個(gè)While循環(huán)里,這個(gè)While循環(huán)和子程序是并行執(zhí)行的,這樣就可以實(shí)現(xiàn)參數(shù)的實(shí)時(shí)監(jiān)測。
2.2 用戶交互技術(shù)
系統(tǒng)的主界面大小有限,不可能承載所有單元,往往顯示的只是一些常用以及重要的參數(shù)及圖表。比如儀器開始運(yùn)行測量之前,用戶需要先對一些參數(shù)進(jìn)行設(shè)置,在參數(shù)較少的情況下,可以直接在主界面上實(shí)現(xiàn)。但如果參數(shù)比較多,最好的辦法就是為參數(shù)設(shè)置單獨(dú)創(chuàng)建一個(gè)子對話框(子程序)。用戶通過點(diǎn)擊主界面上的參數(shù)設(shè)置按鈕,彈出一個(gè)相應(yīng)的參數(shù)設(shè)置的對話框,用戶將參數(shù)設(shè)置好之后,按下“確定”,關(guān)閉子對話框,此時(shí)參數(shù)設(shè)置已經(jīng)完成。為達(dá)到上述效果,需要在LabVIEW中,對實(shí)現(xiàn)參數(shù)設(shè)置的子程序進(jìn)行相關(guān)設(shè)置:打開文件菜單中“VI屬性”,在類別中選中“窗口外觀”,點(diǎn)擊下方的“自定義”,在彈出的對話框中選上“調(diào)用時(shí)顯示前面板”和“如之前未打開則在運(yùn)行后關(guān)閉”,按“確定”完成子程序的設(shè)置。這樣就完成了實(shí)現(xiàn)用戶交互的第一步。
由于LabVIEW中,當(dāng)主程序調(diào)用子程序時(shí),子程序是直接運(yùn)行的,也就是彈出參數(shù)設(shè)置子對話框的同時(shí),子程序已經(jīng)把參數(shù)設(shè)置上的默認(rèn)值代入運(yùn)行了,這就失去了用戶交互的功能??梢酝ㄟ^在要設(shè)置的參數(shù)外面加一個(gè)While循環(huán),讓它不停地循環(huán),等待用戶輸入值,當(dāng)用戶輸入完畢后,按下“確定”,才把設(shè)置好的參數(shù)傳遞出去運(yùn)行。
2.3 仿真測試技術(shù)
有些儀器的控制涉及到高壓電源等,比如核磁共振探測儀,需要通過線圈向地下發(fā)射超過200 A的電流,電容箱電壓接近300 V。如果直接將LabVIEW編寫的控制系統(tǒng)與儀器相連進(jìn)行測試,萬一出現(xiàn)錯誤,很可能導(dǎo)致電源燒壞,那是相當(dāng)危險(xiǎn)的,所以最好在連接儀器測試之前先進(jìn)行仿真測試??梢詫?shí)現(xiàn)的比較好的途徑是編寫一個(gè)簡單的輔助測試軟件來模擬一臺真實(shí)的儀器。這個(gè)輔助測試軟件里通過條件判斷結(jié)構(gòu),先判斷控制系統(tǒng)發(fā)送來的是什么指令,然后模擬真實(shí)儀器對這條指令的響應(yīng)反饋一條指令給控制系統(tǒng),以達(dá)到測試的目的。
3.1 激發(fā)脈沖矩自動選取測試
圖3為自動選取的一組激發(fā)脈沖矩。在發(fā)射端連接模擬線圈(約為0.8 mH)和6 μF的配諧電容,實(shí)測諧振阻抗為0.43 Ω,脈沖矩閥值設(shè)為400 A·ms和10 kA·ms,根據(jù)激發(fā)脈沖矩選擇的算法,可以得到一組近似為指數(shù)遞增的脈沖矩,符合淺層區(qū)域密,深層區(qū)域疏的科學(xué)合理探測方式。

圖3 脈沖矩自動選取
3.2 電流采集測試
圖4為采集的電流波形[12-15]。其中電流1曲線為發(fā)射前采集到的電流,電流2曲線為發(fā)射后采集到的電流,可以明顯看出,電流2曲線要低于電流1曲線,說明能量有損耗,發(fā)射成功;若發(fā)射前后兩條曲線重合,則說明能量沒損耗,發(fā)射失敗。

圖4 采集的電流曲線
本文設(shè)計(jì)了一種基于LabVIEW的核磁共振探測儀控制系統(tǒng),對VB版本系統(tǒng)進(jìn)行了改進(jìn)。設(shè)計(jì)了激發(fā)脈沖矩自動選取的算法,取代了手工計(jì)算,提高儀器系統(tǒng)效率。實(shí)現(xiàn)了串口設(shè)置、設(shè)備檢測、參數(shù)設(shè)置、數(shù)據(jù)保存、波形顯示等功能和對儀器運(yùn)行測量的控制。同時(shí),詳細(xì)研究了LabVIEW實(shí)現(xiàn)儀器控制的三個(gè)關(guān)鍵技術(shù):實(shí)時(shí)監(jiān)測技術(shù)、用戶交互技術(shù)以及仿真測試技術(shù)。為驗(yàn)證設(shè)計(jì)的正確性,對系統(tǒng)進(jìn)行了測試,測試結(jié)果表明,本系統(tǒng)可以滿足儀器的需求,且界面友好,操作簡便,穩(wěn)定可靠,便于修改和擴(kuò)展。
[1] 王中興,榮亮亮,林 君. 地面核磁共振找水信號中的奇異干擾抑制[J]. 吉林大學(xué)學(xué)報(bào)(工學(xué)版),2009,39(5):1282-1287.
[2] 蔣川東,林 君,段清明,等. 二維陣列線圈核磁共振地下水探測理論研究[J]. 地球物理學(xué)報(bào),2011,54(11):2973-2983.
[3] 林 君. 核磁共振找水技術(shù)的研究現(xiàn)狀與發(fā)展趨勢[J]. 地球物理學(xué)進(jìn)展,2010,25(2):681-691.
[4] 林 君,蔣川東,段清明,等. 復(fù)雜條件下地下水磁共振探測與災(zāi)害水源探查研究進(jìn)展[J]. 吉林大學(xué)學(xué)報(bào)(地球科學(xué)版),2012,42(5):1560-1570.
[5] 林 君,蔣川東,林婷婷,等. 地下工程災(zāi)害水源的磁共振探測研究[J]. 地球物理學(xué)報(bào),2013,56(11):3619-3628.
[6] 萬 玲. 地下水磁共振與瞬變電磁聯(lián)合反演方法及探測系統(tǒng)研究[D]. 長春:吉林大學(xué),2013.
[7] 林婷婷,蔣川東,齊 鑫,等. 地面磁共振測深分布式探測方法與關(guān)鍵技術(shù)[J]. 地球物理學(xué)報(bào),2013,56(11):3651-3662.
[8] 陳樹學(xué),劉 萱. LabVIEW寶典[M]. 北京:電子工業(yè)出版社,2011.
[9] 阮奇楨. 我和LabVIEW[M]. 北京:北京航天航空大學(xué)出版社,2009.
[10] 劉晉霞. LabVIEW2012中文版虛擬儀器從入門到精通[M]. 北京:機(jī)械工業(yè)出版社,2013.
[11] 田培培,馮 雪,關(guān)珊珊,等. 時(shí)域航空中心回線源三維異常體的電磁響應(yīng)探測分辨率[J]. 物探與化探,2013,37(3):538-542.
[12] 王希武,董光波,謝桂海. 基于小波變換的核磁共振FID信號的去噪方法研究[J]. 核電子學(xué)與探測技術(shù),2008,28(2):365-381.
[13] 王中興,榮亮亮,林 君,等. 基于4倍頻采樣的數(shù)字正交FID信號檢測技術(shù)[J]. 數(shù)據(jù)采集與處理,2010,25(5):626-630.
[14] 王洪亮. 質(zhì)子磁力儀FID信號算法研究[D]. 武漢:中國地質(zhì)大學(xué),2012.
[15] 薛梓瑗. 低場磁共振FID信號放大電路的分析與研究[D]. 北京:中國科學(xué)院研究生院(電工研究所),2002.
Design of Control System for Magnetic Resonance Sounding Instrument Based on LabVIEW
WUDaa,SHIJun-weia,DUANQing-minga,b
(a. College of Instrumentation and Electrical Engineering; b. Key Laboratory of Geo-Exploration Instrumentation,Ministry of Education, Jilin University, Changchun 130000, China)
The code of control system based on VB is too long, miscellaneous and inconvenient for modification, hence, it cannot meet the requirement of complex field experiments and later expansion. To solve this problem, a graphical programming language called LabVIEW is used to design control system of magnetic resonance sounding instrument. This system is designed with a top-down approach, all functions are made into modules so that the modues can be called by the top conveniently. The system can set the parameters, detect the state of instrument and control instrument operation, and process and save data. At the same time, the key techniques of instrument control through LabVIEW are studied. By validation, this system can meet the requirement of controlling instrument and realize all functions. Moreover, it has advantages of friendly interface, simple operation, stable and reliable performance, easy to modify and expand.
LabVIEW; magnetic resonance sounding; control system
2015-02-28
國家重大科學(xué)儀器設(shè)備開發(fā)專項(xiàng)(2011YQ030133)
吳 達(dá)(1990-),男,江蘇無錫人,碩士生,主要研究方向?yàn)殡姎鉁y試技術(shù)及儀表。
Tel.: 15948727432; E-mail: wuda19901003@163.com
段清明(1966-),男,河南洛陽人,教授,主要研究方向?yàn)榈厍蛭锢矸椒ㄅc儀器。
Tel.: 18686638929; E-mail: duanqm@jlu.edu.cn
TH 763
A
1006-7167(2015)11-0050-04