在軟件中,開發任何東西的一般過程是代碼,測試,修復,重複。這是容易且便宜的,因為運行程序通常花費很少的金錢。
在火箭科學中,情況有所不同。每次發射都可能耗資數千萬甚至數億美元,並且比例模型通常具有不同的流量和性能屬性,從而降低了其實用性。
鑑於這些限制,火箭科學家進行迭代開發的過程是什麼?
在軟件中,開發任何東西的一般過程是代碼,測試,修復,重複。這是容易且便宜的,因為運行程序通常花費很少的金錢。
在火箭科學中,情況有所不同。每次發射都可能耗資數千萬甚至數億美元,並且比例模型通常具有不同的流量和性能屬性,從而降低了其實用性。
鑑於這些限制,火箭科學家進行迭代開發的過程是什麼?
軟件開發必須是迭代的,因為很難數學上證明給定的軟件將按預期工作。
對於物理對象,情況並非如此。使用現代的CAD軟件,您可以設計零件,並確保設計會按預期工作。因此,在製造第一部分之前可以進行很多測試。
那是說,火箭的研發仍需進行許多物理測試,尤其是在較複雜的零件上。
尤其是在火箭上進行了迭代開發。在早期。
首先,“火箭科學”是一個誤導性術語。火箭是一種推進系統,在大型系統(如運載火箭,航天器,導彈系統等)中發揮作用。對這些複雜的系統進行工程設計是一個整體的,多學科的過程。 b>
系統工程和現代軟件開發實踐類似,儘管它們有些不同,但它可以追溯到1930年代。 em>獨立進化。 IT和軟件工程界熟悉的設計過程模型(例如Waterfall和Vee)發揮了作用,而並行工程(Concurrent Engineering)等方法與敏捷軟件開發實踐有很多共通之處,並且需要反復進行。參見 ESA對並行工程的描述作為示例。
整個系統生命週期中迭代的特定性質將取決於項目,誰來做,誰來付錢。生命週期的階段是什麼,但是“設計,測試,修復”範式並沒有太大的區別(儘管暗示,規模可能不同)。
數學模型,仿真和設計模式對於降低成本非常重要,尤其是在早期設計階段。可以根據規範開發和驗證組件和子系統,並通過其他測試中涵蓋的地面測試來測試集成。在某些方面,可以說組件的物理性質比軟件[系統]的抽象性質更易於量化和根據規范進行驗證,但是-如所指出的-在物理上進行工程設計存在其他困難和成本
軟件工程是一門相對較年輕的學科,隨著它的成熟(軟件系統變得越來越複雜),會出現相當程度的融合,但是工程是工程學。
建議以供進一步閱讀:
火箭的大多數部件都可以在地面上單獨進行測試。這是例如用於SLS的RS-25發動機的測試示例。因此,大部分的迭代開發都是使用這樣的測試完成的。
簡短的答案是,迭代主要通過分析(行業術語是DAC和VAC,用於設計分析週期和驗證分析週期)進行,並在必要時進行小規模開發測試(例如單元測試),在開發項目快要結束時進行一系列的資格測試(即集成測試)。
事實上,火箭上的航空電子設備/軟件(最容易發生故障的位之一)可以像軟件一樣反復進行測試。 SpaceX的Falcon 9的所有接線/計算機都在工廠佈置。然後,他們為這些組件提供語音輸入,並查看代碼如何響應。這種類型的模擬對於測試新的創新(例如可重複使用的火箭)非常有用。
許多(如果不是最多的話)火箭和飛船的問題都與軟件有關。火星探測器墜毀是因為有人忘記了將英尺轉換為米,而阿麗亞娜火箭炸毀了是因為速度太快,以至於速度值出現整數溢出,導致火箭認為它正在向後移動(與
我知道問題主要是關於物理物質,通常是像霍布斯在回答中所說的那樣在測試台上進行測試。不過,請記住,現代火箭與硬件一樣多。