0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用MATLAB和MATLAB Parallel Server扩展整车仿真呢?

MATLAB 来源:MATLAB 2024-01-10 18:22 次阅读

使用 MATLABSimulink 设计和构建 Rivian 车辆仿真界面平台帮助我们实现了关键目标。我们为工程师和非工程师创建了统一平台,用于运行整车仿真、后处理结果和创建报告。

整个汽车行业的工程师越来越依赖仿真来评估操控性能、加速性能、续航里程和其他关键性能指标。与物理测试相比,通过仿真来评估车辆性能速度更快,成本也更低。

整车仿真还有助于设计工作在原型硬件可用之前在开发过程中尽早进行。然而,随着车辆仿真的成本和效率优势在组织内日趋明显,仿真需求的增加使得车辆仿真面临一系列挑战。

考虑到与商业仿真软件对接和运行整车仿真所带来的复杂性,需要拥有一支专门的仿真工程师团队,他们具备必要的专业知识。

然而,该团队可能很快会因各利益相关者的要求而不堪重负,这些利益相关者包括属性工程师、性能工程师、动力学工程师、续航里程和效率工程师以及高级管理人员。简单地执行这些团队要求的多个仿真也可能成为瓶颈,特别是当这些仿真连续地在商业软件上运行时更是如此。

最后,由于缺乏标准化的车辆数据,加上对仿真结果的临时后处理,这使得工程师争相获取黄金源数据和采用获准的方法来报告结果,从而加剧了这些困难。

在 Rivian,我们的团队开发了可扩展、易于使用的平台,用于配置、运行和后处理大量整车仿真。此车辆仿真界面 (VSI) 平台是使用 MATLAB 和 Simulink 开发的,有助于减少冗余,提高复用性,并通过并行处理提高仿真吞吐量。借助使用 App 设计工具构建的直观用户界面,该平台还让整个公司的工程团队都能轻松实现仿真,从而消除了仿真请求瓶颈(图 1)。

81b3d3a2-afa0-11ee-8b88-92fbcf53809c.jpg

图 1. VSI 用户界面。 本文介绍我们如何使用面向对象的原则设计 VSI,如何利用它来使仿真更平等普及,以及如何使用并行处理来扩展仿真工作量。

VSI 的面向对象的涉设计

当我们开始设计 VSI 平台时,面向对象的方法显然是实现灵活性、可扩展性和复用性等目标的最直接方法。我们首先明确定义了几个基本对象:Vehicle、Load Case 和 Simulation。在这种情形下,Vehicle 对象用于表示 Rivian 车辆,例如 Rivian R1T、Rivian R1S 或 Rivian EDV(我们的电动货车)。

此对象还表示车辆的配置,用于定义特定的电池组、动力总成系统、轮胎、前后驱动装置和其他组件。Load Case 对象用于定义仿真场景,包括速度曲线、环境条件和驾驶工况。而 VSI Simulation 对象只是 Vehicle 实例与特定 Load Case 的组合(图 2)。

81b789a2-afa0-11ee-8b88-92fbcf53809c.jpg

图 2. VSI 仿真包括特定车辆配置和预定义的测试场景。 从编程的角度来看,可将 Simulation 的概念视为构成 VSI 平台基础框架的超类。此超类的属性包括可以通过用户界面选择的车辆配置和测试场景属性,以及一组用于创建模型、运行仿真、执行后处理、提取度量和共享结果的方法(图 3)。借助 MATLAB 的面向对象的编程功能,我们可以轻松地针对 VSI 平台创建这种类结构体的实现。

MATLAB 句柄对象尤其适用于封装仿真中包含的所有信息(不仅包括车辆和测试场景,还包括用户设置、结果和度量),并在 VSI 内高效传输这些信息,而无需复制数据。这些对象随后可以转换为元数据文本文件并进行存档,使我们能够通过从元数据重新构造对象来重新创建任何历史仿真。

81c73e1a-afa0-11ee-8b88-92fbcf53809c.jpg

图 3. VSISim 超类,包括仿真输入和执行方法。

使仿真更平等普及和最大化复用

我们已将 VSI 部署为 MATLAB 工具箱和独立可执行文件(用 MATLAB Compiler 编译),可供未安装 MATLAB 的同事使用。由于可以轻松访问 VSI,团队不再需要等待 Simulink 工程师来运行仿真并获得结果。 VSI 界面的左侧(如图 1 所示)用于选择车辆配置和测试场景,而界面的右侧显示用不同颜色表示的仿真列表。红色表示尚未运行的仿真,绿色表示已完成的仿真,琥珀色表示已完成的仿真以及过期结果(例如,当新组件数据可用或模型修订时,可能会发生这种情况)。

值得注意的是,VSI 的仿真结果是共享的;工程师可能会发现他们要运行的仿真已由本团队或完全不同的团队中的某个人完成。工程师可以利用已有的仿真结果,避免运行相同且不必要的仿真,从而节省时间和计算资源。 在定义并选择了要运行的仿真后,工程师可点击标有 Run & Post-Process 的按钮(如图 1 所示)。仿真是结合使用 Simulink 和商业仿真软件在后台通过 MATLAB API 启动的(图 4)。

81caf6ea-afa0-11ee-8b88-92fbcf53809c.jpg

图 4. 集群仿真的工作流程图,以及显示五个调度仿真的 VSI 界面(以蓝色突出显示)。紫色状态表示仿真正在进行中;红色状态则表示仿真已完成。

在单个仿真完成后,记录的数据会发送回 MATLAB 工作区进行处理,然后转换为 Apache Parquet 数据文件格式,并最终存档在共享目录中。我们还开发了一套 MATLAB 脚本,用于汇总结果以生成关键度量,根据我们的需求管理系统中设置的目标报告仿真状态,并生成自动报告来概括关键性能指标,以供 Rivian 高级管理层参考。

通过并行处理实现扩展

在 VSI 用户界面中,工程师可以选择使用本地计算机上的多个内核来并行运行仿真,也可以选择使用远程 Amazon Web Services (AWS) 集群来执行此操作(图 5)。本地方法利用了 Parallel Computing Toolbox,它是工程师在测试模型更新和更改时最常选用的方法。远程方法基于运行 MATLAB Parallel Server 的 AWS EC2 实例,适用于具有已经过测试和验证的模型的生产环境。

81cecc70-afa0-11ee-8b88-92fbcf53809c.jpg

图 5. 用于并行处理的 VSI 选项。

在远程并行工作流中,MATLAB Parallel Server 和 MATLAB 作业调度器发挥着重要作用。VSI 先从 MATLAB Parallel Server 调用 parcluster 函数,以根据我们所定义的 AWS EC2 配置文件创建一个集群对象。在为要并行运行的每个仿真创建了一个仿真对象后,VSI 将在集群上创建一个作业,并为每个仿真创建一个单独的任务。该作业及其任务通过 MATLAB 作业调度器提交到 AWS EC2 实例。该调度器可协调作业的执行,并将任务分配给各个集群工作进程。当仿真完成时,MATLAB 后处理函数会在集群上运行,然后结果再进行存档和共享。对于大型作业,例如涉及 14 个冗长仿真的作业,远程并行方法要快得多,在 68 分钟内即可完成作业,而依序方法需要 9 个多小时(图 6)。

81dba10c-afa0-11ee-8b88-92fbcf53809c.jpg

图 6. 依序(黄色)、本地并行(蓝色)和远程并行(红色)方法的基准仿真时间。 在过去的六个月里,我们在 Rivian 的同事已使用 VSI 进行了 9,000 多次整车仿真,总共模拟行驶了大约 200 万英里。

计划的改进

使用 MATLAB 和 Simulink 设计和构建 VSI 平台帮助我们实现了关键目标。我们为工程师和非工程师创建了统一平台,用于运行整车仿真、后处理结果和创建报告。我们消除了仿真请求瓶颈,减少了仿真任务中的冗余,并提高了仿真复用性。此外,我们还通过支持在 AWS 集群或本地工作站的多个内核上并行运行仿真,最大程度地提高了吞吐量。

我们计划对 VSI 做出大量改进,包括将该平台部署为 Web 应用,为关键性能指标添加仪表板,以及简化从用户界面使用试验设计 (DOE) 的过程。与此同时,我们还在继续开发和扩展 Rivian 的 MATLAB Minimart,这是内部构建的 MATLAB 工具箱集合,用于数据转换和查看、启动和制动分析,以及各种其他经常需要的功能。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电动车
    +关注

    关注

    73

    文章

    2814

    浏览量

    112392
  • matlab
    +关注

    关注

    175

    文章

    2922

    浏览量

    228440
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82993
  • Simulink
    +关注

    关注

    22

    文章

    513

    浏览量

    61564

原文标题:Rivian:使用 MATLAB 和 MATLAB Parallel Server 扩展整车仿真

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MATLAB用户在GPU上实现具有GPU计算特色的代码加速

    MathWorks 宣布通过使用 Parallel Computing Toolbox 或 MATLAB Distributed Computing Server 实现在MATLAB
    发表于 09-26 09:50 1001次阅读

    MATLAB Runtime Server 应用程序开发指南

    MATLAB Runtime Server 应用程序开发指南:The MATLAB Runtime Server is a variant of M
    发表于 02-21 08:40 40次下载

    PID控制基础及MATLAB仿真

    PID控制基础及MATLAB仿真 本书共九章,外在MATLAB仿真工具!
    发表于 04-28 14:05 0次下载

    基于Matlab的Turbo码仿真研究

    基于Matlab的Turbo码仿真研究 摘 要:为了使Turbo码仿真更容易,研究并建立了基于Matlab中Simulink通信模块的Turbo码
    发表于 05-20 16:21 1875次阅读
    基于<b class='flag-5'>Matlab</b>的Turbo码<b class='flag-5'>仿真</b>研究

    MATLAB教程_MATLAB仿真_MATLAB软件下载

    本专题为你详述MATLAB编程与MATLAB仿真设计知识。内容包括MATLAB入门教程,MATLAB画图,
    发表于 10-19 17:44
    <b class='flag-5'>MATLAB</b>教程_<b class='flag-5'>MATLAB</b><b class='flag-5'>仿真</b>_<b class='flag-5'>MATLAB</b>软件下载

    matlab仿真应用详解

    matlab仿真详解好看的MATLAB书籍。
    发表于 02-19 15:44 32次下载

    MATLAB仿真技术与应用_张葛祥_李娜

    MATLAB仿真技术与应用,好看的MATLAB书籍。
    发表于 02-19 15:45 9次下载

    svpwm的MATLAB仿真实现

    svpwm的MATLAB仿真实现,利用MATLAB对三相电路进行了仿真,最后成功的仿真除了SVPWM。
    发表于 04-05 14:16 13次下载

    倒立摆的matlab仿真建模案例

    倒立摆的matlab仿真
    发表于 01-02 20:00 61次下载

    基于MATLAB的svpwm仿真模型

    svpwm的MATLAB仿真模型
    发表于 01-08 11:51 44次下载

    MATLAB并行的数据分析与仿真

    Explore the MATLAB* language's parallel capabilities.
    的头像 发表于 09-19 06:27 2037次阅读

    如何使用ADAMS和Matlab实现EPS和整车系统的联合仿真

    的数据交换接口;最后,将设计的控制系统在ADAMS/cAR和Matlab/simulink环境下通过输入输出接口进行联合仿真。几种行驶工况下的EPs及整车的动态特性计算结果,表明联合仿真
    发表于 05-21 17:25 12次下载
    如何使用ADAMS和<b class='flag-5'>Matlab</b>实现EPS和<b class='flag-5'>整车</b>系统的联合<b class='flag-5'>仿真</b>

    智能控制设计和MATLAB仿真

    智能控制设计和MATLAB仿真说明。
    发表于 05-27 09:37 0次下载

    MATLAB编程与系统仿真

    MATLAB编程与系统仿真说明。
    发表于 05-28 14:41 25次下载

    50种MATLAB电机仿真

    各种电机的MATLAB电机仿真,可以使用matlab打开。
    发表于 09-23 15:47 11次下载