主要内容

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

“设计登月舱数字自动驾驶仪是我作为工程师职业生涯的亮点。当尼尔·阿姆斯特朗从登月舱走到月球表面时,每一个为阿波罗计划做出贡献的工程师都感到骄傲和成就感。我们成功地达到了目标。我们开发了前所未有的技术,通过努力工作和对细节的细致关注,我们创造了一个完美运行的系统。”理查德·j·格兰阿波罗11号登月:飞船设计的过去和现在

这个例子展示了理查德和其他在阿波罗登月舱数字自动驾驶仪设计团队工作的工程师如何使用Simulink®和Aerospace Blockset™,如果它们在1961年就已经可用的话。

模型描述

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

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

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

登月舱的平移和旋转动力学近似于登月舱动力学子系统。访问登月舱状态和自动驾驶性能的各种可视化方法可视化区域的模型,包括Simulink范围,动画与Simulink 3D动画,和相位平面图。

交互控制

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

任务描述

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

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

图片来源:美国国家航空航天局

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

初始化模型aero_dap3dof与登月舱在下降轨道插入燃烧后的大致轨迹相吻合。

的使命。t_rangeZero = datetime(16 1969年,7日,13日,32岁,0);%发射的使命。t_descentInsertionStart =任务。t_rangeZero + hours(101) + minutes(36) + seconds(14);的使命。t_descentInsertion =任务。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]”,...“范围0(发射)”“降落轨道插入(发动机点火)”...“降落轨道插入(发动机关闭)”“动力下降(发动机点火)”}’,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 = [-141.88, 39.39]';%(度)的使命。Altitude_mi = [57.8, 6.4]';%(海里)的使命。Altitude_ft = 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]';% [deg](测量北偏东)disp(表({“范围0(发射)”“降落轨道插入(发动机点火)”},...的使命。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_descentInsertion),“405”);

本例使用保存的与之对应的振动角数据t_descentInsertion.在安装所需的蜉蝣数据后使用上述命令。

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

运行initialization函数:

[月亮,ic,飞行器,rcs] = aero_dap3dofdata(...mission.Longitude_deg mission.Latitude_deg (1) (1), mission.Altitude_ft (1),...mission.FlightPathAngle_deg mission.Velocity_fps (1) (1),...mission.LibrationAngles_deg mission.HeadingAngle_deg (1))
月亮=结构体字段:r_moon: 5702428 f_moon: 0.0012
ic =结构体字段:T_runtime: 120 pos_惯性:[-3.6488e+06 -4.4381e+06 -1.9070e+06] vel_惯性:[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 delt: 0.1000

闭幕词

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

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

参考文献

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

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

另请参阅

|

Baidu
map