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’ARTdonc forcer le calcul d’un ASP au moment d’un événement. L’instruction BREAK est la solutionproposée par VHDL-AMS. L’instruction force le calcul d’un ASP à chaque signal S "break on signal".L’action du noyau analogique sur le noyau numérique est réalisée en fabriquant un événementà partir d’une quantité. L’attribut "quantity"’above(seuil) fabrique un signal booléen qui changed’état lorsque quantity croise "seuil". Quand quantity est supérieure à cette valeur, le signal résultantest vrai [43].Les domaines de simulation peuvent aussi être précisés (analyse fréquentielle, recherche du pointde fonctionnement ou analyse temporelle) au moment de la simulation.Les algorithmes numériques utilisés par les solveurs analogiques peuvent seulement trouver uneapproximation de la solution exacte. Les tolérances sont utilisées dans VHDL-AMS pour déterminerle "niveau" d’exactitude d’une solution. Chaque quantité et chaque instruction concurrenteappartient à un groupe de tolérances indiqué dans une structure de données. Cependant le langagene définit pas comment les outils classent les groupes de tolérance. D’ailleurs, ce dernier point estl’un des critères que nous avons considéré dans le choix de l’outil que nous utiliserons pour nossimulations (voir la section 2.5.8).2.5.3 Problème de discontinuitéLors de la modélisation des systèmes mixtes, nous avons besoin de représenter parfois des discontinuités.Cela se produit plus particulièrement lorsqu’un processus (process) représentant la partiedigitale, change les conditions de fonctionnement de la partie analogique. En cas de discontinuitédes quantités ou de leurs dérivées, l’algorithme de résolution peut diverger ou du moins la convergenceest plus tardive. Par conséquent, des résultats incorrects risquent de se produire juste après ladiscontinuité : c’est souvent le cas quand la quantité est discrétisée dans un processus. La solutionconsiste alors à réduire le pas de simulation autour de la discontinuité avec l’instruction "break"suivie de la quantité subissant une discontinuité.2.5.4 Prise en compte des équations aux différentielles partiellesLa norme VHDL-AMS offre la possibilité de résoudre les DAE mais pas les P<strong>DE</strong> (Partial DifferencialEquations) vu que l’opération de dérivation n’est permise que par rapport à la variabletemporelle. Cela limite la précision de la modélisation des blocs incluant des effets physiques àconstantes réparties.Pour étendre l’utilisation de VHDL-AMS à la résolution des P<strong>DE</strong>, une solution générique estproposée dans la littérature [44] et [45] : l’auteur présente une méthode sous forme de tutorial pourcontourner cette limitation du langage. L’idée est de transformer les P<strong>DE</strong> en un ensemble de DAE enutilisant la technique de réduction d’ordre des modèles plus connue sous l’acronyme ROM (ReducedOrders Models). Ceci peut être réalisé par la discrétisation spatiale des P<strong>DE</strong>. Ainsi les équationsrésultantes peuvent être traitées par n’importe quel simulateur VHDL-AMS (ils supportent tous ladérivation temporelle).Le langage offre aussi la possibilité de transformer une série de P<strong>DE</strong> en un très grand nombre deDAE par la primitive "generate" à condition que celle-ci soit implémenté dans l’outil de simulation.Notons que selon cette méthode, les dérivées de courant et de tension doivent être calculées endehors de la boucle "generate" car les dérivées ne sont pas permises dans celle-ci. Cette restrictioncomplique la modélisation. En effet, cette approche a été vérifiée dans un cas relativement simple27

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

Saved successfully!

Ooh no, something went wrong!