“数字孪生”:为什么要仿真嵌入式系统?

news2025/3/12 9:38:16

01.仿真是什么?

仿真的概念非常广泛,但归根结底都是使用可控的手段来模仿真实的情况,通常应用于现实世界中实施难度大甚至是无法实践的事物。

众所周知,嵌入式系统通常是形式多样的、面向特定应用的软硬件综合体,无论是软件还是硬件都必须被高效率地设计,量体裁衣、去除冗余,具备低功耗、小体积、高集成度等特点,且通常有着高实时性、高可靠性的要求。

在嵌入式系统复杂程度飙升的当下,仿真已成为研发嵌入式系统或解决嵌入式系统中所出现的问题的主流解决方案。具备以下条件的嵌入式系统格外适合应用仿真:

  • 硬件尚在开发中/开发速度慢,较为稀缺
  • 硬件制作成本较为高昂
  • 对安全性、可靠性要求非常高

在此情形下应用仿真,可以带来以下好处:

  • 提前进行软件开发、测试和调试
  • 测试与硬件相连的其他设备
  • 大幅节约成本
  • ……

举个简单的例子来理解仿真:

综上,仿真可被应用于嵌入式系统前期设计到后期生产、维护的全生命周期。对嵌入式系统进行仿真的过程是“数字孪生”中的重要一环。数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程[1]。数字孪生体是仿真应用新巅峰,在数字孪生体成熟度的每个阶段,仿真都扮演着不可或缺的角色。

02.仿真的优势

提高效率

嵌入式系统开发人员在进行开发时,如果没有实际设备支撑,就无法测试软件的正确性与合理性,而采用仿真工具便可调试算法的逻辑部分,更侧重于可能存在的物理限制或错误。独立于硬件的深度测试可大大提升嵌入式系统的开发效率并缩短开发周期。

控制测试环境

对嵌入式系统进行仿真可使测试环境高效可控。仿真环境可被随时重置并快速生成新的测试结果,无需等待冗长的硬件重置或调整,且全数字的仿真环境不会受到外界因素的影响,结果更为真实可靠。在上文彩色小球实验中,出现数据收集不足、连接中断、被输入无效数据时,便可应用仿真来解决问题。

提升调试能力

在嵌入式系统出现问题时,由于仿真不受外界物理因素的影响,因此可以更快速地确定问题来源是软件还是硬件。如果在使用嵌入式设备和模拟器进行测试时发生错误,则可能表明算法存在问题。如果错误仅在设备上进行测试时发生,则可能表示硬件存在问题。

下表为《航空机载软件全数字仿真测试系统的设计与实现》一文中,对于某音频设备软件动态测试数据对比情况。可以看到,在测试用例数量和发现的软件问题数量等同的情况下,全数字仿真测试的执行耗时和回归测试耗时相比于全物理测试环境均显著减少。该全数字仿真测试使用了天目全数字实时仿真软件SkyEye。

▲表1 某音频设备软件动态测试数据对比[2]

03.“数字孪生”——仿真工具选择

虽然仿真是开发嵌入式系统的绝佳工具,但如果仿真工具不精准,所做的任何测试都会适得其反,不但无法缩短开发周期,还有可能拖长原定计划。选择一个适合自己的仿真工具是应用仿真的前提。

SkyEye,中文全称天目全数字实时仿真软件,是仿真嵌入式目标系统的虚拟平台,能够完全仿真目标系统中的CPU(Central Processing Unit,中央处理器)、寄存器、内存、外设接口,如图所示:

▲SkyEye功能图

在SkyEye上运行嵌入式软件,可以获得在真实目标系统上进行运行的相同效果。SkyEye还支持多个功能,如支持检查点分析:通过插入检查点,能够保存软件运行状态,支持运行状态的回放分析,便于软件问题的定位;支持访问目标系统状态:测试人员很难对真实物理硬件的寄存器、状态寄存器进行跟踪和控制,但通过SkyEye进行仿真,目标系统的内部状态清晰可见,对排查问题十分有帮助。

案例分析:SkyEye in 数字孪生卫星

本案例展示了如何应用SkyEye搭建卫星数字样机。首先通过系统级的架构分析与子系统拆分,建立不同模块对应的仿真模型,由SkyEye对嵌入式处理器及外设进行仿真。随后通过仿真软总线将各类分布式模型联合起来,即可完成数字卫星的搭建。将在真实卫星中运行产生的孪生数据放在“数字卫星”中进行超实时仿真,并通过可视化应用服务表现出来,用户可根据仿真结果分析预测真实卫星的未来走向,进行下一步决策并优化物理实体。

[1]《关于数字孪生与仿真技术关系的几点思考》http://www.uml.org.cn/modeler/202105314.asp?artid=24022

[2]《航空机载软件全数字仿真测试系统的设计与实现》,刘超,卢希,冯飞,王月波

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web 框架 Flask 快速入门(一)flask基础与模板

前言 课程地址:Python Web 框架 Flask 快速入门 文章目录前言🌴 Flask基础和模板🌷 一个简单的flask程序🌼 模板的使用🌴 Flask基础和模板 1、web框架的作用 避免重复造轮子,app程序不必关心于服务器的沟…

java agent设计开发概要

agent开发设计 agent 开发的一些心得,适合熟悉agent或者有agent开发需求的同学 1 有个基础的agent,是java 标准的agent。这是agent代码入口 2 设计包结构, 基础agent agent下有plugin,加载plugin可以自己定义一个类加载器 plugin&#xff1…

C++——多态 上

目录 一、概念 二、多态的定义及实现 三、动态多态的实现条件 四、重写相关 五、构成重写与同名隐藏的函数有什么区别? 六、C11 中的override 和 final 一、概念 通俗来说,就是多种形态,当完成某个行为时,当不同的对象去完…

Python 手写数字识别 MNIST数据集下载失败

目录 一、MNIST数据集下载失败 1 失败的解决办法(经验教训): 2 亲测有效的解决方法: 一、MNIST数据集下载失败 场景复现:想要pytorchMINIST数据集来实现手写数字识别,首先就是进行MNIST数据集的下载&am…

Fastjson踩“坑”记录和“深度”学习

作者:陶征策 阿里国际站商家技术团队 Fastjson是阿里开发的Java语言编写的高性能JSON库,本文总结了Fastjson使用时的一些注意事项,并简单分析了Fastjson的底层工作原理,结合具体的验证代码以及跟Jackson的对比,希望能…

非代码的贡献也能成为Committer,我与DolphinScheduler社区的故事

点亮 ⭐️ Star 照亮开源之路 https://github.com/apache/dolphinscheduler ​ // 每个人对于”开源社区“的定义都不一样,在社区的想法也完全不一样,我认为玩开源就像”谈恋爱“,要想方设法对它好,在接触 Apache DolphinSche…

nodejs+vue毕业生求职招聘平台系统

前台首页功能模块毕业生信息招聘平台首页、空中宣讲会、招聘岗位、求职信息、论坛信息、试卷列表、招聘资讯、个人中心、后台管理功能。论坛中心试卷列表招聘资讯管理员功能模块管理员登录空中宣讲会管理招聘岗位管理毕业生管理企业功能模块招聘岗位管理信息咨询管理线上面试管…

java实现二叉树(一文带你详细了解二叉树的)

🎇🎇🎇作者: 小鱼不会骑车 🎆🎆🎆专栏: 《数据结构》 🎓🎓🎓个人简介: 一名专科大一在读的小比特,努力学习编程是我唯一…

JDBC与Druid连接池

1 什么是jdbc? JDBC(java database connectivity )是Java语言连接操作关系型数据库的一套解决方案,屏蔽了底层各数据库不同的差异。 具体是通过sun公司定义的统一的一套API【标准接口】来实现解决差异, 具体实现是各大数据库厂商…

【数据库】 mysql的四种安装方式

目录 MySQL 安装部署 一,仓库安装 二,本地安装 三,容器安装 四,源码安装 MySQL 安装部署 一,仓库安装 1,使用rpm命令从指定的网址装包 ​ [rootlocalhost yum.repos.d]# rpm -ivh https://repo.mys…

每日学术速递2.10

Subjects: cs.Cv 1.Spatiotemporal Deformation Perception for Fisheye Video Rectification 标题:鱼眼视频矫正的时空形变感知 作者:Shangrong Yang, Chunyu Lin, Kang Liao, Yao Zhao 文章链接:https://arxiv.org/abs/2302.03934v1 项…

【手写 Vuex 源码】第四篇 - Vuex 中 Getters 的实现

一,前言 上篇,主要介绍了 Vuex 中 State 状态的实现,主要涉及以下几个点: 创建 Store 类中的 State 状态;借助 Vue 实现 State 状态的响应式; 本篇,继续介绍 Vuex 中 getters 的实现&#xf…

VHDL语言基础-时序逻辑电路-寄存器

目录 寄存器的设计: 多位寄存器: 多位寄存器的VHDL描述: 移位寄存器: 串进并出的移位寄存器的VHDL描述: 寄存器的设计: 多位寄存器: 一个D触发器就是一位寄存器,如果需要多位寄存器&…

飞凌嵌入式RK3568J核心板助力工业机器人产业迈向高质量发展新阶段

工业机器人是能够代替人工完成高强度重复工作的多自由度机器装置,不仅可以确保产品质量,还可以大幅提高生产效率。据工信部数据显示,“十三五”期间我国工业机器人产量从7.2万套增长到了21.2万套,年均增长31%,预计2023…

切换分支报错:Untracked Files Prevent Checkout

切换分支报错:Untracked Files Prevent Checkoutgit分支切换 Untracked Files Prevent Checkout本人解决办法:git分支切换 Untracked Files Prevent Checkout 新起的项目在切换master分支到工作分支时,出现下图的问题: Untracked…

【机器学习】过拟合与正则化

上一章——逻辑回归 文章目录三种拟合状态解决过拟合的三种方法什么是正则化正则化的数学原理线性回归恭喜三种拟合状态 在之前的课程中,我们说过机器学习的中极为重要的一步,就是给训练集找到一条合适的拟合曲线。 还是以房价问题这个回归问题为例&…

【微服务】微服务架构超强讲解,通俗易懂

微服务架构目录一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、面向服务的架构SOA(service oriented architecture)和微服务的区别1、SOA喜欢重用,微服务喜欢重写2、SOA喜欢水平服务,微…

Linux教程:MQTT入门基础概念与学习介绍及服务部署搭建并使用桌面工具进行测试开发

前言: ----在2023年的今天,智能家居与智能家电的兴起犹如滚滚长江迅速袭来,智能终端设备也不断出现在人们的视野当中,实现远程控制,其中必然不能缺少终端与终端,终端与服务之间的交互,如何来解…

ag-Grid Enterprise

ag-Grid Enterprise Ag-Grid被描述为一种商业产品,已在EULA下分发,它非常先进,性能就像Row分组一样,还有范围选择、master和case、行的服务器端模型等等。 ag Grid Enterprise的巨大特点: 它具有以下功能和属性&#x…

Docker调用Intel集显实现FFmpeg硬解码

文章目录Docker调用Intel集显实现FFmpeg硬解码参考FFmpeg 集成qsv方式一 容器完成所有步骤方式二 容器完成部分步骤方式三 dockerfile部署Docker调用Intel集显实现FFmpeg硬解码 参考 ffmpeg_qsv_docker拉取该镜像可以实现FFmpeg集成vaapi的硬加速,通过dockerfile文…