Livre blanc

L'approche Model-Based Design pour les SDV (Software-Defined Vehicles)

Introduction

La transition vers les Software-Defined Vehicles (SDV) va être l’opportunité pour les constructeurs automobiles d'ajouter de nouvelles fonctionnalités tout au long du cycle de vie d'un véhicule. Pour supporter des mises à jour fréquentes, les équipes adoptent de nouvelles approches, notamment des architectures E/E centrales/zonales avec des machines haute performance (HPC), du software embarqué avec une architecture orientée services, l'automatisation avec l'intégration continue et la livraison continue, ainsi que la validation virtuelle basée sur les simulations.

La transition vers les SDV n'est pas simple. Ce livre blanc présente des idées et des bonnes pratiques issues des collaborations de MathWorks auprès d'entreprises automobiles du monde entier. Il aborde les manières dont l'approche Model-Based Design permet de développer des Software-Defined Vehicles :

  • Réutilisation du software entre les différentes plateformes : l'approche Model-Based Design facilite la réutilisation des logiciels dans les HPC, les contrôleurs zonaux et les unités de commande électroniques (ECU).
  • Réduction des délais de développement grâce à l'automatisation : l'utilisation de modèles, associée à la vérification automatique et continue, à la vérification de la cohérence et à l'analyse de traçabilité, permet de réduire les délais de développement tout en respectant les exigences de sécurité et de qualité.
  • Intégration Shift-Left : l'intégration de modèles de systèmes physiques et de piles logicielles virtualisées permet des tests Shift-Left d'intégration logicielle, accélérant la détection des défauts et améliorant la couverture de test.
  • Autonomisation des experts domaine : l'approche Model-Based Design permet aux experts domaine d'adopter des méthodologies avancées de développement logiciel et de créer du software de haute qualité.
section

Fonctionnalités logicielles et valeur client

Les fonctionnalités distinctives de la marque et la valeur client seront apportées par le logiciel. Les clients attendent à la fois de la sécurité et une continuité numérique, où le véhicule fait office de plateforme d'interactions et d'expériences numériques, au-delà de la simple conduite. Ces attentes favorisent les avancées technologiques des véhicules, comme l'électrification et l'autonomie.

Diagramme du cycle de valeur d'un SDV, incluant les attentes des clients, la technologie et l'innovation, ainsi que les opportunités commerciales.

Le software offre des fonctionnalités qui répondent aux besoins des clients et soutiennent les objectifs commerciaux. Le cycle reprend à chaque fois que de nouvelles attentes émergent des clients.

Livraison de logiciels rapide et en toute confiance

La livraison rapide et fiable de logiciels répondant aux standards de qualité automobile présente des défis multiples, notamment :

  • La complexité logicielle accrue et les défis de validation qui en résultent
  • Les exigences de sécurité fonctionnelle
  • Les approches distinctes adoptées par les équipes en charge des logiciels et des systèmes du véhicule

Ce livre blanc traite des technologies utilisées pour le développement des SDV ainsi que de la façon dont les équipes impliquées collaborent.

Examen des éléments des SDV (Software-Defined Vehicles)

MathWorks travaille avec des entreprises automobiles partout dans le monde, ce qui lui permet d’observer aussi bien les bonnes pratiques que les sources de dysfonctionnement.

La livraison de SDV (Software-Defined Vehicles) nécessite des compétences en développement de véhicules et en création logicielle, ainsi qu'une étroite collaboration entre les équipes de développement de véhicules et de logiciels. Toutefois, ces équipes travaillent souvent séparément, car elles suivent des processus différents et utilisent historiquement des outils distincts.

Compétences en développement de software-defined products (pratiques logicielles modernes, fonctionnalités basées sur les données et cloud) et compétences en ingénierie des véhicules (fiabilité, sécurité fonctionnelle et composants physiques).

Les éléments de « Software-Defined » et de « Vehicles ».

Le véhicule est un système multidomaine où la fiabilité, la sécurité fonctionnelle et l'intégration de nombreux composants physiques sont essentielles.

Les compétences en création de produits définis par logiciel associent une combinaison de pratiques modernes de développement logiciel agile avec un développement rapide, des versions fréquentes et un haut degré d'automatisation dans la création du logiciel. Les produits définis par logiciel ou Software-Defined Products nécessitent également des fonctionnalités basées sur les données, celles-ci provenant du parc de véhicules via le cloud.

C'est lorsque ces compétences sont réunies que survient une grande partie des risques et de la complexité, autrement dit quand les équipes, les outils, les processus, les approches et les préjugés se confrontent.

Le véhicule est au coeur du processus de développement d’un SDV. Il y a 20 ans, les ingénieurs en développement de systèmes automobiles avaient une approche cloisonnée, le travail étant effectué par différents groupes. Ils utilisaient des documents pour leurs échanges. Cela a changé avec l'approche Model-Based Design.

Diagramme montrant les étapes du développement (exigences, design d'algorithmes, architecture, simulation, software embarqué et génération de code), qui sont souvent cloisonnées.

Approche cloisonnée traditionnelle du développement de systèmes.

section

Application de l'approche Model-Based Design

L'approche Model-Based Design centre les activités de développement sur les modèles plutôt que les documents. Le modèle sert d'ensemble d'exigences exécutables qui orientent les activités de vérification, validation et test. Cette approche vous permet de détecter et de résoudre les problèmes liés aux exigences, à l'architecture et aux algorithmes, de manière précoce. Ensuite, vous pouvez générer automatiquement du code embarqué, tel que du code C ou C++, à partir de modèles d'algorithmes, pour l'exécuter sur un microcontrôleur.

Diagramme montrant comment l'approche Model-Based Design intègre les étapes de développement auparavant cloisonnées (simulation, design d'algorithmes, génération de code, exigences et architecture) dans les logiciels embarqués.

L'approche Model-Based Design rationalise le développement de systèmes.

Avec l'approche Model-Based Design, les équipes sont également en mesure de dépasser la rigidité que l’on attribue généralement au cycle en V. Le respect rigoureux du cycle en V se traduit par une série d'étapes séquentielles, nécessitant des exigences système strictes avant de pouvoir décomposer le système et nécessitant également la présence de tous les composants préalablement au lancement des tests d'intégration, ce qui réduit considérablement l'agilité et l'efficacité.

Dans l'approche Model-Based Design avec Simulink®, vous modélisez et simulez l'ensemble du système, notamment les modèles de composants physiques comme la batterie et la direction, ainsi que l'architecture complète du véhicule, tout en représentant les divers algorithmes logiciels exécutés dans le véhicule. Avec un tel modèle de système, vous commencez le développement virtuel d'une nouvelle fonctionnalité logicielle et effectuez des tests d'intégration virtuelle dès le début. Cela vous permet de tester la nouvelle fonctionnalité telle qu'elle interagit avec d'autres fonctionnalités logicielles, le tout étant exécuté dans un véhicule virtuel.

De plus, avec Simulink, les étapes peuvent être plus compactées que ne le suggère le cycle en V, et l'exécution de ces étapes peut être automatisée d'une manière compatible avec les pratiques avancées de développement logiciel.

Enfin, avec les SDV (Software-Defined Vehicles), l'architecture E/E des véhicules évolue, tout comme les processus de développement associés. Les workflows implémentant l'approche Model-Based Design ont évolué en conséquence.

Approche Shift-Left avec simulation et virtualisation

Une partie du changement de workflow réside dans la virtualisation des puces, du logiciel de base et du middleware, ce qui permet une intégration logicielle précoce (intégration Shift-Left). Par exemple, Simulink peut réaliser de façon précoce l'intégration et les tests (approche Shift-Left) en incorporant la représentation virtuelle d'un processeur Infineon® AURIX™ grâce aux technologies Synopsys. Vous pouvez effectuer des itérations rapidement dans l'environnement de simulation, puis utiliser les bibliothèques Infineon pour générer automatiquement du code optimisé pour le processeur. Simulink fonctionne également avec des technologies de virtualisation d'autres entreprises, telles que Qualcomm.

Diagramme de flux montrant l'intégration de l'approche Model-Based Design avec des technologies tierces de Synopsis et Qualcomm afin de permettre la génération de code optimisé pour les processeurs de nouvelle génération et l'intégration précoce.

En adoptant une approche Shift-Left, vous pouvez itérer, tester et valider rapidement et dès le début. Ensuite, vous pouvez générer du code optimisé pour le processeur.

Support d'une architecture orientée services

L'architecture orientée services (SOA) est un élément important du développement de logiciels modulaires pouvant être mis à jour individuellement. Aujourd'hui, l'approche Model-Based Design et Simulink vous permettent de créer des applications basées sur le signal et orientées services, pour les nouvelles architectures E/E impliquant des HPC et des contrôleurs zonaux. Vous pouvez modéliser des SOA (notamment des applications AUTOSAR Adaptive), les simuler et générer du code C++ avant de les déployer en tant que services modulaires.

Exemple de pile logicielle SOA, présentée avec ses couches de haut en bas (software d'application, middleware et software de base), fonctionnant sur du hardware haute performance.

Zeekr, un fabricant de véhicules électriques en Chine, a utilisé avec succès l'approche Model-Based Design pour développer des logiciels SOA, ce qui a permis à l'équipe de développement d'itérer et de publier ses logiciels rapidement.

En savoir plus

Intégration avec des plateformes open source et tierces

Un environnement de développement de production doit intégrer de nombreux outils et plateformes. Cette exigence est bien supportée par l'approche Model-Based Design, car Simulink interagit avec de nombreux autres outils, notamment du code et des outils open source.

Diagramme montrant comment des technologies logicielles tierces, telles que C++, DDS, Python, FMI et ROS, sont intégrées à Simulink.

Modélisation de système complet et des composants. Vous pouvez également intégrer des composants provenant de sources multiples.

Simulation de scénarios complexes

La création de scénarios sur route et hors route pour la simulation vous aide à affiner les exigences du système et à exécuter des tests basés sur des scénarios réalistes.

Création des scénarios routiers ou de construction pour la simulation et le test.

Amélioration de la vitesse et de la qualité

Abordons maintenant la partie logicielle. Les pratiques de développement logiciel les plus récentes mettent l'accent sur l'agilité.

Les workflows implémentant l'approche Model-Based Design ont évolué afin de rendre l'ensemble du processus plus agile, en alignant les équipes de développement de systèmes de véhicules et de logiciels, sur des outils et des objectifs communs. La virtualisation du système complet, des composants, des processeurs virtuels et des scénarios, offre des environnements de test réalistes.

Les outils d'ingénierie ont de plus en plus besoin d'être intégrés à l'infrastructure informatique. Dans l'industrie automobile, il était rare qu'une collaboration étroite s'instaure entre les équipes en charge de l'ingénierie et de l'informatique. MathWorks collabore avec les organisations pour rapprocher ces groupes et aider à automatiser les pratiques d'ingénierie système et l'approche Model-Based Design, à l'aide des outils DevOps utilisés par les équipes s'occupant des logiciels et des plateformes. L'objectif consiste à harmoniser l'exécution des processus et le fonctionnement des pipelines, tout en assurant une certaine transparence via des tableaux de bord et des benchmarks de performance.

Diagramme d’une chaîne de production logicielle présentant des blocs pour le développement basé sur le code et les plateformes DevOps et CI.

Rassemblement du développement logiciel et de DevOps autour d'outils et d'objectifs communs.

Que votre logiciel soit généré automatiquement, créé manuellement ou une combinaison des deux, la virtualisation du système du véhicule, des composants, du processeur, des piles logicielles et des scénarios offre un environnement de test réaliste, qui peut être connecté et automatisé en utilisant des pipelines d'intégration continue (CI).

À titre d'exemple, les ingénieurs de Geely estiment que l'intégration et les tests continus (CICT) sont essentiels pour passer du développement logiciel rapide à la création efficace de logiciels de qualité. Ils considèrent l'intégration entre les outils d'ingénierie tels que Simulink, Simulink Test™, Polyspace® et les plateformes CICT comme un moyen d'accélérer le flux de valeur et d'assurer une livraison logicielle continue, de haute qualité, rapide, stable, contrôlable et à moindre coût. Ils ont ainsi enregistré un taux de réussite de 90 % lors de leurs premiers tests d'intégration logicielle.

Diagramme du workflow de Geely, allant de l'inspection du contrôle des accès aux tests automatiques, soulignant l'accélération de l'intégration et des tests continus (CICT) pour la qualité logicielle, et montrant la valeur de l'approche Shift-Left.

Geely améliore sa qualité et sa vitesse de développement grâce à DevOps (MathWorks Automotive Conference en Chine). (Crédit image : Geely)

Continental applique cette méthode depuis un certain temps, en intégrant des approches basées sur des modèles à ses usines logicielles, notamment GitHub®, Jenkins® et Artifactory. Continental a ainsi doublé la vitesse de son système CI/CD et réduit de moitié les efforts de maintenance.

Diagramme du processus de Continental qui montre les phases de développement dans son usine logicielle.

Capture d'écran de l'exposé de Continental sur son usine logicielle lors de la MathWorks Automotive Conference. (Crédit image : Continental)

Ces deux exemples soulignent l'importance de rassembler les systèmes et les pratiques logicielles modernes.

Design de l'IA dans votre système

L'IA est un type clé de fonctionnalité basée sur les données. C'est notamment le cas des algorithmes d'IA destinés aux systèmes embarqués, souvent appelés IA embarquée. MATLAB® et Simulink proposent une bibliothèque d'exemples de référence qui montrent comment intégrer une fonctionnalité logicielle basée sur l'IA dans un système, puis générer du code pour le modèle d'inférence. Ces exemples peuvent vous aider à démarrer le design, la simulation, le test, la vérification et le déployement des algorithmes d'IA qui améliorent les performances et les fonctionnalités des systèmes embarqués complexes. Un capteur virtuel est un exemple d'IA embarquée.

Workflow d'IA pour capteurs virtuels, montrant la préparation des données, la modélisation de l'IA, la simulation du système et le déploiement.

L'IA peut être créée dans un framework open source comme PyTorch®. MATLAB interagit avec ces environnements, ainsi qu'avec Python® et TensorFlow™, grâce à l'exécution conjointe, aux convertisseurs de modèles et au MATLAB Deep Learning Model Hub. Les blocs Simulink peuvent intégrer ces modèles d'inférence afin que vous puissiez simuler et observer le fonctionnement de l'IA au sein du système et des scénarios définis.

Mise à l'échelle dans le cloud

Le cloud offre une plateforme pour la mise à l'échelle des simulations et du développement logiciel, facilitant ainsi le prototypage, le développement et la distribution aux véhicules, de fonctionnalités et de mises à jour. L'intégration de Simulink au cloud vous permet de mettre à l'échelle vos workflows de simulation et de développement sur des plateformes cloud telles qu'Amazon Web Services (AWS®) et Microsoft® Azure®.

section

Conclusion

La transition vers les SDV (Software-Defined Vehicles) implique l'intégration des approches, des outils et des processus, logiciels et système. MathWorks vous accompagne grâce à des outils qui supportent l'IA, la technologie cloud et les pratiques logicielles modernes.

Digramme d'un processus de design de SDV.

Développement de SDV (Software-Defined Vehicles) avec l'approche Model-Based Design.