Plateforme de codage Matlab-Simulink vers Microcontrôleur
Mobilité et Systèmes


Type de contrat
Stage
Début
Entre avril et septembre 2021
Durée
4 mois
Région
Grand Est
Indemn / Rém
Oui

ref Stage

IFP Energies nouvelles (IFPEN) est un acteur majeur de la recherche et de la formation dans les domaines de l’énergie, du transport et de l’environnement. De la recherche à l’industrie, l’innovation technologique est au cœur de son action, articulée autour de trois priorités stratégiques : mobilité durable, énergies nouvelles et hydrocarbures responsables.

Dans le cadre de la mission d’intérêt général confiée par les pouvoirs publics, IFPEN concentre ses efforts sur :

  • l’apport de solutions aux défis sociétaux de l’énergie et du climat, en favorisant la transition vers une mobilité durable et l’émergence d’un mix énergétique plus diversifié ;
  • la création de richesse et d’emplois, en soutenant l’activité économique française et européenne et la compétitivité des filières industrielles associées.

Partie intégrante d’IFPEN, l’école d’ingénieurs IFP School prépare les générations futures à relever ces défis.


La Direction "Systèmes Moteurs et Véhicules" vise à réduire les émissions de CO2 des véhicules, poursuivre la réduction des polluants réglementés, développer des motorisations innovantes.
Les compétences scientifiques associées sont la modélisation et la simulation des moteurs et véhicules, combustion, le développement de nouveaux groupes motopropulseurs (hybrides notamment), le post-traitement des gaz d’échappement, l'adéquation moteurs/carburants actuels et alternatifs.

Plateforme de codage Matlab-Simulink vers Microcontrôleur

Dans l’objectif de développer de nouveaux concepts de moteurs électriques, IFPEN a développé une plateforme de génération de code permettant la mise au point d'algorithmes de contrôle pour le pilotage de machines électriques. Ces algorithmes sont intégrés directement dans des onduleurs raccordés aux moteurs électriques. Cette plateforme est actuellement utilisée en interne IFPEN mais aussi par les partenaires d’IFPEN qui développent des nouveaux systèmes électriques.

Dans un objectif d’amélioration continue, il est nécessaire de faire évoluer cette plateforme en permanence afin de répondre à des nouveaux besoins, d'ajouter des nouvelles fonctionnalités, et potentiellement d'en élargir le spectre d'application.

A titre d’exemple :

  • Optimisation des performances temps réel : utilisation de DMA pour certaines sections de code, Optimisation de partie existante
  • Ajout de mécanismes de sauvegarde automatique de contexte en cas de défaut (sauvegarde des conditions de fonctionnement pour analyse à postériori)
  • Amélioration des fonctionnalités de l'IHM (Interface Homme Machine) pour améliorer la convivialité globale du système
  • Ajout de nouveaux modes de modulation.

Les travaux du stage consisteront à développer en langage C/C++ des modules permettant de faire le lien entre un algorithme développé sous Matlab/Simulink et un microcontrôleur qui exécute cet algorithme dans un système embarqué avec des contraintes de temps réel parfois sévères. Le tout en intégrant des mécanismes permettant de recueillir des informations de diagnostic nécessaires à la mise au point. Plus particulièrement :

  • Ajout de mécanismes de sauvegarde automatique de contexte en cas de défaut
  • Ajout de mécanismes conviviaux permettant la modification et la sauvegarde de paramètres Simulink sans nécessité de recompilation de l'applicatif
  • Etude des moyens à mettre en place pour coupler les librairies optimisées de calcul du microcontrôleur au code applicatif développé sous Simulink.

Le stagiaire sera directement au contact des équipes IFPEN qui travaillent sur les différents projets de façon à pouvoir tester les évolutions sur des applications concrètes.

Profil recherché

Niveau Bac+5 en Ecole d'ingénieur ou Université, avec formation en électronique

  • Compétences en informatique et en programmation C / C++ ; Matlab/Simulink serait un plus
  • Connaissances en architecture des microcontrôleurs (CPU, DMA, cache, interface périphériques internes …)