基于模型的航天软件研制实

 

一、背景介绍

随着航空航天等领域中系统设计复杂度的不断增加,复杂系统设计面临如下挑战:1)系统复杂程度增长速率超过管理能力的增长速率2)缺少设计流程框架系统设计碎片化3)项目生命周期之间、各个项目之间的系统设计的相关知识、工件的丢失

为解决上述问题,确保复杂系统设计质量的同时提升设计效率,业界提出了一种有效方法—系统工程(SE)。系统工程包括传统的基于文本的系统工程和基于模型的系统工程(MBSE)。国内航空航天领域多数使用基于文本的系统工程,MBSE方法应用较少。然而近几年来,系统工程已从传统的依赖基于文档的方法逐渐转变为采用基于模型的方法MBSE国外航空航天领域的公司在产品开发过程中已广泛采用MBSE方法,其中包括波音洛克希德SpaceXNASA。在这些公司的产品研发过程中,MBSE方法相比传统系统工程在系统设计时提供了更加清晰的设计视图语义丰富的系统规范,通过模型化的系统设计追溯机制提高项目的可追溯性和质量,并通过自动化模拟,实现系统分析和验证,进一步提高系统的开发效率和产品质量。

本文将介绍一种基于SysML建模语言和MagicGrid建模方法的卫星供配电系统模型,并在此案例的基础上讨论模型驱动在航天软件研制上的可行性和优势等。

SysML语言

SysML是一种特定领域的建模语言,用于指定、分析、设计、优化和验证系统。SysML相较于其他系统建模语言具有以下特点:1)多环境适配:SysML建模的系统可以在不同环境中运行和连接。2)实例化特性:SysML建模的系统可以使用不同的参数对其进行部署。3)模拟仿真:SysML建模的系统行为可以通过fUML进行模拟仿真。

SysML作为一个标准的建模语言,是MBSE建模大型复杂系统的关键。然而SysML不是框架也不是方法论,它不为建模过程提供任何的向导和建议。因此MBSE需要一方法论来解决以下问题:1)如何开始构建一个系统模型2)需要建立哪些视图3)需要创建哪些工件4)需要构建哪些行为。本文选择了MagicGrid。

MagicGrid介绍

MagicGrid是由No Magic开发的MBSE方法。方法基于框架由网格结构联系的描述系统不同方面的视图组成。网格中的每个单元都是在系统工程的过程中被交付的工件。该框架的纵轴为系统的不同抽象层,横轴为系统的不同视图。框架中的单元将提醒工程师需要对抽象层的系统中哪些视图和工件进行建模。

img1

MagicGrid框架

二、卫星供配电分系统案例

卫星供配电分系统是卫星系统下的一个子系统,其主要作用是为卫星提供能源。卫星供配电分系统的设计要求包括:电源管理软件运行的硬件条件、软件功能及算法、故障切换逻辑等。

img2

卫星供配电分系统MagicGrid框架视图

三、问题领域 黑盒

首先是问题领域的建模。问题领域的主要目标是分析利益相关者需求并通过SysML模型来细化需求。问题领域内部又分为黑盒与白盒两个阶段。在黑盒阶段,需要建模的系统将被视为一个黑盒。因此这一阶段的主要关注点在于系统是如何与环境进行交互,而不涉及任何内部的结构和行为;白盒阶段的主要目标是理解并定义系统内部细节,包括系统内部行为、内部概念子系统和子系统的输入输出。

利益相关需求:本步骤从系统的利益相关者处收集信息,建模成SysML需求模型,通过表和图的形式展现。

img3

利益相关者需求

        系统上下文:系统上下文提供了观察系统的外部视图,包含了所有不属于系统但与系统进行交互(信息或者能量)的外部元素。

img4

卫星系统上下文

img5

供配电系统上下文

        用例:本步骤将会对功能性需求进行细化描述。相较于利益相关者需求,用例将更详细地描述用户对系统的期望。用例的活动图(act)会展现为了实现此用例,系统如何和其他系统进行交互。此阶段的活动图中的方法需要被分配给系统上下文中定义好的不同系统。

img6

顶层用例

img7

遥测下传用例的活动图

有效性衡量:对系统的非功能性需求进行细化描述。

img8

卫星供配电非功能属性

四、问题领域 白盒

功能分析:在黑盒阶段定义的活动将在这里被分解。这一步的分解的活动尚未被分配到子系统中,分配将在概念子系统被定义后执行。

img9

蓄电池在轨管理

        定义系统的概念子系统: 本步骤需要定义系统的概念子系统和它们之间的交互。概念子系统是对一个或多个系统内部功能负责的模块,并且这些子系统将会互相连接交互。概念子系统被定义后即可对白盒功能进行分配。如图,将卫星供配电分系统分为了太阳能组、母线、能量控制、蓄电池组、软件和存储部分,并对它们之间的交互进行了定义。

img10

概念子系统IBD

子系统的MoEs单元: 需要在概念子系统上对非功能需求进行细化。如图11,各个供配电系统的子模块继承了消耗时间属性,便于之后的控制周期约束的计算。

img11

11 概念子系统非功能属性

五、解决方案领域

解决方案领域最上层是逻辑系统结构(LSA),此部分定义了系统最上层的逻辑结构和系统各个部件的交互接口,将内部的系统部件命名为子系统。第二层是各个子系统的架构。子系统架构是子系统的具体实现方案,需要注意的是一个子系统可以有多个子系统架构模型,这些不同的模型可交付给不同的团队进行建模,最后选出最优的模型来实现该系统。这种开发方法使各个团队在开发过程中不需要知道其他子系统架构的细节,只需对自己的输入输出负责。最后最下层的系统配置选择合适的逻辑子系统架构整合成一个模型,问题领域的一个模型就建立完成。

img12

解决方案领域部分结构

        解决方案领域下可按照系统结构进行继续分层,如本案例可以分成整体系统、蓄电池子系统、太阳能子系统等。每一层需要建模的和问题领域一样,分为需求、结构、行为和系统参数。下面将详细介绍与问题领域不同的部分。

        不同于问题领域的行为建模偏向于用户需求,解决方案的行为建模因为更偏向于系统设计,所以更多用到的是状态机图和活动图的组合。解决方案的行为会用到块的属性,并会嵌入代码对属性进行修改等操作;状态机的建模需要保证各个功能模块在合适的时间处于合适的状态;参数接收模块需一直保持工作状态,除非此功能模块被禁止;根据需求文档定义,指令处理模块只需在T为1时进行工作,其余时间为空闲状态蓄电池和遥测参数模块一致,都是在On状态前提下,只在特定的T值时进行工作。状态机建模完成后,我们将使用活动图对行为细节进行描述。此处我们以遥测参数功能中,On状态内的working子状态的do行为遥测参数处理作为例子。下图所示遥测参数处理的前几步,遥测参数处理的第一个步骤是判断遥测包是否有效,若有效则进行PCU处理无效则跳过下述步骤。

img13

各个子系统架构的状态机图

img14

遥测参数处理活动图

        为了模拟物理量之间的关系和转换,需用到参数图。参数图内写出对应的参数关系函数。如下图所示内容为蓄电池子系统架构的参数图,定义了几个蓄电池物理量之间的关系。PSOCE是东蓄电池组荷电态,荷电态表示电池剩余容量与其完全充电状态的容量的比值。它与电压之间是二次函数的关系,通过参数图的约束块可以定义出这些量之间的关系,并在模拟仿真过程中自动同步更新。

img15

蓄电池物理参数关系

六、GUI建模与仿真

        我们同时在模型内部开发了一个GUI,它与卫星供配电分系统同步进行仿真模拟。大多数的MBSE建模工具中有UI界面创建的功能,此功能将生成一个可以观测系统、可以进行交互的界面。

img16

GUI界面

        为了仿真出供配电系统在不同光照强度、不同卫星功耗负载和蓄电池内部能量的情况下,电流量变化与模式切换,本文建模出了一个可改变光照强度与工作负载,并观察卫星电池荷电态与工作模式的GUI,如图27示。此时太阳能提供的电能远超卫星负载,所以电池的充电电流ICHE与ICHW不为0,而对应的放电电流为0,此时判据为C2,供配电模式工作在ZM=0,也就是光照模式下。并且随着时间的推移,电池的荷电态也就是中间框内的滑块数值会逐渐升高,对应着电池内部能量的累积。

img17

模式切换GUI

仿真启动后,可通过GUI对卫星供配电分系统进行交互,状态时间线图会实时显示被发送接收的事件以及各模块状态的变化。

此次仿真在2500ms处点击了使能电源管理的按键,使得软件子系统架构(最下面一排)接收到事件并进入On状态,On状态的进入行为会继续使能参数接收和PCU参数处理模块。4000ms处点击了使能蓄电池管理模块的按键,对应模块接收事件后进入On状态。具体的状态机仿真时的行为可在状态机图中观察,如图29。蓄电池、太阳能和母线子系统架构每隔一段时间发送参数给PCU,PCU在接收完所有参数后进入发送参数状态同时发送参数给软件模块。内部具体行为的活动图的仿真过程如图30,被执行到的元素将被标红,执行完的元素标为绿色,未执行到的元素为灰色。

img18

状态时间线图

img19

仿真时的系统状态机图

img20

仿真时的遥测参数处理活动图

七、结论与建议

通过SysMLMagicGrid对卫星电源管理系统建模与仿真验证,我们得出以下经验和结论:

1)需要准确理解MagicGrid流程中每一层抽象的含义(问题领域黑盒、问题领域白盒和解决方案领域)然后分别在每一层抽象级别上对此系统进行描述。从问题黑盒领域到解决方案领域的过程中,每一层的抽象级别是不同的,正确理解本层的含义和建模目标,只描述本层需要描述的模型,并为下一层的建模提供基础信息。

2)严格按照一层一包系统分析与建模包中按照结构、行为等继续分解。因建模过程中经常需要到不同位置引用其他模型元素,良好的项目结构有利于提高开发效率和可追踪性

3)采用MagicGrid进行建模时,并非需要严格按照所有步骤进行完整建模,不同系统之间的差异很大,需要建模的侧重点也不同。在本案例中,因建模对象是卫星的供配电分系统,而与卫星供配电分系统进行交互离不开卫星通信系统等,所以本文会建模两个系统上下文来说明。除此之外,本文并没有建模卫星供配电分系统的整体系统行为,而是用它的子系统行为进行描述。

4)使用SysML建模行为时,可以以状态机图为上层结构,内部的小功能模块用活动图表示。这种方法对于活动图的复用性较好,且仿真时观察方便。

5)对于系统仿真,GUI界面对于直观展示仿真结果有着显著作用仿真是很好的检查设计的手段,通过控制台展示信息和断点功能,按照运行流程对模型进行逐步检查。仿真建议从可从小粒度的活动图开始,接着对子系统Block仿真,再到整体系统Block进行自底向上的方式进行,建模过程则相反,采用自顶向下的方式展开。

 

作者简介:

杨溢龙:博士,硕士生导师,北京航空航天大学软件学院。主要从事自动化与智能化软件工程相关研究;

杨沛业:硕士研究生,北京航空航天大学软件学院。主要从事模型驱动开发相关研究;

杨   宇:工程师,载人航天工程软件工程和数字化技术发展与管理中心。

浏览量:0
首页    软件工程化技术    基于模型的航天软件研制实
创建时间:2022-05-20 11:18