序:“小時候,晴朗的天空總是蔚藍,就連那連綿不斷的山峰也無法遮擋住那深邃的遠方。曾幾何時,天空中偶爾會飛過一架飛機,于是眾小伙伴奔走相告,哪怕飛機的轟鳴早已響徹耳旁。有時,我們會目不轉(zhuǎn)睛地望著飛機,直到它飛出視野范圍之外,并夢想著有一天能夠像飛機一樣在天空中翱翔,到我們想去的遠方。 依稀記得,那些年,為了躲避夏日的炎熱,我們姐妹三人常常在優(yōu)靜的晚上躺在繁星閃爍的夜空下,仰望宇宙的蒼穹。那時,我們的視力好到可以看見亮度十分暗淡的人造衛(wèi)星飛越上空。而為了等待流星劃過夜空的美麗瞬間,我們更是輪流看守,不放過任何一次機會。令我們感到十分驚訝的是,我們幾乎總是能在深夜欣賞到流星劃過的瞬間,甚至有時還會中頭獎,來一次令人激動不已的流星雨。 童年縱然逝去,但我相信每個人心中都有個孩子,每個人心中都留有一份童真,每個人心中都深藏童年的美好記憶。現(xiàn)在看來,長大可并不是一件好事,但是爸媽卻不這么想,天天盼望著我們長大成人,并能有所作為。 童年對頭頂上那片天空產(chǎn)生的特殊情懷使得我踏上了航空航天的學習道路,然而多年以來卻術(shù)無專攻、學無所成。唯一值得欣慰的是,這么多年來,我學會了一個原則,那就是做任何事都不要首先嘗試重新發(fā)明輪子,而要學著制造汽車。用牛頓先生的話說,就是:“如果說我比別人看得更遠些,那是因為我站在了巨人的肩膀上。”于是,當我需要某種工具時,必先用 Google 搜尋一番,哪怕是 Bing 也是可以的。時至今日才猛然發(fā)現(xiàn),在開放的世界竟然有那么多實用的工具可以為我所用,即使是專業(yè)特性超強的航空航天領(lǐng)域。” 本文并非一篇教讀者如何在龐雜的信息世界里搜索合適的工具,而是直接授之以魚,將筆者已知的航空航天領(lǐng)域十分優(yōu)秀的開放仿真工具介紹給大家,并輔以相應(yīng)的入門級教程。這其實是一項十分艱難的工作,因為大部分開放軟件的文檔都較為匱乏,且絕大多數(shù)由英文寫成。這倒不是致命傷,關(guān)鍵在于,筆者不可能把每一款軟件都學會,然后寫出教程。從時間和精力的角度來講,這都是不現(xiàn)實的。所以本文將重點對功能相對強大且筆者認為十分有研究價值的工具軟件展開介紹,希望能拋磚引玉,吸引更多的愛好者加入到本文的撰寫過程中來。 本文定性為航空航天仿真工具的相關(guān)介紹和研究,主要涉及航空航天領(lǐng)域大量優(yōu)秀的開放仿真軟件,不會涉及任何與開放硬件相關(guān)的話題。這里的開放是指讀者可以免費獲取資源,而無需為其支付任何使用費用。文中介紹的工具包含了很多開源的軟件,而開源是開放的子集,開源的軟件絕大多數(shù)是免費的。此外,開源軟件最鮮明的特點是其源代碼必定公開,并可以通過互聯(lián)網(wǎng)或其它媒介自由獲取。書中并不包含那些停止開發(fā)或多年未曾更新的工具軟件,因為筆者認為,只有歷經(jīng)歲月的洗禮,才能稱得上優(yōu)秀,并最具研究價值。原則上,長達五年未曾更新的軟件不會出現(xiàn)在本文的分類之中,已經(jīng)包含在本文中的軟件如果在未來五年之內(nèi)不再更新,亦將在下一次更新過程中被剔除。 是開源賦予了這個時代更多的活力,而開放則將知識的種子播撒開來。知識本就不應(yīng)該被束之高閣,即使是本文所討論的航空航天。衷心地希望本文能夠幫助讀者了解航空航天,了解開放的世界,并最終找到自己鐘愛的航空航天仿真工具。
? 2016/06/28 v1.0 建立基本框架,對每款軟件進行較為完整的介紹,并不涉及任何操作實踐,甚至不包括如何安裝軟件。 0.1.2 寫作計劃 ? 2019/04/05 v1.1 添加 OpenRocket 安裝教程。 ? 2019/04/15 v1.2 添加 Orbiter 入門教程:沖破卡門線。 ? 2019/04/25 v1.3 添加 GMAT 入門教程:Molniya 軌道預報。 ? 2019/05/15 v1.4 添加 Orbiter 入門教程:造訪國際空間站。 ? 2019/05/25 v1.5 添加 NASA’s Eyes 入門教程:在家暢游太陽系。 ? 2019/06/15 v1.6 添加 Orbiter 入門教程:帶她一起去月球。 ? 2019/06/25 v1.7 添加 GMAT 入門教程:霍曼轉(zhuǎn)移。 ? 2019/07/15 v1.8 添加 Orbiter 進階教程:TransX 行星際航行指南。 ? 2019/07/25 v1.9 添加 Orbiter 進階教程:紅色行星之旅行。 ? 2019/08/15 v2.0 添加 Orbiter 高級教程:EVA & EDL。 0.2 使用協(xié)議 本文采用 Creative Commons 使用協(xié)議,具體內(nèi)容請參照 Creative Commons 協(xié)議官方網(wǎng)站。
第一篇 航空工具集 本篇將對開放航空工具進行分類歸納,由于筆者已不再從事航空學方面的研究工作,所以很少再接觸新的航空工具軟件,文中涉及的工具皆為筆者早年間熟知的軟件,具有一定的代表性。同時希望讀者能夠分享信息,提供更多關(guān)于開放航空仿真工具軟件最新的發(fā)展狀況。 本篇含有三個部分的內(nèi)容,在廣度和深度方面都不如航天工具集篇詳實,但其中卻不乏重量級的工具。如 flightgear 和 OpenRocket,它們在各自的領(lǐng)域都有著極大的影響力。特別值得一提的是它們的源代碼都是開放的,使得用戶可以進行深層次的探究。 筆者作為一名模擬飛行愛好者,曾經(jīng)使用過 x-plane,如今對 Orbiter 有較為系統(tǒng)的學習。雖然只是在虛擬的環(huán)境中體驗飛行,但這也未曾不失為一種樂趣,而且模擬帶著濃厚的教育意味,在此過程中可以學得一些書本之外的知識。 1.1 模擬飛行 ![]() 1.1.1 FlightGear FlightGear 是一款開源的跨平臺模擬飛行器。該項目始于 1997 年,經(jīng)過最初十年的開發(fā),于 2007 年 12 月發(fā)布了功能較為完善的 v1.0.0 版本。其最新版本為 2019 年 1 月 29 日發(fā)布的 v2018.3.2 版本,軟件授權(quán)協(xié)議為 GPL(GNU General Public License)。 ![]() 從 FlightGear 官方手冊可知,F(xiàn)lightGear 具有以下諸多特點: 民用性:該項目主要針對民航,用于通用航空和民航飛行模擬。FlightGear 的長遠目標是可以作為 FAA 的飛行訓練模擬器;FlightGear 不能進行空戰(zhàn)模擬可能會讓您感覺有些失望。但我們并沒有完全排除 FlightGear 的這部分功能,只是因為缺少空戰(zhàn)模擬的開發(fā)人員所以還沒有實現(xiàn)這部分功能。 跨平臺:項目所有開發(fā)人員都希望代碼能不依賴平臺,因此 FlightGear 能運行在多種電腦硬件和操作系統(tǒng)上。當前的代碼支持 Linux(任何分支和平臺)、Windows XP/Vista/7/8/10( Intel/AMD 平臺)、Mac OS X、BSD UNIX & Sun Solaris 等等。目前為止,還沒有其它任何一款模擬飛行軟件(不管是商業(yè)化的還是免費的)支持如此多的平臺。 開放性:FlightGear 不限定在任何固定開發(fā)人員手里,能在項目中發(fā)揮作用任何人都是受歡迎的。此項目的版權(quán)在自由軟件基金會的手中,雖然 GPL 現(xiàn)在還不太被人們了解,但它已經(jīng)得到法律的保護。在這個體系中,GPL 允許您復制和免費貢獻代碼,只要你喜歡這樣做。然而,你必須免費提供源代碼給每個需要它的人,且必須保留原始著作權(quán)。簡而言之,GPL 允許你做任何除了收費之外的事情。 擴展性:從設(shè)計之初開始,F(xiàn)lightGear 的場景地形、飛機模型、內(nèi)部參數(shù)、API 和其它任何東西都是對用戶透明并有文檔記錄的。就算沒有任何開發(fā)文檔,您也能參看源代碼來了解 FlightGear 是如何工作的。FlightGear 開發(fā)人員的目標是建立是一個能自由進行場景設(shè)計、飛行面板設(shè)計、ATC 設(shè)計及聲音驅(qū)動的基本引擎。FlightGear 項目凝結(jié)了來自全世界開發(fā)者的智慧,我們希望此項目所有的開發(fā)人員和用戶都能從中獲益。 1.1.2 Plane-Maker Plane-Maker 是隨 X-Plane 免費發(fā)布的一款內(nèi)部模型插件開發(fā)工具,專門供 X-Plane 插件開發(fā)者為其開發(fā)飛機、人物、車輛及地景模型等第三方插件。用戶只需安裝 X-Plane Demo,而非購買完整的 X-Plane 軟件包,即可獲得 Plane-Maker 進行插件開發(fā)。 ![]() Plane-Maker 雖然是免費軟件,但它的功能卻異常強大。首先,它給開發(fā)者提供了一個十分方便的 GUI 集成環(huán)境,從而使得開發(fā)者可以很輕松地在該環(huán)境中創(chuàng)建各種類型的模型;其次,Plane-Maker 與 X-Plane 的交互過程既簡單又高效,且在 Plane-Maker 中開發(fā)的飛機插件可以直接導入 X-Plane 這一高仿真度的模擬飛行環(huán)境中進行試飛;此外,Plane-Maker 能夠讀取來自外部三維軟件(如 Blender、Google Sketchup、AC3D 及 3DS Max 等)所構(gòu)建的各種模型。 事實上,Plane-Maker 完全是 X-Plane 團隊為提升自身競爭力而為第三方開發(fā)者量身打造的插件開發(fā)工具。時間證明,這種做法是成功的。因為,如今 X-Plane 的插件開發(fā)者已經(jīng)為其開發(fā)了大量的優(yōu)秀插件,這間接增加了 X-Plane 對用戶的吸引力。你可以從 X-Plane 官方論壇下載到由眾多愛好者開發(fā)的各種插件。當然,如果你想設(shè)計一架屬于自己的機模,我相信 Plane-Maker 一定是不錯的選擇。 1.1.3 CRRCSim CRRCSim 是一款基于 GPL 發(fā)布的開源遙控模型飛機飛行模擬器,由 C 和 C 語言編寫而成,OpenGL 作為圖形驅(qū)動引擎。CRRCSim 可運行在主流的操作系統(tǒng)平臺之上,多數(shù) Linux 發(fā)行版本、Mac OS X 及 Microsoft Windows。使用 CRRCSim 不僅可以幫助你學習如何操控遙控模型飛機,并在模擬環(huán)境中提高遙控操縱技能,還可以幫助你測試新設(shè)計的飛機模型。 ![]() 1.2 飛行動力學仿真 ![]() 圖注:基于 JSBSim 開發(fā)的 MATLAB/Simulink 仿真模塊 1.2.1 JSBSim JSBSim 是一套開源的飛行動力學模型軟件庫,目前為 FlightGear 兩大常用的飛行動力學引擎之一。此外,JSBSim 還被 OpenEaagles 模擬框架所使用,并可以單獨被其它程序調(diào)用,以此來創(chuàng)建一些模擬工具。 ![]()
|