三步得到虚拟传感器

从测量文件到可用模型只需三步:确定通道、训练、导出。三者都在同一个应用中、在您自己的计算机上完成,无需 Python 环境,测量数据也不会离开公司网络。

测量文件 CSV · MDF/MF4 · CAN 01 确定通道 02 训练、比较 03 导出 C · C++ · Python · MATLAB
三个步骤的总览;下面各节将逐一详细说明。

第 1 步:载入测量数据并确定通道

打开您的记录文件(CSV、MAT、MDF/MF4 或 TXT),或导入一段 CAN 或 CAN FD 报文(.asc 或 .blf),并按其信号数据库(.dbc)解码。打开时所有通道都会对齐到同一时间轴上,因此以不同采样率记录的信号从第一个条带起就能正确对应。

随后您指定模型以哪些通道作为输入、要重建哪一个信号。训练数据不必位于同一个文件中:除当前文件之外,还可以选择多个文件或整个文件夹。若同一物理信号在不同文件中命名不同,可用一张映射表为每个文件一次性指定正确的通道(并可保存为 CSV 文件重复使用)。

创建虚拟传感器对话框,显示训练数据源选项:此文件、选择文件或选择文件夹

第 2 步:训练与比较

可选的模型有随机森林、XGBoost 和神经网络。没有哪一类对所有任务都是最好的,因此不需要事先选定:模型竞赛会针对相同的输入与输出通道同时训练多个候选模型,并在排行榜中并列呈现。

此类替代模型的精度取决于超参数,也就是在训练之前确定的参数:对随机森林而言是树的数量、最大深度与最小叶子大小;对神经网络而言是层数、每层神经元数与学习率。这些超参数在 Data Sensors 中自动确定,可采用贝叶斯优化、Random Search、Grid Search 或代理模型策略。

评估在保留的验证集上进行,也就是在该模型未用于训练的数据上进行。排行榜将验证 RMSE 与 R² 并列列出,同时给出训练时间和拟合诊断。数据集足够大时,还会另外划出一个独立的测试集,既不用于训练也不用于模型选择。

模型竞赛排行榜,按验证 RMSE 和 R² 对 XGBoost 与 Random Forest 条目进行排名

第 3 步:导出为独立代码

选定的模型可直接导出为 C、C++、Python 或 MATLAB:C 适用于纯单片机构建,C++ 提供基于类的接口,Python 适用于分析脚本或服务,MATLAB 适用于 Simulink 模块。生成的代码是预测函数的独立实现,不依赖 Data Sensors,也无需链接任何运行时库。

导出可选全精度或 int8 量化,对话框会事先给出两种方案的大小与精度估计。因此在闪存预算与精度之间的取舍发生在保存之前。排行榜中的每一项都可以单独导出,而不只是第一名:精度略低的模型可能在您的目标硬件上运行更快,或更容易放入可用存储。

导出虚拟传感器对话框,已选择 C++ 作为导出格式

为此需要什么

一次测量,其中同时记录了后续的输入通道与目标量。目标量必须由物理传感器测得,因为它是训练的参考。需要多少数据取决于关系本身;是否足够,由保留集上的评估结果给出。除此之外没有其他前提条件:无需安装 Python、无需账户、无需联网。