Un capteur virtuel en trois étapes

Trois étapes mènent du fichier de mesure au modèle exploitable : choisir les canaux, entraîner, exporter. Les trois s'exécutent dans la même application, sur votre propre machine, sans environnement Python et sans que les données de mesure quittent le réseau de l'entreprise.

Fichier de mesure CSV · MDF/MF4 · CAN 01 Choisir les canaux 02 Entraîner, comparer 03 Exporter C · C++ · Python · MATLAB
Les trois étapes en vue d'ensemble ; les sections ci-dessous détaillent chacune d'elles.

Étape 1 : charger les données de mesure et choisir les canaux

Ouvrez votre enregistrement (CSV, MAT, MDF/MF4 ou TXT), ou importez une trace CAN ou CAN FD (.asc ou .blf) décodée avec sa base de signaux (.dbc). À l'ouverture, tous les canaux sont alignés sur un axe de temps commun, de sorte que des signaux enregistrés à des cadences différentes concordent dès la première piste.

Vous désignez ensuite les canaux que le modèle reçoit en entrée et le signal qu'il doit reproduire. Les données d'entraînement ne doivent pas nécessairement se trouver dans un seul fichier : outre le fichier courant, plusieurs fichiers ou un dossier entier peuvent être sélectionnés. Lorsque le même signal physique porte des noms différents d'un fichier à l'autre, une table de correspondance attribue une fois le bon canal pour chaque fichier (réutilisable sous forme de fichier CSV enregistré).

Boîte de dialogue Créer un capteur virtuel montrant les options de source de données d'entraînement : ce fichier, sélectionner des fichiers, ou sélectionner un dossier

Étape 2 : entraînement et comparaison

Random forest, XGBoost et réseaux de neurones sont disponibles. Aucune de ces familles n'est la meilleure pour toutes les tâches ; une présélection n'est donc pas nécessaire : la compétition de modèles entraîne plusieurs candidats en parallèle sur les mêmes canaux d'entrée et de sortie et les présente côte à côte dans un classement.

La qualité de tels modèles de substitution dépend des hyperparamètres, c'est-à-dire de paramètres fixés avant l'entraînement : pour un random forest, le nombre d'arbres, la profondeur maximale et la taille minimale des feuilles ; pour un réseau de neurones, le nombre de couches, les neurones par couche et le taux d'apprentissage. Data Sensors détermine ces hyperparamètres automatiquement, par optimisation bayésienne, Random Search, Grid Search ou une stratégie par modèle de substitution.

L'évaluation se fait sur une part de validation réservée, c'est-à-dire sur des données non utilisées pour l'entraînement du modèle concerné. Le classement présente le RMSE et le R² de validation côte à côte, ainsi que le temps d'entraînement et un diagnostic d'ajustement. Pour des jeux de données suffisamment grands, une part de test distincte est également réservée, utilisée ni pour l'entraînement ni pour la sélection du modèle.

Classement de la compétition de modèles classant les entrées XGBoost et Random Forest par RMSE et R² de validation

Étape 3 : exporter en code autonome

Le modèle retenu est exporté directement en C, C++, Python ou MATLAB : C pour une compilation MCU pure, C++ pour une interface à base de classe, Python pour un script d'analyse ou un service, MATLAB pour un usage dans un bloc Simulink. Le code produit est une implémentation autonome de la fonction de prédiction, sans dépendance à Data Sensors et sans bibliothèque d'exécution à lier.

L'export se fait en pleine précision ou quantifié en int8, et la boîte de dialogue affiche au préalable une estimation de la taille et de la précision pour les deux variantes. L'arbitrage entre budget flash et précision se fait donc avant l'enregistrement. Chaque entrée du classement peut être exportée individuellement, et pas seulement la première : un modèle un peu moins précis peut s'exécuter plus vite sur votre matériel cible ou tenir plus facilement dans la mémoire disponible.

Boîte de dialogue d'export de capteur virtuel avec C++ sélectionné comme format d'export

Ce qu'il faut pour cela

Une mesure dans laquelle figurent à la fois les futurs canaux d'entrée et la grandeur cible. Cette grandeur cible doit être mesurée avec un capteur physique, puisqu'elle sert de référence à l'entraînement. La quantité de données nécessaire dépend de la relation ; l'évaluation sur la part réservée indique si elle a suffi. Il n'y a pas d'autre prérequis : ni installation Python, ni compte, ni connexion internet.