Livre blanc

Développer des systèmes de batteries avec Simulink et Simscape

Workflow de développement d'un système de batterie

L'électrification favorise l'utilisation de batteries pour toute une série d'applications, notamment les véhicules électriques (voitures, bus, par exemple), les navires, les avions électriques à décollage et atterrissage verticaux (eVTOL) et les systèmes de stockage d'énergie par batterie (BESS). Ces applications présentent différentes exigences pour le design du système de batterie, en termes de sélection de cellules, d’architecture du bloc de batterie (puissance/densité énergétique, volume, poids et durée de vie) et de développement du système de gestion de batterie (BMS).

La simulation du design du système de batterie avant les tests permet de mieux comprendre le comportement dynamique du bloc de batteries. Elle vous permet également d'explorer et de comparer les algorithmes BMS, d'étendre les cas de tests opérationnels et de raccourcir le cycle de développement technologique qui va de la cellule jusqu'au système de batterie.

Le workflow de développement d'un système de batterie débute par la modélisation de la batterie, comme l'illustre le schéma ci-dessous :

Diagramme d'un workflow de développement montrant, de gauche à droite, la simulation desktop, la simulation temps réel et l’implémentation hardware.

Avec Simulink® et Simscape Battery, le workflow de développement d'un système de batterie commence par la modélisation de la batterie, suivie du design du bloc de batterie, puis du développement des algorithmes BMS. Vous pouvez alors réaliser des simulations desktop en boucle fermée pour valider le design du bloc de batterie et les BMS. L'étape suivante consiste à simuler les modèles en temps réel grâce au prototypage rapide et aux tests Hardware-in-the-Loop. Les dernières étapes du développement concernent l'implémentation, le déploiement et les tests du hardware.

Diagramme d'un workflow de développement montrant, de gauche à droite, la simulation desktop, la simulation temps réel et l’implémentation hardware.

Simulation au niveau système pour le développement d'un système de batterie.

section

Modélisation de batterie

Il existe trois types de modèles de batteries : les modèles de circuits équivalents (ECM), les modèles électrochimiques et les modèles basés sur les données. Vous pouvez créer ces modèles et exécuter des simulations en utilisant Simscape Battery et les produits Simulink, tous ces modèles pouvant être intégrés dans Simulink avec support de la génération de code.

Modèles de circuits équivalents

Les ECM de batterie utilisent des éléments de circuit électrique tels que des résistances, des condensateurs et des sources de tension pour imiter le comportement dynamique d'une cellule de batterie. En raison de leur simplicité et de leur efficacité computationnelle, les ECM sont utilisés pour le design de systèmes de gestion de batterie (BMS) et les simulations au niveau système. Simscape Battery propose un bloc ECM prédéfini, le bloc Battery Equivalent Circuit, qui modélise la dynamique électrothermique d'une batterie et supporte l'hystérésis de la batterie sur la tension en circuit ouvert (OCV), la dégradation de la batterie (vieillissement cyclique et vieillissement calendaire) et la simulation des défaillances, notamment l'emballement thermique.

Modèles électrochimiques de batteries

Les modèles électrochimiques de batteries sont des modèles mathématiques qui décrivent les processus physiques et chimiques internes se produisant dans une batterie lors de la charge et de la décharge. Par rapport aux ECM, les modèles électrochimiques de batteries proposent des informations détaillées sur les processus internes de la batterie, ce qui les rend précieux pour le design des cellules, les études de dégradation, l'optimisation du courant de charge rapide, ainsi que pour une prédiction plus précise des performances dans des conditions de fonctionnement extrêmes.

Simscape Battery propose :

  • Le bloc Battery Single Particle, qui permet de représenter une batterie en utilisant un modèle à particule unique avec dynamique électrolytique (SPMe), intégrant notamment le placage de lithium et la croissance de la couche d'interface électrolytique solide (SEI).
  • Le modèle de batterie Doyle-Fuller-Newman (DFN), également appelé modèle de batterie pseudo-bidimensionnel (P2D), qui permet de simuler en détail les processus physico-électrochimiques ayant lieu à l'intérieur d'une batterie, tels que la diffusion du lithium, les réactions électrochimiques, la conservation de la charge et la dynamique de production de chaleur.

Modèles de batteries basés sur les données

Les modèles de batterie basés sur les données utilisent des données empiriques avec des méthodes telles que l'identification de système, le Machine Learning et le Deep Learning pour simuler et prédire le comportement de la batterie. Ils peuvent être intégrés dans Simulink pour la simulation au niveau système et supportent la génération de code. Les modèles de batterie basés sur les données sont idéaux lorsque la dynamique interne est difficile à saisir de manière analytique, par exemple pour les mécanismes de dégradation de la batterie dans la modélisation de son vieillissement. Les modèles de batterie basés sur les données sont adaptés à la gestion de parcs de véhicules électriques, à la maintenance prédictive, aux diagnostics avancés et à d'autres applications où des jeux de données volumineux sont disponibles et permettent d’améliorer la précision des prévisions concernant la durée de vie des batteries.

Vous pouvez utiliser le Deep Learning pour créer un modèle de représentation d'état non linéaire d'ordre réduit. Pour ce type de modèle, les données d'apprentissage peuvent être des données expérimentales ou des données de simulation provenant de modèles haute-fidélité (par exemple, des modèles de batterie FEA).

Principaux points à retenir

  • Utilisez le bloc ECM (modèle de circuit équivalent) prédéfini avec la dégradation de la batterie (vieillissement cyclique et vieillissement calendaire) et la simulation des défaillances (emballement thermique).
  • Simulez un processus électrochimique avec des modèles de batterie SPMe et DFN.
  • Créez des modèles de batteries basés sur des données, intégrés à Simulink et supportant la génération de code.
section

Design du bloc de batteries

En utilisant l'application Battery Builder ou l'interface de programmation d'applications (API) Simscape Battery dans MATLAB®, vous pouvez concevoir un bloc de batterie. Les éléments fondamentaux du design incluent le design des cellules, l'assemblage parallèle, le module, l'assemblage du module et le design du bloc de batteries.

Un plan de coordonnées avec le nombre de cellules en abscisse, l'énergie en kWh en ordonnée. La cellule, l'assemblage parallèle, le module, l'assemblage du module et le design du bloc augmentent linéairement dans cet ordre.

Design d'un bloc de batteries de la cellule au bloc.

Grâce à l'application Battery Builder ou à l'API, vous pouvez :

  • Développer et visualiser des modèles de batterie avec différentes géométries et topologies, de la cellule au module et du module au bloc
  • Modéliser des plaques de refroidissement avec des trajectoires de fluides paramétrables et des connexions thermiques au bloc de batterie
  • Créer un modèle de batterie à partir d'un composant de cellule personnalisé
  • Modéliser l'échange de chaleur entre les cellules
  • Explorer la variation de température d'une cellule à l'autre et mesurer l'efficacité du refroidissement
  • Générer un modèle de bibliothèque Simulink personnalisé pour le design de votre bloc de batteries
  • Définir une résolution de modèle appropriée pour trouver un équilibre entre la fidélité du modèle et la vitesse de simulation

Principaux points à retenir

  • Développez un bloc de batteries personnalisé avec différentes résolutions de modèle.
  • Ajoutez des effets thermiques dans le modèle de batterie.
  • Générez des modèles de bloc de batterie pour la simulation.
section

Système de gestion thermique de la batterie

Les ingénieurs peuvent utiliser MATLAB et Simulink pour concevoir un système de gestion thermique de la batterie afin de réguler la température du bloc de batteries dans le respect des spécifications et de garantir des performances optimales dans diverses conditions de fonctionnement. 

Schéma du système de refroidissement de la batterie et du bloc de batteries.

Comparaison de l’analyse thermique d'une batterie lithium-ion neuve et usagée avec Simscape Battery.

Capturer le comportement thermique de la batterie

Avec Simscape Battery, les ingénieurs peuvent modéliser le comportement thermique de la batterie à plusieurs niveaux de fidélité, depuis la cellule jusqu'au bloc de batterie, afin de capturer la non-uniformité de la température et son impact sur les performances, la sécurité et le vieillissement.

Au niveau de la cellule, vous pouvez discrétiser le modèle thermique sur la hauteur de la cellule afin d'améliorer la fidélité de la modélisation thermique et de modéliser le gradient thermique à l'intérieur de la cellule.

Au niveau des modules et des blocs, des voies thermiques intercellulaires configurables permettent de représenter les effets de conduction, de convection et de rayonnement, ce qui permet d'analyser les variations de température et de la propagation thermique d'une cellule à l'autre.

Afin de trouver un juste équilibre entre précision et vitesse de simulation, Simscape Battery supporte également des modèles thermiques d'ordre réduit dérivés d'analyses haute-fidélité par éléments finis ou par volumes finis, qui préservent les dynamiques thermiques dominantes tout en permettant les simulations au niveau système, l'exécution en temps réel et les tests Hardware-in-the-Loop.

Ces modèles thermiques peuvent être directement couplés à des représentations détaillées du refroidissement, telles que des plaques à refroidissement liquide dotées de circuits d'écoulement configurables, ce qui permet d'évaluer la distribution de température et l'efficacité du refroidissement dans des conditions de fonctionnement réalistes. Simscape Battery comprend des blocs de plaques de refroidissement prédéfinis qui supportent différentes configurations de flux, notamment les canaux parallèles, les canaux rectangulaires en forme de U et le refroidissement des bords.

Bloc Parallel channels dans Simscape Battery.

Bloc U-shaped channels dans Simscape Battery.

Bloc Edge Cooling dans Simscape Battery.

Concevoir des contrôles pour la gestion thermique des batteries

Avec Simulink, vous pouvez concevoir des contrôles en boucle fermée qui combinent des techniques d’anticipation et une régulation PID, pour les contrôles de systèmes de circulation, telles que le contrôle du flux d'entrée (valve), du débit massique (pompe) et de la sélection du chemin d'échange de chaleur. Avec Simscape Battery, vous pouvez utiliser des blocs prédéfinis, tels que Battery Coolant Control et Battery Heater Control, pour créer des algorithmes de contrôle de la gestion thermique des batteries. Avec Stateflow, vous pouvez également concevoir une logique de supervision pour passer d'un mode de fonctionnement à un autre (chauffage ou refroidissement, par exemple) en fonction de la température ambiante et de la température de la batterie.

section

Algorithmes du système de gestion des batteries

Un système de gestion de batterie a une influence directe sur la sécurité, l'efficacité et la longévité de la batterie et, par voie de conséquence, sur les performances et la fiabilité globales du système. Les principales fonctions d'un système de gestion de batterie sont la surveillance, l'estimation des états, l'équilibrage des cellules, la gestion de l'énergie, la gestion thermique, la protection et les communications.

Diagramme des composants du système de gestion des batteries.

Principales fonctions d'un système de gestion de batterie.

Simulink et Simscape vous permettent de maîtriser le comportement dynamique du bloc de batteries, d’explorer les architectures du software, de tester les cas opérationnels et d’anticiper les tests sur hardware, réduisant ainsi le nombre d'erreurs de design. Les ingénieurs peuvent utiliser les blocs de contrôle BMS prédéfinis dans Simscape Battery pour évaluer les performances du bloc de batteries conçu, développer les algorithmes BMS et exécuter des simulations au niveau système.

Estimation de l'état de charge

Les méthodes d'estimation de l'état de charge (SOC) vont de la simple intégration du courant (comptage de Coulomb) et de la surveillance de la tension, à des méthodes sophistiquées fondées sur des modèles et des données, telles que les filtres de Kalman ou les réseaux de neurones.

Des modèles de batterie précis sont essentiels au développement d'algorithmes pour une estimation du SOC basé sur un modèle, dans un système de gestion de batterie. Les approches traditionnelles d'estimation du SOC dans un système de gestion de batterie, telles que la recherche de la tension en circuit ouvert (OCV, Open Circuit Voltage) et l'intégration de l'intensité (comptage de Coulomb), sont faciles à implémenter et sont raisonnablement précises dans certains cas. Cependant, l'approche basée sur l'OCV nécessite la mesure OCV, qui doit être précédée d'une période de repos prolongée. Le comptage de Coulomb souffre d'une initialisation médiocre et de l'accumulation de bruits de mesure de l’intensité. Le filtre de Kalman étendu (EKF) et le filtre de Kalman sans parfum (UKF) sont des approches éprouvées qui offrent des résultats précis pour un effort de calcul raisonnable dans les implémentations de systèmes de gestion de batterie du monde réel.

Simscape Battery propose plusieurs blocs SOC Estimator prédéfinis (avec option de capacité variable) et supporte la génération de code : le comptage de coulombs, le filtre de Kalman adaptatif et le filtre de Kalman.

Contrairement à un filtre de Kalman, l'utilisation d'un réseau de neurones pour développer un estimateur d'état de charge ne nécessite pas d'informations détaillées sur la batterie ou son comportement non linéaire. À la place, le réseau est entraîné avec des données d’intensité, de tension et de température et l'état de charge en réponse. Vous pouvez compresser un réseau de neurones en utilisant la projection, ce qui permet des passages avant plus rapides lorsqu'il est exécuté sur le CPU ou déployé sur le hardware embarqué du système de gestion de batterie en utilisant la génération de code C ou C++ sans bibliothèque.

Principaux points à retenir

  • Simscape Battery contient trois estimateurs de l'état de charge : le comptage de coulombs, un filtre de Kalman adaptatif et un filtre de Kalman.
  • Il est possible de développer un estimateur d’état de charge à l'aide d'un réseau de neurones sans avoir besoin d'informations détaillées sur la batterie.

Estimation de l'état de santé

Toutes les batteries, y compris celles qui répondent aux spécifications de performance au moment de leur fabrication, se dégradent dans le temps en raison de la durée de vie calendaire et de la durée de vie en cyclage, enregistrant une perte progressive de la capacité de réserve et une augmentation de la résistance interne. Si cette dernière est relativement simple à estimer à l'aide de mesures de courte durée, la première nécessite un cycle de charge ou de décharge complet pour un calcul précis, ce qui n'est pas toujours pratique.

Ce défi a suscité un intérêt croissant pour l'estimation de l'état de santé (SOH) ainsi que le développement de formulations de filtres de Kalman adaptatifs augmentées permettant d'inclure les paramètres de la batterie en plus des états. Une estimation précise de la résistance interne instantanée est très utile au BMS pour établir les limites de puissance.

Simscape Battery propose des estimateurs d'état de santé prédéfinis pour estimer la capacité d'une batterie, notamment des estimateurs à base de filtres de Kalman, utilisant la méthode des moindres carrés avec et sans pondérations variables, basés sur la résistance ou basés sur la capacité.

L'estimation de l'état de santé est plus subjective que celle de l'état de charge ; aucun consensus n'a pu être atteint quant à la manière de définir l'état de santé. Par conséquent, chaque entreprise peut avoir sa propre méthode spécifique pour quantifier une estimation de l'état de santé, ce qui rend impossible l'utilisation de solutions génériques prêtes à l'emploi. Grâce à Simulink et à Simscape, vous pouvez développer et simuler des algorithmes d'estimation de l'état de santé personnalisés, conformes à l'interprétation spécifique de l'état de santé des batteries de votre entreprise.

Principaux points à retenir

  • Simscape Battery propose des blocs prédéfinis pour estimer la capacité en utilisant des filtres de Kalman ou des algorithmes des moindres carrés.

Équilibrage des cellules, charge de la batterie et surveillance de la batterie

Simscape Battery propose des blocs de bibliothèque prédéfinis pour l'équilibrage de cellules, la charge de la batterie et la protection de la batterie.

Les capacités d'équilibrage de cellules maintiennent un état de charge similaire dans toutes les cellules en dissipant l'excès de charge à travers une résistance de purge. L'équilibrage est nécessaire pour prolonger la durée de vie des cellules qui peuvent être endommagées par une surcharge ou une décharge. Les cellules multiples améliorent la capacité lorsque les cellules sont équilibrées.

Équilibrage de cellules dans Simscape Battery en fonction de l'état de charge et du temps.

La charge de la batterie est contrôlée par un algorithme de courant constant/tension constante (CC-CV). Il s'agit d'une approche courante qui préserve la durée de vie des batteries en évitant les surintensités et les surtensions lors de la charge. Le courant est limité pendant la charge jusqu'à ce qu'une tension prédéfinie soit atteinte.

Charge de la batterie en fonction du temps de charge avec un algorithme CC-CV dans Simscape Battery.

Pour protéger la batterie, il faut surveiller le courant, la tension et la température. Simscape Battery propose des blocs que vous pouvez intégrer dans des algorithmes BMS.

Blocs de surveillance de la batterie implémentés dans un modèle BMS.

Principaux points à retenir

  • Simscape Battery propose des blocs pour l'équilibrage de cellules, le contrôle du courant et de la tension, et la surveillance de la tension, du courant et de la température.
section

Simulation desktop

La simulation desktop dans Simulink vous permet de vérifier les aspects fonctionnels du design de systèmes de batterie. Sur desktop, le système de batterie, l'environnement et les algorithmes sont simulés à l'aide de modèles comportementaux. Par exemple, vous pouvez explorez les différences entre les configurations et algorithmes d'équilibrage passif et actif des cellules afin d'évaluer la pertinence de chaque approche d'équilibrage pour une application donnée. Vous pouvez utiliser la simulation desktop pour explorer de nouvelles idées de design et tester plusieurs architectures système avant de vous engager dans un prototypage sur hardware. Vous pouvez également tester des exigences dans le cadre de simulations sur desktop ; par exemple, vous pouvez vérifier que les contacteurs ne peuvent pas s'ouvrir ou se fermer lorsqu'un défaut d'isolement est détecté.

Lorsque le système de batterie en cours de développement doit répondre à des exigences de sécurité, vous pouvez intégrer des tests basés sur des méthodes formelles dans votre processus de développement logiciel, conformément à des normes telles que IEC 61508, IEC 61851 et ISO® 26262.

section

Simulation temps réel d'un système de batterie 

Une fois validés via la simulation desktop, les modèles Simulink peuvent être utilisés afin de générer du code C et HDL pour le prototypage rapide ou les tests HIL (Hardware-in-the-Loop) dans le but de poursuivre la validation temps réel des algorithmes BMS. Pour le prototypage rapide, au lieu d'écrire à la main le code du software de contrôle pour les tests temps réel, vous le générez à partir de votre modèle de contrôleur et le déployez sur un ordinateur temps réel qui remplit les fonctions du microcontrôleur de production. Avec la génération automatique de code, les modifications apportées aux algorithmes dans le modèle peuvent être testées sur du hardware temps réel en quelques heures au lieu de plusieurs jours. Vous pouvez également interagir avec du hardware de contrôle temps réel depuis Simulink pour modifier les paramètres des algorithmes et enregistrer les données de test.

Tout comme le prototypage rapide, les tests HIL impliquent de générer du code depuis un modèle Simulink et de le déployer sur un ordinateur temps réel. Dans le cas des tests HIL, le code est généré à partir des modèles de systèmes de batterie et non des modèles d'algorithmes de contrôle, ce qui offre un environnement temps réel virtuel représentant le bloc de batterie, les éléments actifs et passifs du circuit, les charges, le chargeur et d'autres composants du système. L'environnement virtuel vous permet de valider les fonctionnalités du contrôleur du BMS en temps réel avant de développer un prototype hardware et dans un environnement où le hardware ne sera pas endommagé.

Les tests développés pendant la simulation desktop peuvent être transposés aux tests HIL afin de s'assurer que les exigences sont respectées à mesure que le design du BMS progresse. Même si les tests HIL sont employés principalement pour tester le code exécuté sur un microcontrôleur ou une carte FPGA, vous pouvez utiliser à la place un système de prototypage rapide tel que Simulink Real-Time™ et le hardware cible Speedgoat®, et l'associer à la configuration HIL avant la sélection du hardware de production du contrôleur.

Valider le software d'un BMS

La simulation temps réel (qui englobe à la fois le prototypage rapide et les tests HIL) offre aux ingénieurs en contrôle d'électronique de puissance des informations supplémentaires sur la façon dont le design du BMS se comportera sur du hardware. Avec le prototypage rapide et les tests HIL, l'objectif est d'émuler un aspect du design global sur du hardware : le contrôleur du BMS avec le prototypage rapide et l'équilibre du système de batterie avec les tests HIL. La simulation temps réel offre plusieurs avantages significatifs dans le cadre du design d'un BMS. Elle vous permet notamment :

  • De réaliser un prototypage rapide pour commencer à valider les algorithmes avant que le hardware du contrôleur final ne soit sélectionné.
  • De tirer parti de la flexibilité d'un système de test temps réel pour accélérer l'itération et le test du design.
  • De réaliser des tests HIL avant que le hardware de prototypage du système de batterie ne soit disponible.
  • D'utiliser une combinaison de prototypage rapide et de tests HIL afin d'expérimenter les algorithmes BMS pour des cas de test qui pourraient se révéler difficiles, coûteux ou destructeurs si vous utilisiez le hardware réel.
Un modèle de système physique dans Simulink est déployé sur un ordinateur temps réel Speedgoat et les algorithmes BMS sont déployés sur un microcontrôleur. Les deux sont reliés pour les tests.

Test HIL (Hardware-in-the-Loop) du software d'un système de gestion des batteries (BMS). Le code du BMS est généré à partir des algorithmes BMS modélisés dans Simulink et déployés sur un microcontrôleur C2000 de Texas Instruments®. Le modèle du système physique (bloc de batterie, contacteur, onduleur, chargeur) est modélisé dans Simulink. Le code est généré et déployé pour être exécuté sur une machine temps réel Speedgoat avec un émulateur de batterie.

En réutilisant les modèles de simulation desktop dans Simulink afin de générer du code pour la simulation temps réel, vous pouvez réduire le temps de développement global. Vous pouvez générer du code C/C++ et HDL qui s'exécute sur des ordinateurs optimisés pour la performance temps réel. Le code généré depuis les modèles Simulink pour les simulations temps réel inclut des interfaces qui vous permettent d'ajuster les paramètres de contrôle lorsque la simulation temps réel est en cours d'exécution.

Réaliser un prototypage rapide

Pendant le test du hardware, le fait d'apporter des modifications au code du contrôleur peut entraîner des retards et des risques supplémentaires. Modifier le code à la main, le recompiler et le déployer sur le microcontrôleur ou la carte FPGA peut s'avérer très chronophage si vous êtes un développeur d'algorithmes de contrôle et comptez sur un ingénieur software ou hardware pour effectuer les modifications. En fonction de l'étendue des modifications requises, vous risquez également d'introduire de nouveaux problèmes dans le code implémenté.

Au lieu d'écrire à la main le code des mises à jour du software du contrôleur, vous pouvez utiliser Simulink pour générer du code qui s'exécute en temps réel sur un ordinateur dédié et utilise des E/S haute vitesse pour communiquer avec du hardware de test. Outre l'élimination du codage manuel et des retards qui lui sont associés, un autre avantage du prototypage rapide est que vous pouvez valider les modifications apportées au software du BMS en exécutant d'abord le modèle de simulation sur desktop pour vérifier qu'aucun autre problème n'a été introduit.

Tester avec l'approche Hardware-in-the-Loop

Parce que la création et la modification des prototypes hardware d'un système de batterie peuvent demander des efforts considérables, et que leur réparation est souvent coûteuse, il n'est pas toujours possible de tester ces prototypes avec le système électrique dans lequel le bloc de batterie fonctionnera. En raison de ces limitations, même de petites modifications du design peuvent mettre en péril les calendriers de développement, et les designs de BMS ont tendance à évoluer lentement car les équipes considèrent qu'il est trop risqué de s'écarter radicalement du design précédent.

Simulink vous permet de générer du code C/C++ et HDL à partir du modèle du hardware de votre système de batterie et du système plus vaste dont il fait partie, y compris l'alimentation et la charge. Une fois ce code déployé sur un ordinateur temps réel, vous êtes en mesure d'exécuter des simulations temps réel du hardware avec le code de votre contrôleur avant de tester le contrôleur dans un prototype de système de batterie. Cela vous permet dès lors d'identifier et de corriger les erreurs de design du système de contrôle avant qu'elles n'endommagent du hardware de prototypage coûteux et difficile à remplacer. Vous pouvez également découvrir des erreurs de design du hardware, comme par exemple le dimensionnement incorrect des composants.

La plupart des systèmes temps réel HIL, comme le hardware Speedgoat, intègrent des émulateurs de batterie, ce qui vous permet d'émuler des systèmes d'alimentation de batterie portables, d'émuler des stacks de batteries pour les véhicules électriques, ou encore de faire baisser le courant pour simuler des batteries en cours de charge.

section

Implémentation hardware

À l'étape de l'implémentation hardware, les modèles de contrôle Simulink qui ont été vérifiés via la simulation desktop, le prototypage rapide et les tests HIL sont utilisés pour générer du code efficace et prêt pour la production pour le BMS. Si nécessaire, la génération du code de production peut être intégrée dans des workflows conformes aux normes de certification formelles utilisées dans l'automobile, l'aérospatiale et d'autres domaines régulés.

Génération de code prêt pour la production

Simulink génère du code C/C++ et HDL lisible, compact et efficace à partir de modèles de contrôleur, prêt à être implémenté sur des microcontrôleurs de production, des FPGA et des ASIC. Contrairement au code généré pour le prototypage rapide, le code généré pour une utilisation en production ne comprend pas les interfaces supplémentaires nécessaires pour supporter l'observation temps réel, le réglage des paramètres et l'enregistrement des données. Les paramètres d'optimisation vous permettent de contrôler précisément les fonctions, les fichiers et les données générés afin d'améliorer l'efficacité du code et de faciliter l'intégration avec le code existant, les types de données et les paramètres de calibration.

Effectuer des simulations de type Processor-in-the-Loop (PIL)

Dans la simulation Processor-in-the-Loop (PIL), le code C/C++ ou HDL s'exécute sur le microcontrôleur ou le FPGA pendant que le modèle hardware du BMS s'exécute dans Simulink, ce qui limite le risque d'endommager un prototype hardware lors des premières évaluations du code du BMS. Bien que les simulations PIL ne soient pas exécutées en temps réel, elles sont exactes au bit près, ce qui vous permet de vérifier votre code dans toute une série de conditions et de vous assurer qu'il s'exécutera correctement une fois déployé sur le véritable système.

Générer le code de production

La simulation desktop, le prototypage rapide et les simulations HIL et PIL vous permettent ensemble de vérifier et de valider les algorithmes de contrôle d'un BMS. Avec Simulink, vous pouvez utiliser ces mêmes algorithmes comme base pour générer un code prêt pour la production, soit un code C/C++ stable et optimisé pour une implémentation sur des microcontrôleurs, soit du code HDL synthétisable pour la programmation d'un FPGA ou l'implémentation sur un ASIC. La génération automatique de code élimine les erreurs de traduction manuelle des algorithmes et produit du code C/C++ et HDL avec une équivalence numérique aux algorithmes que vous avez validés dans Simulink. En simulant vos algorithmes de système de contrôle dans toutes les conditions de fonctionnement et d'erreur possibles, vous avez davantage confiance dans le fait que le code généré supportera ces mêmes conditions dans le système réel, même si vous n'êtes pas en mesure de toutes les tester. Si des tests sur du hardware indiquent par la suite que des modifications d'algorithmes sont nécessaires, il vous suffit de modifier les algorithmes de votre modèle, de réexécuter les cas de test de simulation pour vérifier l'exactitude des modifications et de générer de nouveau le code mis à jour. Tout le code C/C++ et HDL généré est entièrement portable, optimisable avec un ensemble d’options et traçable de manière bidirectionnelle depuis le modèle Simulink.

Captures d'écran montrant le déploiement du code d'un BMS sur le microcontrôleur C2000 de Texas Instruments.

Code de production d'un BMS généré automatiquement à partir d'algorithmes BMS modélisés dans Simulink. Le code est déployé sur un microcontrôleur C2000 de Texas Instruments. 

Ressources