“数字孪生”:为什么要仿真嵌入式系统?
01
仿真是什么?
仿真的概念非常广泛,但归根结底都是使用可控的手段来模仿真实的情况,通常应用于现实世界中实施难度大甚至是无法实践的事物。
众所周知,嵌入式系统通常是形式多样的、面向特定应用的软硬件综合体,无论是软件还是硬件都必须被高效率地设计,量体裁衣、去除冗余,具备低功耗、小体积、高集成度等特点,且通常有着高实时性、高可靠性的要求。
在嵌入式系统复杂程度飙升的当下,仿真已成为研发嵌入式系统或解决嵌入式系统中所出现的问题的主流解决方案。具备以下条件的嵌入式系统格外适合应用仿真:
硬件尚在开发中/开发速度慢,较为稀缺
硬件制作成本较为高昂
对安全性、可靠性要求非常高
在此情形下应用仿真,可以带来以下好处:
提前进行软件开发、测试和调试
测试与硬件相连的其他设备
大幅节约成本
……
举个简单的例子来理解仿真:
综上,仿真可被应用于嵌入式系统前期设计到后期生产、维护的全生命周期。对嵌入式系统进行仿真的过程是“数字孪生”中的重要一环。数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程[1]。数字孪生体是仿真应用新巅峰,在数字孪生体成熟度的每个阶段,仿真都扮演着不可或缺的角色。
02
仿真的优势
提高效率
嵌入式系统开发人员在进行开发时,如果没有实际设备支撑,就无法测试软件的正确性与合理性,而采用仿真工具便可调试算法的逻辑部分,更侧重于可能存在的物理限制或错误。独立于硬件的深度测试可大大提升嵌入式系统的开发效率并缩短开发周期。
控制测试环境
对嵌入式系统进行仿真可使测试环境高效可控。仿真环境可被随时重置并快速生成新的测试结果,无需等待冗长的硬件重置或调整,且全数字的仿真环境不会受到外界因素的影响,结果更为真实可靠。在上文彩色小球实验中,出现数据收集不足、连接中断、被输入无效数据时,便可应用仿真来解决问题。
提升调试能力
在嵌入式系统出现问题时,由于仿真不受外界物理因素的影响,因此可以更快速地确定问题来源是软件还是硬件。如果在使用嵌入式设备和模拟器进行测试时发生错误,则可能表明算法存在问题。如果错误仅在设备上进行测试时发生,则可能表示硬件存在问题。
下表为《航空机载软件全数字仿真测试系统的设计与实现》一文中,对于某音频设备软件动态测试数据对比情况。可以看到,在测试用例数量和发现的软件问题数量等同的情况下,全数字仿真测试的执行耗时和回归测试耗时相比于全物理测试环境均显著减少。该全数字仿真测试使用了天目全数字实时仿真软件SkyEye。
▲表1 某音频设备软件动态测试数据对比[2]
03
“数字孪生”——仿真工具选择
虽然仿真是开发嵌入式系统的绝佳工具,但如果仿真工具不精准,所做的任何测试都会适得其反,不但无法缩短开发周期,还有可能拖长原定计划。选择一个适合自己的仿真工具是应用仿真的前提。
SkyEye,中文全称天目全数字实时仿真软件(点击查看详情),是仿真嵌入式目标系统的虚拟平台,能够完全仿真目标系统中的CPU(Central Processing Unit,中央处理器)、寄存器、内存、外设接口,如图所示:
▲SkyEye功能图
在SkyEye上运行嵌入式软件,可以获得在真实目标系统上进行运行的相同效果。SkyEye还支持多个功能,如支持检查点分析:通过插入检查点,能够保存软件运行状态,支持运行状态的回放分析,便于软件问题的定位;支持访问目标系统状态:测试人员很难对真实物理硬件的寄存器、状态寄存器进行跟踪和控制,但通过SkyEye进行仿真,目标系统的内部状态清晰可见,对排查问题十分有帮助。
案例分析:SkyEye in 数字孪生卫星
本案例展示了如何应用SkyEye搭建卫星数字样机。首先通过系统级的架构分析与子系统拆分,建立不同模块对应的仿真模型,由SkyEye对嵌入式处理器及外设进行仿真。随后通过仿真软总线将各类分布式模型联合起来,即可完成数字卫星的搭建。将在真实卫星中运行产生的孪生数据放在“数字卫星”中进行超实时仿真,并通过可视化应用服务表现出来,用户可根据仿真结果分析预测真实卫星的未来走向,进行下一步决策并优化物理实体。
更多SkyEye相关内容,欢迎点击查看详情或访问www.digiproto.com进行了解!
[1]《关于数字孪生与仿真技术关系的几点思考》http://www.uml.org.cn/modeler/202105314.asp?artid=24022
[2]《航空机载软件全数字仿真测试系统的设计与实现》,刘超,卢希,冯飞,王月波