所在位置:UML新闻 - 内容 论坛精华    
基于模型的系统工程——自动驾驶汽车

[2018/9/26]

原文链接:http://intercax.com/2018/01/11/model-based-systems-engineering-autonomous-vehicles-part-1/

作者 Dirk Zwemer

自动驾驶汽车(AV)是当前系统工程最大的挑战之一,不只是因为AV自身的复杂性,还因为它是更大的智慧道路的一部分。本文讨论基于模型的方法,包括SysML建模以及来自Intercax的MBSE平台Syndeia如何有助于解决复杂性。

图1展示了ADS (自动驾驶系统,Automated Driving System)操作领域的SysML块定义图,包括

• 1对多,不同自动水平的汽车(Vehicle)。
• 1对多,当自动水平变化时,司机(Driver)/乘客(Passenger)的区分变得模糊。
• 操作设计领域(Operational Design Domain,ODD),汽车在其中操作的通用环境。可变因子包括道路类型(RoadwayType)、天气(Weather)和每天的什么时间(TimeOfDay)。ODD 也包括通过电子手段和汽车相连的基础设施(路标、交通灯等等)。
• 障碍物(Obstacle),局部环境中的随机因子(例如行人),汽车或司机必须识别和恰当地响应。
• 操作中心(Operations Center),通信和控制的中央管控机构。

准备这样一张领域图,指定感兴趣系统(Vehicle)必须交互的的元素,通常是基于模型的系统工程早期工作。注意,这只是关于汽车的操作环境。其他建模还包括制造、分发、维护和其他因素。


图1 ADS Operations领域的SysML块定义图

图2展示了MBSE结构的架构。我们用Intercax的基于模型的工程平台Syndeia来创建、维护和可视化总体系统模型(Total System Model,TSM)。本例的工具集包括Jama、MagicDraw、GitHub和JIRA。也可以换成其他软件工具,例如IBM Rational Rhapsody和 DOORS NG。

图2 总体系统模型架构

通过Syndeia,系统工程师可以有两种方法把需求连接到其他系统模型元素。在图3左侧,我们创建一个引用连接(Reference Connection),在模型元素之间建立可跟踪的链接,但不假设任何系统信息。


图3 Syndeia的需求连接方法

另一种方法是图3右侧,模型变换连接(Model Transform Connection),变换Jama或DOORS NG里的需求为对等的SysML需求,并维护两者之间的连接。

图4 SysML序列图,视力障碍乘客场景

引用连接更简单,因为信息没有复制。在Syndeia中,这样的连接可以检查是否有新版本的Jama需求提交。模型变换连接则可以提供更多的建模灵活性,SysML需求可以通过标准关系(例如Satisfy、Verify和Refine依赖)链接到多个其他SysML元素。图4展示一张SysML行为图,描述了视力障碍乘客使用AV的场景。图5展示了SysML模型使用这个场景,通过标准Refine依赖来精化或澄清需求。如果SysML模型显式包括需求,包括需求验证和分解在内的其他任务可以被简化。


图5 用于精化需求的场景

我们假设需求一开始在需求管理工具中生成。图6展示了创建自US DoT(美国交通部)报告, "Automated Driving System 2.0: A Vision for Safety" (September 2017)的部分需求列表。在Jama中被捕获为多层需求模型。每条捕获进Jama的需求都有Name(名称), ID, Description(描述)和其他属性。图7展示了Jama web浏览器中的需求。注意:DoT报告是建议指南的集合,不是强制的需求,此处只是为了展示。


图6 Jama中的ADS需求模型

图7 Jama web 浏览器中的 "Collision Compatibility(碰撞相容性)" 需求

本例中,我们使用模型变换连接生成SysML需求结构。使用Syndeia可以一步到位。从Jama仓储拖放顶层需求规约DoT ADS Guidelines到MagicDraw模型,可以变换得到完整的4个层次、64个需求结构。每对需求相互连接,以便比较和同步。

图8 使用Syndeia把JIRA Task属性链接到SysML需求

再次使用Syndeia,我们使用SysML需求结构生成JIRA条目的集合,每条需求一条。图8展示了中层的需求规约。每条需求的JIRA条目可以用于项目管理,例如跟踪状态、安排进度和分配人员。本例中使用了引用连接,在SysML需求和JIRA条目之间没有共同的属性。然而,连接允许系统工程师在web浏览器中直接打开SysML模型元素或元素符号的JIRA条目,并为Jama仓储提供间接的反向链接。使用这些连接,我们就完成了图2中TSM架构左侧的工作。

MBSE方法学往往在开发周期早期强制生成功能架构,特别是针对软件为主要组件的信息物理融合系统。本例中,我们生成了12个AV功能,以展示这些功能映射到需求、软件文件和项目管理的方法。它们被建模为MagicDraw中的块(Block),如图9所示。


图9 AV功能架构

可以用同样的方法连接SysML功能块到JIRA条目。顶层块Autonomous_Vehicle_Functions被拖进 JIRA项目,生成13条JIRA新特性,每条通过引用连接链接回SysML功能。JIRA条目可以从功能直接打开。


图10 Syndeia连接管理器,连接功能(左侧)到GitHub软件文件并提交(右侧)

本例中,正在开发的软件模块在GitHub仓储做配置管理。假设GitHub中的软件文件和SysML中的功能块是独立开发的,我们可以使用Syndeia,通过创建引用连接链接已有元素,如图10所示。

在这个阶段,我们已经连接每个SysML功能块到JIRA条目和一个或多个GitHub文件。为了创建需求和功能之间的连接,我们在MagicDraw中使用SysML的Satisfy依赖,如图11所示。这些关系存储在SysML建模工具中,这个阶段不涉及Syndeia。注意,集合中的一条需求没有Satisfy关系。好的MBSE实践应该跟踪和高亮这些遗漏。


图11 在SysML需求图中映射功能到需求

现在,整个连接架构已经实现了。除了使用这些连接来保持分离的模型一致之外,我们还可以使用它们来提供遍及TSM的跟踪能力。接下来要考虑连接构成的网或图的可视化和搜索。

不同工具的模型元素之间以及模型内部创建的连接,组成了一张图,即节点和边的集合。当图的规模变大时,我们可以利用强有力的新的图形数据库技术来可视化和查询,以获得系统信息的详细路线图以及前所未有的跟踪能力。


图12 MagicDraw、JIRA、Jama和GitHub模型间连接的全局可视化(弦图,Chord Plot)


图13 局部可视化展示SysML"Disability Access"需求的邻近元素

待续……

[UMLChinaSicilia(微信:UMLChinaSicilia)摘译,转载请注明出处。文章观点不代表UMLChina观点。]