楊子言,胡純棟,趙遠(yuǎn)哲
(1.安徽大學(xué)物質(zhì)科學(xué)與信息技術(shù)研究院,安徽 合肥 230601;2.中國(guó)科學(xué)院合肥物質(zhì)科學(xué)研究院等離子體物理研究所,安徽 合肥 230031)
Figure 1 Structure of data plotting system 圖1 數(shù)據(jù)繪制系統(tǒng)結(jié)構(gòu)
中性束注入憑借其優(yōu)秀的加熱效果和清晰的物理機(jī)制,成為了聚變等離子體重要的加熱手段。而射頻負(fù)離子源因其適合長(zhǎng)時(shí)間穩(wěn)態(tài)運(yùn)行且中性化效率不會(huì)隨粒子能量增加而下降的特性,逐漸取代了燈絲源和正離子源,成為中性束離子源的發(fā)展方向。負(fù)離子源中性束注入NNBI(Negative ion based Neutral Beam Injection)系統(tǒng)的研制也成為中國(guó)核聚變實(shí)驗(yàn)堆CFETR(China Fusion Experimental Test Reactor)發(fā)展總體規(guī)劃中的重要部署。射頻負(fù)離子源脈沖實(shí)驗(yàn)在實(shí)驗(yàn)過程中會(huì)產(chǎn)生大量的數(shù)據(jù),如實(shí)驗(yàn)信號(hào)、設(shè)備狀態(tài)、圖像信息和日志記錄等。在以往的短脈沖實(shí)驗(yàn)中,以LZO(Lempel-Ziv-Oberhumer)壓縮文件作為數(shù)據(jù)的存儲(chǔ)方式可以滿足實(shí)驗(yàn)需求[1 - 5]。但是,隨著脈沖實(shí)驗(yàn)的進(jìn)一步發(fā)展,實(shí)驗(yàn)的時(shí)間長(zhǎng)度將由過去的數(shù)秒量級(jí),逐步發(fā)展至未來的千秒量級(jí),同時(shí)待采集的信號(hào)數(shù)量也在逐步增加,目前單次實(shí)驗(yàn)產(chǎn)生的實(shí)驗(yàn)數(shù)據(jù)已達(dá)到百兆字節(jié)量級(jí)[1],LZO壓縮文件的非實(shí)時(shí)特性已不能滿足實(shí)驗(yàn)運(yùn)行的數(shù)據(jù)存取要求[1,5]。而模型驅(qū)動(dòng)系統(tǒng)MDSplus(Model Drive System plus)作為一個(gè)高效、功能豐富的數(shù)據(jù)管理系統(tǒng),憑借其強(qiáng)大的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)實(shí)時(shí)處理特性,獲得了聚變界的廣泛認(rèn)可,并逐步應(yīng)用于美國(guó)的D形截面約束托卡馬克裝置DIII-D(DoubletIII-Di)、意大利的反場(chǎng)磁約束實(shí)驗(yàn)裝置RFX(Reversed-Field eXperiment)和中國(guó)的全超導(dǎo)托卡馬克核聚變實(shí)驗(yàn)裝置EAST(Experimental and Advanced Superconducting Tokamak)等聚變實(shí)驗(yàn)中[6 - 10]。在該背景下,射頻負(fù)離子源脈沖實(shí)驗(yàn)項(xiàng)目也計(jì)劃將MDSplus作為實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ)管理系統(tǒng)。
然而,現(xiàn)有的數(shù)據(jù)繪制軟件只適用于LZO壓縮文件存儲(chǔ)方式,而MDSplus自帶的jScope繪制軟件無法對(duì)任意炮號(hào)數(shù)據(jù)波形進(jìn)行對(duì)比并且缺少相關(guān)輔助功能[11],無法滿足實(shí)驗(yàn)人員的研究需求。本文針對(duì)射頻負(fù)離子源脈沖實(shí)驗(yàn)的實(shí)驗(yàn)特性,結(jié)合MDSplus數(shù)據(jù)管理系統(tǒng)的系統(tǒng)特性,利用.NET平臺(tái)上Winform框架多種控件的豐富功能,設(shè)計(jì)了一套實(shí)時(shí)、多功能的射頻負(fù)離子源數(shù)據(jù)繪制系統(tǒng)。
系統(tǒng)結(jié)構(gòu)在設(shè)計(jì)時(shí)主要考慮目前實(shí)驗(yàn)對(duì)數(shù)據(jù)存取性能的需求以及將來實(shí)驗(yàn)規(guī)模擴(kuò)大后的可擴(kuò)展性。根據(jù)需求分析,射頻負(fù)離子源數(shù)據(jù)繪制系統(tǒng)要滿足實(shí)驗(yàn)數(shù)據(jù)的分段存儲(chǔ)以及用戶對(duì)實(shí)驗(yàn)數(shù)據(jù)的遠(yuǎn)程實(shí)時(shí)繪制要求。該系統(tǒng)主要由數(shù)據(jù)存儲(chǔ)模塊和數(shù)據(jù)繪制模塊組成,如圖1所示。
2.1.1 存儲(chǔ)需求分析
在射頻負(fù)離子源脈沖實(shí)驗(yàn)中,根據(jù)啟動(dòng)條件、采樣率和采集對(duì)象來源的不同,將采集的實(shí)驗(yàn)數(shù)據(jù)對(duì)象種類分為高速采集數(shù)據(jù);低速采集數(shù)據(jù)、真空數(shù)據(jù)、光譜診斷數(shù)據(jù)、低溫?cái)?shù)據(jù)和朗繆爾探針數(shù)據(jù)等。其中,高速采集數(shù)據(jù)主要是加速電源以及引出電源產(chǎn)生的電壓電流;低速采集數(shù)據(jù)主要是射頻功率源、引出電源、加速電源、偏置電源、偏置板電源、磁濾器電源、緩沖器偏置電源、啟動(dòng)燈絲電源、弧偏置電源和電偏轉(zhuǎn)電源等的電壓電流;真空系統(tǒng)、光譜數(shù)據(jù)、低溫?cái)?shù)據(jù)等數(shù)據(jù)對(duì)象則為對(duì)應(yīng)子系統(tǒng)產(chǎn)生的各類相關(guān)數(shù)據(jù)[1]。
MDSplus支持儲(chǔ)存的數(shù)據(jù)類型中,除了有符號(hào)整數(shù)、無符號(hào)整數(shù)、單精度和雙精度實(shí)數(shù)、單精度和雙精度復(fù)數(shù)、字符數(shù)據(jù)以外,還包括了信號(hào)和設(shè)備等復(fù)合數(shù)據(jù)類型。其中,信號(hào)復(fù)合類型包含實(shí)驗(yàn)數(shù)據(jù)及其他相關(guān)的獨(dú)立軸(例如射頻負(fù)離子源源電流與時(shí)間的關(guān)系)??紤]到實(shí)驗(yàn)數(shù)據(jù)的繪制需求皆與實(shí)驗(yàn)時(shí)間相關(guān)聯(lián),因此對(duì)于實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ)皆采用信號(hào)復(fù)合數(shù)據(jù)類型。而除此之外的其他數(shù)據(jù),諸如增益、偏移和采樣率等相關(guān)配置信息,采用單精度實(shí)數(shù)就足以滿足數(shù)據(jù)存儲(chǔ)要求。
2.1.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)
MDSplus在邏輯存儲(chǔ)結(jié)構(gòu)上采用樹形結(jié)構(gòu),單個(gè)實(shí)驗(yàn)項(xiàng)目由一個(gè)模型樹文件和若干個(gè)脈沖樹文件組成[1]。其中,模型樹決定了數(shù)據(jù)存儲(chǔ)的層次結(jié)構(gòu),模型樹內(nèi)的分支構(gòu)成了樹的結(jié)構(gòu),葉子節(jié)點(diǎn)則為對(duì)應(yīng)數(shù)據(jù)存儲(chǔ)的位置;而脈沖樹則是模型樹的數(shù)據(jù)副本,用于按照模型樹的層次結(jié)構(gòu)存儲(chǔ)對(duì)應(yīng)實(shí)驗(yàn)所產(chǎn)生的數(shù)據(jù)。根據(jù)存儲(chǔ)需求的分析,射頻負(fù)離子源脈沖實(shí)驗(yàn)數(shù)據(jù)的模型樹結(jié)構(gòu)設(shè)計(jì)如圖2所示。
Figure 2 Structure of model tree 圖2 模型樹結(jié)構(gòu)
在模型樹結(jié)構(gòu)中,按照射頻負(fù)離子源系統(tǒng)的子系統(tǒng)組成分為若干個(gè)子樹,子系統(tǒng)下按照設(shè)備的不同再次延伸為若干個(gè)子樹。為了在滿足實(shí)驗(yàn)需求的基礎(chǔ)上提高存儲(chǔ)效率,每個(gè)子樹葉子結(jié)點(diǎn)下設(shè)置信號(hào)(Signal)、原始數(shù)據(jù)(Raw Data)、時(shí)序(Timing)、開始時(shí)間(Start Time)、采樣率(Sampling Frequeney)、偏移(Offset)和增益(Gain)等數(shù)據(jù)節(jié)點(diǎn)。其中,信號(hào)節(jié)點(diǎn)為復(fù)合數(shù)據(jù)類型,由原始數(shù)據(jù)和時(shí)序復(fù)合而成。為了避免數(shù)據(jù)冗余,本文采用MDSplus的BUILD_RANGE方法,根據(jù)實(shí)驗(yàn)的開始時(shí)間、持續(xù)時(shí)間和采樣率動(dòng)態(tài)計(jì)算得到相應(yīng)的時(shí)序,以節(jié)省時(shí)序數(shù)據(jù)占用的空間;信號(hào)節(jié)點(diǎn)的復(fù)合通過MDSplus的MAKE_SIGNAL方法實(shí)現(xiàn),只需通過該方法即可將原始數(shù)據(jù)與時(shí)序建立起對(duì)應(yīng)關(guān)系,且不占用額外存儲(chǔ)空間。
2.1.3 存取方式設(shè)計(jì)
為了保證數(shù)據(jù)的安全性以及服務(wù)器運(yùn)行的穩(wěn)定性,數(shù)據(jù)存儲(chǔ)模塊運(yùn)行于CentOS系統(tǒng)服務(wù)器上,并配合MDSplus中Mdsobjects.h提供的函數(shù)實(shí)現(xiàn)服務(wù)器對(duì)實(shí)驗(yàn)數(shù)據(jù)的存取功能。
MDSplus相對(duì)于以往的LZO壓縮方式來說,在數(shù)據(jù)存取上的最大特點(diǎn)就是支持?jǐn)?shù)據(jù)的分段寫入和讀取[3]。在數(shù)據(jù)寫入的過程中,采集設(shè)備將每一秒內(nèi)采集的數(shù)據(jù)與對(duì)應(yīng)的炮號(hào)、信號(hào)名稱以及采集的開始時(shí)間、結(jié)束時(shí)間、采樣率等信息打包發(fā)送給服務(wù)器,服務(wù)器接收后通過對(duì)數(shù)據(jù)包進(jìn)行分析找到對(duì)應(yīng)的節(jié)點(diǎn),并用MakeSegment方法將數(shù)據(jù)段寫入,寫入流程如圖3所示。MakeSegment方法會(huì)將數(shù)據(jù)保存至數(shù)據(jù)段的末尾,當(dāng)實(shí)驗(yàn)過程中出現(xiàn)錯(cuò)誤導(dǎo)致實(shí)驗(yàn)數(shù)據(jù)不能正常存儲(chǔ)時(shí),可用PutSegment方法將數(shù)據(jù)段插入至指定位置。
Figure 3 Flow chart of data writing圖3 數(shù)據(jù)寫入流程
當(dāng)?shù)谝欢螖?shù)據(jù)寫入數(shù)據(jù)庫后,MDSplus允許對(duì)數(shù)據(jù)庫中的數(shù)據(jù)按段進(jìn)行讀取。利用GetNumSegments方法,可以獲取當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)的段數(shù)量,再利用GetSegment方法即可獲取當(dāng)前節(jié)點(diǎn)目標(biāo)段號(hào)的段數(shù)據(jù)。系統(tǒng)還設(shè)計(jì)了SetTimeContext方法,該方法允許用戶按照指定采樣率獲取指定時(shí)間段內(nèi)的全部數(shù)據(jù)。GetNumSegments方法和SetTimeContext方法的使用差異如圖4所示。
Figure 4 Data read mode comparison圖4 數(shù)據(jù)讀取方式對(duì)比示意圖
2.2.1 繪制需求分析
射頻負(fù)離子源脈沖實(shí)驗(yàn)中,目前單次實(shí)驗(yàn)的時(shí)間長(zhǎng)度為26 s,采樣率為5 000 Hz,單個(gè)信號(hào)源的數(shù)據(jù)量可達(dá)13萬。除此之外,目前共有64道信號(hào)數(shù)據(jù)需進(jìn)行采集繪制??紤]到將來實(shí)驗(yàn)時(shí)間長(zhǎng)度的延長(zhǎng)和待采集信號(hào)數(shù)量的增長(zhǎng),系統(tǒng)需支持對(duì)最大百萬量級(jí)的數(shù)據(jù)實(shí)現(xiàn)快速穩(wěn)定的傳輸和繪制。
在波形繪制方面,系統(tǒng)除了需要將數(shù)據(jù)平滑完整地繪制以外,還需要提供橫縱向縮放、區(qū)域截取和數(shù)值顯示等基本功能。為了方便實(shí)驗(yàn)人員在實(shí)驗(yàn)過程中觀察數(shù)據(jù),還需要添加諸如波形對(duì)比、全局縮放、波形平鋪和縮放記憶等輔助功能。除此之外,針對(duì)將來脈沖實(shí)驗(yàn)持續(xù)時(shí)間最長(zhǎng)可至3 600 s這一現(xiàn)實(shí)需求,還需要提供數(shù)據(jù)重采樣功能,以實(shí)現(xiàn)對(duì)高采樣率數(shù)據(jù)進(jìn)行低采樣率快速繪制。
在數(shù)據(jù)通信方面,因?yàn)門CP協(xié)議具有擁塞控制、快速重傳和快速恢復(fù)等特性,能夠保證射頻負(fù)離子源脈沖實(shí)驗(yàn)產(chǎn)生的數(shù)據(jù)完整地傳輸至用戶端口,所以系統(tǒng)采用TCP協(xié)議來實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸。為了實(shí)現(xiàn)客戶端與服務(wù)器之間、服務(wù)器與采集端之間的統(tǒng)一通信,系統(tǒng)定義了MDSplusHeader結(jié)構(gòu)體作為服務(wù)器識(shí)別請(qǐng)求的媒介。MDSplusHeader中定義了設(shè)備名、服務(wù)器名、操作符、信號(hào)名、炮號(hào)、時(shí)間增量、開始時(shí)間、結(jié)束時(shí)間和數(shù)據(jù)長(zhǎng)度等信息,服務(wù)器識(shí)別對(duì)應(yīng)信息后,會(huì)進(jìn)行相應(yīng)存入或者讀取數(shù)據(jù)的操作。MDSplusHeader結(jié)構(gòu)體中各字段如圖5所示。
Figure 5 Diagram of MDSplusHeader field 圖5 MDSplusHeader各字段示意圖
2.2.2 數(shù)據(jù)繪制模塊設(shè)計(jì)
為了保證數(shù)據(jù)的平滑繪制及相關(guān)功能的實(shí)現(xiàn),在經(jīng)過對(duì)比msChart、MicroChart、ZedGraph、WaveFormGraph和EasyChart等波形繪制控件的功能及顯示效果之后,射頻負(fù)離子源數(shù)據(jù)繪制模塊采用簡(jiǎn)儀科技開發(fā)的EasyChartX和StripChartX繪圖控件實(shí)現(xiàn)數(shù)據(jù)繪制。上述控件繪制百萬量級(jí)的數(shù)據(jù)所需時(shí)間最快僅需數(shù)十毫秒,能夠滿足實(shí)驗(yàn)需求。數(shù)據(jù)繪制模塊流程如圖6所示。
Figure 6 Flow chart of data plotting module圖6 數(shù)據(jù)繪制模塊流程圖
根據(jù)需求分析,數(shù)據(jù)繪制模塊的重點(diǎn)是能在數(shù)據(jù)繪制方面提供多種功能。繪圖控件自身提供了橫縱向縮放、區(qū)域截取和數(shù)值顯示等基本功能,其余特色功能需要利用控件提供的各項(xiàng)接口組合實(shí)現(xiàn)。其中,利用繪圖控件支持同時(shí)繪制多線條的特性,可以實(shí)現(xiàn)多炮號(hào)實(shí)驗(yàn)波形的對(duì)比功能,考慮到這一功能的使用場(chǎng)景往往為單次實(shí)驗(yàn)結(jié)束之后,因此數(shù)據(jù)繪制模塊將繪制功能分為實(shí)時(shí)模式和對(duì)比模式2種模式。在實(shí)驗(yàn)過程中,實(shí)驗(yàn)人員往往需要對(duì)整段數(shù)據(jù)中固定時(shí)間范圍的所有信號(hào)數(shù)據(jù)進(jìn)行縮放,根據(jù)這一需求,本文利用控件的ViewMaximum和ViewMinimum屬性實(shí)現(xiàn)對(duì)全局信號(hào)的統(tǒng)一控制,也可以記錄當(dāng)前縮放狀態(tài)以對(duì)下一炮的實(shí)驗(yàn)數(shù)據(jù)波形進(jìn)行相同范圍縮放。
平鋪繪制功能和數(shù)據(jù)重采樣功能是數(shù)據(jù)繪制模塊的特色功能。其中平鋪繪制功能針對(duì)的是實(shí)驗(yàn)數(shù)據(jù)的峰谷值相差較大時(shí),在對(duì)某一區(qū)間數(shù)據(jù)截取后還需要多次進(jìn)行手動(dòng)縱向的縮放才能達(dá)到良好的繪制效果這一問題。利用ArrayArithmetic庫中的FindMaxMin函數(shù),可以獲取到數(shù)據(jù)內(nèi)的最大值和最小值,即可通過限制視圖范圍的方式對(duì)數(shù)據(jù)線條進(jìn)行平鋪。并且當(dāng)用戶對(duì)特定區(qū)域進(jìn)行縮放后,仍可對(duì)該特定區(qū)域的繪制線條進(jìn)行二次平鋪。該功能能夠簡(jiǎn)化實(shí)驗(yàn)人員的操作步驟,方便實(shí)驗(yàn)人員對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析。該功能繪制效果如圖7所示。
Figure 7 Plotting effect of tile function 圖7 平鋪功能繪制效果
數(shù)據(jù)重采樣功能針對(duì)的是對(duì)大量實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析繪制。當(dāng)待接收的數(shù)據(jù)量過大時(shí),會(huì)導(dǎo)致系統(tǒng)響應(yīng)緩慢,且會(huì)增加實(shí)驗(yàn)人員的等待與反應(yīng)時(shí)間。而系統(tǒng)的數(shù)據(jù)收集與數(shù)據(jù)繪制是2個(gè)獨(dú)立的過程,只有當(dāng)數(shù)據(jù)收集完成后,控件才會(huì)對(duì)數(shù)據(jù)進(jìn)行繪制,這其中數(shù)據(jù)收集耗費(fèi)的時(shí)間遠(yuǎn)大于繪制所耗費(fèi)的時(shí)間。因此,針對(duì)長(zhǎng)脈沖數(shù)據(jù)的繪制任務(wù),可利用本文設(shè)計(jì)的SetTimeContext方法先獲取低采樣率的數(shù)據(jù)。SetTimeContext方法允許用戶從MDSplus數(shù)據(jù)庫中獲取不同采樣率的數(shù)據(jù)。當(dāng)?shù)筒蓸勇蕯?shù)據(jù)快速繪制完成后,數(shù)據(jù)繪制模塊在后臺(tái)繼續(xù)接收高采樣率的數(shù)據(jù),當(dāng)接收完成后,實(shí)驗(yàn)人員可以自行選擇是否將波形更新為高采樣率的數(shù)據(jù)。該功能的繪制流程如圖8所示。
Figure 8 Flow chart of resampling function圖8 重采樣繪制功能流程圖
通過這種方法實(shí)現(xiàn)的數(shù)據(jù)重采樣功能,在應(yīng)對(duì)將來的3 600 s脈沖實(shí)驗(yàn)時(shí),能夠極大節(jié)省繪制時(shí)實(shí)驗(yàn)人員的等待時(shí)間。具體效果如圖9所示。圖9中,“Before Resampling”為500 Hz采樣率的數(shù)據(jù)繪制效果,“After Resampling”為5 000 Hz采樣率的數(shù)據(jù)繪制效果。
Figure 9 Plotting effect of resampling function 圖9 重采樣功能繪制效果
在界面設(shè)計(jì)上,由于數(shù)據(jù)繪制模塊的主要目標(biāo)是滿足實(shí)驗(yàn)人員分析數(shù)據(jù)的需求,因此波形繪制界面在整體界面中占有很大的比重。除此之外,本文還設(shè)計(jì)了諸如基本功能選擇欄、配置信息設(shè)置、全局模式設(shè)置、基本信息顯示和小功能欄等模塊方便實(shí)驗(yàn)人員使用。界面的整體布局如圖10所示。
Figure 10 Interface layout of data plotting module 圖10 數(shù)據(jù)繪制模塊界面布局
為檢測(cè)系統(tǒng)在時(shí)間、空間和功能上的性能是否能夠滿足需求,現(xiàn)對(duì)數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)繪制2個(gè)模塊的相關(guān)性能進(jìn)行測(cè)試。
由于數(shù)據(jù)的壓縮效率和數(shù)據(jù)的讀取時(shí)間對(duì)系統(tǒng)整體的使用影響最大,本節(jié)主要測(cè)試數(shù)據(jù)壓縮的空間性能和數(shù)據(jù)讀取的時(shí)間性能。
系統(tǒng)測(cè)試中客戶端環(huán)境為Intel Core i7-8700K處理器、16 GB DDR4內(nèi)存、1 000 Mbps網(wǎng)絡(luò);數(shù)據(jù)服務(wù)器環(huán)境為Intel Xeon E5-2450L處理器、8 GB DDR3內(nèi)存、1 000 Mbps網(wǎng)絡(luò)、MDSplus版本為7.96-stable。
數(shù)據(jù)壓縮方面,測(cè)試采用26624、26625、26635三炮的實(shí)驗(yàn)數(shù)據(jù)在文本文件下與MDSplus數(shù)據(jù)服務(wù)器內(nèi)相應(yīng)炮號(hào)脈沖樹下的.datafile文件字節(jié)大小的不同來計(jì)算壓縮率,結(jié)果如表1所示。經(jīng)測(cè)試得到MDSplus數(shù)據(jù)的壓縮率平均為15.5%,與LZO算法平均20%的壓縮率[11]相比,進(jìn)一步提高了存儲(chǔ)空間的利用率。
Table 1 MDSplus file compression ratio表1 MDSplus文件壓縮率
數(shù)據(jù)讀取方面,由于MDSplus具有分段管理數(shù)據(jù)的特性,服務(wù)器在處理讀取數(shù)據(jù)的請(qǐng)求時(shí)會(huì)按數(shù)據(jù)段異步執(zhí)行讀取和傳輸操作,所以單次數(shù)據(jù)請(qǐng)求的處理時(shí)間將由網(wǎng)絡(luò)傳輸速度決定,數(shù)據(jù)讀取耗時(shí)可忽略不計(jì)。
數(shù)據(jù)繪制模塊的測(cè)試主要是數(shù)據(jù)繪制模塊執(zhí)行各項(xiàng)繪制功能所需的時(shí)間,以及軟件運(yùn)行的穩(wěn)定性。各功能所需執(zhí)行時(shí)間如表2所示。
Table 2 Execution time of module functions 表2 數(shù)據(jù)繪制模塊各功能耗時(shí)
經(jīng)多次測(cè)試,數(shù)據(jù)繪制模塊對(duì)于單個(gè)約127 MB的數(shù)據(jù)文件繪制的平均耗時(shí)為530 ms。而在繪制2個(gè)總大小為253 MB的數(shù)據(jù)文件這種較為極端的情況時(shí),繪制耗時(shí)平均為1 260 ms。針對(duì)這種情況對(duì)采樣率為5 000 Hz的原數(shù)據(jù)文件分別進(jìn)行1 000 Hz和500 Hz的重采樣繪制之后,平均繪制耗時(shí)則分別為315 ms和133 ms,該功能能夠在保證一定繪制質(zhì)量的同時(shí)極大地減少繪制耗時(shí)。
本文基于MDSplus的數(shù)據(jù)存儲(chǔ)模塊和基于C++的數(shù)據(jù)繪制模塊共同實(shí)現(xiàn)了數(shù)據(jù)的分段存儲(chǔ)、分段讀取、實(shí)時(shí)繪制等射頻負(fù)離子源脈沖實(shí)驗(yàn)迫切需求的功能。而MDSplus對(duì)實(shí)驗(yàn)數(shù)據(jù)的高效壓縮以及數(shù)據(jù)繪制模塊提供的多種功能進(jìn)一步提高了實(shí)驗(yàn)過程中數(shù)據(jù)存儲(chǔ)和分析的效率,改善了實(shí)驗(yàn)人員的體驗(yàn),也通過了時(shí)間的考驗(yàn)。該系統(tǒng)除了可以應(yīng)用于射頻負(fù)離子源脈沖實(shí)驗(yàn)這類中性束注入實(shí)驗(yàn)以外,對(duì)于大部分需要大量繪制和存儲(chǔ)實(shí)驗(yàn)數(shù)據(jù)的使用場(chǎng)景,均能起到減少數(shù)據(jù)存儲(chǔ)空間、分段管理數(shù)據(jù)和實(shí)時(shí)繪制數(shù)據(jù)等作用。然而,系統(tǒng)本身仍舊存在一些需要改進(jìn)的地方。下一步將針對(duì)數(shù)據(jù)繪制模塊使用過程中內(nèi)存占用較高、無法保留已繪制的頁面、最大僅支持三炮數(shù)據(jù)對(duì)比繪制等問題,進(jìn)行進(jìn)一步改進(jìn)和完善。同時(shí),也將繼續(xù)在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)優(yōu)化和數(shù)據(jù)存儲(chǔ)管理等方面進(jìn)行探索,以求找到更高效、更靈活的數(shù)據(jù)存取方式。