Projet de fin d’études d’ingénieur                     SUPSYM5X    Spécification, conception et validation de    modules l...
Sommaire1.   Présentation du projet2.   La bibliothèque Simulink SUPSYM5X3.   L’environnement de génération automatique de...
Présentation du projet   Objectif : réaliser un Support de Prototypage de    Système Mécatronique       Système mécatron...
Présentation du projet   Permet un « prototypage rapide »      Carte électronique développée autour d’un       microcont...
La bibliothèque Simulink SUPSYM5X   Ensemble de blocs Simulink représentant les    modules du microcontrôleur MPC555     ...
La bibliothèque Simulink SUPSYM5X   La librairie Simulink SUPSYM5X/QADC64 :
La bibliothèque Simulink SUPSYM5X   La librairie Simulink SUPSYM5X/QADC64 :
La bibliothèque Simulink SUPSYM5X   La librairie Simulink SUPSYM5X/QSMCM :
La bibliothèque Simulink SUPSYM5X   La librairie Simulink SUPSYM5X/QSMCM :
La bibliothèque Simulink SUPSYM5X   Exemple de comportement en simulation :
La bibliothèque Simulink SUPSYM5X   Exemple de comportement en génération automatique    de code :                       ...
L’environnement de génération                        automatique de code SUPSYM5X       Objectif : générer un code C opti...
L’environnement de génération              automatique de code SUPSYM5X   Exemple : système de freinage piloté d’un    « ...
Stimuli   Loi de commande                                      Frein 1                            Frein 2
ModulesMPC555    AlgorithmeEntrées                Modules                       MPC555                       Sorties
L’environnement de génération            automatique de code SUPSYM5X   Fichiers générés :      Fichiers source C :     ...
L’environnement de génération              automatique de code SUPSYM5X   Fichier Phycore.c :      Code des fonctions de...
L’environnement de génération                                  automatique de code SUPSYM5X             Séquenceur de tâc...
L’environnement de génération                                automatique de code SUPSYM5X          Séquenceur basique de ...
L’environnement de génération                   automatique de code SUPSYM5X   Influence du mécanisme d’ « Inlining » des...
L’environnement de génération                 automatique de code SUPSYM5X   Influence du mécanisme d’ « Inlining » des  ...
Limites des solutions retenues   Bibliothèque Simulink SUPSYM5X :      Uniquement utilisable sous la version 4.1 de     ...
Limites des solutions retenues   Environnement de génération automatique de code    SUPSYM5X :      Uniquement utilisabl...
Bilan   Points forts du projet SUPSYM5X :      Matériel         Microcontrôleur MPC555      Logiciel :         Module...
Bilan   Point faible du projet SUPSYM5X :      Logiciel :         Evolutivité relativement difficile (versions des     ...
Prochain SlideShare
Chargement dans…5
×

PFE PSA Peugeot Citroen - Prototypage rapide

1 237 vues

Publié le

Publié dans : Industrie automobile
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 237
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

PFE PSA Peugeot Citroen - Prototypage rapide

  1. 1. Projet de fin d’études d’ingénieur SUPSYM5X Spécification, conception et validation de modules logiciels dédiés automobile et de blocs Simulink pour le microcontrôleur MPC555
  2. 2. Sommaire1. Présentation du projet2. La bibliothèque Simulink SUPSYM5X3. L’environnement de génération automatique de code SUPSYM5X_RTW4. Limites des solutions retenues5. Bilan
  3. 3. Présentation du projet Objectif : réaliser un Support de Prototypage de Système Mécatronique  Système mécatronique = système physique + système de pilotage  Système de pilotage agit sur le système physique  Loi de commande conçue sous l’environnement Simulink v4.1
  4. 4. Présentation du projet Permet un « prototypage rapide »  Carte électronique développée autour d’un microcontrôleur MPC555  Bibliothèque de modules logiciels bas niveau  Environnement de génération automatique et de téléchargement de code C dédié Sera intégré sur les « démonstrateurs » de la DRIA
  5. 5. La bibliothèque Simulink SUPSYM5X Ensemble de blocs Simulink représentant les modules du microcontrôleur MPC555  Respect du comportement physique des modules  Génération automatique d’un code C dédié
  6. 6. La bibliothèque Simulink SUPSYM5X La librairie Simulink SUPSYM5X/QADC64 :
  7. 7. La bibliothèque Simulink SUPSYM5X La librairie Simulink SUPSYM5X/QADC64 :
  8. 8. La bibliothèque Simulink SUPSYM5X La librairie Simulink SUPSYM5X/QSMCM :
  9. 9. La bibliothèque Simulink SUPSYM5X La librairie Simulink SUPSYM5X/QSMCM :
  10. 10. La bibliothèque Simulink SUPSYM5X Exemple de comportement en simulation :
  11. 11. La bibliothèque Simulink SUPSYM5X Exemple de comportement en génération automatique de code :  Mise à jour des fonctions module Déclaration des sorties du du module  Initialisation du module QADC64 QADC64 logiciel /* Implémentation de(s) S-Fonction : <Root>/QADC64_NUM */ de la S-Fonction(s) de la librairie SUPSYM5X_QADC64 */ UINT8 listeBroche_0[1]; static UINT8 data = 0; #include "h_QADC.h" static STATUS erreur_initDigitalOutput_QADCA = 0; /* Implémentation de(s) S-Fonction : <Root>/QADC64_NUM */ la librairie de la S-Fonction(s) du type QADC64_NUM de /* Mécanisme de seuillage */ SUPSYM5X_QADC64 S-Fonction : <Root>/QADC64_NUM */ Implémentation de la */ listeBroche_0[0] = AN58; if(test_Input.Input_1 > 0) extern STATUS B_QADC_InitDigitalInput(PTRModule, UINT8, PTRUINT8); erreur_initDigitalOutput_QADCA = B_QADC_InitDigitalOutput(&QADC_A, 1, extern STATUS B_QADC_InitDigitalOutput(PTRModule, UINT8, PTRUINT8); data = 1; elselisteBroche_0); extern STATUS B_QADC_WritePin(PTRModule, UINT8, UINT8); extern UINT8 B_QADC_ReadPin(PTRModule, UINT8); data = 0; erreur_sendDigitalValue_QADCA = B_QADC_WritePin(&QADC_A, AN58, data);
  12. 12. L’environnement de génération automatique de code SUPSYM5X Objectif : générer un code C optimisé  Dédié au microcontrôleur MPC555  Dédié au compilateur – éditeur de liens Metrowerks for Embedded PowerPC Utilise l’environnement RTW  Définit des options de génération spécifiques  S’inspire de la cible matérielle prédéfinie Embedded C-code
  13. 13. L’environnement de génération automatique de code SUPSYM5X Exemple : système de freinage piloté d’un « démonstrateur » de la DRIA  Système physique :  Deux servovalves  Capteurs de pression  Système de pilotage pour chaque circuit hydraulique :  Un correcteur proportionnel intégral  Deux filtres numériques du premier ordre
  14. 14. Stimuli Loi de commande Frein 1 Frein 2
  15. 15. ModulesMPC555 AlgorithmeEntrées Modules MPC555 Sorties
  16. 16. L’environnement de génération automatique de code SUPSYM5X Fichiers générés :  Fichiers source C :  Phycore.c  c_app_Phycore.c ou c_basiqsec_Phycore.c  Fichiers de déclaration :  Phycore.h  Phycore_export.h  Phycore_prm.h  Fichiers de rapport html, fichier de « calibration »
  17. 17. L’environnement de génération automatique de code SUPSYM5X Fichier Phycore.c :  Code des fonctions de la loi de commande :  void Phycore_initialize(boolean firstTime)  void Phycore_step(void)  void Phycore_terminate(void)  Inclusion des fichiers Phycore.h, Phycore_export.h et Phycore_prm.h
  18. 18. L’environnement de génération automatique de code SUPSYM5X  Séquenceur de tâches OSEK : Fichier c_app_Phycore.c/***************************************************************/******************************************************************* /***************************************************************** /*********************************************************************Task Name : B_BegApp Task Name B_InitApp : B_Tache0 Task Name : B_EndAppEngineer : Engineer : /********************************************************************** Engineer :Date : Date : Task Name : B_QADCI_EOC Date : Engineer :Parameters : none Parameters : none Date : Parameters : noneReturns : none Returns : none Returns : noneNotes : This task initializes the task scheduling is activated by an cyclic alarm Notes applicationtask : This Parameters : noneNotes : This task initializes the task scheduling****************************************************************/********************************************************************/ *****************************************************************/ Returns : none *********************************************************************/void B_BegApp(void) B_InitApp(void) void B_Tache0(void) Notes : Fonction appelée par lISR du module QADC_A ou QADC_B void B_EndApp(void){ { **********************************************************************/ { /* Activation fonction dinitialision du fichier RTW Phycore.c */ RTW Phycore.c */ Appel à la de la tache correspondantàau modèle Simulink fichier /* Appel la fonction step du "Phycore.mdl" */ {} void B_QADCA_EOC(void) /* Appel à la fonction de terminaison du fichier RTW Phycore.c */ B_SetTempsTempo(0, (unsigned int)(1.0)); Phycore_initialize(TRUE); /* Cas dun uniquevoid B_QADCB_EOC(void) {} sample time */ Phycore_terminate();} Phycore_step(); } }
  19. 19. L’environnement de génération automatique de code SUPSYM5X  Séquenceur basique de tâches : Fichier c_basiqsec_Phycore.c/*************************************************************** while(1)Task Name : main {Engineer :Date : if (IsNewStep()) {Parameters : none ToggleRedLED();Returns : noneNotes : This task initializes and launches the basic sequenceur /* Appel à la fonction step du fichier RTW Phycore.c */****************************************************************/ /* Cas dun unique sample time */void main() Phycore_step();{ } /* Initialisation des LED de la carte Phycore MPC555 */ } InitializeLED(); /* Appel à la fonction de terminate du fichier RTW Phycore.c */ /* Appel à la fonction dinitialision du fichier RTW Phycore.c */ Phycore_terminate(); Phycore_initialize(TRUE); } /* main */ /* Initialisation du timer programmable du microcontrôleur MPC555 PIT */ /* Période dactivation donnée en ms */ InitializePIT((unsigned int)(1.0));
  20. 20. L’environnement de génération automatique de code SUPSYM5X Influence du mécanisme d’ « Inlining » des paramètres du modèle Simulink Variable rtb_temp30 Sortie 1 du bloc QADC64_ANA
  21. 21. L’environnement de génération automatique de code SUPSYM5X Influence du mécanisme d’ « Inlining » des paramètres du modèle Simulink  Paramètre Gain du bloc Gain non « inliné » :  Fonction Phycore_step() : rtb_temp30 = (-Phycore_Param.Offset_P_brut_1_Value + Phycore_Block.QADC64_ANA_o1) * Phycore_Param.Gain_P_brut_2_bar_1_Gain;  Paramètre Gain du bloc Gain « inliné » :  Fonction Phycore_step() : rtb_temp30 = (-51.15 + Phycore_Block.QADC64_ANA_o1) * 1.7319580201087256E-001;
  22. 22. Limites des solutions retenues Bibliothèque Simulink SUPSYM5X :  Uniquement utilisable sous la version 4.1 de l’environnement Simulink  Pour tout bloc de la bibliothèque :  Utilisation d’une broche par plusieurs blocs Simulink
  23. 23. Limites des solutions retenues Environnement de génération automatique de code SUPSYM5X :  Uniquement utilisable avec la version 4.1 de l’environnement RTW
  24. 24. Bilan Points forts du projet SUPSYM5X :  Matériel  Microcontrôleur MPC555  Logiciel :  Modules logiciels bas niveau  Génération automatique de code C  Noyau OSEK temps réel  Fichier de « calibration »
  25. 25. Bilan Point faible du projet SUPSYM5X :  Logiciel :  Evolutivité relativement difficile (versions des environnements Simulink et RTW)

×