12.07.2015 Views

INSTITUT POLYTECHNIQUE DE GRENOBLE ... - Laboratoire TIMA

INSTITUT POLYTECHNIQUE DE GRENOBLE ... - Laboratoire TIMA

INSTITUT POLYTECHNIQUE DE GRENOBLE ... - Laboratoire TIMA

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPITRE 2. ETAT <strong>DE</strong> L’ARTpuce a été simulé avec MATLAB/Simulink et co-simulé avec SMASH de la société DolphinIntegration pour la partie contrôle. Cette co-simulation a été faite à travers des S-fonctions 2 (préférableà l’interaction par une interface maître/esclave comme c’est le cas avec l’outil Modelsimde Mentor-Graphics).Il est aussi à noter que les seuls composants électriques proposés par Simulink sont composantsde puissance de la Toolbox Simpower qui ne contient pas de modèles SPICE (Simulation Programwith Integrated Circuit Emphasis) des diodes et des transistors MOS. Afin de palier cette limite, unebibliothèque de composants utilisable directement par Simulink a dû être développée afin d’égalerles performances des modèles SPICE niveau 1 (Level 1). Ce travail a été réalisé avec des modèlesdiscrets (pas faibles de discrétisations de l’ordre de 10 −5 s).Par ailleurs, plusieurs problèmes de convergence ont été rencontrés au cours de cette thèse àdifférentes étapes du projet. C’est pour cette raison que nous avons jugé utile au début de mes travauxde thèse d’examiner les méthodes de résolution numérique utilisées par les solveurs Simulink.Cette étude entre autres, nous a permis de mieux examiner la candidature de MATLAB/Simulinkcomme environnement de simulation.– Solveurs MATLAB/SimulinkMATLAB est un langage interprété et donc peut être considérablement accéléré en utilisantdu code compilé. Cela est possible grâce à la boite à outils RTW (Real-Time-Workshop) mais restetoutefois restreint aux solveurs à pas fixe.Mathworks fournit un ensemble de solveurs à pas variable et paramétrable dont le but est derésoudre les problèmes modélisables sous forme de systèmes d’équations différentielles. Ces solveursdiffèrent entre MATLAB et Simulink. Une des causes de la non convergence des solveurs MAT-LAB est liée à la "raideur" (stiffness) de certains problèmes : un problème est considéré commeraide par Simulink si des variations rapides existent dans le système alors que la solution finalevarie plus lentement (par rapport à l’intervalle de simulation). Dans ce cas, les solveurs O<strong>DE</strong>45(utilisé par défaut par Simulink) ne convergent pas. O<strong>DE</strong>15s et O<strong>DE</strong>23s (qui utilise la formule deRosenbrock modifiée à l’ordre 2) sont alors recommandés.Ces solveurs à pas variables permettent d’optimiser le pas selon la vitesse des changements d’étatdu modèle. Le solveur ne marque une étape (passe au pas suivant) que si le modèle génère une sortie.La gestion des événements est synonyme de la gestion des ZC (Zero crossing) : les instants où seproduisent des singularités dans la simulation. Sous MATLAB, il faut écrire ses propres routinespour traiter la singularité. Par contre, sous Simulink, il suffit de sélectionner une option avec lapossibilité d’écrire des procédures de traitement des ZC sous forme de S-fonctions. En effet, le blocZC est intégré dans l’algorithme du solveur et particulièrement dans la gestion du pas qui en estmodifié. Avec RTW par contre, les résolutions se font par des solveurs à pas fixe uniquement.Une étude faite par des ingénieurs de PSA et d’Adersa [30] a permis de constater les différencesentre les solveurs MATLAB et Simulink. Pour pallier à ce problème, les auteurs ont proposé unoutil qui permet d’intervenir au niveau du code du solveur (code écrit en langage C) pour résoudreles problèmes de convergence. Pour ceci, ils ont développé un outil intégré à RTW qu’ils ont nomméVSS, générant du code C en proposant les mêmes fonctionnalités que Simulink. Le but est d’avoirun code source C des solveurs à pas variable pour intervenir dessus lorsqu’une résolution ne peut pasconverger. Cette approche permet d’avoir une simulation plus proche du comportement physique2. Ce sont des fonctions pouvant être incluses au sein de /Simulink. Elles sont écrites en Matlab ou dans unautre langage tels que le langage C, C++ ou Fortran.19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!