基于ETAS嵌入式AI工具链将机器学习模型部署到量产ECU

描述

前言:

AI在汽车行业的应用日益深化,如何将机器学习领域的先进模型(如虚拟传感器)集成到ECU软件中,已成为业界面临的核心挑战。

本文基于ETAS最新的Embedded AI工具,将介绍一种创新路径,旨在赋能工程师高效的开发、优化并将ML模型成功部署在当前嵌入式控制器ECU。文章也将探讨这一变革性方法如何重塑开发工程师的角色,并加速AI技术在汽车领域的普及进程。

一、实际案例

举一项具体功能为例进行阐述:基于数据驱动的ML模型预测传统燃油发动机的进气质量 (Air Mass) ,并最终运行于ECU控制器。借此案例,我们会更完整展示ETAS嵌入式AI工具链的通用工作流程。

通常,能够复现真实物理传感器功能特性的软件模型,被称为虚拟传感器。在示例中,建模数据来源于发动机试验台架,其细节在此不作赘述。我们的关注点将集中于从测量数据出发,经由自动化ML模型构建,最终生成面向发动机控制器的高度优化C代码这一完整工作流。

嵌入式

图1:进气质量估算模型

二、ML模型开发

对许多在日常工作中不常接触此类任务的工程师而言,运用现代机器学习算法创建数据驱动模型是一项不小的挑战。因此,一款工具能够妥善处理测量数据适配、算法选择,并将复杂繁多的模型参数等抽象简化,就显得尤为重要。理想工具应聚焦于工程师能够轻松面对核心问题。

嵌入式

图2:ML模型类型

工程师需要明晰哪些系统参数可能对目标建模变量产生重要影响,哪些数据适用于解决当前问题。尤其在处理瞬态测量数据与模型时,庞大的数据量及其采样率更是关键考量因素。

ETAS的ASCMO工具为上述各个环节均提供了有力支持,助力工程师轻松构建初始模型。

标准工作流程如下:

选择测量文件:确定初始测量文件,并指定影响系统行为的相关参数,以及待建模的目标输出。

调整采样时间:优化采样率,在充分捕捉所有相关效应的同时,避免数据量过大影响建模速度。

模型构建与训练:通过特有的Automated Machine Learning功能自动化机器学习,探索所选系统输入与输出之间的依赖关系。

2.1 选择测量文件

选定目标测量文件后,ASCMO将显示其中包含的所有信号列表。工程师从中选取所需信号,并将其定义为“输入”或“输出”。此外,也可在此阶段指定合适的采样时间。

嵌入式

图3:已加载测量文件的信号选择界面(附采样时间等选项)

预览功能可直观显示所选信号的数据是否处于预期范围并呈现合理变化趋势。信号选择支持过滤与保存,极大简化了测量文件的管理,为之后其他项目的复用性提供了便利。

2.2 调整采样时间

为应对各种潜在情况,测量数据常以高分辨率采集,这也导致了数据量庞大,可能在后续建模中成为障碍,增加计算时间与PC内存消耗。同时,过高的分辨率还可能引入与真实物理关系无关的噪声。因此,审慎考量适当的采样时间及必要的滤波手段,对确保模型精度至关重要。

为此,ASCMO提供了调整采样时间以及使用滤波器去除数据噪声的选项。

嵌入式

图4:可能存在噪声或采样率过高的测量值

2.3 模型构建与训练

在ASCMO中构建模型主要有两种策略

其一为手动流程,虽能提供最大灵活性,但要求工程师深入了解各种AI机器学习算法、其应用场景及相关参数;

另一种则是自动化机器学习策略,旨在将寻找最佳模型类型并自动化配置繁琐任务。由于搜索空间可能异常庞大,通常需要在尝试多种模型以挑选最优解所耗费的时间,与缺乏先验知识之间进行权衡。

对于数据驱动建模及机器学习算法经验尚浅的工程师而言,寻找合适的模型及最优配置仍非易事。ASCMO内置了一套核心思路,其设计原则是:在提供充分的模型探索的同时,避免因选项过多而使工程师无所适从。

为获得更精确的模型,经验丰富的工程师也可以手动测试不同模型类型,并利用大量可调参数评估其质量。而对于不熟悉此类模型或希望提升效率的工程师,ASCMO的“AutoML”功能运用优化启发式算法,为特定建模问题自动寻找最优模型类型及其配置,此过程的耗时取决于问题的复杂度、测量数据量以及系统输入的数量。

自动化机器学习模型探索的结果,以模型误差与模型复杂度构成的帕累托前沿图(Pareto Front)呈现。右侧显示当前选定模型的详细信息。图5所示当前选定模型为一个采用“GRU”类型、包含3层的循环神经网络,其RMSE值约为22。

嵌入式

图5:不同模型的帕累托前沿图(模型误差 vs. 模型复杂度)。误差越低,模型通常越复杂。

为验证模型质量,必须使用独立的测试或验证数据集,对模型推理结果与实际测量值进行对比。ASCMO支持导入任意附加数据集以测试模型,并包含协助选取合适测试数据的功能。只有当模型能够良好泛化,可靠的预测未知行为时,才真正具备应用价值。

嵌入式

图6: 模型预测(蓝色)与测量真值(黑色)的对比,——GRU模型,输出Air-Mass随时间变化

在帕累托前沿中,追求更低的模型误差往往意味着要接受更高的模型复杂度(参数量)。当计划将此模型部署到嵌入式设备(如发动机控制器ECU)时,这是一个必须权衡的折衷方案。对于此类应用,ETAS安全高效的专用代码生成工具Embedded AI Coder巧妙的加入到当前工作流程中。

一旦工程师选定合适模型,ASCMO便可将其导出为多种格式(例如也可用于仿真环境),这里提供一种专用格式,供Embedded AI Coder直接读取和使用。同时,为最大化操作便利性,这一操作也可直接从ASCMO菜单界面启动,自动生成高度优化的嵌入式C代码。

嵌入式

图7: ASCMO的GUI菜单页面中直接调用Embedded AI Coder

三、性能表现

微控制器MCU资源有限,且面临严格的实时性约束。与其他商用C编译器类似,Embedded AI Coder运用多种技术优化运行时性能和内存占用。

针对特定函数使用专用API。例如,一个优化后的Saturation函数可比通用实现方式节省6个CPU周期。

许多矩阵点积运算需要用到前序操作的部分数据切片。工具会复用已加载至内存中的数据,而非完全重新加载,从而显著节约硬件资源。

智能内存划分通过分析所有神经网络层,尝试分配尽可能少的RAM,其策略是复用可用内存区域而非总是申请新内存。

此外,借助硬件资源预估功能,工程师可早期评估所选模型是否适合目标MCU。

如图8所示,从ASCMO的帕累托前沿导出了两个备选模型。

嵌入式

图8:用于嵌入式部署的两种模型变体

图9与图10证实了预期:相对简单的模型比精度高的模型占用资源要少得多。

嵌入式

图9:模型(2),RMSE较高,复杂度较低

嵌入式

图10:模型(1),RMSE较低,复杂度较高

对硬件运行资源使用情况的细致分析,有助于在模型构建阶段即进行优化。通过提供这些全面的能力,ETAS嵌入式AI工具链有效支持工程师进行权衡决策,为特定项目需求选取最佳模型。

从ASCMO v5.16开始,AI Coder的硬件资源预估正式内置在ASCMO的AutoML功能中,有助于在探索最优模型和参数时,预先考量目标硬件的特定内存与性能约束(RAM、ROM、Runtime)。这种预筛选机制确保ASCMO只推荐在给定约束条件下能提供最佳质量的模型类型。

嵌入式

图11:硬件资源限值在AutoML界面中作为可选项

嵌入式

图12:此时Pareto Front显示所有基于硬件资源考量后的可选模型

最终,工程师再根据实际需要和倾向性做出恰当选择。通常,明智的做法是在满足精度要求的前提下,选择尽可能简洁的模型。

四、部署到目标硬件

如同ASCMO通过友好的用户工作流抽象了机器学习的复杂性,Embedded AI Coder同样致力于简化将机器学习模型转化为资源高效、安全可靠的代码的过程,以下章节将详述此方面特性。

4.1 代码集成

首先,生成的代码需易于集成至任何现有的ECU软件开发工具链中。如图所示,所有集成指导均在README文档中详细说明。

嵌入式

图13:生成的代码文件夹概览。

/code/CMakeLists.txt 和 /code/CMakePresets.json 等附加文件,使得用户能够轻松地为任何设备及工具链集成并编译代码。若工程师部署了基于CI/CD流水线的服务器自动化流程,亦可通过命令行调用该工具。

嵌入式

图14:带有详细注释的示例集成文件。

此外,针对使用MATLAB/Simulink等基于模型进行软件开发的用户,AI Coder在生成代码的同时,可直接封装成Simulink模块库,直接拖入至模型开发和仿真环境。

嵌入式

图15:多种代码集成方式

4.2 安全与合规

生成代码已满足ISO26262等汽车功能安全标准的所有要求,在保证与原始ML模型行为一致的同时,确保了内存安全并符合MISRA规范。

Embedded AI Coder会对生成的代码执行自动化测试与验证,这极大降低了软件最终发布所需的工作量。

嵌入式

图16:逐层验证流程

功能安全是汽车系统的重中之重,必须确保生成的C代码能够毫无例外的正确执行ML模型。为此,Embedded AI Coder采用了自动验证例程,对神经网络的各个独立层以及ML模型的整体输出进行双重核查。在代码生成过程中,ML模型的每一步运算首先会经过独立的验证例程。编码器通过数值验证,确保生成的C代码在每个独立操作上产生的中间结果,均与原始模型对应神经网络层的结果一致。与此同时,验证过程确保只访问合法的内存区域。

通过全局验证,对生成的ML模型输出进行数值等价性及内存访问合法性的最终检查。数值等价性意味着,使用验证数据时,由ETAS ASCMO模型计算出的结果与生成代码计算出的结果完全相同,生成代码在代码生成过程中未引入任何副作用,其行为与原始模型精确一致。工程师将获得一份验证报告,证明该ML模型的执行符合功能安全要求,满足量产项目所需的等级标准。

嵌入式

图17:自动化验证结果

五、嵌入式AI工具链总结与展望

以上展示了如何以简洁快速的方式生成高精度模型,并进一步将其转化为面向嵌入式系统(如控制器ECU)安全高效的C代码。

嵌入式

图18:ETAS 嵌入式AI工具链

ETAS嵌入式AI方案成功弥补了传统汽车领域软件开发及标定工程师与机器学习新领域之间的鸿沟,可推进AI在汽车电子中的创新应用。

嵌入式ECU中AI模型的三大应用场景

1. 虚拟传感器 : 利用现有信号预测目标物理量

用训练好的ASCMO模型替代物理传感器,节省硬件成本

在物理传感器失效时,作为备份软件传感器,保障系统安全

对物理传感器无法安装或测量的信号进行估算

应用示例:NTC传感器信号模拟、电机转子位置估算等

2. 大幅缩短软件标定工作量

直接用训练好的ASCMO模型替代复杂的基于物理原理的ECU模型

获得更优的估计质量,同时显著减少标定工作。避免了在极其复杂的模型中维护DCM文件、更新大量查找表及逻辑所带来的人工和耗时

应用示例:扭矩模型、进气量模型、氮氧化物(NOx)排放模型等 

3. 预测性维护

利用系统在健康状态下的稳健信号数据,训练ASCMO异常检测自编码器模型

检测系统异常行为,从而预防损坏,并能够提前通知用户或运维人员

应用示例:运动部件的健康状态监测

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分