打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
融合MBSE基于模型的系统工程与DevOps,实现建模仿真和数字孪生的敏捷开发

“当前的采办流程和工程方法阻碍了[满足]指数级技术增长、复杂性和信息获取需求的能力”国防部数字工程战略,2018年6月

今天讲的东西,对我们更深刻地理解DevOps、DevStar、DevSecOps和MBSE以及数字工程及数字孪生等概念,如何在数字空间里仅凭意念弯曲勺子,更深刻地理解《黑客帝国》电影,都会有一定的启发。

1. 智能CPS给系统工程和软件工程带来的挑战

智能CPS是一种具有自主系统特性的系统,其功能不受人类的直接控制。例如无人机、工业机器人、AGV、寻找简易爆炸装置(IED)的机器人以及无人驾驶汽车。

未来联合全域的战场上,智能CPS系统会越来越多:

  • 陆军的班排连营级别的不同尺寸的无人机和无人车;

  • 空军的有人无人协同和自主联网弹药;

  • 海军的分布式海上作战,空中、水面和水下的无人系统;

智能CPS中,软件起着重要的作用。软件可以在不增加重量或大幅增加功率的情况下增加新功能。它还可以通过电磁波远程更新,降低部署成本,更快地改进系统,使系统更智能更具适应性。但这些好处也带来了新的挑战:

  • 软件的规模和复杂性越来越高

  • 网络安全风险增加

  • 快速变化的作战环境

  • 技术发展速度越来越快

  • 需要更快地交付软件

  • 需要新的方法来验证和鉴定具有适应性和智能性的装备系统

2. 系统工程与软件工程的协同

我们都知道,系统工程的最新实践是MBSE,软件工程则是DevSecOps。

这两者结合起来,能否解决智能CPS系统的挑战?

这里面的关键洞见是,从DevSecOps的视角将建模仿真活动视为软件密集型系统工程的一个组成部分。

上面这句话请大家仔细思考下。

具体的解决方案是这样的:

  1. 用MBSE对装备系统进行建模,并根据反馈快速迭代修改模型;

  2. 为加快验证和鉴定的速度,采用DevOps理念自动化模型的生成和部署和测试;

  3. 从而实现在物理系统构建前,就在数字世界中设计和建造“飞机”的效果

比如,我们要设计一个可消耗无人机,那么我们可以先用云上的MBSE即服务,用数字工程集成环境中的工具进行进行建模。

建模的工具可以有Sysml,AADL,Matlab Simulink工具箱和ANSYS SCADE等。

这几个建模工具的关系是这样的:

1. 用SysML对系统进行具体设计。使用SysML捕获系统的高级模型,以及一组系统约束。这些约束将作为下一步的需求。

2. 用AADL定义系统的体系结构。它派生自SysML定义和相关的约束。AADL允许将系统架构更精确地定义为捕获常规软件或硬件行为(线程、设备、处理器等)的组件集合。

3. 对系统各部分进行设计。从AADL模型定义中,可以派生出软件的低层需求,如要实现的子程序接口。这些子系统的软件可以从Simulink、Ansys SCADE、Modelica或其他软件中生成。系统工程师也可以用UML来捕获要实现的软件模型,或者直接在他们选择的编程语言中实现它。

3. 建模开发反馈的自动化流水线

建模好后,模型要能仿真,必须先把模型转成可运行的软件程序。模型可以用多种方式来生成软件,包括代码生成,基于仿真的验证和鉴定(V&V),以及数字孪生模型。

由于每种建模技术都提供了执行模型分析或代码生成的自动化的接口,这样我们就可以用devops的自动化流水线集成这些工具来自动化整个过程。

我们可以用类似下面的流程来简化模型交换和模型转换,并尽可能地自动化整个建模、开发和运维的流程。

4. 具体的模型到可执行代码的运行逻辑如下图

基于模型到可执行代码流水线,我们可以将这个流水线嵌到更大的一个模型到仿真的流水线中,这样我们就可以实现建模到仿真的全流程的自动化:

我们可以在Mod2simu流水线中将Modelica转成FMI,然后将FMI转成AADL,然后调用Mod2code流水线,将AADL生成可执行的二进制代码,并部署运行。

5. ModDevOps 循环

美国空军提出了DevOps的定义,包括整个系统生命周期:

DevOps是一种软件工程文化和实践,旨在统一软件开发(Dev)和软件操作(Ops)。DevOps运动的主要特点是强烈提倡在软件构建的所有步骤中实现自动化和监控,从集成、测试、发布到部署和基础设施管理。

CMU卡耐基梅隆大学的软件工程学院的研究人员将这个概念结合了MBSE系统工程实践,推广到了ModDevOps,并将ModDevOps定义如下,我们对空军DevOps定义的更改用粗体突出显示:

ModDevOps是一个系统/软件协同工程文化和实践,旨在统一系统工程(Mod)、软件开发(Dev)和软件操作(Ops)。ModDevOps的主要特点是在系统构建的所有步骤中大力提倡抽象、自动化和监控,从集成、测试、发布到部署和基础设施管理。

ModDevOps通过定义基于模型的技术如何支持特定的步骤来扩展DevSecOps。ModDevOps改进了典型的DevSecOps循环:

  • 建模Mod:需求规划和定义、系统功能模型属性、鉴定计划,建立多学科的领域模型,模型间集成点的定义

  • 开发Dev:Dev是一个自动化的软件工厂,用来构建仿真代码和可执行文件。第一步是代码生成:从具有多个目标的模型中生成代码:生成在目标上运行的功能代码和中间件代码,生成仿真程序。同时生成用于运维Ops环节的Python胶水代码,作用是监视资源消耗和模型间的数据交换等。2. 软件装配:将不同的部分组合在一起编译成目标程序并部署。

  • 运维Ops:用开发阶段生成的Python胶水代码进行运行时的数据采集存储。然后进行数据分析:对存储的数据进行分析生成指标,并生成相应的验证和鉴定报告,用于指导修改系统设计。这个环节的采集和分析的数据质量至关重要,因为会影响到下一轮的迭代改进。

当然,这里面的1-8的环节是不断迭代循环的,最终的效果就是同时获得MBSE和DevOps的优点。

6. 从ModDevOps到TwinOps

有了ModdevOps,我们就可以对无人机进行建模。

更进一步,我们可以在虚拟世界,创建多个无人机的数字孪生,让他们直接进行对抗,验证不同环节。

不同环节之间,可以灵活组合,实现不同的验证/鉴定的效果:

  • 1-2-3-4: 完整的验证和鉴定流程

  • 1-2: 高层次的需求验证,SysML Modelica仿真

  • 2-(3 4): 低层次需求验证,验证底层程序的控制逻辑

  • 1 (3 4): 虚拟集成:控制程序由第三方实现,实现第三方国防承包商之间的AI控制算法的PK。

最后,基于Mod2Code流水线,我们可以将程序部署到无人机上运行,同时将无人机的运行状态喂给云端的Mod2Simu的数字孪生模型,然后将无人机上的运行分析结果和数字孪生中的运行结果进行对比分析,从而实现无人机数字孪生模型的敏捷开发TwinOps。

搞明白了上面这几种组合的玩法,我们就可以去思考如下问题:

  • 有人无人LVC实验

  • 基于AI的集群武器系统的虚拟斗兽场

  • skyborg的不同任务模块如何设计和仿真

  • 联合全域指控下的韧性网络如何测试

  • 太空军数字军种敌方新威胁下如何快速实现任务工程与数字工程

  • 如何在虚拟空间进行杀伤链的集成?

  • ......

本文里面涉及到数字孪生的地方我的理解估计还有点问题,不过8点多了,要去沙县小吃吃晚饭了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数字孪生|数字线程(三)
陈根:MBSE,顶层助力数字孪生
MBSE-基于模型的系统工程
一类计算系统的MBSE建模方法
制造业数字化转型的驱动力和实施框架
国内外数字工程研究动态、热点方向及应用现状
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服