第六十章 萬能的陸豐,不淡定的比賽負責人
十點零三分,陸豐已經在草稿紙上落筆了。
第一問,引力彈弓效應下的最優轉移軌道。
他先畫出一個簡化的日心坐標系,地球、目標行星、太陽三個質點的相對位置用三角關係標定。
然後在旁邊列出蘭伯特問題的基本方程組。
已知出發點和到達點的位矢,以及飛行時間,求解橢圓轉移軌道的半長軸和偏心率。
筆速很快,但每一個符號的間距都控制得恰到好處。
黎曼的專注力在此刻發揮了作用。
周圍鍵盤的敲擊聲、隔壁隊伍翻書的沙沙聲、空調出風口的嘶嘶聲,全部被自動過濾成了背景白噪音。
周曉曉搬了把椅子坐到陸豐左手邊,不說話,只盯著他的筆尖。
陸豐寫完蘭伯特方程的標準形式,抬頭看了她一眼。
「幫我算一下這個超越方程的數值根,用牛頓疊代法,初始值取π。」
周曉曉接過草稿紙,低頭就算。
陸豐沒等她的結果,直接翻到第二張草稿紙,開始推第二問。
火箭著陸動力學建模。
這才是整道題的重頭戲。
他在紙上畫了一個簡筆的火箭側視圖。
錐形整流罩、柱形箭體、底部四個著陸支腿、中央一台可變推力主發動機。
圖不大,但關鍵部位的標註極其精確。
推力矢量角δ、氣動攻角α、箭體質心位置、著陸腿展開的鉸鏈點,全部用箭頭和符號標在對應位置上。
陳靜從旁邊探過頭來,看到那張簡筆畫,愣了一下。
「你還會畫這個?」
「網上看的。」陸豐隨口說了一句。
陳靜沒聽懂,但也沒追問。
她的任務是協助推導氣動方程,於是拿過陸丰標好參數的簡圖,開始在旁邊列阻力公式。
十一點四十五分。
一個半小時。
陸豐的面前已經摞起了七張寫滿公式的草稿紙。
第一問的完整數學模型含引力輔助速度增量的多段蘭伯特轉移軌道優化模型,目標函數是總飛行時間,約束條件包括燃料質量上限和行星窗口期。
求解方法用序列二次規劃。
第二問的完整數學模型六自由度火箭著陸動力學狀態方程,含可變推力、推力矢量角、氣動阻力和著陸腿展開時機四個控制變量。
用龐特里亞金極大值原理建立伴隨方程,將最優控制問題轉化為兩點邊值問題。
周曉曉把算好的數值根遞過來,陸豐掃了一眼,點頭,直接代入第一問的軌道參數。
「建模部分基本完了。」陸豐把筆放下,活動了一下手腕。
陳靜張著嘴,視線在那七張草稿紙上來回掃了三遍。
一上午。
別的隊還在為第一問的坐標系選取爭論不休,他們這邊兩問的建模全部搞定。
「學弟,你不是人。」陳靜由衷地發出了今天的第一句感嘆。
陸豐沒接這個話,轉頭看向編程組。
「李浩學長,建模結果在這裡,你們開始寫代碼吧。」
他把七張草稿紙遞過去。李浩接過來,和王哲、劉宇湊在一起研究了大約三分鐘。
三個人的表情越來越凝重。
不是看不懂,恰恰相反,他們完全看懂了。
正因為看懂了,才意識到這套模型的代碼實現難度有多高。
六自由度狀態方程的數值積分,需要自己寫一個四階龍格庫塔求解器。
龐特里亞金極大值原理的伴隨方程求解,需要用到打靶法做兩點邊值問題的疊代。序列二次規劃的優化器,雖然可以調用現成的庫,但約束條件的雅可比矩陣得手動推導後硬編碼進去。
「這個……工作量有點大。」李浩措辭謹慎。
王哲更直接:「老大,這代碼量我估摸著得寫到明天下午。」
陸豐看了一眼牆上的掛鍾。
十二點十分。
七十二小時的總時限,已經過去了兩個多小時。
如果編程環節耗到明天下午,留給論文撰寫和模型校驗的時間就太緊了。
他想了兩秒。
「我來寫。」
李浩一愣。
「你們三個負責測試和調試,我把主程序框架搭出來。」
陸豐說完,沒等他們反應,直接拉開自己那台電腦的椅子坐了下去。
打開Python的IDE,新建工程文件。
手指落在鍵盤上。
「嗒嗒嗒嗒——」
那種熟悉的、密集到幾乎連成線的敲擊聲再次響起。
李浩站在陸豐身後,雙手垂在身體兩側。
他看著屏幕上的代碼以一種不真實的速度往下滾動。
沒有注釋,不需要注釋。
因為代碼本身就是注釋.
每個變量名都嚴格對應草稿紙上的數學符號,每個函數的輸入輸出都一目了然。
王哲站在李浩旁邊,脖子伸得老長。
他想幫忙,但找不到切入點。
劉宇默默地給陸豐倒了一杯水,放在鍵盤右側。
陸豐頭也沒抬,左手摸到杯子,灌了一口,放下,繼續敲。
下午一點半。
陳靜跑了一趟食堂,帶回來六份盒飯和一兜子礦泉水。
「吃飯了吃飯了。」
周曉曉和編程組三人接過盒飯開始扒飯。
陸豐的盒飯被放在桌角,他掃了一眼,沒停手。
下午三點二十。
陸豐按下運行鍵。
屏幕上,第一問的軌道優化程序開始疊代。
進度條走了大約四十秒,輸出窗口彈出一組軌道參數和一張太陽系內的轉移軌道三維投影圖。
藍色的曲線從地球出發,掠過金星,藉助引力彈弓獲得速度增量,沿一條優雅的橢圓弧線繞太陽半圈後返回地球。
總飛行時間:487天。
燃料消耗:在約束範圍內。
緊接著,第二問的著陸仿真程序也跑完了。
屏幕上出現一段動畫一枚簡化的火箭模型從兩千米高度開始減速下降,推力矢量隨姿態實時調整,在距地面五十米處著陸腿展開,最終以每秒一點二米的速度穩穩落地。
底部輸出了最優燃料消耗量和各控制變量的時間歷程曲線。
李浩盯著那段著陸動畫看了整整十秒鐘,然後緩緩轉過頭,看向自己那台從開機到現在一行代碼都沒敲過的電腦。
關機算了。
他咽了口唾沫,問了一句:「學弟,你留著我們三個到底是幹啥的?」
「等會兒幫我跑一下參數敏感性分析,換幾組初始條件看看模型的魯棒性。」
李浩點頭,終於找到了自己的存在價值。
雖然這活一個人半小時就能幹完。
機房後方。
吳鶴鳴不知道什麼時候走到了A-07區域的側後方。
他雙手抱在胸前,透過隔板的縫隙看著陸豐的屏幕。
他搞了二十多年數學建模競賽的評審和組織工作,見過不少天賦異稟的學生。
建模能力出眾的,他見過。
編程速度驚人的,他也見過。
但一個人同時把這兩樣都做到這種程度的,沒見過。
他轉頭看了一眼A-07區域裡那三個編程組的男生。
省編程競賽的獲獎選手,此刻正排排坐在旁邊,手裡端著盒飯,一臉茫然地看著陸豐的背影。
像三個被搶了活的臨時工。
吳鶴鳴收回視線,走回自己的角落,從口袋裡摸出手機,打開通訊錄翻到一個名字。
省數學學會理事長。
他猶豫了兩秒,把手機又塞了回去。
還是等最終論文出來再說。
萬一論文寫得一塌糊塗呢?
建模和編程都完成後,陸豐靠在椅背上,擰開那瓶劉宇放在桌角的礦泉水,灌了兩口。
陳靜已經打開了Word,手指懸在鍵盤上方。
「接下來,論文的部分交給我了。」她沖陸豐比了個OK的手勢,「框架你給我列一個,剩下的我來寫。」
陸豐從旁邊抽了張紙,花兩分鐘列了一個論文的章節框架和每一節的核心論點,遞給她。
陳靜接過來看了一遍,點頭。
「明白了,你去休息一會兒。」
陸豐這才感覺到脖子酸得快斷了。
他站起身,活動了一下肩膀,走到窗邊。
窗外的天色已經開始暗了。
第一問,引力彈弓效應下的最優轉移軌道。
他先畫出一個簡化的日心坐標系,地球、目標行星、太陽三個質點的相對位置用三角關係標定。
然後在旁邊列出蘭伯特問題的基本方程組。
已知出發點和到達點的位矢,以及飛行時間,求解橢圓轉移軌道的半長軸和偏心率。
筆速很快,但每一個符號的間距都控制得恰到好處。
黎曼的專注力在此刻發揮了作用。
周圍鍵盤的敲擊聲、隔壁隊伍翻書的沙沙聲、空調出風口的嘶嘶聲,全部被自動過濾成了背景白噪音。
周曉曉搬了把椅子坐到陸豐左手邊,不說話,只盯著他的筆尖。
陸豐寫完蘭伯特方程的標準形式,抬頭看了她一眼。
「幫我算一下這個超越方程的數值根,用牛頓疊代法,初始值取π。」
周曉曉接過草稿紙,低頭就算。
陸豐沒等她的結果,直接翻到第二張草稿紙,開始推第二問。
火箭著陸動力學建模。
這才是整道題的重頭戲。
他在紙上畫了一個簡筆的火箭側視圖。
錐形整流罩、柱形箭體、底部四個著陸支腿、中央一台可變推力主發動機。
圖不大,但關鍵部位的標註極其精確。
推力矢量角δ、氣動攻角α、箭體質心位置、著陸腿展開的鉸鏈點,全部用箭頭和符號標在對應位置上。
陳靜從旁邊探過頭來,看到那張簡筆畫,愣了一下。
「你還會畫這個?」
「網上看的。」陸豐隨口說了一句。
陳靜沒聽懂,但也沒追問。
她的任務是協助推導氣動方程,於是拿過陸丰標好參數的簡圖,開始在旁邊列阻力公式。
十一點四十五分。
一個半小時。
陸豐的面前已經摞起了七張寫滿公式的草稿紙。
第一問的完整數學模型含引力輔助速度增量的多段蘭伯特轉移軌道優化模型,目標函數是總飛行時間,約束條件包括燃料質量上限和行星窗口期。
求解方法用序列二次規劃。
第二問的完整數學模型六自由度火箭著陸動力學狀態方程,含可變推力、推力矢量角、氣動阻力和著陸腿展開時機四個控制變量。
用龐特里亞金極大值原理建立伴隨方程,將最優控制問題轉化為兩點邊值問題。
周曉曉把算好的數值根遞過來,陸豐掃了一眼,點頭,直接代入第一問的軌道參數。
「建模部分基本完了。」陸豐把筆放下,活動了一下手腕。
陳靜張著嘴,視線在那七張草稿紙上來回掃了三遍。
一上午。
別的隊還在為第一問的坐標系選取爭論不休,他們這邊兩問的建模全部搞定。
「學弟,你不是人。」陳靜由衷地發出了今天的第一句感嘆。
陸豐沒接這個話,轉頭看向編程組。
「李浩學長,建模結果在這裡,你們開始寫代碼吧。」
他把七張草稿紙遞過去。李浩接過來,和王哲、劉宇湊在一起研究了大約三分鐘。
三個人的表情越來越凝重。
不是看不懂,恰恰相反,他們完全看懂了。
正因為看懂了,才意識到這套模型的代碼實現難度有多高。
六自由度狀態方程的數值積分,需要自己寫一個四階龍格庫塔求解器。
龐特里亞金極大值原理的伴隨方程求解,需要用到打靶法做兩點邊值問題的疊代。序列二次規劃的優化器,雖然可以調用現成的庫,但約束條件的雅可比矩陣得手動推導後硬編碼進去。
「這個……工作量有點大。」李浩措辭謹慎。
王哲更直接:「老大,這代碼量我估摸著得寫到明天下午。」
陸豐看了一眼牆上的掛鍾。
十二點十分。
七十二小時的總時限,已經過去了兩個多小時。
如果編程環節耗到明天下午,留給論文撰寫和模型校驗的時間就太緊了。
他想了兩秒。
「我來寫。」
李浩一愣。
「你們三個負責測試和調試,我把主程序框架搭出來。」
陸豐說完,沒等他們反應,直接拉開自己那台電腦的椅子坐了下去。
打開Python的IDE,新建工程文件。
手指落在鍵盤上。
「嗒嗒嗒嗒——」
那種熟悉的、密集到幾乎連成線的敲擊聲再次響起。
李浩站在陸豐身後,雙手垂在身體兩側。
他看著屏幕上的代碼以一種不真實的速度往下滾動。
沒有注釋,不需要注釋。
因為代碼本身就是注釋.
每個變量名都嚴格對應草稿紙上的數學符號,每個函數的輸入輸出都一目了然。
王哲站在李浩旁邊,脖子伸得老長。
他想幫忙,但找不到切入點。
劉宇默默地給陸豐倒了一杯水,放在鍵盤右側。
陸豐頭也沒抬,左手摸到杯子,灌了一口,放下,繼續敲。
下午一點半。
陳靜跑了一趟食堂,帶回來六份盒飯和一兜子礦泉水。
「吃飯了吃飯了。」
周曉曉和編程組三人接過盒飯開始扒飯。
陸豐的盒飯被放在桌角,他掃了一眼,沒停手。
下午三點二十。
陸豐按下運行鍵。
屏幕上,第一問的軌道優化程序開始疊代。
進度條走了大約四十秒,輸出窗口彈出一組軌道參數和一張太陽系內的轉移軌道三維投影圖。
藍色的曲線從地球出發,掠過金星,藉助引力彈弓獲得速度增量,沿一條優雅的橢圓弧線繞太陽半圈後返回地球。
總飛行時間:487天。
燃料消耗:在約束範圍內。
緊接著,第二問的著陸仿真程序也跑完了。
屏幕上出現一段動畫一枚簡化的火箭模型從兩千米高度開始減速下降,推力矢量隨姿態實時調整,在距地面五十米處著陸腿展開,最終以每秒一點二米的速度穩穩落地。
底部輸出了最優燃料消耗量和各控制變量的時間歷程曲線。
李浩盯著那段著陸動畫看了整整十秒鐘,然後緩緩轉過頭,看向自己那台從開機到現在一行代碼都沒敲過的電腦。
關機算了。
他咽了口唾沫,問了一句:「學弟,你留著我們三個到底是幹啥的?」
「等會兒幫我跑一下參數敏感性分析,換幾組初始條件看看模型的魯棒性。」
李浩點頭,終於找到了自己的存在價值。
雖然這活一個人半小時就能幹完。
機房後方。
吳鶴鳴不知道什麼時候走到了A-07區域的側後方。
他雙手抱在胸前,透過隔板的縫隙看著陸豐的屏幕。
他搞了二十多年數學建模競賽的評審和組織工作,見過不少天賦異稟的學生。
建模能力出眾的,他見過。
編程速度驚人的,他也見過。
但一個人同時把這兩樣都做到這種程度的,沒見過。
他轉頭看了一眼A-07區域裡那三個編程組的男生。
省編程競賽的獲獎選手,此刻正排排坐在旁邊,手裡端著盒飯,一臉茫然地看著陸豐的背影。
像三個被搶了活的臨時工。
吳鶴鳴收回視線,走回自己的角落,從口袋裡摸出手機,打開通訊錄翻到一個名字。
省數學學會理事長。
他猶豫了兩秒,把手機又塞了回去。
還是等最終論文出來再說。
萬一論文寫得一塌糊塗呢?
建模和編程都完成後,陸豐靠在椅背上,擰開那瓶劉宇放在桌角的礦泉水,灌了兩口。
陳靜已經打開了Word,手指懸在鍵盤上方。
「接下來,論文的部分交給我了。」她沖陸豐比了個OK的手勢,「框架你給我列一個,剩下的我來寫。」
陸豐從旁邊抽了張紙,花兩分鐘列了一個論文的章節框架和每一節的核心論點,遞給她。
陳靜接過來看了一遍,點頭。
「明白了,你去休息一會兒。」
陸豐這才感覺到脖子酸得快斷了。
他站起身,活動了一下肩膀,走到窗邊。
窗外的天色已經開始暗了。