何允欽,梁國柱,沈旭昆
(1.北京航空航天大學宇航學院,北京 100191;2.北京航空航天大學計算機學院,北京 100191)
自20世紀80年代開始,計算機輔助技術已在固體火箭發(fā)動機的研制中大量運用[1]。近年來,隨著計算機技術的飛速發(fā)展及人們對其期望值的不斷提高,固體火箭發(fā)動機領域的各種設計軟件已由最初的僅用于發(fā)動機局部性能或部件設計的算法程序,演變?yōu)槿缃衲芡瓿烧麄€發(fā)動機全系統(tǒng)仿真的大型軟件系統(tǒng)[2]。發(fā)展趨勢的本質是算法由相對孤立走向大規(guī)模集成。算法的大規(guī)模集成在增強設計能力的同時,也帶來了3個新問題,即算法的可重用性,算法集成的靈活性、適應性和可定制性,及“信息孤島”問題。算法集成與協(xié)作系統(tǒng)(Algorithm Integration and Collaboration System,AICS)[3]作為算法集成基礎軟件平臺為這些問題的解決提供一般途徑。
本文將以AICS為基礎,構造固體火箭發(fā)動機性能和結構方案設計軟件系統(tǒng),并將其應用于某戰(zhàn)術導彈發(fā)動機性能和結構方案設計。
計算機輔助設計被大量用于固體火箭發(fā)動機的研制。截至目前,國內(nèi)外的各高校和研究機構已開發(fā)了大量軟件系統(tǒng)[4-7],并在工程中獲得了成功應用。然而,隨著算法集成規(guī)模的不斷擴大,計算任務復雜度的急劇提升,3個重要的問題由此產(chǎn)生[8]。
固體火箭發(fā)動機領域包含大量算法,涉及火箭發(fā)動機原理、材料力學、流體力學等眾多學科知識。算法程序的開發(fā)成本較高,科研人員需要花費大量時間和精力來學習理論知識,進行程序編制、程序調試,并反復驗證才能完成。
實際工程中,設計人員一般會根據(jù)設計任務要求,將相關算法程序集成在一起來完成計算任務。不同計算任務一般會用到不同的算法,但相同算法也常常被用于不同計算任務。算法的可重用性是固體火箭發(fā)動機工程領域本身所具有的特點。更進一步,算法程序的重用有3個優(yōu)點:
(1)算法程序開發(fā)成本高、周期長,重用能大大減少工作量,縮短研制周期和節(jié)約研制經(jīng)費;
(2)重用能使設計人員“站在巨人的肩膀上”提升設計水平;
(3)重用能使算法程序在不同計算任務中得到充分驗證,從而確保其正確性和穩(wěn)定性。
然而,在目前存在的眾多固體火箭發(fā)動機設計軟件中,算法程序一般只針對特定工程計算任務來開發(fā)實現(xiàn),不同算法之間一般采用硬編碼或專用配置方式進行集成,導致不同算法程序完全“凍結”為一體,失去了算法程序原本的模塊化特征,從而不能直接在不同計算任務間重復使用。
工程實踐被很多復雜因素制約,因而常常是多變的。隨著設計策略的改變、各種因素的權衡,計算任務要求也會不斷地變更和調整。
在固體火箭發(fā)動機領域,處理計算任務的流程可表示為圖1。不難理解,處理計算任務的各個環(huán)節(jié)都緊密依賴于計算任務要求、限制條件和設計人員歷史經(jīng)驗。在實際工程場景中,計算任務要求和限制條件的變動會進而導致算法選取的變動、算法集成方式的變動、計算初始條件的變動等,甚至不同設計人員由于各自不同的歷史經(jīng)驗也可能對相同計算任務采取不同的策略。任務要求、限制條件、設計人員都是工程實踐中的易變因素。因此,軟件系統(tǒng)必須具有足夠的靈活性、適應性和可定制性,才能滿足復雜多變的計算任務要求和不同設計人員的需要。
圖1 處理計算任務的流程Fig.1 Flow chart of processing computational tasks
然而,目前各種固體火箭發(fā)動機設計軟件系統(tǒng)大都只是為完成特定工程計算任務而開發(fā)的。在軟件的開發(fā)實現(xiàn)中,算法的集成方式、初始條件的設定等易隨工作場景變化的邏輯通常采用硬編碼方式固化在軟件系統(tǒng)中或較專用的配置方式來設定,這致使在實際計算任務中設計人員很難根據(jù)需要進行調整或變更。
最初,計算機只被用于完成孤立、相對簡單的工程計算任務,如發(fā)動機部件設計,噴管內(nèi)流場仿真等。隨著計算機軟硬件技術的飛速發(fā)展,美國伊利諾伊大學已經(jīng)開發(fā)了同時考慮燃燒、流動、傳熱和結構等多因素耦合(多物理場)的超大規(guī)模固體火箭發(fā)動機全系統(tǒng)仿真軟件[2]。本質上,此類軟件能準確模擬真實工況的超大規(guī)模軟件系統(tǒng)是諸多不同學科專業(yè)的、更小的算法程序的集成。因此,算法的充分、有效集成是完成此類大規(guī)模計算軟件的關鍵。
目前,國內(nèi)的各種固體火箭發(fā)動機設計軟件系統(tǒng)大多只面向局部性能結構,且在開發(fā)實現(xiàn)時沒有事先考慮軟件系統(tǒng)之間的可集成性,使得不同軟件系統(tǒng)不能或很難被集成起來進一步完成更大規(guī)模的復雜計算任務。這就是國內(nèi)固體火箭發(fā)動機領域中廣泛存在的“信息孤島”現(xiàn)狀。
AICS是以“算法集成與協(xié)作”理論模型[3]為基礎的算法集成軟件平臺,其目的是為數(shù)值計算密集型工程領域提供統(tǒng)一的算法集成基礎,使設計人員能簡便、靈活、高效地處理繁雜易變的設計任務。為了能在工程設計任務中高效、靈活地運用AICS的算法集成功能,需理解其背后的理論模型,以及相關軟件功能機制。
傳統(tǒng)固體火箭發(fā)動機設計軟件大都是以“自頂向下,逐步細化”的算法設計思想開發(fā)完成的,即將計算任務分解為按一定邏輯順序計算的小算法(從1到n),如果小算法仍較復雜,則進一步分解(從1到m),直到算法足夠簡單能直接解決,如圖2所示。
圖2 傳統(tǒng)算法設計思想Fig.2 Traditional idea of algorithmic designs
特別在將算法編制成程序時,原本分解開的小算法按照固定計算流程通過硬編碼或專用配置方式又被“凍結”為一體,失去了算法原本的“模塊化”特征。更糟糕的是當設計任務發(fā)生改變需要在原有算法集成關系上增加、替換算法或重新調整算法之間的計算順序時,常需要對整個程序進行改動,造成“牽一發(fā)而動全身”的粘連效應。
進行算法集成時,需要同時協(xié)調好算法之間的數(shù)據(jù)傳遞關系和算法之間的計算流程。文獻[3]通過深入研究算法集成的內(nèi)在規(guī)律,發(fā)現(xiàn)算法在進行集成時,算法之間的計算順序依賴于算法之間的參數(shù)數(shù)據(jù)傳遞關系。本質上,在進行算法集成時,僅需設定好各算法之間的參數(shù)數(shù)據(jù)傳遞關系,然后反復不斷地驅動,獲得足夠輸入?yún)?shù)數(shù)據(jù)的算法進行計算,則整個計算流程完全可以自發(fā)地形成。文獻[3]稱這種自發(fā)形成的計算流程為算法輪循計算。
為便于理解,下面通過例子來進行介紹。假設在某個工程設計任務中,需要綜合使用A、B、C、D 4個算法來完成設計計算,且計算過程中A和B的計算結果需要分別傳遞給C,C的計算結果需要傳遞給D,如圖3所示。
圖3 算法集成案例Fig.3 Algorithm integration sample
面對該設計任務時,傳統(tǒng)算法集成方法通常是按照某個事先設定的計算流程(如A→B→C→D),并采用硬編碼方式對算法進行集成,將它們完全“凍結”為一體,來完成計算。
而采用“算法輪循計算”模型時,僅需按圖3所示先設定好各個算法之間的數(shù)據(jù)傳遞關系,然后反復驅動具有足夠輸入?yún)?shù)數(shù)據(jù)的算法進行計算即可。整個計算過程如下:
(1)計算剛開始時,A、B同時具有足夠的輸入數(shù)據(jù),而C、D還需要等待其他算法的輸出結果作為輸入數(shù)據(jù),因而算法輪循計算機制驅動A、B進行計算(并行或串行),A、B完成計算后將計算結果傳遞給C;
(2)A、B完成計算后,輪循機制繼續(xù)驅動具有足夠輸入數(shù)據(jù)的算法進行計算,此時C已得到了A、B的輸出結果,具有了足夠的輸入數(shù)據(jù),而D仍需等待C的輸出結果,因此算法輪循計算機制驅動C進行計算,C完成計算后,將其結果數(shù)據(jù)輸出給D;
(3)最后,D具有了足夠的輸入數(shù)據(jù),被算法輪循計算機制驅動進行計算,D完成計算后,則A、B、C、D都完成了計算,整個計算結束。
采用輪循計算模式進行算法集成的優(yōu)點:
(1)大大地簡化了算法之間的集成關系,算法之間不再依賴于計算流程,而是依賴于參數(shù)傳遞;
(2)充分發(fā)揮并行計算的優(yōu)勢,采用輪循計算的方式進行算法集成,算法能否開始進行計算只由它是否具有足夠的輸入?yún)?shù)數(shù)據(jù)來決定,多個同時具有足夠輸入數(shù)據(jù)的算法在算法輪循計算機制的驅動下自發(fā)地就可進行并行計算;
(3)加強了算法的可重用性,算法只需要關心自身的輸入、輸出參數(shù)數(shù)據(jù),而不用再關心算法之間的先后計算順序了,算法之間邊界被輸入、輸出數(shù)據(jù)清晰地劃定了,算法的“模塊化”特征得以完整保留,因而可在不同計算任務間重復利用;
(4)算法集成的靈活性增強了,在設計任務中,設計人員只需要選擇任務要求所需要的若干個算法,并設定好它們之間的參數(shù)傳遞關系即可完成算法集成,且當設計要求發(fā)生變更時,設計人員也可很容易地替換算法,或在原有算法集成關系中加入新的算法;
(5)算法的可維護性增強了,算法之間的邊界被清晰劃定后,算法之間可彼此相對獨立了進行開發(fā)、測試、修改、維護和升級,也為進一步創(chuàng)建固體火箭發(fā)動機性能和結構方案設計算法模塊庫建立了基礎。
關于輪循計算更詳細的內(nèi)容請參考文獻[3]。
基于算法輪循計算,設計人員雖然只需要設定好各算法間的數(shù)據(jù)傳遞關系,即可完成算法集成。但當計算任務較復雜,參與集成的算法數(shù)量規(guī)模較大時,如果不對其進行歸納和組織,則整個算法集成關系就會急劇復雜起來,而變得難以理解和維護(修改、調整和演進)[3]。
進行固體火箭發(fā)動機性能和結構方案設計時,設計人員需要完成熱力計算、總體參數(shù)優(yōu)化、設計指標分配、內(nèi)彈道性能計算、燃燒室設計、裝藥設計、噴管設計、點火器設計等。其中,燃燒室設計、裝藥設計、噴管設計、點火器設計等部件本身也是由子部件構成,并且子部件往往都具有多種材料或結構形式可供選擇,而且在設計過程中還需要進行強度校核、熱防護設計等,因此又需要對設計算法作進一步的分解。例如,燃燒室設計分為燃燒室殼體設計、前裙設計、后裙設計、燃燒室與點火器的連接件設計、燃燒室與噴管的連接件設計、外部耳片設計等,而燃燒室殼體設計更進一步又具有“金屬材料橢球形封頭燃燒室殼體”、“金屬材料碟形封頭燃燒室殼體”、“纖維材料橢球形封頭燃燒室殼體”、“纖維材料碟形封頭燃燒室殼體”等多種不同的材料或結構形式可供選擇[9]。圖4為固體火箭發(fā)動機性能和結構方案設計的概念邏輯圖[7]。
圖4 固體火箭發(fā)動機性能和結構方案設計的概念邏輯Fig.4 Performance and structure design of solid rocket engine by concept logic
基于算法輪循計算進行固體火箭發(fā)動機性能和結構方案設計時,設計人員將圖4中涉及的各個算法選取出來,并設定好各算法間的輸入、輸出數(shù)據(jù)傳遞關系,就可得到圖5所示的算法集成關系。不難看出,圖5中所有算法都處于同一層次上,算法集成關系顯得比較繁亂和難以理解。值得指出的是,圖5中每條線段都代表2個算法間的多個輸入、輸出數(shù)據(jù)的傳遞。例如,算法“熱力計算”的特征速度、定熵指數(shù)等輸出數(shù)據(jù)需要傳遞給算法“總體參數(shù)優(yōu)化”作為輸入。由于篇幅問題,算法間的參數(shù)數(shù)據(jù)傳遞細節(jié)沒有在圖5中標識出來。
圖5 未層次化的算法集成關系Fig.5 Algorithm integration without hierarchy
自然界和人類社會中,復雜系統(tǒng)都呈現(xiàn)出層次化的有序結構。類似地,AICS的“算法集成與協(xié)作”模型也采用層次化方法對算法集成關系進行歸納和組織。本質上,層次化就是將那些具有非常緊密關系、合起來具有共同實際意義的若干算法歸納為一個邏輯“整體”。該邏輯整體在AICS的“算法集成與協(xié)作”模型中被稱為“復合式算法”。
例如,將圖5中的燃燒室設計相關的算法(燃燒室殼體設計、前裙設計、后裙設計、燃燒室與點火器的連接件設計、燃燒室與噴管的連接件設計、耳片設計)歸納成復合式算法“燃燒室設計”;將噴管設計相關的算法(噴管型面設計、噴管流場計算、噴管性能損失計算、噴管結構方案、噴管溫度場計算、喉部燒蝕計算)歸納成復合式算法“噴管設計”;同理,還可歸納出復合式算法“點火器設計”和“裝藥設計”。如此,就得到圖6的層次化算法集成關系。
層次化后,算法集成關系的最頂層次只包含熱力計算、總體參數(shù)優(yōu)化、設計指標分配、內(nèi)彈道性能計算、燃燒室設計、噴管設計、點火器設計、裝藥設計8個對象(圖6中黑體標粗),而不再像圖5所示一次性地暴露出所有復雜細節(jié)。圖6中,設計人員可根據(jù)需要隨時切換到較低層次的復合式算法(如燃燒室設計等)查看其內(nèi)部組成,并對算法集成關系進行維護。如此,設計人員不但可清晰地從全局上對算法集成關系進行理解和掌控,而且可很容易地切換到各個細節(jié)層次進行查看和維護。
關于層次化更詳細的討論請參考文獻[3]。
圖6 層次化之后的算法集成關系Fig.6 Algorithm integration with hierarchy
算法模塊庫是AICS的核心功能機制和處理計算任務的關鍵基礎。基于AICS進行固體火箭發(fā)動機性能和結構方案設計主要包括“開發(fā)算法模塊”和“算法集成”2個步驟,如圖7所示。
圖7 基于AICS處理設計任務Fig.7 Processing design tasks based on AICS
(1)開發(fā)算法模塊。固體火箭發(fā)動機專業(yè)軟件開發(fā)人員遵照AICS的算法模塊規(guī)范,將熱力計算、總體參數(shù)優(yōu)化、燃燒室殼體設計、噴管型面設計等固體火箭發(fā)動機性能和結構方案設計算法開發(fā)成相應算法模塊,并添加到AICS算法模塊庫。
(2)算法集成。設計人員根據(jù)設計任務要求,從算法模塊庫中選取所需算法模塊,利用AICS提供的算法集成機制進行算法集成。
開發(fā)算法模塊相對較容易,因為AICS為算法模塊的開發(fā)提供應用程序框架[10]和模板代碼生成器。大部分情況下,開發(fā)人員只需將模板代碼掛接上用Fortran、C等程序語言編制的算法程序即可完成算法模塊的開發(fā)。當算法模塊被添加到算法模塊庫后,會羅列于AICS的算法模塊面板(圖8)上供設計人員選取使用。
圖8 算法模塊面板截圖Fig.8 Screenshots of algorithm palette
本質上,基于AICS構造固體火箭發(fā)動機性能和結構方案設計軟件系統(tǒng)就是將相關的各算法進行切分,開發(fā)成AICS算法模塊,并添加到AICS的算法模塊庫(圖7)。為避免“信息孤島”問題,并實現(xiàn)算法模塊最大程度的、靈活的“重用”,同時又保持算法模塊本身的完整獨立,切分算法模塊時,“粒度”不能過大、也不能過小。本章先介紹算法模塊的切分原則,然后再進一步介紹固體火箭發(fā)動機性能和結構方案設計算法模塊的切分。
切分算法模塊須要遵從“算法模塊完整獨立、最小計算職能”原則,即一個算法模塊應盡可能地只完成單個計算職能,除非多個計算職能緊密相關且只能共同使用,而不便被拆分開。如此切分算法模塊的優(yōu)點有:
(1)算法模塊具有簡單、清晰的物理意義,便于單獨開發(fā)、修改、測試、升級和替換;
(2)進行算法集成時靈活度更大、適應性更強,因為復雜計算職能的算法模塊可由簡單計算職能的算法模塊組合而成,反之卻不行。
總之,在保證“算法模塊完整獨立”的前提下,算法模塊的“粒度”越小越好。算法模塊“粒度”越小,算法集成時的靈活度就越大、適應性就越強,算法的“重用性”也就越好。
固體火箭發(fā)動機性能和結構方案設計從概念邏輯上劃分為熱力計算、總體參數(shù)優(yōu)化、設計指標分配、內(nèi)彈道性能計算、燃燒室設計、裝藥設計、噴管設計、點火器設計(見圖4)。按照“算法模塊完整獨立、最小計算職能”的切分原則,其中的熱力計算、總體參數(shù)優(yōu)化、設計指標分配、內(nèi)彈道性能計算可分別由單獨的算法模塊來實現(xiàn)。而燃燒室設計、裝藥設計、噴管設計、點火器設計則需進一步分解為更小粒度的算法模塊。
根據(jù)燃燒室的結構特點和功能要求,可將燃燒室設計分為燃燒室殼體設計(包括圓筒段和前后封頭)、前裙設計、后裙設計、燃燒室與點火器的連接件設計、燃燒室與噴管的連接件設計、外部零件設計6個子部件設計。在進行子部件設計時,材料和結構形式的不同,也會導致具體設計算法的不同,此外,還需對燃燒室進行強度校核。因此,根據(jù)算法模塊最小計算職能原則和目前針對的小型戰(zhàn)術導彈發(fā)動機對象,又可對子部件設計的算法模塊作進一步切分:
(1)燃燒室殼體設計切分為“金屬材料橢球形封頭燃燒室殼體設計”、“金屬材料碟形封頭燃燒室殼體設計”、“纖維材料橢球形封頭燃燒室殼體設計”、“纖維材料碟形封頭燃燒室殼體設計”4個算法模塊;
(2)前裙可采用3種不同的結構形式,分別切分成3個不同算法模塊;
(3)后裙與前裙類似,也切分成3個算法模塊;
(4)燃燒室與點火器連接可采用普通三角螺紋連接、鋸齒螺紋連接2種結構形式,切分成“普通三角螺紋連接”、“鋸齒螺紋連接”2個算法模塊;
(5)燃燒室和噴管連接可采用5種形式,切分成“小開口普通三角螺紋聯(lián)結”、“大開口鋸齒螺紋聯(lián)結”、“大開口銷釘聯(lián)結”、“大開口卡環(huán)聯(lián)結”、“法蘭螺栓聯(lián)結”5個算法模塊;
(6)外部零件設計目前只包括1個算法模塊“外部耳片設計”;
(7)強度校核算法模塊“燃燒室應力分布和強度校核計算”。
用于燃燒室設計的算法模塊在AICS算法模塊面板上的分布如圖8(a)所示。與燃燒室設計類似,按照噴管的錐形、雙圓弧和長尾結構形式和算法模塊最小計算職能原則,可將噴管設計切分成如圖8(b)所示的若干算法模塊。裝藥設計、點火器設計情況類似,由于篇幅問題,不再細述。
將切分出的各算法開發(fā)成算法模塊,并添加到AICS的算法模塊庫,就可處理固體火箭發(fā)動機性能和結構方案設計計算任務。本質上,構造了一個基于AICS固體火箭發(fā)動機性能和結構方案設計軟件系統(tǒng)。
為考查基于AICS的固體火箭發(fā)動機性能和結構方案設計軟件系統(tǒng)在工程實踐中能否滿足算法的重用性,算法集成的靈活性、適應性和可定制性并有效避免“信息孤島”問題,就使用其來進行某小型戰(zhàn)術導彈發(fā)動機性能和結構方案設計。
通過前面的介紹(見2.2和3.2節(jié)),固體火箭發(fā)動機從結構上由燃燒室、裝藥、噴管、點火器等部件構成。其中,燃燒室、裝藥、噴管、點火器在設計時又分別由多種材料和結構形式的更低一級的子部件構成,如燃燒室的前裙、殼體、后裙、與點火器和噴管的連接件等都具有多種材料或結構形式(見圖8)。如果不考慮工程實踐中各種現(xiàn)實因素的制約,僅根據(jù)組合學原理來計算可設計出的發(fā)動機種類數(shù)量,可得到如下發(fā)動機種類數(shù)量計算公式:
式(1)中等號右側的每個變量都代表相應的發(fā)動機結構部件的材料或結構形式種類的數(shù)量,各變量的描述和取值見表1。
表1 變量列表Table 1 List of variables
其中,發(fā)動機種類數(shù)量total是由式(1)計算得出??煽吹?,可設計出的發(fā)動機種類多達近2萬種之多。數(shù)量巨大的發(fā)動機種類在工程實踐中為設計人員提供了“更多的選擇”空間,同時也對算法的重用性,算法集成的靈活性、適應性和可定制性提出了較高要求。因為設計人員在設計過程中會反復不斷地調整或改變設計策略,而每次設計策略的調整和改變都可能意味著選用不同材料或結構形式的部件,也可能是選擇不同求解策略的算法模塊。最終,每次設計策略的改變都會體現(xiàn)為參與集成的算法的改變和算法間集成關系的改變。因此,軟件系統(tǒng)必須能滿足設計人員高效、靈活地實現(xiàn)設計策略調整的需求。
基于AICS,設計人員可根據(jù)任務要求進行靈活的搭配來設計發(fā)動機,并可根據(jù)需要隨時調整和改變設計策略。進行性能和結構方案設計時,根據(jù)設計任務要求,并參考以往的經(jīng)驗和案例,先初步預測性地擬定一個發(fā)動機設計方案,然后從AICS算法模塊庫中選擇相應的算法模塊,設定好算法模塊間的參數(shù)傳遞關系,并使用AICS的復合式算法模塊,將具有共同實際意義的各算法模塊歸納成一個邏輯整體,將算法集成關系層次化。
在某小型戰(zhàn)術導彈發(fā)動機設計中,初步擬定的設計方案如下:
(1)燃燒室采用“金屬材料橢球形封頭燃燒室殼體”、“第二種結構形式前裙”、“第二種結構形式后裙”、“燃燒室與點火器采用鋸齒螺紋聯(lián)接”、“燃燒室與噴管采用小開口普通三角螺紋聯(lián)結”;
(2)采用錐形噴管、翼柱形裝藥、簍式點火裝置;
(3)總體參數(shù)優(yōu)化設計采用隨機搜索型蟻群優(yōu)化算法[11]。
擬定設計方案后,就可從AICS的算法模塊面板上選擇對應的算法模塊,設定好算法模塊間的參數(shù)傳遞關系,并對算法集成關系層次化。如此,就得到了一個小型戰(zhàn)術導彈發(fā)動機的性能和結構設計方案。
從AICS算法集成關系樹(圖9)可查看整個算法集成關系的層次結構。從圖9可看出,最頂層次上算法集成關系是由點火器、噴管、燃燒室、裝藥、總體參數(shù)優(yōu)化,以及內(nèi)彈道性能計算、熱力計算、設計指標分配等算法構成。其中,點火器、噴管、燃燒室、裝藥的設計是由各子部件搭配組合得到。不難看出,圖9的算法集成關系樹的整個層次結構與圖4的固體火箭發(fā)動機概念設計邏輯完全一致。故固體火箭發(fā)動機性能和結構方案設計雖然需要綜合運用較多算法模塊,但層次化之后,整個算法集成關系是較清晰和容易理解的,因而當設計任務要求或策略改變時,也較容易修改和調整。比如,可很容易地將發(fā)動機的設計方案修改為:
(1)燃燒室采用“纖維材料碟形封頭燃燒室殼體設計”、“第一種結構形式前裙”、“第一種結構形式后裙”、“燃燒室與點火器采用普通三角螺紋聯(lián)接”、“燃燒室與噴管采用法蘭螺栓聯(lián)結”;
(2)采用雙圓弧噴管、星形裝藥、網(wǎng)式點火裝置;
(3)采用函數(shù)導數(shù)性質進行總體參數(shù)優(yōu)化[11]。
圖9 算法集成關系樹Fig.9 Algorithm integration relation tree
設計人員所有需要做的僅僅是將原有算法集成關系中的算法模塊替換成新的設計方案所對應的算法模塊,然后重新啟動計算。這使得發(fā)動機設計人員可靈活地為噴管、點火器等部件的設計,選擇不同結構形式的子部件,進行搭配組合就可迅速地得到各種不同結構形式的發(fā)動機設計方案。
下面列出幾組較重要的設計計算結果:圖10是藥柱燃面隨燃燒肉厚變化曲線;圖11是藥柱質心隨燃燒肉厚變化曲線;圖12是內(nèi)彈道性能計算得到的推力隨時間變化曲線(包括低溫、常溫、高溫)。
其他計算結果限于篇幅不再列出。
特別值得指出的是,設計過程中根據(jù)經(jīng)驗初步擬定的設計方案,一開始時往往不能完全符合設計任務的要求。比如,初步擬定的設計方案在計算過程中可能會發(fā)生與總體限制條件或設計指標分配的限制條件相沖突的情況(如噴管效率不滿足限制條件、燃燒室質量超出限制條件等)。此時,設計人員需要調整初始輸入?yún)?shù)值或改變設計策略。一般設計人員需經(jīng)過多次調整和反復嘗試,才能得到合理的設計方案。基于AICS的算法集成機制,設計人員所有需要做的只是重新設定輸入?yún)?shù)、替換算法和調整算法間的參數(shù)數(shù)據(jù)傳遞關系,而所有這些操作在AICS中都是很容易實現(xiàn)的。
圖10 燃面面積隨燃燒肉厚的變化Fig.10 Burning surface vs web
圖11 質心隨燃燒肉厚變化Fig.11 Centroid vs web
圖12 推力-時間曲線Fig.12 Thrust vs time
從該案例可得出如下結論:
(1)基于AICS,固體火箭發(fā)動機設計人員可靈活、高效地改變算法集成關系,進而實現(xiàn)設計策略的調整和改變,因而能很好地適應工程實踐中設計任務要求的復雜多變;
(2)當算法模塊數(shù)量規(guī)模增大時,AICS的復合式算法模塊能有效地對算法集成關系的復雜性進行歸納和組織,使整個算法集成關系容易理解,進而容易修改、調整和演進。
(3)算法之間實現(xiàn)了松耦合的集成,不僅保證了算法重用性,還有效地避免了“信息孤島”問題。
隨著工程領域對軟件期望值的急劇提升,算法的大規(guī)模集成計算目前已成固體火箭發(fā)動機領域的一個重要趨勢?;贏ICS構造的固體火箭發(fā)動機性能和結構方案設計軟件系統(tǒng),不但能加強算法的可重用性、增強軟件的可實現(xiàn)性和可維護性,而且能有效地消除和緩解當前大量存在于固體火箭發(fā)動機設計領域的“信息孤島”問題。更重要的是文中的小型戰(zhàn)術導彈發(fā)動機性能和結構方案設計案例,證明了AICS在算法集成方面具有較大的靈活性、適應性和易定制性,可讓固體火箭發(fā)動機領域的設計人員從繁雜的算法集成軟件實現(xiàn)技術細節(jié)中解脫出來,而集中精力關注于設計任務本身相關的算法模塊的綜合運用,降低了工作難度,并同時可提高工作質量與工作效率。
[1] Jacque L,Roux J.Computer aided preliminary design of solid rocket motors[R].AIAA 83-1254.
[2] Dick W A,Heath M T.Whole system simulation of solid propellant rockets[R].AIAA 2002-4345.
[3] 何允欽,梁國柱.新的適于計算機輔助工程的算法集成模型[J].北京航空航天大學學報,2009,35(12):1516-1520.
[4] Dauch F,Ribéreau D.A software for SRM grain design and internal ballistics evaluation,PIB-AL[R].AIAA 2002-4299.
[5] 江振宇,張為華.固體火箭發(fā)動機CAD系統(tǒng)實現(xiàn)[J].航空計算技術,2003,33(4):91-93.
[6] 鮑福廷,郭大慶,趙飛,等.固體火箭發(fā)動機噴管集成設計分析技術研究[J].固體火箭技術,2004,27(3):169-172.
[7] 梁國柱,張衛(wèi)華,郭紅杰,等.固體火箭發(fā)動機集成方案設計系統(tǒng) SRMCAD[J].固體火箭技術,2003,26(3):18-20.
[8] 何允欽,梁國柱.基于算法組件動態(tài)組合的固體火箭發(fā)動機計算機輔助設計/計算機仿真(SRMCAD/CS)系統(tǒng)研究[J].航空動力學報,2007,22(4):619-624.
[9] 王光林,蔡峨,等.固體火箭發(fā)動機設計[M].西安:西北工業(yè)大學出版社,1994.
[10] 福勒(美).企業(yè)應用架構模式(影印版)[M].北京:中國電力出版社,2004.
[11] 何允欽,梁國柱.基于蟻群算法的固體火箭發(fā)動機總體參數(shù)優(yōu)化[J].推進技術,2010,31(1):5-11.