主要内容

开发阿波罗登月舱数字自动驾驶仪

“参与设计登月舱数字自动驾驶仪是我作为工程师职业生涯的亮点。当尼尔·阿姆斯特朗走出登月舱踏上月球表面时,每一个为阿波罗计划做出贡献的工程师都感到自豪和成就感。我们成功地达到了目标。我们开发了前所未有的技术,通过努力工作和对细节的一丝不苟,我们创造了一个完美无缺的系统。”-Richard J. Gran阿波罗11号登月:飞船设计的过去和现在

这个例子表明,如果1961年就有了Simulink®和Aerospace Blockset™,理查德和其他在阿波罗登月舱数字自动驾驶仪设计团队工作的工程师是如何做到这一点的。金宝app

模型描述

在Simulink中开发自动驾驶仪所花费的时间只是最初设金宝app计阿波罗登月舱自动驾驶仪所需时间的一小部分。

如果~ bdIsLoaded (“aero_dap3dof”) open_system (“aero_dap3dof”);结束

反应射流控制子系统模拟了麻省理工学院仪器实验室(MIT IL)提出(并实现)的数字自动驾驶仪设计,现在称为德雷珀实验室。模型中的Stateflow®图指定实现相平面控制算法的逻辑技术文章阿波罗11号登月:飞船设计的过去和现在.根据登月舱正在执行图的哪个区域,状态流图位于Fire_region或者一个Coast_region.注意,这些不同区域之间的转换取决于某些参数。状态流图确定是否转换到另一种状态,然后计算要触发哪个反应喷流。

登月舱的平移和旋转动力学近似登月舱动力学子系统。访问登月舱状态和自动驾驶性能的各种可视化方法可视化模型的区域,包括Simulink作用域,用Simulink金宝app 3D动画制作动画,以及相平面图。

交互控制

要与登月舱模型交互,请更改自动驾驶仪设置和登月舱初始状态命令区域。例如,要观察数字自动驾驶仪设计如何处理增加的初始身体速率,请使用中的滑块组件配置LM姿态

任务描述

LM数字自动驾驶仪有三个自由度。这意味着在设计上,反应喷射推进器被配置和指挥旋转飞行器而不影响飞行器的轨道轨迹。因此,他的模型中的平动动力学是通过轨道传播来近似的,使用的是来自航天模块集的航天器动力学模块。该块配置为使用月球球形谐波重力模型LP-100K。

为了演示数字自动驾驶仪的设计行为,“下降轨道插入”任务段,就在动力下降开始之前,从阿波罗11号任务报告

图片来源:NASA

“下降轨道插入”燃烧开始于升空后101小时36分14秒,持续30秒。这次燃烧使登月舱的轨道在大约一小时内从大约60海里降低到5万英尺。在5万英尺的高度,登月舱开始动力下降。

初始化模型aero_dap3dof与登月舱的近似轨道在下降轨道插入后立即燃烧。

的使命。t_rangeZero = datetime(1969,7,16,13,32,0);%发射的使命。t_descentInsertionStart =任务。t_rangeZero +小时(101)+分钟(36)+秒(14);的使命。t_descentinsert =任务。t_descentInsertionStart + seconds(30); mission.t_poweredDescentStart = mission.t_rangeZero + hours(102) + minutes(33) + seconds(5.2); disp(timetable([mission.t_rangeZero, mission.t_descentInsertionStart,...的使命。t_descentInsertion mission.t_poweredDescentStart]”,...“射程零(升空)”“降落轨道插入(发动机点火)”...“降落轨道插入(发动机关闭)”“动力下降(引擎点火)”}’,VariableNames =“任务阶段”));
时间任务阶段  ____________________ _____________________________________________ 16 - 7 - 1969 13:32:00{范围0(发射)的}20 - 1969年7月19:08:14{的下降轨道插入(发动机点火)}20 - 1969年7月19:08:44{的下降轨道插入(引擎截止)}20 - 1969年7月20:05:05{的动力下降(发动机点火)}

模块在“下降轨道插入(发动机熄火)”和“动力下降启动(发动机点火)”时的轨迹载于阿波罗11号任务报告(表7-II。-弹道参数)。

的使命。Latitude_deg = [-1.16, 1.02]';%(度)的使命。longitude ude_deg = [-141.88, 39.39]';%(度)的使命。Altitude_mi = [57.8, 6.4]';%[海里]的使命。海拔高度= convlength(任务。Altitude_mi,“naut mi”“金融时报”);的使命。Velocity_fps = [5284.9, 5564.9]';% [ft/s](惯性系)的使命。FlightPathAngle_deg = [-0.06, 0.03]';%[度](从局部水平面向上测量)的使命。HeadingAngle_deg = [-75.19 -101.23]';%[度](以北方以东测量)disp(表({“射程零(升空)”“降落轨道插入(发动机点火)”},...的使命。Latitude_deg,使命。Longitude_deg,使命。Altitude_mi,...的使命。Velocity_fps,使命。FlightPathAngle_deg,使命。HeadingAngle_deg,...VariableNames = [“任务阶段”...“纬度(度)”“经度(度)”“高度(mi)”...“速度(米/秒)”航迹角(度)“标题(度)”)));
任务阶段经度(度)纬度(度)高度(英尺/秒)(mi)速度飞行路线角(度)标题(度 ) _____________________________________________ ______________ _______________ _____________ _______________ _______________________ _____________ {' 范围0(发射)}-1.16 -141.88 57.8 5284.9 -0.06 -75.19{的下降轨道插入(发动机点火)}1.02 39.39 6.4 5564.9 0.03 -101.23

模型初始化

使用上面定义的数据初始化任务阶段“下降轨道插入(发动机切断)”的模型参数。

初始化函数aero_dap3dofdata需要有关月球方向的信息,可以使用Aerospace Blockset函数计算moonLibration.此功能需要“用于航空航天工具箱的蜉蝣数据”。使用aeroDataPackage安装此数据(如果尚未安装)。

的使命。LibrationAngles_deg = moonLibration(juliandate(mission. t_descentinsert),“405”);

本例使用保存的振动角度数据t_descentInsertion.在安装所需的星历表数据后使用上述命令。

的使命。LibrationAngles_deg = [0.006379917345247;0.382328074214300;6.535718297208969);

运行初始化函数:

[月亮,ic,车辆,rcs] = aero_dap3dofdata(...任务。纬度(1),任务。经度(1),任务。高度(1),...mission.FlightPathAngle_deg mission.Velocity_fps (1) (1),...mission.LibrationAngles_deg mission.HeadingAngle_deg (1))
月亮=带字段的结构:R_moon_eq: 5702428 f_moon: 0.0012
ic =带字段的结构:T_runtime: 120 pos_inertial: [-3.6488e+06 -4.4381e+06 -1.9070e+06] vel_inertial: [4.0625e+03 -3.3792e+03 86.4867] euler_0: [-30 -10 -60]
车辆=带字段的结构:Inertia_0: [3x3 double] mass_0: 33296
rcs =带字段的结构:力:100 L_arm: 5.5000 DB: 0.0060 tmin: 0.0140 alph1: 0.0550 alph2: 0.0039 alph3: 0.0050 alpha: 0.0063 alphv: 7.8553e-04 alphs1: 0.0055 alphsu: 6.2855e-04 alphsv: 7.8553e-05 clockt: 0.0050 delta: 0.1000

闭幕词

在1961年,建立一个数字自动驾驶仪是一项艰巨的任务,因为它几乎没有工业基础设施——一切都在被发明的过程中。以下是节选自技术文章阿波罗11号登月:飞船设计的过去和现在

“(自动驾驶仪的机器代码)如此复杂的一个原因是,可以用来控制驾驶轴旋转的喷流数量很大。决定改变轴,自动驾驶仪控制的“喷气轴”显示在aero_dap3dof.这一变化极大地减少了代码行数,并使在现有计算机上编程自动驾驶仪变得更加容易。如果没有这种改进,自动驾驶仪不可能只使用2000字的存储空间。这种变化的教训是,当工程师有机会用他们正在设计的系统编写计算机代码时,他们通常可以修改设计来大大改进代码。”

参考文献

[1]国家航空航天局载人飞船中心任务评估组。(1969年11月)。阿波罗11号任务报告.从检索https://www.nasa.gov/specials/apollo50th/pdf/A11_MissionReport.pdf

Richard J. Gran, MathWorks。(2019)。阿波罗11号登月:飞船设计的过去和现在.从检索//www.tatmou.com/company/newsletters/articles/the-apollo-11-moon-landing-spacecraft-design-then-and-now.html

相关的话题