本文标题是几年前这个广告出现在纸质EDN杂志广告彩页上时的标题
MATLAB Model-Based Design 代码生成器应用案例首页
XXXXXXXXXXXXXXXXXXXXXXX/control-systems/mbd_XXXXXml?nocookie=trueX-43飞控系统的应用案例 英文版
XXXXXXXXXXXXXXXXXXXXXXX/company/user_stories/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXml中文版
XXXXXXXXXXXXXXXXXXXXX/newsletter/XXXXXXXXXXXXXXp?ArtID=990MATLAB/Simulink帮助NASA高超音速冲压喷气机X-43A打破10马赫的飞行记录
X-43A首飞创造了一项新纪录
2004年11月16日,NASA创造了新的历史:历史上第一架吸气式高超音速飞机X-43A发射升空,在大气层中达到了10马赫的飞行速度。X-43A脱离助推器后,在超音速冲压发动机的推动下,在大约110,000英尺(约合33.5 km)的高空创造了这个纪录(7,000 MPH,约合11,200 km/h)。这次试验使NASA得以验证吸气式高超音速飞机关键的推进及相关技术。
这个被称为Hyper-X的项目,是多个许多机构合作的结果,这些机构包括NASA Dryden飞行研究中心,NASA Langley研究中心,AMA,波音Phantomworks。开发团队使用MathWorks基于模型的设计工具开发飞行器的推进和飞行控制系统,并自动生成飞行代码。同时他们还使用MATLAB来分析飞行前的预想情况和飞行后的结果数据。
挑战
NASA需要为X-43A及其子系统开发控制器,这些子系统包括飞行控制、推进系统、舵机和传感器。控制器必须使这个无人驾驶飞行器稳定在半度攻角内,并确保在飞行器与助推器前端的连接器分离时,两者有足够的距离。工程师们需要在飞行模式还未确定的情况下完成这个项目,并保证它适应广泛的环境条件。
由于这个独特的项目包含了多个合作团队,并且设计高度复杂,NASA需要一个统一的建模环境,以及经过检验的可靠的设计流程和模型库。
这个项目的系统需求和系统模型随项目的进展而发生变化的可能性很高,因此NASA也希望能找到一种自动开发工具,使手工编程和调试的工作量减到最小。
最后,NASA还需要一种工具来有效分析数据量高达几千兆的多 维遥测数据。
解决方案
NASA的GNC(导航、制导和控制)小组和波音、AMA合作开发了X-43A的推进和飞行系统的控制律,并集成在整个机载系统中。所有的小组通过应用MathWorks的基于模型的设计工具在该项目中进行合作。
AMA的负责模型与仿真的副总裁Dave Bose说:“没有其它任何一种软件包可以与MathWorks的工具相媲美,从团队的角度来看,选择MathWorks的工具是一个轻松的决定”。
设计、仿真和验证机载控制系统
NASA和AMA使用Simulink来设计控制律的增益并保证可接受的稳定裕度。Simulink帮助他们快速通过了仿真阶段,其中包括了在宿主机上运行的蒙特卡罗仿真,以及飞行前在实时计算机上进行的硬件在环(HIL)测试和验证。
工程师们建立了在Simulink中建立了这个飞行控制系统的线性模型,并使用Control System Toolbox设计环路增益和分析稳定裕度。
AMA使用Simulink开发了整个飞行器和子系统的复杂非线形模型,包括六自由度的对象模型、带复杂滤波器的控制系统模型、高精度的舵机模型和详细的传感器模型。他们使用MATLAB和Simulink使这些模型能够和真正的飞行数据相吻合。
“在Simulink中创建算法比起Fortran要容易多了,因为你是在建子系统而不是子程序,而且这些子系统组织起来更直观,”,波音的系统分析员Luis Miranda说到,“况且,我想象不出还有比使用Simulink模型更有效的陈述软件需求的方法。”
AMA和NASA的工程师使用MATLAB和Simulink对分离过程进行建模和仿真,确保助推器上的连接器和试验飞行器不会发生碰撞。他们对分离柱销进行了地面试验,然后使用MATLAB测量和分析所采集的传感器数据,使用Optimization Toolbox得出和试验数据相匹配的参数。然后他们利用此参数开发了一个精确的Simulink模型,用来检验仿真和试飞前的各种试验结果。
生成C代码并集成到飞行管理单元(FMU)
NASA和波音使用Real-Time Workshop®自动生成X-43A的推进和飞行控制系统的C代码。这些代码代运行在X-34A的飞行管理单元--来自霍尼韦尔公司的H-764中。同时,这些代码也使用在6自由度飞行仿真中,如进行非实时的舵机测试,以及HIL测试。
工程师们使用Real-Time Workshop来生成C语言的头文件、注册文件、参数文件和主算法文件。因为参数易于访问,他们在试验过程中以及飞行的当天对飞行控制和推进系统的全部参数进行了检查。
波音通过Simulink和Real-Time Workshop实现了两个主要的测试阶段的自动化:模块测试和HIL测试。为避免检查自动生成的代码,同时还保证透明的验证和确认过程,他们进行了软件需求检验和结构覆盖度分析。
“系统需要修改的时候,我们只要更新Simulink方框图,自动生成相应代码,然后载入自动生成到编译环境中,按下Build键就完成了。”波音PhantomWorks的软件工程师Paul Seigman说,“我们体验到生产效率的显著提高,避免了手工编码的缺陷。”
对于模块测试,在软件模块部件集成进整个嵌入代码前,波音公司建立了一些激励模型,在宿主机上对软件模块进行测试。然后他们使用Real-Time Workshop自动生成C代码并检查可能存在的仿真结果和生成代码之间的不一致性。
在HIL测试中,他们测试了整个软件的功能,包括FMU中的自动生成代码。波音使用了一个惯性模拟器作为飞行平台,将速度数据输入到FMU中,FMU会发出在各种速度下的飞行指令。通过HIL测试,工程师们观察了从助推段到分离、溅落的整个飞行轨道,并从FMU总线控制器上收集到遥测数据,用于MATLAB的后处理。
为满足NASA的集成和联调的各种时间节点要求,波音也使用Real-Time Workshop提供软件的各类中间版本。“如果没有自动生成的代码,我们根本就不可能给NASA有效地提供中间版本,因为控制规律总是在变化,”,Seigman说。“我们在自动生成的代码中从来没有发现任何错误,所以我们对于用它为NASA提供快速原型非常有信心。”
飞行数据的分析和后处理
为了准确地估计飞行器着陆后的轨迹,NASA使用MATLAB建立Kalman滤波器,去除遥测数据源的噪音,如惯导数据、大气数据和来自GPS天线的数据。
为了分析分离过程,NASA利用MATLAB自动处理大型的八维空气动力学数据表,这些数据表用来为连接器和试验飞行器之间的干涉效应建模。通过MATLAB的绘图及图表功能将这些数据可视化。
“这些数据的规模及复杂构成了很大的挑战”,NASA的系统分析师John Martin说。“如果没有MATLAB,我不可能解决这个问题。”
NASA现在正使用MathWorks的工具研究如何延长燃烧时间,以达到更高的马赫速度,从而推动高超音速技术的进步。
“我们的自动驾驶仪在第一试飞时就成功了,这是令人惊讶的,因为这样的飞行器从来没有飞行过。MathWorks工具帮助我们设计和实现了控制系统,保证了飞行器的稳定飞行。”
-- Dave Bose,AMA
实施效果
开发周期减少数月
“用Real-Time Workshop自动生成代码,节省了我们好几个月的时间,”Seigman解释道,“如果我们必须全部手写代码,我不相信我们能在最终期限前完成工作。”
准确预测分离间隙
“我们的动画软件不能告诉我们连接器和飞行器在分离阶段会有多接近,因而我们无法设计控制策略来最大化分离间隙,”,Martin解释说。“但我们使用MATLAB非常方便地计算出了近似值,我们的后处理结果证明我们的预测是非常准确的。”
协助获得软件工程学院能力成熟度模型(SEI CMM)5级流程评分
“在我们开发飞行代码的艰苦流程中,我们的这个项目获得了SEI 5级,”Seigman解释道。“我们将我们对自动生成代码的部件和HIL测试作为我们的一项流程改进,以满足SEI 5级的标准。”
要更多了解NASA和Hyper-X项目,请登陆
XXXXXXXXXXXX/missions/research/XXXXXXXXXXXml 面临的挑战:
为飞行速度达到10马赫的高超音速冲压飞行器设计和自动生成飞行控制软件
解决方案
使用Simulink建模和确认控制系统,用Real-Time Workshop自动生成飞行代码,用MATLAB处理和分析飞行数据
实施效果
开发周期减少数月
准确预测分离间隙
协助获得SEI CMM 5级评分
应用领域
国防航空
自动代码生成
基于模型设计
控制设计
仿真
数据分析
应用的产品
MATLAB
Simulink
Real-Time Workshop
Control System Toolbox
Optimization Toolobx
200字以内,仅用于支线交流,主线讨论请采用回复功能。