本页面使用了机器翻译。
请花 1 分钟时间完成一个翻译质量的调查。
为基于云的大规模仿真构建虚拟车辆模型
作者 : Brad Hieb、Mike Sasena 和 Scott Furry,MathWorks
整个行业的汽车公司越来越依赖使用车辆模型实现虚拟原型设计、验证和集成的虚拟开发方法。这种方法具有显著的优势,即节省成本和减少开发时间,因为物理原型仅用于最终验证。
然而,工程团队发现,在实现虚拟开发的好处之前,必须清除一些障碍。首先,团队需要创建具有适当保真度的虚拟车辆模型。也就是说,模型必须足够详细才能得到感兴趣的效果,但又不能太详细以至于仿真时间过长。接下来,他们需要整合物理被控对象模型和软件模型。工程团队还需要结合驾驶场景来训练闭环模型并可视化仿真结果以提取有用的信息。在许多情况下,他们还需要一种运行大规模仿真的方法来支持设计权衡研究或优化。
在本文中,我们介绍了覆盖所有这些关键领域的工作流。该工作流包括使用虚拟车辆组建工具构建模型,自定义该模型,使用它在桌面上运行仿真,然后将其部署到云端以执行大规模研究(图 1)。许多 MathWorks 客户已经使用此工作流或类似的工作流来减少仿真时间,简化基于云的仿真,并支持越来越多的虚拟车辆建模用例。
生成和自定义虚拟车辆模型
从头开始构建车辆模型并非易事。在自定义模型以满足特定项目的要求之前,先从参考模型入手会有很大帮助。这就是 MathWorks 为何多年来一直针对多种车辆测试和操作提供预构建车辆参考应用的一个原因。对于 R2022a,MathWorks 在 Powertrain Blockset™ 和 Vehicle Dynamics Blockset™ 中发布了虚拟车辆组建工具。该应用使工程团队能够更轻松地通过直观的用户界面配置和构建虚拟车辆,以进行性能测试和分析。使用该应用时,工程师首先要选择车辆的动力系统(例如,双电机电动汽车动力总成系统),指定是纯纵向模型还是包含横向动力学的模型,并配置关键参数,例如车辆质量、轮胎尺寸、最大电机扭矩等。然后,他们可以从一组行驶工况和操作中选择运行哪些测试用例,以及在仿真期间记录哪些信号。一旦做出这些配置选择,只需单击一下即可生成用于仿真的 Simulink® 模型(图 2)。
虚拟车辆组建工具使团队能够在几分钟内配置并生成完整的模型。但更重要的是,生成的模型是完全可自定义的,因此,团队可以使用新的被控对象、控制器或传感器模型功能或者使用 C 或 MATLAB® 编写的附加函数来增强它。
为了说明工作流的这一部分,我们实现了一个用例。其中,我们自定义了使用虚拟车辆组建工具生成的 EV 模型版本,然后使用它来研究自动紧急制动 (AEB) 系统的性能。
我们生成的 EV 模型不包含运行 AEB 测试所需的传感器、控制算法和测试场景,因此我们采用了 Automated Driving Toolbox™ 的样本模型中的这些组件。此时,我们需要拖放所需的 AEB 组件,连接必要的信号以将其放入模型框架中,并从 AEB 样本模型中复制车辆参数和控制器校准数据。最终的闭环模型(包括 EV 被控对象和 AEB 控制器)包含近 33,000 个模块(图 3)。
执行桌面仿真
一旦组装并配置了完整的系统模型,工作流的下一步就是执行桌面仿真。在我们例举的用例中,目标是了解 AEB 控制算法对我们所建模的 EV 的效果如何。例如,我们想知道在各种场景和各种车辆重量下,控制器是否能够安全地停下汽车(而不会发生碰撞)。我们还想评估关键的控制参数,例如制动力(或制动压力)的初始应用以及制动器完全应用的具体时刻(图 4)。桌面仿真提供了一种方法来验证模型、评估测试配置,并在扩展到更全面的研究之前通过有限的测试运行来验证自动化脚本。
为了设计用于测试的合成驾驶场景,我们使用了 Automated Driving Toolbox 中的交互式驾驶场景设计器,该应用还提供了几个 AEB 和防撞示例应用。我们针对每种场景都有一个简单的通过/失败标准:如果自主车辆在与路上的车辆、行人或障碍物相撞之前停了下来,则测试通过(图 5)。
我们想要运行几个测试用例,因此,我们决定自动执行测试,这可以通过 MATLAB 脚本或 Simulink Test™ 完成。在首轮桌面仿真中,我们决定运行 16 个不同的测试,在被控对象和控制算法以及测试场景中改变参数(例如车速),以便在各种条件下测试系统。在单个处理核上,这 16 次运行的扫描大约需要 23 分钟才能完成。为了缩短仿真时间,我们使用 Parallel Computing Toolbox™ 在四个核上并行运行相同的测试。这将仿真时间缩短至 7 分钟多一点。然而,即使以这样快的速度进行,也需要几天的时间才能完成我们想要开展的全因子研究,因为其中涉及数千次仿真。如此大规模的研究非常适合在云端进行。通过先在桌面上执行这种小规模的参数扫描,我们能够确认用于运行仿真和检查通过/失败标准的自动化脚本是否按预期工作。这继而增加了我们的信心,让我们能够在云中扩大研究规模,以涵盖更多的测试条件组合。
在云中开展大规模仿真研究
在云中运行仿真的原因有很多。通过扩展来利用更多的计算资源是一种常见的动因。工程师可能只想将计算任务从主工作站转移到其他资源,或者团队可能希望按需访问仅偶尔需要的专用计算硬件。
使用 MATLAB 时,从桌面转到云非常简单,无需重写脚本或算法。MathWorks 提供了在云端基于虚拟机 (VM) 运行 MATLAB 和 Simulink 的参考架构,以及可部署到云端的预构建容器。
在我们的研究中,我们使用参考架构运行基于 Amazon® Web Services 的 MATLAB Parallel Server™。此参考架构位于 GitHub® 上,便于启动基于最新预构建的 MathWorks® Amazon Machine Images (AMI) 的 Windows® 或 Linux® 虚拟机实例,即使对于云经验很少或没有云经验的团队也是如此。在实例启动后,我们通过远程桌面连接它,上传我们的测试设置文件,然后我们准备开始在具有四台 32 核机器的 Linux VM 集群上运行测试。
我们进行了一项全因子研究,其中包括 28 个场景、一个被控对象模型参数的 16 个值以及两个控制参数的各 5 个值。这就产生了包含 11,200 次仿真的测试套件。在云端,完成测试运行大约需要 90 分钟,而在四核工作站上,同样的研究大约需要两天时间才能完成。
通过评估这项研究的结果,我们确认,AEB 控制器在所有测试中都具有相当的稳健性。我们确实注意到了一些失败的情况,其中虚拟车辆未能及时停下来(图 6)。在典型的工作流中,这些案例将在桌面上进行更详细的检查,工程师将在 MATLAB 和 Simulink 中分析结果,以确定故障的根本原因,决定问题的补救方法(例如,通过调整控制器参数),并根据需要更新模型,以便在云端进行后续测试。使用虚拟车辆模型进行大规模仿真研究,便于识别这些潜在的故障情况,并使工程团队能够在设计过程的早期阶段关注潜在的关键问题。
结束语
随着虚拟车辆开发在整个汽车工作流中变得越来越重要,工程团队将需要想方设法来满足不断增长的仿真需求。虚拟车辆组建工具使团队可以快速配置合适的车辆模型,从而帮助他们显著提升效率。由于这些模型不是黑盒,因此,工程师可以根据其项目的特定需求,灵活地在 Simulink 中快速增强和自定义它们。此外,团队可以继续使用 MATLAB 和 Simulink 以及云计算来大规模实现仿真研究的自动化,并在各种条件下分析他们的系统以识别潜在问题,进行设计权衡评估并执行优化。
2024 年发布