Scicos et Modelica. Ramine Nikoukhah



Documents pareils
ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Qualité du logiciel: Méthodes de test

RTDS G3. Emmanuel Gaudin

Projet Active Object

Conception des systèmes répartis

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Cours. Cours 8 : Révisions. Importance. Interface homme-machine

Introduction aux Bases de Données Relationnelles Conclusion - 1

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Figure 3.1- Lancement du Gambit

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Quoi de neuf en LabVIEW FPGA 2010?

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Les solutions National Instruments pour le Model In-The-Loop (MIL) et le prototypage rapide (RCP)

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Formation des enseignants. Le tensiomètre. Objet technique modélisable issu de l environnement des élèves

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Évaluation et implémentation des langages

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Introduction à Eclipse

Console de supervision en temps réel du réseau de capteurs sans fil Beanair

OCL - Object Constraint Language

Cours de Génie Logiciel

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Calcul Formel et Numérique, Partie I

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Programmer en JAVA. par Tama

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

IV- Comment fonctionne un ordinateur?

A. Présentation. LanScanner2006

Cours Informatique Master STEP

Point sur les solutions de développement d apps pour les périphériques mobiles

Vérifier la qualité de vos applications logicielle de manière continue

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Projet de Veille Technologique

Note de cadrage du PEPI MACS Mathématiques Appliquées & Calcul Scientifique

CH.3 SYSTÈMES D'EXPLOITATION

Introduction. Gestion de la consommation énergétique. Contexte du cloud computing Instrumentation et contrôle

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

CATALOGUE DES FORMATIONS

Génie Industriel et Maintenance

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

Projet audio. Analyse des Signaux ELE2700

Parcours Conception, Modélisation et Architecture des Systèmes Informatiques Complexes mention Informatique Paris-Saclay

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

UE Programmation Impérative Licence 2ème Année

//////////////////////////////////////////////////////////////////// Administration bases de données

Chapitre VI- La validation de la composition.

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Présentation du langage et premières fonctions

Introduction aux systèmes temps réel. Iulian Ober IRIT

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

REALISATION d'un. ORDONNANCEUR à ECHEANCES

3.2. Matlab/Simulink Généralités

Application 1- VBA : Test de comportements d'investissements

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Innovations Majeures de la Version 4

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours d algorithmique pour la classe de 2nde

TP 1. Prise en main du langage Python

Université de Bangui. Modélisons en UML

Simulation Matlab/Simulink d une machine à induction triphasée. Constitution d un référentiel

Disponibilité et fiabilité des services et des systèmes

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Linux embarqué: une alternative à Windows CE?

MANAGEMENT DES SERVICES INFORMATIQUES

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

11 Février 2014 Paris nidays.fr. ni.com

IBM Power Systems - IBM i IBM Rational

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Windows Internet Name Service (WINS)


TP1 : Initiation à Java et Eclipse

Modélisation et simulation du trafic. Christine BUISSON (LICIT) Journée Simulation dynamique du trafic routier ENPC, 9 Mars 2005

GUIDE Excel (version débutante) Version 2013

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

InstallShield 2014 FICHE TECHNIQUE. Création de programmes d installation pour Microsoft Windows

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

Tutorial Terminal Server sous

Introduction à MATLAB R

CREG : versailles.fr/spip.php?article803

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Algorithmique et programmation : les bases (VBA) Corrigé

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Présentation du PL/SQL

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Transcription:

Scicos et Modelica Ramine Nikoukhah 1

C est quoi Scicos? Editeur, simulateur et générateur du code pour les systèmes dynamiques hybrides Objectif : Utilisations industrielles mais aussi l enseignement de l automatique et la recherche Composant (Boîte à Outils) de Scilab Inclus dans le package Scilab Existe depuis 94 (premier release Scilab) Financés par INRIA, des projets RNTL (Simpa, Metisse, Eclipse, Simpa2) et des contrats industriels (Renault, EDF) 2

Sur quoi est il basé? Un formalisme ouvert et documenté Inspiré des langages synchrones Extension à temps continu Permet la modélisation des systèmes hybrides par une intégration harmonieuse des composants temps discrets, temps continus et événementiels Permet une gestion efficace de l utilisation du solveur numérique Des solveurs numériques ODE et DAE Lsodar et Daskr Modifiés et interfacés au simulateur 3

Qui sont les «autres»? Simulink Produit Mathworks Boîte à outils de Matlab Quasi monopole SystemBuild Initialement développé par Wind Rivers faisant partie du logiciel MATRIXx Point faible : pas d environnement de support comparable à Matlab Acheté par Mathworks mais vendu sur une décision du DOJ (position du monopole) Commercialisé par NI; intégration LabView Dymola (Modelica) Produit Dynasim Autres: plus spécialisés 4

Ses composants Editeur Ecrit en Scilab (code, IHM et graphique) Facile à customiser Compilateur Scilab et C Simulateur C et Fortran (solveurs numériques) Librairie des blocs Palettes de blocs élémentaires Scilab (fonctions d interfaçages) et C (fonctions de simulation, quelques vieux blocs en Fortran) Compilateur Modelica Développé en Caml Générateur du code C 5

Etat actuel Documentations disponibles Site Web www.scicos.org Exemples, documentations Aide en ligne Livre Formalisme de base Bien adapté pour les besoins actuels Extension Modelica en cours de développement (Simpa, Simpa2, collaboration avec Peter Fritzen) Permet de remplacer la plupart des schémas Simulink (sans Stateflow) et SystemBuild Compilateur Code assez fiable refait en 2004 Algorithme plus efficace mais développé en partie dans Scilab => problème de vitesse pour très grand schéma 6

Etat actuel Simulateur Code C bien testé et efficace Extensions récentes pour l introduction de Modelica Modification et interfaçage de DASKR Gestion de redémarrage de DAE Générateur du code Code C monoprocesseur Prise en compte du dynamique temps continu (implantation par solveurs à pas fixe) Génération pour Linux RTAI (R. Bucher) Code SynDEx (RNTL ECLIPSE) Editeur IHM style Windows en cours de développement 7

Scicos et Scilab Scicos est une boîte à outils et fonctionne dans l environnement Scilab. L intégration Scicos/Scilab est importante pour fournir les fonctionnalités de Matlab/Simulink. Utilisation du langage Scilab pour batch processing Post traitement des résultats de simulation Validation de modèle Affichage graphique Utilisation des outils Scilab dans la construction de modèles : Identification de modèle à partir de données numériques Construction de filtres et de contrôleurs (automatique et traitement de signal) 8

Développement de Scicos dans Scilab Avantages et Inconvénients Editeur facilement adaptable : addition de menus et fonctionnalités,... Flexibilité dans la définition de forme et icones de blocs et liens (fonctions graphiques standard de Scilab) IHM limité par IHM de Scilab. Scilab est un langage interprété : manipulation des schémas de très grande taille peut être lente. Facilité de développement et de débogage Portage de Scicos sur nouveaux systèmes avec Scilab Les structures de données des modèles Scicos sont des listes Scilab : facilité de manipulation et utilisation de fonctions Scilab pour l interaction. 9

Scicos : Formalisme Scicos fournit un environnement pour la construction des systèmes réactifs. Les modèles Scicos sont construits en utilisant un éditeur schéma blocs mais un langage déclaraltif sous jacent existe basé sur un formalisme bien défini. Le formalisme de base est simple car il ne traite que la partie réactive ; il ne s agit pas d un langage de programmation complet. Les blocs sont des atomes dans Scicos : le simulateur les considère comme des boîtes noires. Seul, quelques propriétes sont utilisées par le compilateur. 10

Scicos : Formalisme Le code réalisant le comportement du bloc (fonction de simulation) peut être du C, Fortran ou Scilab L exécution des fonctions de simulations est supposée instantanée : Scicos est un langage synchrone étendu au temps continu. L existence d un temps unique et universel est supposée. Le formalisme Scicos est très proche du langage Modelica (mélange continu discret, notion d événement, rémanence des variables, ) 11

Scicos : Bloc Bloc Scicos peut avoir deux types d entrées et de sorties : * entrée régulière (souvent placée sur les cotés) * sortie régulière (aussi sur les cotés) * entrée d activation (souvent en haut) * sortie d activation (souvent en bas) Les entrées sorties régulières sont utilisées pour communiquer des données de bloc à bloc par des liens réguliers. Les entrées sorties d activation connectées par des liens d activation transmettent des informations de contrôle. 12

Exemple Le bloc MScope affiche la sortie du générateur de séquence aléatoire et une version retardée. Ce schéma contient une seule source d activation. Tous les blocs sont donc activés de façon synchrone. 13

Simulation Le deuxième signal est une réplique du premier avec un retard de 3 14

Sous échantillonnage Deux blocs dans Scicos réalisent du sous échantillonnage : Bloc If Then Else Bloc Eselect Pas des vrais blocs une facilité d édition pas de fonction de simulation gérés en phase de compilation Les sorties ne constituent pas des sources d activation indépendantes : Evénements de sortie synchrones avec l entrée. L analogue (dans un contexte différent) du conditionnement en C de If Then Else et Switch case. 15

Sous échantillonnage La multifréquence est réalisée dans un cadre synchrone utilisant le sous échantillonnage ; cet exemple présente un cas de multifréquence conditionnelle. Le bloc 1/z n est activé que si la sortie aléatoire est positive. Ce diagramme est synchrone (une seule source d activation indépendante). Le bloc If Then Else redirige les événements d entrée vers l une des sorties. 16

Simulation 17

Event Driven vs Data Flow Le formalisme Scicos est «event driven»: l activation de chaque bloc est dû à un événement d activation. Mais le mécanisme d héritage produit un comportement de type data flow dans certains cas. Un bloc sans entrée d activation (et pas toujours actif) hérite son activation à travers ses entrées régulières 18

Héritage et multifréquence Le mécanisme d héritage est simple en présence d une seule activation. Mais l héritage marche dans le cas général (conditionnement, asynchronisme) suivant des règles précises. Noter qu en Scicos, un bloc peut avoir plusieurs entrées d activation. Le bloc Selector a 2 entrées d activation. Le bloc connait la voie par laquelle il a été activé (1, 2 ou 1 2) et choisit l entrée à placer sur la sortie. Donc la sortie du Selector est aléatoire si elle est négative sinon elle est égale à 1 Le bloc 1 correspond à une constante. Ce bloc n est pas activé et n hérite pas. Il est donc activé seulement une fois à l initialisation. 19

Simulation 20

Exemple asynchrone (héritage) Ici la somme et les oscilloscopes marchent par héritage. Les oscilloscopes héritent des activations différentes. L héritage des oscillos est simple. La somme hérite de deux sources d activation différentes. Dans ce cas le mécanisme d héritage crée deux ports d entrée d activation. 21

Schéma d origine Prise en compte De l héritage 22

Simulation (mécanisme d héritage) 23

Temps continu : toujours actif Un bloc peut être déclaré toujours actif. Un bloc toujours actif génère des sorties actives en temps continu. L activation toujours actif doit normalement être traitée comme toute autre activation. Mais pour simplifier l édition du schéma, les blocs ainsi activés sont codés par un paramètre interne du bloc. Ils existent des blocs toujours actifs dans les palettes Scicos (Sinusoid Generator, 1/s, ). 24

Exemple Sinusoid Generator et 1/s sont toujours actifs. Le bloc Abs l est aussi par héritage. On aurait pu aussi ne pas déclarer 1/s toujours actif dans ce cas. Mais pas en général car si l entrée de 1/s est une constante, la sortie n évolue pas. Clock est utilisé ici juste pour rythmer l affichage de l oscilloscope. 25

Simulation 26

Temps continu Sous échantillonnage Le sous échantillonnage marche aussi pour l activation continue. Sans le bloc S/H, le bloc multiplication serait toujours actif (par héritage de Sinusoid Generator). Mais maintenant il hérite du Else du bloc If Then_Else. Alors il est activé seulement quand sin(t) est négatif. Economie à faire dans les cas complexes. 27

Simulation La simulation montre l inactivité de la multiplication. 28

Temps continu/discret : interaction Les opérations temps continu et les événements discrets interagissent : Les activations continues et discretes peuvent activer le même bloc générant des signaux d activations hybrides. Les signaux continus peuvent générer des événements par des blocs zero crossing. Un événement peut générer un saut dans un signal continu. 29

Exemple Les to+ et +tosont des blocs zerocrossing. Ici l événement zerocrossing est utilisé pour activer le bloc Relay dans un sens ou dans l autre. 30

Simulation 31

Application (Renault) moteur à injection directe 32

Application (Intertechnique) masque à oxygène 33

Modelica (Langage de modélisation) Langage déclarative Avec des équations et des fonctions mathématiques Permet la modélisation non causal Spécification haut niveau Modélisation multi domaine électrique, mécanique, hydraulique, Discret (commande), événementiel Orienté objets Fortement typé Non propriétaire Pas directement associé à un produit commercial Définition du langage par «Modelica design group» Existe depuis 1996 34

Scicos ou Modelica : Avantages et Inconvénients Avantages de Modelica Inconvénients Modélisation au niveau des composants Modélisation formelle : Optimisation du code, calcul de Jacobien, réduction d index Langage unique Langage compliqué Utilisation des fonctions externes limitée aux fonctions statiques Loin du solveur et son implantation numérique : directives pour le solveur numérique (no event, smooth, ) pas claires et insuffisantes 35

Scicos ou Modelica : Avantages et Inconvénients Avantages de Scicos Inconvénients Formalisme simple et précis (peu de primitives) Utilisation des blocs à la simulink Pas de «bloc» non causal Pas de simplification formelle ni calcul de Jacobien Bloc en C, C++, Possible d intervenir au bas niveau pour gérer le solveur numérique (solveur à pas variable, ) 36

Scicos et Modelica : une première intégration Extension du Scicos (RNTL Simpa) Editeur Scicos permet de mélanger les blocs Scicos et Modelica au sein du même schéma Précompilation : regroupement des blocs Modelica => programme Modelica => code C => bloc Scicos 37

Scicos et Modelica : une première intégration Similaire à l intégration Dymola/Simulink, AMESim/Simulink et AMESim/Scicos Modelica utilisé pour construire sous modèle tempscontinu (peu de support pour le discret) Partie Modelica supposée toujours active (pas d échange d événement avec le reste du schéma) 38

Scicos et Modelica : l intégration complète Projet RNTL Simpa2 Formalisme hybride de Scicos et Modelica compatible : «when», «edge» Modelica activation Scicos Notion d événement Réinitialisation d état temps continu par événement, Objectif : chaque bloc peut être en Modelica ou en C (ou Scilab) Scilab/Scicos/Modelica : Environnement complet de simulation, ouvert et gratuit 39

Perspectives A court terme Intégration complète du Modelica Compilateur du langage complet Inclusion des «Modelica libraries» Plus de facilité pour la génération du code et des applications «hardware in the loop» Extensions pour faciliter la migration Simulink vers Scicos Amélioration de l éditeur Optimisation du compilateur 40

Perspectives A long terme Transfert du développement et maintenance de l éditeur à l équipe Scilab Traducteur Simulink vers Scicos Liens avec DSpace, NI,, pour pouvoir proposer une chaine complète Documentation professionnelle Intégration du Synchart (ou autre logiciel similaire) 41