第一问,引力弹弓效应下的最优转移轨道。
他先画出一个简化的日心坐标系,地球、目标行星、太阳三个质点的相对位置用三角关系标定。
然后在旁边列出兰伯特问题的基本方程组。
已知出发点和到达点的位矢,以及飞行时间,求解椭圆转移轨道的半长轴和偏心率。
笔速很快,但每一个符号的间距都控制得恰到好处。
黎曼的专注力在此刻发挥了作用。
周围键盘的敲击声、隔壁队伍翻书的沙沙声、空调出风口的嘶嘶声,全部被自动过滤成了背景白噪音。
周晓晓搬了把椅子坐到陆丰左手边,不说话,只盯着他的笔尖。
陆丰写完兰伯特方程的标准形式,抬头看了她一眼。
“帮我算一下这个超越方程的数值根,用牛顿迭代法,初始值取π。”
周晓晓接过草稿纸,低头就算。
陆丰没等她的结果,直接翻到第二张草稿纸,开始推第二问。
火箭着陆动力学建模。
这才是整道题的重头戏。
他在纸上画了一个简笔的火箭侧视图。
锥形整流罩、柱形箭体、底部四个着陆支腿、中央一台可变推力主发动机。
图不大,但关键部位的标注极其精确。
推力矢量角δ、气动攻角α、箭体质心位置、着陆腿展开的铰链点,全部用箭头和符号标在映射位置上。
陈静从旁边探过头来,看到那张简笔画,愣了一下。
“你还会画这个?”
“网上看的。”陆丰随口说了一句。
陈静没听懂,但也没追问。
她的任务是协助推导气动方程,于是拿过陆丰标好参数的简图,开始在旁边列阻力公式。
十一点四十五分。
一个半小时。
陆丰的面前已经摞起了七张写满公式的草稿纸。
第一问的完整数学模型含引力辅助速度增量的多段兰伯特转移轨道优化模型,目标函数是总飞行时间,约束条件包括燃料质量上限和行星窗口期。
求解方法用串行二次规划。
第二问的完整数学模型六自由度火箭着陆动力学状态方程,含可变推力、推力矢量角、气动阻力和着陆腿展开时机四个控制变量。
用庞特里亚金极大值原理创建伴随方程,将最优控制问题转化为两点边值问题。
周晓晓把算好的数值根递过来,陆丰扫了一眼,点头,直接代入第一问的轨道参数。
“建模部分基本完了。”陆丰把笔放下,活动了一下手腕。
陈静张着嘴,视线在那七张草稿纸上来回扫了三遍。
一上午。
别的队还在为第一问的坐标系选取争论不休,他们这边两问的建模全部搞定。
“学弟,你不是人。”陈静由衷地发出了今天的第一句感叹。
陆丰没接这个话,转头看向编程组。
“李浩学长,建模结果在这里,你们开始写代码吧。”
他把七张草稿纸递过去。李浩接过来,和王哲、刘宇凑在一起研究了大约三分钟。
三个人的表情越来越凝重。
不是看不懂,恰恰相反,他们完全看懂了。
正因为看懂了,才意识到这套模型的代码实现难度有多高。
六自由度状态方程的数值积分,需要自己写一个四阶龙格库塔求解器。
庞特里亚金极大值原理的伴随方程求解,需要用到打靶法做两点边值问题的迭代。串行二次规划的优化器,虽然可以调用现成的库,但约束条件的雅可比矩阵得手动推导后硬编码进去。
“这个……工作量有点大。”李浩措辞谨慎。
王哲更直接:“老大,这代码量我估摸着得写到明天下午。”
陆丰看了一眼墙上的挂钟。
十二点十分。
七十二小时的总时限,已经过去了两个多小时。
如果编程环节耗到明天下午,留给论文撰写和模型校验的时间就太紧了。
他想了两秒。
“我来写。”
李浩一愣。
“你们三个负责测试和调试,我把主程序框架搭出来。”
陆丰说完,没等他们反应,直接拉开自己那台计算机的椅子坐了下去。
打开Python的IDE,新建工程文档。
手指落在键盘上。
“嗒嗒嗒嗒——”
那种熟悉的、密集到几乎连成线的敲击声再次响起。