美国猎户座gn&c系统开发—基于模型的开发实践-凯发官方首页

美国猎户座gn&c系统开发—基于模型的开发实践-凯发官方首页

| | english

新闻中心

凯发官方首页-凯发娱乐登录  >  新闻中心  >  产品动态

美国猎户座gn&c系统开发—基于模型的开发实践 二

四、pdrcdr的开发

      在后pdr阶段,gn&c和fsw团队从手写算法原型到mbd流程,该流程在simulink中创建了初始版本的gn&c csu。这个过程中,主要做了以下工作:simulink中ramses gn&c 打包开发,提供csu之间的接口的空盒子架构(eba)开发,将gn&c的算法从原型c代码翻译成simulink模块框图,以及将csu集成到框架模型中。

图5典型的gn&c csu框图

         图5展示了典型gn& c的csu接线盒的simulink框图,橙色的模块是包含算法的csu,它的接口包括4个simulink bus对应结构体数据类型,输入和参数bus从左边进入csu,输出和遥测bus位于右侧。输出信号被下游csu利用,同时遥测数据主要用于分析系统行为。在自动代码生成时,橙色模块生成一个类,其使用方法是调用与四个bus对象对应的结构体数据参数。

       橙色csu的左边是接线盒(junction boxes),这些子系统接受上游csu的数据以及其他数据将其分为输入和参数。橙色的csu是模型引用模块,意味着这是个功能独立的模型文件,这对于配置管理非常重要,因为这个模块的修改只会影响相关的文件。

       在simulink设计过程的早期,向simulink模型参考程序块提供参数的方法是一个重要的设计决定。在本文中,输入是时变信号,csu利用该输入信号产生输出。参数用来配置csu并在多数执行调用时保持不变。这些数据可能会在使用基于异步事件的软件模式时发生改变,但是在其他情况下保持固定。控制增益可以作为参数的示例,而控制误差可以示例输入信号。猎户座gn&c团队选择通过上述讨论的参数bus的形式传递参数到每一个csu。该方法具有以下几项优点:

1、在框图中,参数接口定义的很清楚直观;

2、参数的数据类型使用simulinkbus定义的很清楚;

3、生成的代码中参数接口比较清楚,作为一个结构体指针用于生成的c++代码调用。

       然而,这样做的主要缺点是参数必须像信号一样放在csu内部。这意味着很多simulink的基本模块无法直接使用。图6中的gain模块就是个例子,该模型是输入u乘以增益k得到输出y,由于增益k是参数bus结构中的一员,必须以“信号线”的形式进入到模型中,如图6下方所示。线束的增加就降低了可读性,在猎户座中,增益模块使用隐藏的from模块,这样就允许设计人员采用类似图上的那种方式使用增益,但是还是尽量使用simulink语言,较新的simulink版本中允许使用其他方式定义参数,在以后的项目值得考虑。

图6增益参数比较

        图7展示了一个csu的经典集合或者叫“域”,每个橙色的csu模块包含图5中的接线盒(junction boxes)和 csu算法。这个例子是cm控制域含有3个csu用于给cm的反作用力推进装置发指令来控制cm。每个csu接收上游csu给出的输入。

图7包含csu模块的典型的域

       每个域还包括模式逻辑根据从gn&c算法中接到的命令激活或冻结csu。在外大气层的飞行中和导航进入过程中,rcs control被激活用于给推进逻辑提供速率转换命令。一旦到了降落阶段,rcs control被冻结,touchdown roll control被激活将cm转换到顺风在海上溅落。

       在猎户座项目中,橙色的csu被自动生成代码并作为一个独立的功能模块集成到gn&c中,所以从域这一层开始,simulink框图并没有直接生成最后的飞行软件,而是提供了允许在simulink环境中进行闭环仿真的csu开发与集成接口和模式。

       在同一域中所有csu执行均使用同一个速率,这里是40hz。在开发猎户座域框架模型时的一个经验就是将相似速率的csu归类可以简化由于速率的延迟与交互引起的建模问题,早期的域版本包括所有相关功能而未考虑执行速率。

       将所有类似速率的模块用线连起来并按高低速率进行分类,如图8。这些速率模块以及图中的其他模块组成了eft-1最终形式的ramsessimulink开发环境,输入、输出和分析数据由iop模块提供,该模块类似于飞行软件中的输入、输出端口用于提供仿真中的接口,同样也有gn&c接口、包括c&dh,timeline manager (tmg)和vehiclemanager(vmg)用于为gn&c提供航天器的配置和任务段信息。

图8封装gn&c和fsw的ramses simulink环境

      在典型的mbd流程中,一个公司或组织可能有现有可以直接拖用的gn&c模块算法库。在猎户座项目中,因为大部分的算法原型是用c做的,所以需要将c算法翻译成simulink模型。进入飞行阶段具备成熟的算法,所以这部分的算法翻译和往ramses中集成是先做的,这个探路者起到非常关键的作用,同时也有很重要的教训,为mathworks提出了很多重要的建议,有些已经在后期版本中进行了改进。

可扩展性(scaleability)

      猎户座的mbd工具要求具备足够的可定制性,以便可以扩充到项目规模的大小。最终的猎户座gn&c程序将会产生超过10万行的自动生成代码。猎户座的经验是对于这种规模的程序,simulink产品没有提供立即可用的充足的开发功能。猎户座项目团队发现,当csu的规模容量增加时,ramses-m/a的开发环境的编译和执行速率会有所下降。因此,mathworks必须不断开发自定义工具,提高迭代所需的标准和技术,从而使产品的开发周期和时间处于可接受范围内。许多这样的工具、标准和其他经验教训对于类似的项目是非常有用的。由于eft-1缩减了整个应用程序的规模,同时许多类似的工具和技术已经可用并且团队成员对其有了更加深入的理解,未来的项目开发将会更加高效,但是由于猎户座方案有了更新,开发时为了隔离飞行阶段或功能,折中方案仍然是需要的。

配置管理(configuration management)

        选择mbd流程就会有与手写代码不同的配置管理需求,mbd工具尤其需要考虑两个方面:图形模块的分离和合并模型变化。simulink的早期版本将所有的功能都放在一个模型文件(.mdl)中,对于大型 项目这样并不实用,因为即使只对模型中某个独立的子系统进行修改,所有的开发人员也要对同一个对象进行操作。因此,猎户座项目使用simulink的模型引用模块(model reference block,mrb),这样可以使用一个分离的模型文件来描述一个子系统,只需在上层模型中引用该模型即可。这种方式对开发阶段有很大的影响,现在也可以对mrb进行参数化和自动代码生成。因为mrb是从配置管理的角度是比较必要的。

       模型变化的合并是mbd开发过程中另外一项需要重点考虑的内容。当不同的开发人员针对同一个文件同时进行了多种变更时,需要将这些改变进行合并。文本合并工具对手写的应用代码十分有效,但是mbd模型变化的图形合并工具比文本合并更加昂贵并且效率较低。猎户座项目从第三方供应商购买了图形合并工具的许可证,发现其是足够有用的,但是不像文本合并工具那样高效。对于开发团队,这些工具有限的分配和培训限制了为完成该项目而进行并行开发的人员数量。这在csu层面还不算一个大问题,但是csu开发人员经常会在域层面进行更改,这样一来,就必须等待其他开发人员完成了域层面的更改或者使用图形合并工具进行并行修改。由于域层面的更改经常是在接口方面,正如前文所述及图5和图7所示,通过在另一个mrb中将接线盒与csu结合封装,可以减少对图形合并工具的使用数量。并且,csu标准要求避免对csu进行并行更改。由于eft-1的算法比较成熟,因此并行开发减少并且合并的需求减弱。然而,猎户座团队认为在剩下的飞行开发阶段图形合并能力仍然是一项重要的需求,因此仍在寻找可行的凯发娱乐登录的解决方案。

混合工具开发的复杂性(complexity of mixed tool development)

        ramses的开发环境及其接口和手写代码的仿真已经在猎户座eft-1的开发中进行了成功应用。然而,在早期的开发阶段,对于手写代码仿真继承性不强的工程,混合仿真/fsw开发环境的使用并不推荐。猎户座开发环境需要相当复杂的一组脚本来开启仿真和fsw进程,加载仿真和fsw配置信息并管理环境变量和其他初始化项目。该环境还需要对几种工具比较熟悉,包括c代码、jsc “trick”仿真环境、执行脚本的套件和全部的simulink工具套件及自定义脚本。这意味着该项目的新员工需要首先进行重要的培训才能进行开发。该团队目前正在针对未来的飞行开发寻找合适的选择,包括简化的脚本和配置管理工具以及针对早期算法开发的简化保真simulink仿真。

日志记录与调试(logging and debugging)

       猎户座团队大量定制工作是在以下两方面进行的:数据记录和图形化流程调试。simulink开发工具为将数据写入文件和matlab工作区以输出模块形式提供了一些选择。然而,这些选择不是数据可配置的,而这对于高复杂度的应用是必须的;此外,这些方法对阵列结构类型(arrayed structure types)不兼容。由于上述原因,猎户座团队开发了一个数据记录子系统-ramses-m record-以便允许用户为后续分析调试选择输出参数。尽管该工具将为未来的猎户座开发提供帮助,仍然非常需要能够提供通用的日志记录功能,该功能作为simulink的一部分,在更改参数配置时不需要改变模型框图。

       此外,在simulink本地环境中进行调试一般而言比较困难。simulink提供了三个独立的调试工具,分别针对simulink、embedded matlab和stateflow。三种工具各不相同,每种工具都需要培训和熟悉。开发者目前常用的是embedded matlab调试器,这是因为它可以提供直观的图形插入断点,“悬停”显示变量和参数值,等等。事实上,由于eml调试的方便性令一些开发者将初始算法设计为大型eml模块,这些模块随后被拆分成图形元素,该元素具有更小型的eml函数并包含在更底层的模块中。该团队也开发了自定义eml调试模块,可以允许在simulink子系统模块之间的bus中进行执行控制和观察数据。

关于恒润
凯发娱乐登录的简介
企业理念
企业资质
新闻中心
恒润在全球
诚聘英才
校园招聘
实习生招聘
社会招聘
走进恒润
常见问题
市场活动
在线研讨会
凯发官方首页的线下活动
微信课堂
用户社区
资料下载
恒润月刊
用户留言
个人中心
相关链接
联系凯发官方首页
电话:010-64840808
邮箱:market_dept@hirain.com
凯发娱乐登录的版权所有 © 北京经纬恒润科技有限公司 京icp备18000642号-1 京公网安备11010802017344号 网站地图 | 招聘信息 | 法律声明 | 隐私保护
网站地图