La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Un générateur de Simulateurs

Présentations similaires


Présentation au sujet: "Un générateur de Simulateurs"— Transcription de la présentation:

1 Un générateur de Simulateurs
NEPTUNIX + Un générateur de Simulateurs Neptunix est le fruit d ’une collaboration entre GIAT Industries et CS SI

2 Plan 1 Ce qu’est NEPTUNIX 2 Caractéristiques 3 Références
Annexe : le langage de description

3 Rôle d’un outil logiciel comme NEPTUNIX :
La simulation La simulation informatique permet d’être plus efficace dans les phases d’avant projet. Rôle d’un outil logiciel comme NEPTUNIX : Accélérer le cycle d’étude (Analyse  conception  simulation  retour d'expérience  synthèse  conception ...) , en automatisant les phases sans valeur ajoutée pour le concepteur, être adapté à des problèmes industriels, pérenniser le savoir-faire d’une entreprise en permettant de réutiliser des modèles existant. Le contexte économique oblige les industriels à être plus performants dans l’élaboration de leurs produits. Ceci conduit à accorder une place plus importante aux phases d’avant projet, notamment à la simulation informatique. D’où l’utilisation d’outils logiciels. Le rôle d'un outil de simulation est : Accélérer le cycle d’étude (Analyse ? conception ? simulation ? retour d'expérience ? synthèse ? conception ...) , .... en automatisant les phases sans valeur ajoutée pour le concepteur, être adapté à des problèmes industriels, préserver le savoir-faire d’une entreprise en permettant de réutiliser des modèles existant à un niveau d'abstraction élévé. (équations > simulateur-source > exécutable)

4 Simulation hybride. NEPTUNIX est un outil à caractère général destiné à modéliser et simuler des systèmes physiques ou techniques dont le comportement temporel est caractérisé par : des phénomènes continus décrits par des équations algébro-différentielles implicites non linéaires, une partie événementielle décrite par des automates. 2 mots : outil général + simulation hybride. Neptunix n'est pas dédié à un quelconque applicatif (thermique, chimie,mécanique) La partie continue est prépondérante L’implémentation de la partie événementielle est un point fort de NEPTUNIX On ne traite pas les EDP à grande échelle. Même si des fonctionnalités du langage (notation iterative et indicée) permettent de les émuler

5 Simulateur utilisé en mode «étude»
La démarche NEPTUNIX Schémas + Equations NEPTUNIX Fichier-résultat Jeu de données Simulateur Directives de Simulation Simulateur utilisé en mode «étude»

6 Les étapes d’une étude NEPTUNIX :
La démarche (2) Les étapes d’une étude NEPTUNIX : représenter le système à modéliser au moyen de schémas et/ou d’équations mathématiques. générer automatiquement le simulateur du système ainsi modélisé, mettre au point le simulateur (debugger), exploiter le simulateur en mode étude, intégrer le simulateur dans une application-client. En général, le système à modéliser est suffisamment complexe pour qu'on soit amené à le décomposer en éléments plus simples. On le verra, les représentations textuelles et graphiques sont à la fois compatibles et complémentaires. L'idée est de choisir la représentation la mieux adaptée. Graphique pour exprimer une structuration. Textuelle pour des phénomènes complexes, ou pour coupler à une partie programmée. Cette mise en évidence de sous-modèles génération du simulateur qui est un programmme qui simule le fonctionnement du systéme.

7 Intégration du simulateur
Le simulateur généré est un programme portable. Il peut être recompilé et intégré dans un autre environnement d ’étude ou dans un environnement applicatif (sous-programme ou sous-process). Bibliothèque Support à l ’exploitation + Source du simulateur + Application Capteurs, Imagerie, ...

8 Equations et schémas m1 (x1, y1) = 0 Equations modèle 1 x1 = x2
Modèle m1 Modèle m2 x1 x2 Niveau schématique y1 y2 m1 (x1, y1) = 0 Equations modèle 1 x1 = x2 y1 = y2 Niveau textuel La représentation schématique permet : d’archiver des composants réutilisables, de visualiser clairement un assemblage, constituer aisément de gros systèmes. Représentations complémentaires Le texte décrit des phénomènes complexes Le schéma visualise la structure Equations de liaison m2 (x2, y2) = 0 Equations modèle 2

9 Equations et schémas (2)
Modèle m1 Modèle m2 x1 x2 Niveau schématique y1 y2 La représentation schématique permet : d’archiver des composants réutilisables, de visualiser clairement un assemblage, constituer aisément de gros systèmes. Représentations complémentaires Le texte décrit des phénomènes complexes Le schéma visualise la structure m1 (x1, y1) = 0 x1 = x2 y1 = y2 Niveau textuel Comparer les représentations graphiques ou textuelles ... Les relations textuel et du graphique. On ne peut privilégier l'une des deux représentations (choisir parmi 800 composants fournis) Ou en développer une dizaine ...) Electricité .. m2 (x2, y2) = 0

10 Le langage de description
Il s’agit d’un langage métier destiné à exprimer des équations mathématiques, des événements, à mettre en évidence des composants, à assurer le couplage avec une partie programmée. Il s’agit d’un langage déclaratif proche du modélisateur. Ce n’est PAS un langage de programmation. Il est à un niveau d’abstraction plus élevé. Equations (implicites, différentielles, non linéaires pour la partie continue, ou récurrentes pour la partie événementielle) Beaucoup de langages ont oublié de gérer des sous-modèles. (appel, passage d'argument, ....) Il parait important de préciser que c'est un langage descriptif Le rôle du modélisateur est avant tout de produire une spécification juste. Programmer la solution exige d’autres qualités "Chuis pas un informaticien"

11 Historique 1980 : Début du projet au CEA SACLAY, suite à deux thèses (Y. Monsef et M. Nakhle) : Neptunix 2 : Produit diffusé avec le pre/post processeur ALLAN (collaboration GDF) : Nouvel environnement de simulation : Générateur C++ Neptunix 4 (collaboration avec GIAT) 1999 : Neptunix Plus (Produit et autonome, langage modernisé, IHM Java) 2007 : Éditeur de schémas QT4

12 Réponses aux problèmes posés (1)
Problème posé Fiabilité des résultats Conditions initiales Systèmes raides Gestion des événements Stabilité numérique Mise au point Réponse NEPTUNIX Méthode implicite Détermination formelle Pas et ordre variables Point fort de NEPTUNIX Contrôle de la matrice Debugger, clichés 1) Une méthode explicite peut diverge sur plusieurs pas avant de planter. 2) Pour les méthodes explicites, la difficulté est de déterminer un point de fonctionnement initial. Ordre=nb de points pris en compte pour la prédiction. Le pas diminue si la variation est forte (Thèse YMonsef) 3) Exemple un précipité chimique 4)Gestion des événements : avantage stratégique Exemple un amortisseur qui arrive en butée, une balle qui rebondit. 5))Stabilité numérique : NEPTUNIX procède par calcul matriciel. Il est possible qu’en cours de simulation un terme de la matrice s’annule et provoque une division par 0. Ce comportement est géré par le simulateur (réinversion de la matrice). Dans le passé : division par zero -> Boum ! 6) Le Debugger est un outil précieux . Grosse valeur ajoutée.

13 Réponses aux problèmes posés (2)
Problème posé Rapidité de la simulation « Gros modèles » Intégration simulateur Réponse NEPTUNIX Génération optimisée Factorise séquences répétitives Simplification formelle Contrôle taille des programmes Testé sur 4 millions d'équations Code généré standard (Fortran 77) Simulateur = Sous programme Fonctions de communication Fonctionnement en mode parallèle 1) Factorisation des expressions 2) l’outil graphique introduit de très nombreuses équations triviales «x=y» qui sont éliminées. Réduction de la taille de la matrice. (trouver le juste milieu) Temps de simulation divisé par 4. % vieux neptunix, sur une machine comparable, on a gagné un facteur 10 3) ou ? 4) Aucun compilateur ne peut compiler un programme de lignes. Programmes découpés. Le code généré est toujours compilable. Apport de notre expérience passée Identifie les paquets d'équations répétitives. Génère des sous-programmes. 5 ) Pour interroger/modifier toute variable du simulateur.

14 Réponses aux problèmes posés (3)
Problème posé Réutilisation des modèles ( Pérennité du savoir-faire) Réponse NEPTUNIX Lisibilité des composants, Langage « naturel » Démarche modulaire Constitution de modélothèques Format général, Archivage format texte (Subversion) 1) Langage simple + schéma 2) Démarche objet (contrairement a Simulink) Un (sous) modèle utilise des instances de sous-modèles. 3) La démarche modulaire simplifie l'usage de modélothèques. 4) Ce n'est pas un format propriétaire. Le format est une spécification formelle de haut niveau, précise et concise. Langage LALR(1) - usage d'un outil comme YACC.

15 Aspect économique, gain de productivité
Réduction du coût avec NEPTUNIX Coût d’un simulateur (cas général) Maintenance + Evolutions Spécification Maintenance + Evolutions Spécification Codage=0 Codage Validation NEPTUNIX permet un retour sur investissement rapide concision du formalisme (150 équations produisent lignes de code). Validation Retour sur investissement rapide (concision du formalisme)

16 Fiche technique (1) Méthode d’intégration de type prédicteur / correcteur (interpolation polynomiale). Prédiction : schéma de Gear modifié à pas et ordre variable (peut résoudre des systèmes raides). Correction : Newton/Raphson. Matrice jacobienne générée formellement et pré-inversée lors de la génération. Point initial calculé formellement (projet makeInit GIAT/Ch Tardy) Le Traitement du langage est réalisé par Moïra.

17 Méthode prédicteur / correcteur
Prédiction par la méthode de Gear Itérations de Newton-Raphson Point solution tn-3 tn-2 tn-1 tn

18 Fiche technique (2) Il y a 2 niveaux de langage de description:
NEPTUNIX 4 est compatible avec la version 1988 du langage. Neptunix Plus est un surlangage simplifié qui intègre des concepts de modularité, polymorphisme, généricité, des types structurés (look Pascal/C++). Le générateur NEPTUNIX 4 est écrit en C++. Il génère du Fortran 77 standard. La bibliothèque est en C (analyseur langage d’exploitation, debugger, multiprocess), et en Fortran (algorithme de résolution.

19 Fiche technique (3) On dispose d’une interface graphique QT4/C++.
Neptunix tourne sur toute machine UNIX et sur PC. Prérequis : QT4 Compilateur Fortran (g77 de MingWin) Un shell-script (12 commandes UNIX) (cygnus free-ware)

20 NEPTUNIX Quelques références

21 GIAT INDUSTRIES Simulation de conduite de tir en mouvement.
Asservissement de tourelles. NEPTUNIX fut intégré à l’atelier de modélisation EBG. GIAT INDUSTRIES est copropriétaire de NEPTUNIX 4.

22 DCN INDRET SIMAP : un atelier de modélisation et de simulation d’Appareils propulsifs pour des frégates. Simulation de l’appareil propulsif du porte- avions Charles de Gaulle. Génération sur station UNIX, simulations sur PC portable «embarqué» lors des missions du PAN.

23 BRGM Systèmes géochimiques (interactions eau- roches)
Réseau de réacteurs et procédés de traitement Injection de CO2 Couplage des simulateurs générés avec un code de transport

24 Gaz de France Modélothèque de thermique du bâtiment (validée par immeuble expérimental). La taille des modèles atteint équations. Modèles de réseau de gaz. Aide au contrôle commande de chaudières. NEPTUNIX est un élément du modeleur ALLAN spécifié ,conçu et développé pour GDF par l’équipe NEPTUNIX.

25 Divers (1) CEA : Cinétique du laser à vapeur de cuivre,
Simulateurs de centrales nucléaires : France : Saclay, Grenoble Grande Bretagne (5 simulateurs pour Nuclear Power), Pays Bas (Petten), Chine (Guang Dong). Le CEN Saclay est le créateur de NEPTUNIX

26 Divers DASSAULT : Modèle de torche à plasma. EDF/CNEN :
Etudes en thermique du bâtiment de centrales nucléaires en conditions climatiques extrêmes pour autorité de sûreté. VALEO : Electronique moteur Mécanique vibratoire

27 Universitaires Ecole des Mines de Paris : Energétique.
Ecole des Mines de Nantes : Energétique. Ecole centrale de Lille : Electronique et électromagnétisme. ENSICA Toulouse : Simulateur d’entraînement d’un hélicoptère. Parix XII (laboratoire LETIEF) : Energétique. Université de Savoie : Thermique du bâtiment.

28 LAST (but not least) EDF Chatou : validation du code Osiris
Modélisation d'éléments irradiants issus d'un stockage CORYS : Simulation d’une centrale nucléaire Rénovation d’un modèle de 1991

29 Merci de votre attention.
FIN Merci de votre attention. Avez vous des Questions ???

30 Le langage de Description des Modèles
Supplément Le langage de Description des Modèles

31 Structure d’un fichier source
Un fichier NEPTUNIX contient un ou plusieurs modèles. Un modèle possède une entête et un corps. // ________________________________ Modèle appelé model tuyau (fluide amont, fluide aval) { ..... définition ....; } // ________________________________ Modèle composé model truc (....) tuyau t1, t2 ....; // Déclaration de 2 instances de tuyau Link (t1.aval, t2.amont); // Lien entre les 2 instances

32 Les instructions Déclarations Equations Automates
Affectations (conditions initiales) Connexion à une partie procédurale compilée Appels de sous-modèles + autres instructions en notation procédurale : assertions, configuration, etc...

33 Les types de données Continuous : (inconnues du système) elles sont définies par des équations différentielles implicites non linéaires. Elles sont «dérivables» par rapport à la variable indépendante. Parameter : entités restant constantes entre 2 événements. Flags : entités logiques définies par des expressions conditionnelles : ( c = x>y) ou d'autres flags (c=c1&&c2). Le basculement d'un flag constitue un événement. Possibilité de redéfinir des types structurés (connecteurs) ou non (typedef). Possibilité définir des types matriciels ou vectoriels.

34 Les équations Forme classique : expression1 = expression2 ;
Forme conditionnelle : if (cond) then equa1; else equa2; Fonctions utilisateur : y = my_function (x1, x2, p, t); Commandes définies en exploitation : y = control (); Opérateurs de liaison : Link (conn1, conn2); Forme itérée : for i=1 to n do y[i] - z[i] = 0;

35 Les automates Le basculement d'un flag indique le franchissement d'un domaine de validité. On peut associer à cet événement (noté flag+ ou flag-) des actions : affectation , appel de fonction. Une action peut provoquer un nouvel événement. L'automate redéfinit un nouveau modèle continu. L’algorithme d’intégration tient compte de ces changements.

36 Automate : exemple continuous hauteur := 10, vitesse:=0 ; flag enlair = hauteur > 0; At enlair- : vitesse := -vitesse*amortissement;

37 Connexions procédurales
NEPTUNIX permet de se connecter à des procédures à certains moments-clés de la simulation. At init : lire_base (); At every_event : mon_automate (); At every_step : maj_courbes ();

38 Accès aux variables du simulateur
void lire_base () /* Programme C d'interface */ { nx_inq_value ("diametre", &diam); x = lire_sur_ma_base (diam, ....); nx_mod_value ("debit", x); }

39 Appels de modèles Généralement, un modèle est suffisamment complexe pour qu'il soit utile, sinon nécessaire de le décomposer en sous-modèles. Cette approche permet de définir des composants réutilisables, et d'introduire une certaine méthodologie systémique, inspirée des schémas-blocs. Les "macromodèles" contiennent des instances de sous-modèles sur lesquelles on applique des opérateurs de liaison. La connectique est améliorée par à un typage fort des données.

40 Redéfinitions de types
Ces redéfinitions sont utiles pour la connectique inter-modèles typedef continuous pression; typedef continuous debit extensive; typedef continuous temperature; connector fluide {pression p; debit q; temperature theta; } typedef parameter matrix [3, 3]; // Version 1.2 typedef continuous vector [3]; // Version 1.2

41 L’entête des modèles est la partie «publique» du modèle.
Elle contient les variables de couplage qui sont les grandeurs partagées par les modèles. model tuyau (fluide amont, fluide aval); model alim (out fluide amont);

42 Exemple de macromodèle
model tuyau (fluide amont, fluide aval); // Prototype model truc (fluide amont, fluide aval) { tuyau t1, t2; // Déclaration de 2 instances Link (t1.aval, t2.amont); // Equations de liaison amont = Export (t1.amont); // Exportation aval = Export (t2.aval); }

43 Par rapport à Neptunix.4 Moins de types de données (par suppression de contraintes sémantiques) Plus de délimitations de blocs (syntaxe suffisante). Syntaxe plus riche des déclarations -> suppression bloc interface, init et formules Syntaxe des équations (suppression bloc pivot) Appel de fonctions dans les automates

44 Par rapport à Neptunix.4 (et ALLAN. ...)
Suppression du Bloc Fortran (et des blocs procéduraux) remplacés par des appels de fonction. Accès aux variables internes d’un modèle par des fonctions get_value(...), set_value(...) Toute variable est modifiable

45 Par rapport à ALLAN La longueur des identifieurs est libre
Un macromodèle possède une vue graphique et une vue textuelle On peut traiter une arborescence de modèles Suppression des blocs procéduraux (ce sont des programmes appelés)

46 Merci de votre attention.
FIN Merci de votre attention. Avez vous des Questions ???


Télécharger ppt "Un générateur de Simulateurs"

Présentations similaires


Annonces Google