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

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

图片

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

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

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

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

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

图片

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

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

图片

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

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

图片

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

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

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

图片

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

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

图片

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

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

图片

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

图片

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

图片

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

图片

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

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

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

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

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

图片

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

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

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

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

图片

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 快捷键(Ctrl + R)正则表达式批量替换

目录 一、使用快捷键CtrlR,打开替换界面 二、输入替换格式 三、点击全部替换 一、使用快捷键CtrlR,打开替换界面 二、输入替换格式 在第一个框输入 (.*): (.*) 第二个框输入 $1:$2, 三、点击全部替换

【JVM】并发的可达性分析详细解释

​ 🍎个人博客:个人主页 🏆个人专栏:JVM ⛳️ 功不唐捐,玉汝于成 ​ 目录 前言 正文 可达性分析的基本原理: 根集合(Root Set): 对象引用关系: 标记…

Java导出Excel并合并单元格

需求:需要在导出excel时合并指定的单元格 ruoyi excel 项目基于若伊框架二次开发,本着能用现成的就不自己写的原则,先是尝试了Excel注解中needMerge属性 /*** 是否需要纵向合并单元格,应对需求:含有list集合单元格)*/public boolean needMer…

记一次 .NET某道闸收费系统 内存溢出分析

一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序几天内存就要爆一次,不知道咋回事,找不出原因,让我帮忙看一下,这种问题分析dump是最简单粗暴了,拿到dump后接下来就是一顿分析。 二&…

11.1 pcl_ros的点云学习

本文是看了两个博主的内容,整理在这里是为了以后用时方便查找,更容易理解。引用的博文路径如下(本人也是刚开始看PCL的运用,本文是完全抄下面博主的内容,觉得这位博主写的很详细很清楚,并且自己运行了一遍有…

Java17新特性详解含示例代码(值得珍藏)

1. 概述 Java 17 是 Java 开发工具包(JDK)的一个重要版本,它带来了一系列的新特性和改进,以进一步增强 Java 语言的功能和性能。以下是 Java 17 中的一些主要新特性及其详细说明。 2. 新特性详解 JEP 356: Enhanced Pseudo-Ran…

uniapp uni.chooseLocation调用走失败那里,错误码:112

问题:我配置了百度上所有能配置的,一直调用不成功,如下图配置的 1:第一个 配置 代码: "permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}…

openpose之使用摄像头检测并输出到json文件

编程如画,我是panda! 前言 之前给大家分享了如何搭建openpose环境,并进行了测试案例,但是如果要使用摄像头的话,还需要修改一下运行文件,并且这次会教大家如何输出到json文件 。 如果环境还没有搭建好&am…

Unix时间戳

时间戳,相信很多相关专业的人,计算机软件电子等等都会听过。由于最早是由Unix系统使用所以又叫Unix时间戳。 Unix 时间戳(Unix Timestamp)定义为从UTC(世界协调时)/GMT(格林尼治时)…

iPhone解锁工具---AnyMP4 iPhone Unlocker 中文

AnyMP4 iPhone Unlocker是一款功能强大的iPhone解锁软件,旨在帮助用户轻松解锁iPhone,从而在电脑上进行数据备份、传输和编辑。该软件支持多种iPhone型号,包括最新的iPhone 14系列,并支持多种解锁模式,如屏幕密码解锁、…

【Docker】安装 Nacos容器并根据Nginx实现负载均衡

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

Go后端开发 -- 反射reflect 结构体标签

Go后端开发 – 反射reflect && 结构体标签 文章目录 Go后端开发 -- 反射reflect && 结构体标签一、反射reflect1.编程语言中反射的概念2.interface 和反射3.变量内置的pair结构4.reflect的基本功能TypeOf和ValueOf5.从relfect.Value中获取接口interface的信息6…

2018年认证杯SPSSPRO杯数学建模D题(第二阶段)投篮的最佳出手点全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 D题 投篮的最佳出手点 原题再现: 影响投篮命中率的因素不仅仅有出手角度、球感、出手速度,还有出手点的选择。规范的投篮动作包含两膝微屈、重心落在两脚掌上、下肢蹬地发力、身体随之向前上方伸展、同时抬肘向投篮方向…

SpringBoot:前端提交数据,服务端无法获取数据

http://www.xxx.com?phone111111111111&code1332 上述访问传值方式为键值对方式,服务端springmvc获取 >> // 在HttpServlet实现类的doGet、doPost方法中获取前端传来的值 doGet(ServerHttpRequest request){String phone request.getParameter("…

Codeforces Round 767 (Div. 1) D2. Game on Sum (Hard Version)(博弈 期望 dp 贡献)

题目 t(t<1e5)组样例&#xff0c;每次给定n,m,k(m<n<1e6&#xff0c;0<k<1e97) 有一个游戏&#xff0c;持续n轮&#xff0c;每轮Alice先选一个[0,k]的实数&#xff0c; Bob决定从总分里加上这个值还是减去这个值 特别地&#xff0c;n轮里&#xff0c;Bob选择…

Unity Mirror VR联机开发 实战篇(二)

一、迁移示例中的联机物体 1、将MirrorExamplesVR工程中的部分文件夹复制到自己的工程中。 1、打开MirrorExamplesVR中的 SceneVR-Common场景。 2、将场景中没用的东西都删掉&#xff0c;只留下面这些&#xff0c;新建一个空物体XR Mirror&#xff0c;将所有剩下的物体拖成XR …

Elastic 8.12:AI Assistant for Observability 正式发布,更新至 Apache Lucene 9.9

作者&#xff1a;来自 Elastic Brian Bergholm 今天&#xff0c;我们很高兴地宣布 Elastic 8.12 全面上市。 有哪些新的功能&#xff1f; 8.12 版本的两个最重要的组成部分包括 Elastic AI Assistant for Observability 的 正式发布版 和 Apache Lucene 9.9 的更新&#xff08…

网络安全B模块(笔记详解)- SQL注入

简单sql注入 1.使用渗透机场景kali中工具扫描服务器场景,将apache的端口号和版本号作为Flag提交(格式:端口号_版本号) Flag:8081_7.5 2.使用渗透机场景windows7访问服务器场景SQL网站,并将网站中概述页面中的Flag提交; Flag:sql_is_good 3.使用渗透机场景windows7访问…

AR与AI融合加速,医疗护理更便捷

根据Reports and Data的AR市场发展报告&#xff0c;到2026年&#xff0c;预计医疗保健市场中的AR/VR行业规模将达到70.5亿美元。这一趋势主要受到对创新诊断技术、神经系统疾病和疾病意识不断增长的需求驱动。信息技术领域的进步&#xff0c;包括笔记本电脑、计算机、互联网连接…

有效防范网络风险的关键措施

在数字化时代&#xff0c;企业面临着日益复杂和频繁的网络风险。提高员工的网络安全意识是防范网络威胁的关键一步。本文将探讨企业在提升网络安全意识方面可以采取的措施&#xff0c;以有效预防潜在的网络风险。 1. 开展网络安全培训&#xff1a;企业应定期组织网络安全培训&…