【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义,汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题,也面临着新的挑战:软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字技术和工程能力的结合。这些问题和挑战同样也给予了行业审视和重塑软件开发体系的机会,让软件能成为未来价值的真正驱动力。

图片

在上个世纪七八十年代,电控系统开始逐步应用到车辆。在这个阶段软件大大提升了硬件的能力,这可以看作是行业的第一次数字化转型。在这次转型过程中面临了许多挑战。比如:

在设计方面,利益相关方无法有效进行评审。

在实现方面,错误发现过晚导致修复成本高。

在人员方面,汽车工程师不熟悉软件开发。

基于模型设计的方法,在这个背景下应运而生。它通过建模和仿真实现了设计的可执行和易理解。通过系统化的测试提前发现问题,通过自动代码生成技术,把汽车工程师从代码编写中解放了出来。

图片

随着社会对清洁和交通安全期望的进一步提升,以及互联网和移动数字体验的深入人心,公众希望在出行方式上保持这种体验的连续性。在这个背景下,行业迎来了以电动化、智能化和网联化为标志的第二次数字化转型,软件承担了前所未有的技术创新的角色,以至于产生了软件定义汽车这个概念。

软件可以作为独立的产品,以应用商店的形式,按需为用户提供功能,以软件服务订阅的方式来收费。这样的一个商业模式,满足了用户个性化和新体验的一个期望。

图片

这次转型对于组织架构和开发体系有着颠覆式的影响,他要求企业组织提高虚拟化的一个开发比重,重新构建供应链的体系,以及加大对员工的知识技能培训。对于软件开发体系,算力集中化以后该如何优化系统和软件架构,如何建立人工智能算法开发和集成能力?如何将素质能力和工程能力结合起来,构建一个虚拟化的开发流程?

对于如何解决这些问题,MathWorks认为系统工程、软件工厂、数据驱动和虚拟车辆是比较重要的能力。

图片

系统工程能力可以帮助软件创新至系统级优化。

软件工厂的能力可以帮助持续快速交付高质量的软件产品。

数据驱动的能力将人工智能算法集成到软件中来。虚拟车辆的能力是将以上三者进行一个整合,帮助在流程中引入虚拟原型,虚拟集成和虚拟验证的概念。

图片

具体来说,系统工程是用于解决复杂多学科系统设计的一个流程,复杂系统的开发通常面临着多重约束,比如相关方对于功能和性能的期望,成本预算和进度等等项目要求,以及工程上的可实现性。在软件定义汽车时代,车辆系统除了涉及机械电子控制等领域以外,还引入了计算机视觉信号处理,传感器融合、路径规划等等新的学科。这些功能的出现让车辆的结构和形态有了更多的可能性。

如何在开发的早期有限的信息下,找到一个既满足约束又相对优化的方案,将合理的功能需求分配到软件,需要依赖于系统工程的能力,将不同形态的模型贯穿到你的整个系统的需求、分析、设计、实施和验证的生命周期中,就是所谓的基于模型的系统工程。

图片

前面提到在第一次数字转型过程中,基于模型的设计方法起到了重要作用,那么基于模型的设计和基于模型的系统工程有什么联系?基于模型的设计侧重在软件,而基于模型的系统工程重心之一在进入软件开发之前的阶段,以市场需求、客户需求、法律法规需求作为输入,通过场景分析推导出系统应该具备的功能开展架构设计和功能分配,得到软件的设计需求和硬件的接口规范,再进入基于模型的设计阶段。

另外一个重心是系统的集成和验证,以模型为载体,系统过程扩展了基于模型设计的范畴,构建起从系统需求、系统架构到软件设计、软件实现、系统集成以至于系统运营的整个系统生命周期的一个数字化线索。

图片

软件工厂的首要目标是持续交付高质量的软件产品。除软件本身还应包括文档、报告、工件等产出。对于回归测试、度量统计、报告生成等高频任务也应该实现自动化。同时应该利用尚未自动化的流程探索阶段尽量查找并填补标准规范中的空白。因此关键问题在于:什么时候在软件工厂引入高频任务并自动化运行这些任务?

图片

应用基于模型设计的典型流程是首先导入设计需求,创建软件架构,以图形化建模的方式替代传统的文档设计规范,这种规范更易理解,也可以仿真。随着越来越多的设计细节加入到可执行规范中,我们可以得到用于产品及代码生成的模型。

图片

经过仿真测试后,这样的模型可以生成代码并编译下载到目标硬件中进行执行。在流程中仿真是关键,我们用它来填补需求验证的一个空白,但是仅仅如此还是不够的。对于安全关键应用的高质量软件要求,我们要采取更为严格的方法进行补充,并开展一些其他的验证活动。这些活动包括建立需求与软件架构,软件模块之间的追溯关系,对作为可执行规范的模型进行评审和静态分析,对生成的代码进行背靠背测试,最后在单元级的验证完成后,需要进行软件的集成测试。

图片

数据驱动的首要任务是是集成人工智能算法,并进一步赋能原有的系统。这中间有一些挑战:

如何将AI与已有技术进行集成?

原始数据的复杂度和质量问题怎么解决?

现有人员缺乏人工智能算法开发的相关技能怎么解决?

对于具体的组织来说,数据驱动成功的标志就是能够交付给市场基于AI技术的产品和服务。因此数据驱动要面对的问题是企业如何将真实系统和AI进行连接?如何让数据科学家和工程师进行一个有效的协同工作?

图片

对此MathWorks建议让工程师和数据科学家将AI整合到整个系统设计的一个工作流程中,可以分成4个主要阶段:数据准备、算法建模、仿真测试以及算法部署。

在数据准备期间,清洗和预处理非常重要。如果我们没有足够的数据,那么可以使用仿真来生成。在这个阶段具有专业领域知识的工程师是处理这些数据的最佳人选。

在模型的设计和调试阶段,自动化的训练步骤可以提供可视化的方法来理解和编辑深度的学习网络。也可以借助特定的平台来加速训练,并与主流的AI网络保持一个互联互通。算法开发完成以后,需要将它整合到更大的一个系统中进行仿真测试,让基于AI的感知算法与定位路径规划,还有控制算法进行协同。

在最后的算法部署阶段,对于AI算法要采用自动代码生成技术,消除手动编码的错误,同时采用灵活配置的方法,实现面向从嵌入式到企业系统或者云端的不同平台的一个灵活部署。这样的一个端到端的工作流是实现数据驱动落地的根基。

图片

虚拟车辆可以让功能设计者在几分钟内以适当的详细程度集成系统、软件和数据创建出一辆虚拟车辆,用于对功能进行仿真,从而开展原型设计、虚拟标定和虚拟验证。

虚拟车辆实现的一个核心是仿真集成平台,这个平台应该具备丰富的开箱即用功能,同时要保持一个接口开放性,以便进行定制扩展,再利用集成仿真来实现最大程度的一个流程前置。

目前在汽车行业最大的趋势是软件架构的变化。以前的软件是面向信号的软件架构,一个车上有很多个控制器,现在这个可能要发生变化。从软件架构来讲,要通过面向信号变成面向服务这样一个架构。也就是我们经常提到SOA架构,从我们汽车嵌入式软件开发来讲,这是一个最大的趋势,我看到的情况是这样。

SOA的优势可以这么说,以前面向信号的软件架构已经是没法应对目前这种软件的复杂度了。SOA它把软件模块应用化了,我们可以大概理解成以后的软件模块不像以前,以前我们会把很多模块放在一起,最后编译成一个文件下载到控制器上去。以后我们会把一些软件模块应用化,变成一个个应用APP,就像我们手机APP一样。对于开发每个APP来讲,它的复杂度和开发难度会大大降低。APP之间实现一个服务接口,他们可以做到模块之间的松耦合。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【从0上手cornerstone3D】如何加载nifti格式的文件

在线演示 支持加载的文件格式 .nii .nii.gz 代码实现 npm install cornerstonejs/nifti-volume-loader// ------------- 核心代码 Start------------------- // 注册一个nifti格式的加载器 volumeLoader.registerVolumeLoader("nifti",cornerstoneNiftiImageVolu…

Spark SQL函数定义

目录 窗口函数 SQL函数分类 Spark原生自定义UDF函数 Pandas的UDF函数 Apache Arrow框架基本介绍 基于Arrow完成Pandas DataFrame和Spark DataFrame互转 基于Pandas完成UDF函数 自定义UDF函数 自定义UDAF函数 窗口函数 分析函数 over(partition by xxx order by xxx [as…

如何在ubuntu22.04安装ROS2

ubuntu22.04安装ROS2 教程 选择对应版本进行安装设置编码添加源安装ROS2设置环境变量 运行ROS2 选择对应版本 通过官方网站,查询Ubuntu与ros对应的版本,版本不一致也会出现安装不成功。 https://wiki.ros.org/ROS/Installation 每一个都可以进行点击&a…

140:leaflet加载here地图(v2软件多种形式)

第140个 点击查看专栏目录 本示例介绍如何在vue+leaflet中添加HERE地图(v2版本的软件),并且含多种的表现形式。包括地图类型,文字标记的设置、语言的选择、PPI的设定。 v3版本和v2版本有很大的区别,关键是引用方法上,请参考文章尾部的API链接。 直接复制下面的 vue+leaf…

基于SpringBoot Vue高校失物招领系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历,丝我即可 前言 初次接触FPGA是在2022年3月左右,正处在研二下学期,面临着暑假找工作,周围的同学大多选择了互联网,出于对互联网的裁员形势下,我选择了FPGA,对于硬件基础知识我几乎是…

SpringMVC获取参数与页面跳转

获取参数 第一种 直接当成方法的参数,需要与前台的name一致 相当于Request.getAttribute("username") Controller 第二种 使用对象接收 页面的name也要和对象的字段一致 创建一个对应的实体类 Controller 将参数更换为User对象就行 SpringMVC获取到…

【GNN】人大魏哲巍“青源Talk”图机器学习

目录 简介 图学习历史与应用 历史-哥尼斯堡七桥问题 图历史发展介绍 图神经网络 应用(!!) 图学习近期工作 概况 图卷积神经网络(ICML,NIPS,KDD) 大规模图神经网络&#xf…

HarmonyOS开源软件Notice收集策略说明

开源软件Notice是与项目开源相关的文件,收集这些文件的目的是为了符合开源的规范。 收集目标 只收集打包到镜像里面的模块对应的License;不打包的都不收集,比如构建过程使用的工具(如clang、python、ninja等)都是不收…

vivado JTAG链、连接、IP关联规则

JTAG链 这列出了定义板上可用的不同JTAG链。每个链都列在下面<jtag_chain>以及链的名称&#xff0c;以及定义名称和链中组件的位置&#xff1a; <jtag_chains> <jtag_chain name"chain1"> <position name"0" component"part0…

当世界加速离你而去

当世界加速离你而去 会不会这个标题显的太悲观&#xff0c;也可能是耳机里正在放着To Be Frank的原因。 对于阳历跨年我是没有太多的感觉&#xff0c;而且跨年夜忙着约会&#xff0c;所以2023年的跨年文章今天才出来。 一年的时间一晃就过了。2022年12月9日时候彻底结束了风控…

腾讯云服务器价格查询,2024更新

腾讯云服务器租用优惠价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器646元15个月&#xff1b;云服务器CVM S5实例2核2G配置280.8元一年、2核4G…

51单片机电子密码锁Proteus仿真+程序+视频+报告

目录 视频 设计分析 系统结构 仿真图 资料内容 资料下载地址&#xff1a;51单片机电子密码锁Proteus仿真程序视频报告 视频 单片机电子密码锁Proteus仿真程序视频 设计分析 (1)能够从键盘中输入密码&#xff0c;并相应地在显示器上显示‘*’&#xff1b; (2)能够判断密码…

5G_射频测试_基础概念(二)

定义了测试参考点&#xff0c;不同的RRU类型 C类型传统RRU Conducted and radiated requirement reference points 4.3.1 BS type 1-C&#xff08;传统RRU一般测试点就是连接天线的射频接头&#xff09; 4.3.2 BS type 1-H&#xff08;宏站MassiveMIMO 矩阵天线&#xff…

最长上升子序列模型(LIS)

最长上升子序列模型就像它的名字一样&#xff0c;用来从区间中找出最长上升的子序列。它主要用来处理区间中的挑选问题&#xff0c;可以处理上升序列也可以处理下降序列&#xff0c;原序列本身的顺序并不重要。 模型 895. 最长上升子序列&#xff08;活动 - AcWing&#xff0…

【AI知识片段】Transformer模型中的位置编码

1.什么是位置编码 位置编码描述序列中实体的位置或位置&#xff0c;以便为每个位置分配唯一的表示形式。单个数字&#xff08;如索引值&#xff09;不用于表示项目在转换器模型中的位置的原因有很多。对于长序列&#xff0c;索引的量级可能会变大。如果将索引值归一化为介于 0 …

react 页签(自行封装)

思路&#xff1a;封装一个页签组件&#xff0c;包裹页面组件&#xff0c;页面渲染之后把数据缓存到全局状态实现页面缓存。 浏览本博客之前先看一下我的博客实现的功能是否满足需求&#xff0c;实现功能&#xff1a; - 页面缓存 - 关闭当前页 - 鼠标右键>关闭当前 - 鼠标右…

Win10/11中VMware Workstation设置网络桥接模式

文章目录 一、添加VMware Bridge Protocol服务二、配置桥接参数1.启用系统Device Install Service服务2.配置VMware 需要确认物理网卡是否有添加VMware Bridge Protocol服务 添加VMware Bridge Protocol服务 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参…

【Linux】Linux开发工具 - vim的基本操作

IDE例子 Linux编辑器-vim使用 vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。例如语法加亮&#xff0c;可视化操作不仅可以在终端运行&#xff…

【神经网络】火箭点火发射-诠释一场数据与学习的奇妙之旅

火箭点火发射来理解神经网络的故事细节 在一个充满科技气息的研究室里&#xff0c;一群科学家们正在忙碌地准备着一次重要的火箭点火发射。这次发射不仅是一次航天探索的壮丽征程&#xff0c;更是一场利用神经网络处理数据的智慧之旅。 在火箭发射的背后&#xff0c;神经网络…