彭思濤,陸利剛,李 偉,馬忠英,張 薇,姚建凡,李 磊
(1.中廣核研究院有限公司, 廣東 深圳 518034;2.成都理工大學(xué)工程技術(shù)學(xué)院, 四川 樂(lè)山 614007;3.核工業(yè)西南物理研究院, 四川 成都 610225)
在核電站設(shè)計(jì)和安全分析過(guò)程中,熱工水力系統(tǒng)建模與分析是一個(gè)重要的步驟。已有的熱工水力仿真和分析軟件多采用文本形式建模,建模耗時(shí)長(zhǎng),易出錯(cuò),效率低。使用圖形化建模方法,可以有效地提高建模效率[1-2]。因?yàn)闊峁にο到y(tǒng)分析軟件較多且輸入標(biāo)準(zhǔn)不一致,使得建模工具需要對(duì)不同軟件進(jìn)行適配,使用配置思想,只修改配置文件即可對(duì)不同分析軟件進(jìn)行適配,大大減少了軟件開(kāi)發(fā)的工作量。配置思想是程序開(kāi)發(fā)的一種實(shí)現(xiàn)方法,其將程序中需要的信息用配置信息進(jìn)行存儲(chǔ),程序的界面及相應(yīng)的流轉(zhuǎn)、控制等行為根據(jù)配置信息進(jìn)行自動(dòng)切換。所以當(dāng)用戶(hù)需求有變化時(shí),通過(guò)修改相應(yīng)的配置信息即可實(shí)現(xiàn)相應(yīng)效果,而不需修改程序源代碼[2]。基于配置思想開(kāi)發(fā)的系統(tǒng)具有數(shù)據(jù)可配置、界面可配置、流程可配置的優(yōu)點(diǎn)。在實(shí)現(xiàn)的過(guò)程中,最重要的就是配置文件的設(shè)計(jì)。配置文件可以對(duì)數(shù)據(jù)、界面中控件的類(lèi)型與位置等信息進(jìn)行保存,配置文件的形式包括: INI文件、XML文件、數(shù)據(jù)庫(kù)表等多種類(lèi)型[2]。對(duì)于存儲(chǔ)少量數(shù)據(jù)而言,XML文件優(yōu)勢(shì)在于數(shù)據(jù)定義明確、標(biāo)準(zhǔn)化格式以及便于維護(hù)和管理,XML文件在配置文件和系統(tǒng)信息的交換中大量使用[3]。因此,項(xiàng)目使用XML文件作為配置文件。
Java語(yǔ)言的跨平臺(tái)特性和豐富的繪圖功能使其非常適合作為一種圖形化應(yīng)用的開(kāi)發(fā)軟件。軟件界面使用Java Swing構(gòu)建,Swing開(kāi)發(fā)工具包大多數(shù)用來(lái)開(kāi)發(fā)Java應(yīng)用程序用戶(hù)界面,它包含很多控件,可以很方便的用來(lái)構(gòu)建界面[4]。
熱工水力系統(tǒng)建模由許多不同的元件組成,包括部件、構(gòu)件、接口、閥門(mén)等,這些元件預(yù)定義在元件庫(kù)中。用戶(hù)建模時(shí),需要新建一個(gè)項(xiàng)目并指明目標(biāo)分析軟件,程序?yàn)槊總€(gè)項(xiàng)目生成一個(gè)導(dǎo)航樹(shù)。導(dǎo)航樹(shù)自動(dòng)生成目標(biāo)分析軟件所需要的與圖形無(wú)關(guān)的參數(shù)配置項(xiàng)。用戶(hù)首先完成圖形無(wú)關(guān)的參數(shù)配置,然后從元件中選擇所需要的元件放入繪圖區(qū),在屬性面板配置元件的參數(shù),再以拖拽的方式將元件連接起來(lái)并配置連接參數(shù),至此,建模過(guò)程結(jié)束。建模工具可以自動(dòng)將圖形模型轉(zhuǎn)換成文本輸入卡。圖形化建模流程如圖1所示。
圖1 圖形化建模流程圖Fig.1 The flow chart of graphical modeling
元件庫(kù)使用樹(shù)型目錄方式展示,目錄樹(shù)導(dǎo)航是一種很常見(jiàn)的導(dǎo)航方式, 它能夠清晰地表現(xiàn)數(shù)據(jù)之間的層次和分類(lèi)關(guān)系[7]。并提供按名稱(chēng)進(jìn)行搜素的功能。元件庫(kù)目錄使用加載XML配置文件的方式生成。這樣,當(dāng)需要更新元件庫(kù)時(shí),只需要修改XML配置文件即可,這就是軟件開(kāi)發(fā)過(guò)程中應(yīng)用配置思想的益處。
項(xiàng)目導(dǎo)航窗口為每個(gè)項(xiàng)目生成一個(gè)目錄樹(shù),其中包含目標(biāo)分析軟件所需的圖形無(wú)關(guān)的配置項(xiàng),這些配置項(xiàng)也是通過(guò)加載XML配置文件的方式生成。項(xiàng)目目錄樹(shù)還包括所有添加到該項(xiàng)目中的圖形元件項(xiàng)。選擇目錄樹(shù)中的具體項(xiàng),便可以通過(guò)具體項(xiàng)關(guān)聯(lián)的屬性面板配置該項(xiàng)的參數(shù),同時(shí)可以對(duì)具體項(xiàng)進(jìn)行重命名、復(fù)制、刪除等編輯操作,這些操作將同步到繪圖區(qū)中。
屬性面板用于配置項(xiàng)目中各個(gè)具體項(xiàng)的參數(shù),對(duì)于每個(gè)具體項(xiàng),其參數(shù)配置內(nèi)容使用加載XML配置文件的方式來(lái)生成,其中包括參數(shù)之間的聯(lián)動(dòng)關(guān)系和參數(shù)內(nèi)部的限定條件,用于在輸入時(shí)進(jìn)行參數(shù)的條件控制和合法性檢查。比如有些參數(shù)在特定條件才能輸入,或者某些參數(shù)為必要參數(shù),不可以為空,另一些參數(shù)則不能超出指定的范圍。
繪圖區(qū)完成元件的圖形顯示并通過(guò)拖拽的方式進(jìn)行元件間的連接。對(duì)于熱工水力元件,需要考慮流體的流動(dòng)方向以及接口的夾角等參數(shù),這些參數(shù)在連接線(xiàn)上進(jìn)行配置,當(dāng)選擇該連接線(xiàn)時(shí),屬性面板將顯示該連接的可配置參數(shù),連接線(xiàn)的上下游連接規(guī)則及可配置參數(shù)使用加載XML配置文件的方式來(lái)生成。
圖形建模工具效果如圖2所示。
圖2 建模工具效果圖Fig.2 The effect diagram of the modeling tool
每一個(gè)圖形元件針對(duì)不同的目標(biāo)分析軟件具有不同的參數(shù)項(xiàng)。所以需要將元件庫(kù)中的元件類(lèi)型映射為目標(biāo)分析軟件中對(duì)應(yīng)的元件類(lèi)型。這種映射關(guān)系通過(guò)XML配置文件來(lái)指定。將元件從元件庫(kù)拖拽到繪圖區(qū)時(shí),將根據(jù)元件類(lèi)型名查找目標(biāo)分析軟件的映射類(lèi)型,如果沒(méi)有找到目標(biāo)類(lèi)型,則此元件不可添加到項(xiàng)目中。根據(jù)目標(biāo)類(lèi)型加載該圖形元件的圖形參數(shù)、元件配置參數(shù)等配置信息。元件映射流程如圖3所示。
圖3 元件映射流程圖Fig.3 The flow chart of element mapping
在對(duì)核電廠進(jìn)行安全分析時(shí),對(duì)系統(tǒng)完成圖形建模以后,由核電廠安全分析軟件讀取并進(jìn)行計(jì)算并得出結(jié)果。目前較為通用的核電廠安全分析程序大多要求程序員編寫(xiě)輸入卡, 進(jìn)行輸入操作和完成程序之間的調(diào)用[8]。所以需要將圖形模型轉(zhuǎn)換為文本輸入卡。
在文本輸入卡中,對(duì)同類(lèi)型的元件進(jìn)行編號(hào),構(gòu)成一個(gè)元件列表。元件的參數(shù)根據(jù)元件在列表中的位置形成一個(gè)參數(shù)列表。因?yàn)樵唧w有哪些參數(shù)是根據(jù)xml配置文件生成的,所以可以讀取元件中所有參數(shù)名來(lái)確定該元件需要輸出的參數(shù)。
在圖形模型轉(zhuǎn)文本輸入卡時(shí),將根據(jù)目的系統(tǒng)程序進(jìn)行適配。以中廣核系統(tǒng)瞬態(tài)分析程序GINKGO為例,轉(zhuǎn)換時(shí)需要首先將不同類(lèi)型的元件進(jìn)行分類(lèi)并進(jìn)行編號(hào),對(duì)于同一類(lèi)元件的某一個(gè)參數(shù),按其在元件列表中的順序輸出具體值構(gòu)成參數(shù)列表。元件的上下游關(guān)系由矩陣來(lái)表示,上游矩陣參數(shù)給出列表中所有元件的所有上游元件編號(hào),如果有多個(gè)上游元件則需要多行。同理下游矩陣給出列表中所有元件的下游元件編號(hào)。如果該元件沒(méi)有上/下游,則在矩陣中填“0”。
部件、接口和構(gòu)件都需要生成上/下游矩陣,其中構(gòu)件的上/下游都是部件,接口的上/下游也都是部件,部件的上/下游可能是部件、構(gòu)件或接口。部件上/下游矩陣只給出相鄰部件,所以需要排除構(gòu)件和接口,其生成流程如圖4所示。
圖4 部件上/下游矩陣生成流程圖Fig.4 The flow chart of upstream/downstream matrix generation of components
當(dāng)生成所有元件的上/下游矩陣后,就可以打印輸出模型的文本輸入卡。輸出文本輸入卡時(shí),先輸出與圖形元件無(wú)關(guān)的總體參數(shù)名及其值,再輸出與元件相關(guān)的參數(shù)名及其值。與元件相關(guān)的參數(shù)輸出流程如圖5所示。
圖5 與元件相關(guān)參數(shù)輸出流程圖Fig.5 The flow chart of element related parameter output
為了方便復(fù)用已有的文本輸入卡,同時(shí)讓修改文本輸入卡可以利用圖形建模的優(yōu)點(diǎn),建模工具提供從文本輸入卡轉(zhuǎn)為圖形模型的功能。在文本輸入卡中,不同類(lèi)型的元件處于不同的文本塊中,由文本塊的名字來(lái)區(qū)分,在轉(zhuǎn)換成圖形模型時(shí),根據(jù)文本塊名來(lái)決定圖形元件的類(lèi)型。然后再讀取各個(gè)元件的參數(shù)存入圖形模型中。上/下游關(guān)系矩陣的處理是圖形轉(zhuǎn)文本卡的逆過(guò)程。因?yàn)槲谋据斎肟](méi)有圖形元件的輸入位置,則使用自動(dòng)生成的位置,生成圖形模型后,由用戶(hù)手動(dòng)調(diào)各圖形元件的位置。如果多個(gè)輸入卡的圖形信息是一致的,則可以根據(jù)上下游關(guān)系以及類(lèi)型匹配各圖形元件的位置,使用一個(gè)圖形模型可以對(duì)應(yīng)多個(gè)輸入卡。輸入卡匹配圖形模型的導(dǎo)入流程如圖6所示。
圖6 輸入卡匹配圖形模型導(dǎo)入流程圖Fig.6 The flow chart of the matching graphic model import of the input card
本文給出了在核電站設(shè)計(jì)與安全分析過(guò)程中,一種使用圖形化建模工具實(shí)現(xiàn)熱工水力系統(tǒng)建模的實(shí)現(xiàn)方法。建模工具具有圖形化界面,方便系統(tǒng)中各元件參數(shù)的配置以及連接并提供基本的編輯功能。應(yīng)用配置思想,可以大大增加軟件的靈活性,避免頻繁的修改源代碼,僅需要修改配置文件即可實(shí)現(xiàn)對(duì)軟件的擴(kuò)展和更新。建模工具使用樹(shù)型目錄給出建模中所需的元件,用戶(hù)只須拖動(dòng)元件、配置參數(shù)、點(diǎn)按連接便可實(shí)現(xiàn)系統(tǒng)建模。工具實(shí)現(xiàn)了圖形化模型與文本輸入卡之間自動(dòng)相互轉(zhuǎn)換的算法,方便用戶(hù)重復(fù)利用已經(jīng)建好的圖形模型或文本輸入卡。本建模工具已經(jīng)與中廣核系統(tǒng)瞬態(tài)分析軟件GINKGO進(jìn)行適配使用,也在國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目“固有安全一體化小型氟鹽冷卻高溫堆技術(shù)研究”中為該項(xiàng)目的虛擬仿真技術(shù)研究提供圖形化系統(tǒng)建模功能,該工具的使用有效提高了建模效率,具有一定的實(shí)用價(jià)值。