2019 年 7 月 20 日是阿波羅 11 號登陸月球的 50 周年紀(jì)念日。
為了紀(jì)念這個偉大的事件,我們一起回顧 Richard J. Gran 發(fā)布于 1999 年,關(guān)于設(shè)計登月艙(Lunar Module, LM)數(shù)字自動駕駛儀的第一手資料。通過對比 1960 年代、1999年和現(xiàn)如今進行 GN&C(制導(dǎo)、導(dǎo)航與控制)系統(tǒng)開發(fā)方式的不同,展示基于模型設(shè)計的快速發(fā)展。
Richard @ 1999
當(dāng)我還是個小男孩的時候,我就知道我想成為一名工程師。但我不知道的是,大學(xué)畢業(yè)后不久,我就參與了有史以來最偉大的工程項目之一。1962 年 9 月 12 日,美國總統(tǒng)約翰·F·肯尼迪宣布:“我們選擇在十年內(nèi)登上月球”,推動這個國家快速走上載人登月的道路。同年,我成為格魯曼制導(dǎo)與控制小組的一員,接下來,從 1963 年到 1966 年,我在麻省理工學(xué)院儀器實驗室(MIT IL)參與了登月艙數(shù)字自動駕駛儀的設(shè)計工作。
登月艙數(shù)字自動駕駛儀設(shè)計:1961-1969
最初為登月艙推出的自動駕駛儀是一個模擬系統(tǒng),使用調(diào)制器通過有節(jié)奏的跳動控制反作用控制噴射裝置的開關(guān)。
雖然控制系統(tǒng)使用模擬信號,但是導(dǎo)航和制導(dǎo)功能在一臺數(shù)字計算機上運行,后者在指令和和服務(wù)艙 (Command and Service Module,CSM) 和阿波羅助推器中很常見。制導(dǎo)和導(dǎo)航的算法由麻省理工學(xué)院儀器實驗室 (MIT IL) 的一個團隊開發(fā),現(xiàn)在這個實驗室被稱為德雷珀實驗室。
在阿波羅計劃的早期,NASA 決定在登月艙設(shè)計中將制導(dǎo)與導(dǎo)航計算機設(shè)計為一個備份控制系統(tǒng),以提高任務(wù)的可靠性。為此,阿波羅公司的三個承包商(Grumman、MIT IL和BellComm)于 1963 年初開始進行了一場設(shè)計競賽。
數(shù)字自動駕駛儀設(shè)計的主要問題是計算機存儲和速度。
有大約 2000 個 16 位指令分配給數(shù)字自動駕駛儀,而這些操作指令不允許干擾主制導(dǎo)和導(dǎo)航功能。在眾多必須解決的問題中,一個現(xiàn)實情況是這款計算機并不是針對時間關(guān)鍵事件處理而設(shè)計的。由于這個原因,系統(tǒng)只有一個中斷級別,沒有數(shù)字信號到模擬信號的接口。
為了讓我們了解這臺計算機有多簡單,下表顯示了它的整個操作碼集。要實現(xiàn)數(shù)字自動駕駛儀,需要實現(xiàn)第二個中斷。我們使用了計算機的二進制反碼結(jié)構(gòu),這意味著有一個正零和一個負(fù)零。當(dāng)計數(shù)器從負(fù)數(shù)遞增或從正數(shù)遞減時,這種結(jié)構(gòu)允許發(fā)生不同的中斷。
開發(fā)最優(yōu)控制系統(tǒng)
1962 年,“現(xiàn)代控制理論”仍然是一種學(xué)術(shù)追求。
沒有關(guān)于最優(yōu)控制的教科書,包括我在內(nèi)的畢業(yè)生還沒有精通狀態(tài)空間法,也沒有接觸過最優(yōu) bang-bang 控制系統(tǒng)。麻省理工學(xué)院儀器實驗室的工程師與麻省理工學(xué)院的學(xué)生們進行了密切合作,使他們成為基于 Pontryagin 最大值原理的狀態(tài)空間建模和最優(yōu)控制技術(shù)的早期使用者。
儀器實驗室的工程師 George Cherry 建議使用最佳控制系統(tǒng)來控制航天器。由于在太空中的航天器僅面臨非常少的外部干擾,從而可以非常確切的對轉(zhuǎn)動動力學(xué)特性進行預(yù)估。這種對動力學(xué)特性近乎完美的理解,讓 Cherry 洞察到,控制器可以設(shè)計成在很低的采樣速率下工作。
在美國航空航天局(NASA)的會議上,每個設(shè)計團隊都提出了他們的方法,George Cherry展示了他的設(shè)計方案,如同艾薩克·牛頓爵士站在身邊描述控制器如何工作。毋庸置疑,美國航空航天局選擇了麻省理工學(xué)院的設(shè)計。
選擇這種方法的決定是正確的。格魯曼的設(shè)計需要 0.02 秒或更快的采樣時間,而麻省理工的方法(在牛頓的幫助下)只需要 0.2 秒的采樣時間(比格魯曼的設(shè)計慢 10 倍)。NASA 對這個設(shè)計非常滿意,并決定采用數(shù)字自動駕駛儀做主系統(tǒng),而將原來的模擬系統(tǒng)降級為備用系統(tǒng)。
最優(yōu)控制器
Cherry 設(shè)計的最優(yōu)控制器是一個將時間指標(biāo)和燃油指標(biāo)加權(quán)組合最小化的控制器。在 Athans 和 Falb 的一本書稿形式的書中介紹了相關(guān)理論,這本書直到 1966 年才出版。
下圖顯示了登月艙中設(shè)計的反饋控制噴射邏輯。圖中的拋物線是決定何時打開和關(guān)閉反饋控制噴射的“開關(guān)曲線”。以什么樣的頻率進行相關(guān)測量,是這個設(shè)計中的難點。
計算機的速度和存儲限制帶來了嚴(yán)重的制約。
例如,大多數(shù)控制系統(tǒng)工程師通過以一個比較高的采樣速率觀察某個采樣時間的姿態(tài)和速率,從而確定系統(tǒng)當(dāng)前在相平面的位置,來實現(xiàn)該控制器。實際上,這也是設(shè)計航天飛機時自動駕駛儀的實現(xiàn)方式。然而,計算機對登月艙的限制意味著這種實現(xiàn)方式將不能正常工作,因為沒有足夠的處理能力來支持快速的采樣速率。
手工編碼和計算
許多現(xiàn)在的軟件開發(fā)工程師可使用的商用軟件,在 1963 年并不存在。因此,必須發(fā)明出來這些程序,這些程序往往是工程師自己定義的工具,目的是減輕設(shè)計者的負(fù)擔(dān)。
我在 MIT IL 的第一個任務(wù)是開發(fā)用于選擇合適的反饋控制的邏輯。下圖中的流程圖所示代碼顯示了我用來開發(fā)這個邏輯的自定義程序。
代碼中的每個路徑都是手工計時,執(zhí)行指令的數(shù)量以及每個分支的時序都基于每個指令的標(biāo)稱周期進行計算。每個中斷任務(wù)的處理時間也都是手動計算。圖中的流程圖是用匯編語言編寫的實際計算機代碼的一部分,開發(fā)耗時一年多。
控制系統(tǒng)的設(shè)計是通過仿真程序進行開發(fā)和測試的,該程序在格魯曼用 Fortran 編寫,在麻省理工學(xué)院用被稱為 MAC 的語言編寫。在設(shè)計確定后,再編寫匯編語言代碼。然后,在模擬實際計算機的仿真中對該代碼進行測試。仿真使用實際的匯編語言代碼。
這個過程非常繁瑣:一次“計算機運行”耗時半天時間。我一般會在下午晚些時候提交一個計算(使用 IBM 卡),并在凌晨 3:00 獲得返回結(jié)果。我經(jīng)常會在半夜起床,從酒店步行到麻省理工學(xué)院儀器實驗室去修正錯誤。仿真結(jié)果一般就在一疊 10 英寸厚的紙上,代碼執(zhí)行每個步驟的計算結(jié)果都記錄在上面。
圖中代碼段如此復(fù)雜的一個原因是,可用于控制繞駕駛儀導(dǎo)向軸旋轉(zhuǎn)的噴嘴數(shù)量太多了(見下圖)。他們決定將自動駕駛儀控制的軸改為圖中所示的“噴射軸”。
這使得代碼行數(shù)大幅減少,并更容易在現(xiàn)有計算機上實現(xiàn)自動駕駛。如果沒有這種改進,自動駕駛儀就不可能在只有 2000 個字的存儲空間上實現(xiàn)。這一實例帶來的啟示是,當(dāng)工程師有機會將正在設(shè)計的系統(tǒng)編寫到計算機上時,他們總可以通過修改設(shè)計而大幅優(yōu)化代碼。
參與設(shè)計登月艙數(shù)字自動駕駛儀的設(shè)計是我工程師生涯中的一個亮點。
當(dāng)尼爾·阿姆斯特朗走出登月艙,踏上月球表面時,為阿波羅計劃做出貢獻的每位工程師都倍感驕傲并獲得了成就感。我們開發(fā)了前所未有的技術(shù),通過努力工作和對細節(jié)的極致關(guān)注,我們打造出了運行無暇的系統(tǒng)。
今天我們?nèi)绾卧O(shè)計登月艙數(shù)字自動駕駛儀?
Richard Gran,在他設(shè)計的控制系統(tǒng)用于阿波羅 11 號登月任務(wù)的幾十年后,重新設(shè)計了登月艙數(shù)字自動駕駛儀。這次,他使用了 Simulink 系統(tǒng)模型,下圖展示了這個模型的樣子。
在1960年代,設(shè)計是手寫在紙上,手動進行數(shù)學(xué)計算,使用匯編語言進行手工編碼。而現(xiàn)在,航空航天的工程師們使用可執(zhí)行的模型對低層代碼進行抽象,而不是采用紙上的設(shè)計,這在進行復(fù)雜系統(tǒng)設(shè)計時尤為重要。
上圖展示的是在 Simulink 模型里,用狀態(tài)圖實現(xiàn)的登月艙自動駕駛儀偏航控制率的一部分。從模型可以直接生成嵌入式代碼,這就建立了設(shè)計和代碼的直接聯(lián)系。
在登月艙自動駕駛儀 Simulink 模型上點擊 Play 將啟動仿真,在幾秒而不是幾小時內(nèi)完成,這顯示了 1960 年代和現(xiàn)在的巨大不同:
計算機速度和能力的指數(shù)級提升,而計算機仿真也隨之?dāng)U大了應(yīng)用范圍。
借助于強大的計算能力,工程師們即使在面對持續(xù)復(fù)雜的設(shè)計時,也能比以往仿真更多的應(yīng)用場景。通過更多的仿真,可顯著降低對昂貴的硬件測試的需求。
仿真是重要的,但只有當(dāng)對它提供的設(shè)計有深刻洞察的時候,才能發(fā)揮作用。不僅僅是仿真速度大幅提升,對結(jié)果分析的速度和易用性也大幅提升。
阿波羅時代,在仿真結(jié)束后,往往需要幾個小時來查看紙質(zhì)文件上的結(jié)果。而現(xiàn)在,工程師們可以在仿真過程中,直接查看參數(shù)、繪制曲線和查看動畫效果,如下圖所示。執(zhí)行測試用例、后處理以及報告生成,都被自動化了。
當(dāng)工程師在分析數(shù)據(jù)結(jié)果的時候發(fā)現(xiàn)不期望的行為時,對設(shè)計進行更改可能是必要的。在阿波羅時代,往往需要數(shù)日執(zhí)行更改、分析影響、重寫代碼并重新對設(shè)計進行仿真。
現(xiàn)在,使用基于模型設(shè)計的工程師,可以對模型的相應(yīng)部分直接更改并立即進行仿真,查看這個更改對系統(tǒng)的影響。根據(jù)設(shè)計階段的不同,仿真能夠以模型在環(huán)(MIL)、軟件在環(huán)(SIL)以及硬件在環(huán)(HIL)的方式執(zhí)行。無需手動追蹤,模型的依賴關(guān)系被自動檢查,配置管理工具持續(xù)跟蹤著需求、設(shè)計與測試用例的變更。
航天器設(shè)計一直是很困難的事情,當(dāng)今的計算機技術(shù)和軟件的進步并沒有減少這種設(shè)計上的復(fù)雜性。但是,就像登月艙數(shù)字自動駕駛儀的這個設(shè)計示例所展示的那樣,計算機技術(shù)和軟件可以使設(shè)計更容易管理、測試更加高效、實現(xiàn)更加快速,并且為團隊提供相比于阿波羅時代更多的時間進行驗證和確認(rèn)的工作。
“使用 MATLAB 和 Simulink 重新設(shè)計數(shù)字自動駕駛儀,讓我回想起了做初始設(shè)計時的努力與掙扎,更讓我感受到當(dāng)今設(shè)計流程的優(yōu)勢:
計算機性能指數(shù)級增長,基于模型的設(shè)計讓設(shè)計系統(tǒng)變得非常容易。
如今,設(shè)計流程的一個令人驚訝的特性,是高度集成的概念設(shè)計與計算,因為我可以快速的對想法進行概念設(shè)計并立即看到效果,我在一周的時間就可以重新構(gòu)造整個數(shù)字自動駕駛儀。分析、仿真和測試被無縫的集成到一個流程里。
這在我看來,就是 MBD 的魅力所在。”
—— Richard Gran
-
計算機
+關(guān)注
關(guān)注
19文章
7663瀏覽量
90795 -
自動駕駛
+關(guān)注
關(guān)注
789文章
14321瀏覽量
170634
發(fā)布評論請先 登錄
航天器DC-DC模塊電源電磁兼容設(shè)計

NVMe協(xié)議簡要分析
商業(yè)航天級微控制器單元(MCU)技術(shù)特征分析
普源示波器航空航天信號測試

告別“里程焦慮”,ER-QA-03C ---助力航天器精準(zhǔn)“定位”未來!

2025:中國航天將從火箭研制、智能航天器開發(fā)、載人航天工程、月球和深空探測等領(lǐng)域進一步推動強國建設(shè)

SiC技術(shù)能否滿足航天器和飛機的高功率需求!

評論