曹志松 ,劉紹然,裴一飛
(1. 可靠性與環(huán)境工程技術(shù)重點(diǎn)實(shí)驗(yàn)室;2. 北京衛(wèi)星環(huán)境工程研究所:北京 100094)
衛(wèi)星虛擬熱試驗(yàn)技術(shù)是指在虛擬熱試驗(yàn)平臺(tái)所構(gòu)建的虛擬熱試驗(yàn)環(huán)境中,利用建立的衛(wèi)星熱物理數(shù)字模型開展試驗(yàn)研究,獲得衛(wèi)星隨時(shí)間和外熱流而變化的溫度場分布[1],以驗(yàn)證衛(wèi)星的熱設(shè)計(jì);另外通過試驗(yàn)得到的能夠反映衛(wèi)星溫度場的特性參數(shù),對衛(wèi)星的熱物理數(shù)字模型進(jìn)行修正。為了達(dá)到這個(gè)目的,國內(nèi)外都在開展衛(wèi)星虛擬熱試驗(yàn)技術(shù)研究。
目前國外已有一些和虛擬熱試驗(yàn)平臺(tái)相似的軟件,但都不具備完整獨(dú)立的建模模塊。例如NEVADA[2]軟件在建立模型時(shí)要通過用戶輸入一些固定格式的文本來實(shí)現(xiàn),使用起來很不方便;而Thermal Desktop軟件建模時(shí)則要通過與AutoCAD耦合來實(shí)現(xiàn),同樣會(huì)受到很多制約。
北京衛(wèi)星環(huán)境工程研究所也開展了衛(wèi)星虛擬熱試驗(yàn)技術(shù)研究,自主研發(fā)了衛(wèi)星虛擬熱試驗(yàn)平臺(tái)。它由多個(gè)相對獨(dú)立的功能模塊構(gòu)成,各個(gè)模塊之間不能直接進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)傳輸需要借助數(shù)據(jù)庫進(jìn)行,即各模塊從數(shù)據(jù)庫檢索并確認(rèn)源數(shù)據(jù),然后讀取源數(shù)據(jù)并完成特定的任務(wù)計(jì)算,計(jì)算后只需要將計(jì)算結(jié)果寫入數(shù)據(jù)庫中相應(yīng)的位置。由于熱試驗(yàn)系統(tǒng)的結(jié)構(gòu)都很復(fù)雜,包含熱沉、紅外加熱裝置、支架等,加熱條帶的數(shù)量多達(dá)數(shù)千根,同時(shí)會(huì)有各種位置的開孔。本文開發(fā)的建模工具具有很強(qiáng)的功能,可以根據(jù)紅外籠的框架形狀、條帶間距以及用戶輸入的其他參數(shù)自動(dòng)的生成紅外籠模型;還可以用于基于紅外燈陣的加熱籠模型建立,具有模型結(jié)構(gòu)的調(diào)整功能。此外,本衛(wèi)星虛擬熱試驗(yàn)平臺(tái)建模工具在三維建模時(shí)是一個(gè)完全的可視化過程。下面將重點(diǎn)介紹衛(wèi)星虛擬熱試驗(yàn)平臺(tái)建模工具模塊。
虛擬熱試驗(yàn)平臺(tái)的框架結(jié)構(gòu)如圖1所示。首先利用建模工具模塊創(chuàng)建或者從外部導(dǎo)入衛(wèi)星數(shù)字模型及試驗(yàn)系統(tǒng)數(shù)字模型,并建立與測控系統(tǒng)以及衛(wèi)星的工作狀態(tài)的接口,然后利用平臺(tái)的核心求解器進(jìn)行模型數(shù)值計(jì)算,最后對計(jì)算結(jié)果進(jìn)行分析。
1)建模工具模塊
虛擬熱試驗(yàn)平臺(tái)的建模工具模塊包含有立方體、球體和圓柱體3種基本幾何體,通過幾何體的選取可進(jìn)行幾乎任意幾何形狀的建模;能進(jìn)行幾何體間的布爾運(yùn)算,比如聯(lián)合、交集、一減二運(yùn)算以及二減一運(yùn)算等等;還可以進(jìn)行基于數(shù)學(xué)函數(shù)的曲線、多面體、管道等建模并劃分網(wǎng)格。
圖1 虛擬熱試驗(yàn)平臺(tái)框架結(jié)構(gòu)圖Fig. 1 Frame structure of virtual thermal test platform
如圖 2(a)為建模工具模塊所建立的管道模型示意圖,圖2(b)為管道模型及網(wǎng)格劃分。
圖2 管道模型及其網(wǎng)格Fig. 2 Pipeline model and its grids
2)虛擬熱試驗(yàn)平臺(tái)對模型的接口
虛擬熱試驗(yàn)平臺(tái)對模型的接口描述采用“整體-局部”分層對象組合策略,為表現(xiàn)試驗(yàn)系統(tǒng)的物理結(jié)構(gòu)提供了強(qiáng)大的功能。試驗(yàn)系統(tǒng)一般由衛(wèi)星、熱沉、紅外加熱籠、紅外燈陣以及工裝支架等組成??梢岳梅謱訉ο蠼M合策略來組建試驗(yàn)系統(tǒng)模型,以紅外加熱籠為例:可以將紅外加熱籠的結(jié)構(gòu)分解成若干分區(qū),針對每個(gè)分區(qū)都可以在軟件模型中表示成一個(gè)對象,再將它們組合起來形成紅外加熱籠;針對分區(qū)對象,還可以進(jìn)一步分解成子分區(qū)對象。圖3是試驗(yàn)系統(tǒng)樹型結(jié)構(gòu)示意圖。
圖3 試驗(yàn)系統(tǒng)樹型結(jié)構(gòu)Fig. 3 Tree structure of test system
從圖3看,虛擬熱試驗(yàn)平臺(tái)的模型結(jié)構(gòu)是一個(gè)遞推的分層結(jié)構(gòu),即系統(tǒng)可以分解成各個(gè)子系統(tǒng),而子系統(tǒng)還可以再進(jìn)行細(xì)分,因此系統(tǒng)結(jié)構(gòu)模型是一個(gè)樹型結(jié)構(gòu)。描述這種分層結(jié)構(gòu)的數(shù)據(jù)表有兩種方法:鄰接列表模式和預(yù)排序遍歷樹算法。下面比較兩種樹型數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn):
1)鄰接列表模式
所謂鄰接列表模式(adjacency list mode)是通過給每個(gè)節(jié)點(diǎn)增加一個(gè)屬性來表示這個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)(parent ),從而將整個(gè)樹狀結(jié)構(gòu)以表的形式描述出來[3],如表1所示。
表1 紅外加熱籠分區(qū)結(jié)構(gòu)鄰接數(shù)據(jù)列表Table 1 Adjacency list of infrared cage sub-areas
如此一來,可以從根節(jié)點(diǎn)知道到任意節(jié)點(diǎn)的路徑。比如“3級子部件 1-1-1”的路徑是“試驗(yàn)系統(tǒng)>紅外加熱器>紅外加熱籠>主分區(qū) 1”。為了得到這樣的一個(gè)路徑,需要從最末級開始查詢得到它的父節(jié)點(diǎn)“紅外加熱籠”,并把它添加到路徑中;然后再查詢“紅外加熱籠”的父節(jié)點(diǎn)并把它也添加到路徑中;以此類推直到最高層的“試驗(yàn)系統(tǒng)” 。這種方法比較簡單,容易理解。但是也有缺點(diǎn),主要表現(xiàn)為運(yùn)行速度很慢,由于尋找每個(gè)節(jié)點(diǎn)都需要進(jìn)行數(shù)據(jù)庫查詢,在數(shù)據(jù)量大的時(shí)候,要進(jìn)行很多查詢才能完成一個(gè)樹的遍歷;另外由于要進(jìn)行遞歸運(yùn)算,遞歸的每一級都需要占用一些內(nèi)存,所以其空間利用效率也比較低。
2)預(yù)排序遍歷樹算法
預(yù)排序遍歷樹算法(modified preorder tree traversal algorithm)不需要使用遞歸計(jì)算,可以實(shí)現(xiàn)更加快速的遍歷。針對圖3所示的樹,首先將每層的結(jié)構(gòu)編排一個(gè)序號,如在根節(jié)點(diǎn)“試驗(yàn)系統(tǒng)“的左側(cè)標(biāo)寫序號 1;再沿著這個(gè)樹向下層搜尋,在“衛(wèi)星“的左側(cè)寫上序號 2;然后繼續(xù)前進(jìn)給每層結(jié)構(gòu)的每一個(gè)節(jié)點(diǎn)都標(biāo)上序號??梢詫⑦@些節(jié)點(diǎn)的序號值lft、rgt存儲(chǔ)到數(shù)據(jù)庫中,如表2所示。
表2 紅外加熱籠分區(qū)結(jié)構(gòu)預(yù)排序遍歷樹算法數(shù)據(jù)表Table 2 Variables inmodified preordered tree traversal algorithm of infrared cage sub-areas
這種方法不使用遞歸查詢算法,具有更高的查詢效率。例如當(dāng)需要得到“某項(xiàng)下的所有節(jié)點(diǎn),就可以這樣寫查詢語句:
SELECT * FROM engElement WHERE lft BETWEEN num1 AND num2 ORDER BY lft ASC;
要獲知一個(gè)節(jié)點(diǎn)的路徑比較簡單,如果想知道某節(jié)點(diǎn)的路徑,就利用它的序號左右值 num1和num2來做一個(gè)查詢,其語句為:
SELECT name FROM engElementWHERE lft
某個(gè)節(jié)點(diǎn)的子孫節(jié)點(diǎn)數(shù)目計(jì)算也很簡單:子孫總數(shù)=(右值-左值-1)/2。
本建模工具模塊除了可以根據(jù)用戶需求創(chuàng)建出任意形狀的幾何體外,也提供了與 Pro/E[4]、SolidWorks等商業(yè)軟件的接口,用戶可以將這些商業(yè)軟件中的模型導(dǎo)入虛擬熱試驗(yàn)平臺(tái)中。此外,建模工具可以直接存取NEVADA軟件的文件格式,從而方便地進(jìn)行熱分析計(jì)算。
本軟件的建模工具與一般商業(yè)建模造型軟件最大的區(qū)別在于它的服務(wù)對象,可以很方便地進(jìn)行試驗(yàn)設(shè)備模型的建立。下面將介紹利用建模工具模塊來創(chuàng)建紅外加熱籠模型。
紅外加熱籠可以劃分成許多條帶,因此其分區(qū)是由這些條帶組成。劃分的條帶數(shù)量非常多,如果由用戶來完成每根條帶的建模,則工作量非常繁重,因此系統(tǒng)為用戶提供了自動(dòng)批量生成條帶模型的工具。在用戶接口界面中,用戶首先需要輸入該分區(qū)的形狀參數(shù)(紅外加熱籠的分區(qū)形狀類型不多,主要有四邊形、三角形、圓柱面、圓錐面等);然后再輸入條帶拉伸方向、條帶間隔等參數(shù),就可以自動(dòng)生成條帶。同時(shí),一個(gè)分區(qū)為了條帶布置方便以及電源的合理配置,往往還需要?jiǎng)澐趾芏嘧蛹訜岱謪^(qū),它們一般是按照一定規(guī)律排列的,系統(tǒng)為其提供了自動(dòng)劃分加熱分區(qū)的工具。
平臺(tái)為加熱籠的分區(qū)設(shè)計(jì)提供了參數(shù)設(shè)計(jì)界面,可以進(jìn)行條帶寬度、死區(qū)高度、彈簧長度、擋板尺寸、最大電流等參數(shù)的設(shè)置。樹型菜單可以使用戶靈活的設(shè)置紅外加熱籠模型每一級分區(qū)的參數(shù)。
根據(jù)熱設(shè)計(jì)的結(jié)果,平臺(tái)自動(dòng)進(jìn)行紅外加熱籠條帶的生成,同時(shí)將結(jié)果保存在數(shù)據(jù)庫中,另外用戶還可以很方便地進(jìn)行局部修改,這為下一步試驗(yàn)系統(tǒng)的熱分析計(jì)算提供了有力的保證。圖4是使用本平臺(tái)的建模工具模塊對某型號的紅外加熱籠所建立的模型圖。
圖4 紅外加熱籠(含條帶)模型Fig. 4 Model of infrared cage with stripes
本文介紹了虛擬熱試驗(yàn)平臺(tái)中的建模工具模塊,它既可建立幾乎任意幾何形狀的模型,又能作幾何體間的布爾運(yùn)算并劃分網(wǎng)格;模型的接口描述采用“整體-局部”分層對象組合策略,所建立模型的數(shù)據(jù)保存在數(shù)據(jù)表中,采用預(yù)排序遍歷樹算法,而不是傳統(tǒng)的遞歸算法,具有更高的遍歷效率;建模工具模塊提供了與Pro/E、SolidWorks等商業(yè)軟件的接口,用戶可以方便地將商業(yè)軟件中的模型導(dǎo)入虛擬熱試驗(yàn)平臺(tái)中。
(References)
[1]Luis R. The virtual test bed project, NASA/CR-2003-211527[R], 2003-12-15
[2]TAC Technologies Inc. Nevada user’s guide[G], 2004
[3]宛延凱. 工程數(shù)據(jù)庫系統(tǒng)[M]. 北京: 清華大學(xué)出版社,1999: 7
[4]吳立軍, 陳波. Pro/ENGINEER 二次開發(fā)技術(shù)基礎(chǔ)[M].北京: 電子工業(yè)出版社, 2006: 7