摘 要: 基于.net開發(fā)平臺(tái),借助C#語言,,利用軟構(gòu)件技術(shù)完成了氡及其子體運(yùn)移仿真軟件開發(fā),。討論了仿真系統(tǒng)的軟件實(shí)現(xiàn)過程,簡(jiǎn)述了系統(tǒng)的功能模塊及關(guān)鍵技術(shù)實(shí)現(xiàn),。實(shí)現(xiàn)了氡及其子體運(yùn)移機(jī)制研究的計(jì)算機(jī)化。
關(guān)鍵詞: .net;運(yùn)移,; 計(jì)算機(jī)仿真; 團(tuán)簇
針對(duì)氡氣及其子體運(yùn)移機(jī)制的研究是開展氡氣研究的基礎(chǔ),。近年來,對(duì)氡氣運(yùn)移機(jī)制提出了新的研究角度:團(tuán)簇,、微粒等方面[1-2],。經(jīng)反復(fù)論證,團(tuán)簇理論不斷趨于成熟,,但研究手段較為落后,,僅通過通用仿真軟件進(jìn)行數(shù)據(jù)處理,針對(duì)性差,。因此,,計(jì)算機(jī)仿真技術(shù)在氡氣運(yùn)移研究領(lǐng)域中存在技術(shù)空白。本文利用模擬仿真技術(shù)應(yīng)用到氡氣運(yùn)移,、分布等相關(guān)研究中,,對(duì)研究系統(tǒng)的結(jié)構(gòu)、功能和行為進(jìn)行動(dòng)態(tài)的比較和模仿,,提高研究技術(shù)的效用性和安全性,。
1 系統(tǒng)概述
該系統(tǒng)的開發(fā)借助計(jì)算機(jī)仿真學(xué)、圖形學(xué),結(jié)合軟接口設(shè)計(jì)的原則[3],完成了系統(tǒng)功能模塊的開發(fā),。系統(tǒng)功能模塊分為文件管理,、圖形顯示、數(shù)值分析與模擬,、窗口管理,、幫助五個(gè)部分。系統(tǒng)設(shè)計(jì)過程中統(tǒng)籌考慮系統(tǒng)功能,,結(jié)合軟件工程[4]設(shè)計(jì)原理,,采用模塊化設(shè)計(jì)思路,完成系統(tǒng)設(shè)計(jì),。
1.1 文件管理
文件管理模塊主要用于系統(tǒng)數(shù)據(jù)管理,、數(shù)據(jù)通訊等功能。系統(tǒng)數(shù)據(jù)將以文本的形式進(jìn)行管理,,該文本可在其他文本編輯器(例如記事本)或電子表格(例如EXCEL)中打開,并通過數(shù)據(jù)導(dǎo)入,、數(shù)據(jù)導(dǎo)出功能模塊完成數(shù)據(jù)通訊。
1.2 圖形顯示
圖形顯示功能模塊提供二維曲線顯示和三維曲線顯示,。二維曲線顯示包括:射氣濃度隨距離分布、射氣濃度隨時(shí)間分布,、不同方向上離散點(diǎn)的計(jì)數(shù)對(duì)比規(guī)律的描述,。三維曲線顯示包括:射氣濃度等高線描述,。
1.3 數(shù)值模擬
數(shù)值模擬功能模塊用于模擬未知參量、模擬結(jié)果的分析和整理,、確定修正系數(shù)等,。此外,利用理論模型進(jìn)行數(shù)值模擬,,得到的模擬值和實(shí)驗(yàn)值進(jìn)行分析,,進(jìn)而完成理論模型的論證。模擬界面如圖1所示,。
2 關(guān)鍵技術(shù)算法設(shè)計(jì)
在系統(tǒng)設(shè)計(jì)過程中采用面向?qū)ο蟮脑O(shè)計(jì)思路,,自頂向下進(jìn)行功能抽象,通過軟件分層結(jié)合軟接口調(diào)用進(jìn)行信息通訊,,保證模塊的獨(dú)立性,、程序的可重用性。在設(shè)計(jì)過程中,,涉及到的關(guān)鍵技術(shù)及模塊有:數(shù)據(jù)流管理模塊,、數(shù)據(jù)值到曲線轉(zhuǎn)換模塊及曲線顯示模塊。
2.1 數(shù)據(jù)流管理模塊
2.1.1 模塊分析及流程設(shè)計(jì)
“數(shù)據(jù)流管理模塊”主要完成數(shù)據(jù)流通訊,,系統(tǒng)根據(jù)設(shè)計(jì)需要提供四類不同的操作:直接導(dǎo)入數(shù)據(jù),;根據(jù)導(dǎo)入的數(shù)據(jù)在相應(yīng)對(duì)話框顯示;將導(dǎo)入的數(shù)據(jù)值轉(zhuǎn)化成二維曲線顯示,;將導(dǎo)入的數(shù)據(jù)值轉(zhuǎn)化成三維曲面顯示,。數(shù)據(jù)導(dǎo)出是導(dǎo)入的逆過程。
算法步驟如下:系統(tǒng)讀數(shù)據(jù)后經(jīng)數(shù)據(jù)預(yù)處理,,然后判斷操作類型(包含四種操作類型),,根據(jù)不同的操作類型調(diào)用不同模塊接口。
2.1.2 關(guān)鍵算法實(shí)現(xiàn)
程序采用模塊化設(shè)計(jì)思路,,通過兩個(gè)“類對(duì)象”完成系統(tǒng)設(shè)計(jì):Class1“類對(duì)象”讀取數(shù)據(jù)流并進(jìn)行數(shù)值換算,、display“窗體類對(duì)象”提供圖形顯示設(shè)計(jì)工作。
功能函數(shù):openfile()打開文件夾,、class.ndclass.Disfun()數(shù)據(jù)過濾,、ndclass.ndzb()特征值提取、 getndzb() 等高濃度擬合,、class.ndclass.Nhfun()數(shù)據(jù)平滑,、getmaxclass1.DisData()數(shù)據(jù)預(yù)處理等函數(shù),以及其他數(shù)值處理,、返回函數(shù)編寫在Class1“類對(duì)象”中,,以提供不同的模塊調(diào)用。
功能函數(shù):OnPaint()繪制、MyPaint()重載,、getkd()坐標(biāo)轉(zhuǎn)換,、drawqx()、曲線顯示等函數(shù),,以及其他系統(tǒng)輔助函數(shù)編寫在display窗體“類對(duì)象” 中,。部分代碼如下:
protected override void OnPaint(PaintEventArgs e)
{ base.OnPaint (e);
datamaxx = getmaxclass1.getmaxnum (data1);
datamaxy = getmaxclass1.getmaxnum (data2);
ndclass1.ndzb(DataFileName,data1,data2,data3);
k = ndclass1.rei ();
getkd(datamaxx,datamaxy);
…
2.2 數(shù)據(jù)值到曲線轉(zhuǎn)換模塊
2.2.1模塊分析及流程設(shè)計(jì)
數(shù)值曲線包括二維曲線和三維曲線。“數(shù)據(jù)值到曲線轉(zhuǎn)換模塊”將數(shù)據(jù)值進(jìn)行預(yù)處理分析后,,提取特征點(diǎn)的數(shù)據(jù)信息,,經(jīng)擬合及平滑流程后導(dǎo)入系統(tǒng)在屏幕上顯示。
流程設(shè)計(jì)如下:系統(tǒng)首先讀數(shù)據(jù),,判斷數(shù)據(jù)的有效性之后存入相應(yīng)的數(shù)組列表中,。然后系統(tǒng)進(jìn)行數(shù)據(jù)預(yù)處理,從原始數(shù)據(jù)中提取特征信息,,經(jīng)過數(shù)據(jù)平滑之后,,將其轉(zhuǎn)換成標(biāo)準(zhǔn)格式。同時(shí)按坐標(biāo)數(shù)據(jù),、連接信息,、濃度特征三部分分類存放后導(dǎo)入系統(tǒng)繪制曲線。
數(shù)據(jù)值到三維曲線轉(zhuǎn)化模塊與二維曲線繪制有著異曲同工之妙,,不同在于三維等高線的繪制過程中涉及到的濃度等高點(diǎn)的確定,,因此,程序?qū)⒓尤?ldquo;數(shù)據(jù)擬合”功能模塊,。從而,,大大縮短開發(fā)周期。數(shù)據(jù)值到三維曲線轉(zhuǎn)化模塊流程設(shè)計(jì)如圖2所示,。
2.2.2 關(guān)鍵算法實(shí)現(xiàn)
數(shù)據(jù)值到曲線的轉(zhuǎn)換模塊主要應(yīng)用在數(shù)據(jù)流通信部分,,完成的工作是將讀入的數(shù)據(jù)值轉(zhuǎn)化成圖像形式顯示在屏幕上。根據(jù)轉(zhuǎn)換曲線類別的不同,,操作執(zhí)行的流程也有所不同,。因此,需要進(jìn)行判斷操作,選擇不同的模塊入口,。程序設(shè)計(jì)的部分代碼如下:
public void ndzb(string s ,double[] datax,double[] datay,double[] datan)
{ Class1.readerclass readerclass = new readerclass ();
射氣運(yùn)移模擬系統(tǒng).Class1.getmaxclass getmaxclass = new getmaxclass ();
maxn = getmaxclass.getmaxnum (datan);
AnalNDFuncion(maxn);
for(xhblj = 0;xhblj<k;xhblj++)
{ if( datax[xhblj] > 0 & datay[xhblj] == 0 )
{ area1.Add ( datax[xhblj] );}…
if(area1.Count >0)
…
2.3曲線顯示模塊
2.3.1模塊設(shè)計(jì)分析及流程設(shè)計(jì)
曲線顯示模塊為用戶提供直觀的圖形界面顯示,,包含二維圖形顯示、三維圖形顯示模塊,。曲線顯示模塊設(shè)計(jì)中,,將根據(jù)“數(shù)據(jù)值到曲線轉(zhuǎn)換模塊”生成的有效特征數(shù)據(jù)值進(jìn)行繪制。由于GDI+坐標(biāo)系統(tǒng)與常用的笛卡爾坐標(biāo)系不同,,因此系統(tǒng)提供了坐標(biāo)變換模塊,。二維曲線同三維曲線的設(shè)計(jì)理念相似,,只是在繪制技巧中有所不同。現(xiàn)以三維曲線繪制流程為例,,流程如圖3所示,。
2.3.2 關(guān)鍵算法實(shí)現(xiàn)
曲線繪制顯示功能主要采用了GDI+圖形設(shè)備接口技術(shù)完成曲線繪制要求,系統(tǒng)通過Graphics類對(duì)象提供完備的繪制方法和屬性,,部分代碼如下:
if(VerOrLevbool==0)//豎直方向的濃度分布;
{ PMx = tranx / cursorx *(PMxArr[i]-stapot)+40+tranx;
PMy = VerNDLineCla.rePMY (PMDisArr); }
else if (VerOrLevbool==1)//水平上向上的濃度分布,;
{ PMx = LevNDLineCla.rePMX (PMDisArr); … }}
在繪制過程中主要調(diào)用GDI+ System.Drawing類中的:Brush,、Font、Graphics,、Pen,、Region等類,以及Graphics 類的DrawLine,、DrawString等方法,,繪制出氡及其子體二維和三維分布曲線。
本文以計(jì)算機(jī)模擬作為氡及其子體運(yùn)移機(jī)制研究的一種新手段和工具,,模擬分析了氡及其子體運(yùn)移的數(shù)學(xué)模型,,獲得了有參考價(jià)值的分析結(jié)果。該結(jié)論對(duì)揭示團(tuán)簇理論的科學(xué)性具有重要意義,,同時(shí)對(duì)揭示地氣向上運(yùn)移,、氣溶膠的形成與運(yùn)移以及團(tuán)簇研究都具有積極和深遠(yuǎn)的影響。
模擬技術(shù)提供的預(yù)見性,,可預(yù)測(cè)系統(tǒng)的特性,、外作用的影響,可以更直觀地為團(tuán)簇理論提供有力的技術(shù)支持,,并為氡運(yùn)移研究提供新的研究途徑,。這種研究思路充分利用計(jì)算機(jī)的豐富資源,提高研發(fā)的安全性,,而且具有經(jīng)濟(jì),、可靠、易升級(jí)等優(yōu)點(diǎn),。因此,,計(jì)算機(jī)模擬引入射氣分布規(guī)律研究是一個(gè)必然的趨勢(shì)。
參考文獻(xiàn)
[1] 樂仁昌. 氡及其子體的釋放和運(yùn)移規(guī)律及機(jī)理研究[D]. 成都:成都理工大學(xué)博士學(xué)位論文.2002.5,;
[2] 賈文懿,方方,周蓉生.氡及其子體運(yùn)移規(guī)律與機(jī)理研究[J]. 核技術(shù),2000,23(3):169-175.
[3] 呂云翔,王晰鵬編著.軟件工程.北京:人民郵電出版社,,2009.
[4] 肖丁,吳建林,周春燕,等編著.軟件工程模型與方法.北京:北京郵電大學(xué)出版社,2008.