You are on page 1of 41

Scicos et Modelica

Ramine Nikoukhah

Cest quoi Scicos ?


Editeur, simulateur et gnrateur du code pour
les systmes dynamiques hybrides
Objectif : Utilisations industrielles mais aussi
lenseignement de lautomatique et la recherche
Composant (Bote Outils) de Scilab
Inclus dans le package Scilab
Existe depuis 94 (premier release Scilab)
Financs 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 modlisation des systmes hybrides par une


intgration harmonieuse des composants temps-discrets,
temps-continus et vnementiels

Permet une gestion efficace de lutilisation du solveur


numrique

Des solveurs numriques ODE et DAE


Lsodar et Daskr
Modifis et interfacs au simulateur

Qui sont les autres ?

Simulink

SystemBuild

Initialement dvelopp par Wind Rivers faisant partie du


logiciel MATRIXx
Point faible : pas denvironnement de support comparable
Matlab
Achet par Mathworks mais vendu sur une dcision du
DOJ (position du monopole)
Commercialis par NI; intgration LabView

Dymola (Modelica)

Produit Mathworks
Bote outils de Matlab
Quasi monopole

Produit Dynasim

Autres: plus spcialiss


4

Ses composants
Editeur
Ecrit en Scilab (code, IHM et graphique)
Facile customiser

Compilateur
Scilab et C

Simulateur
C et Fortran (solveurs numriques)

Librairie des blocs


Palettes de blocs lmentaires
Scilab (fonctions dinterfaages) et C (fonctions de
simulation, quelques vieux blocs en Fortran)

Compilateur Modelica
Dvelopp en Caml

Gnrateur 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 dveloppement (Simpa,


Simpa2, collaboration avec Peter Fritzen)
Permet de remplacer la plupart des schmas Simulink (sans
Stateflow) et SystemBuild

Compilateur
Code assez fiable refait en 2004
Algorithme plus efficace mais dvelopp en partie dans
Scilab => problme de vitesse pour trs grand schma
6

Etat actuel

Simulateur

Code C bien test et efficace


Extensions rcentes pour lintroduction de Modelica

Modification et interfaage de DASKR

Gestion de redmarrage de DAE

Gnrateur du code

Code C monoprocesseur

Prise en compte du dynamique temps-continu


(implantation par solveurs pas fixe)

Gnration pour Linux RTAI (R. Bucher)


Code SynDEx (RNTL ECLIPSE)

Editeur

IHM style Windows en cours de dveloppement


7

Scicos et Scilab
Scicos est une bote outils et fonctionne dans
lenvironnement Scilab.
Lintgration Scicos/Scilab est importante pour fournir les
fonctionnalits de Matlab/Simulink.
Utilisation du langage Scilab pour batch processing
- Post-traitement des rsultats de simulation
- Validation de modle
- Affichage graphique

Utilisation des outils Scilab dans la construction de


modles :
- Identification de modle partir de donnes numriques
- Construction de filtres et de contrleurs (automatique et
traitement de signal)
8

Dveloppement de Scicos dans Scilab


Avantages et Inconvnients

Editeur facilement adaptable :


addition de menus et
fonctionnalits,...

Flexibilit dans la dfinition de


forme et icones de blocs et liens
(fonctions graphiques standard
de Scilab)

Facilit de dveloppement et de
dbogage

Portage de Scicos sur nouveaux


systmes avec Scilab

Les structures de donnes des


modles Scicos sont des listes
Scilab : facilit de manipulation
et utilisation de fonctions Scilab
pour linteraction.

IHM limit par IHM de Scilab.


Scilab est un langage interprt :
manipulation des schmas de trs
grande taille peut tre lente.

Scicos : Formalisme
Scicos fournit un environnement pour la construction des
systmes ractifs.
Les modles Scicos sont construits en utilisant un diteur
schma-blocs mais un langage dclaraltif sous-jacent existe
bas sur un formalisme bien dfini.

Le formalisme de base est simple car il ne traite que la partie


ractive ; il ne sagit pas dun langage de programmation
complet.
Les blocs sont des atomes dans Scicos : le simulateur les
considre comme des botes noires. Seul, quelques
proprites sont utilises par le compilateur.
10

Scicos : Formalisme
Le code ralisant le comportement du bloc (fonction de simulation)
peut tre du C, Fortran ou Scilab
Lexcution des fonctions de simulations est suppose
instantane : Scicos est un langage synchrone tendu au temps
continu.

Lexistence dun temps unique et universel est suppose.


Le formalisme Scicos est trs proche du langage Modelica
(mlange continu-discret, notion dvnement, rmanence des
variables,)

11

Scicos : Bloc
Bloc Scicos peut avoir deux types dentres et de sorties :
* entre rgulire (souvent place sur les cots)
* sortie rgulire (aussi sur les cots)
* entre dactivation (souvent en haut)
* sortie dactivation (souvent en bas)
Les entres sorties rgulires sont utilises pour communiquer
des donnes de bloc bloc par des liens rguliers.
Les entres sorties dactivation connectes par des liens
dactivation transmettent des informations de contrle.

12

Exemple
Le bloc MScope
affiche la sortie du
gnrateur de
squence alatoire
et une version
retarde.

Ce schma contient
une seule source
dactivation. Tous
les blocs sont
donc activs de
faon synchrone.

13

Simulation

Le deuxime
signal est une
rplique du
premier avec un
retard de 3

14

Sous-chantillonnage
Deux blocs dans Scicos ralisent du sous-chantillonnage :
Bloc If-Then-Else
Bloc Eselect

Pas des vrais blocs


une facilit ddition
pas de fonction de simulation
grs en phase de compilation
Les sorties ne constituent pas des sources dactivation
indpendantes : Evnements de sortie synchrones avec lentre.
Lanalogue (dans un contexte diffrent) du conditionnement en C
de If-Then-Else et Switch-case.
15

Sous-chantillonnage
La multifrquence est
ralise dans un cadre
synchrone utilisant le
sous-chantillonnage ;
cet exemple prsente un
cas de multifrquence
conditionnelle.
Le bloc 1/z nest activ
que si la sortie alatoire
est positive.
Ce diagramme est
synchrone (une seule
source dactivation
indpendante).
Le bloc If-Then-Else
redirige les vnements
dentre vers lune des
sorties.
16

Simulation

17

Event Driven vs Data Flow


Le formalisme Scicos est event driven : lactivation de
chaque bloc est d un vnement dactivation.
Mais le mcanisme dhritage produit un comportement
de type data flow dans certains cas.

Un bloc sans entre


dactivation (et pas
toujours-actif) hrite
son activation travers
ses entres rgulires

18

Hritage et multifrquence
Le mcanisme dhritage est simple en prsence dune seule
activation. Mais lhritage marche dans le cas gnral
(conditionnement, asynchronisme) suivant des rgles prcises.
Noter quen Scicos, un bloc peut avoir plusieurs entres
dactivation.
Le bloc Selector a 2 entres
dactivation.
Le bloc connait la voie par
laquelle il a t activ (1, 2 ou
1-2) et choisit lentre
placer sur la sortie.
Donc la sortie du Selector est
alatoire si elle est ngative
sinon elle est gale 1
Le bloc 1 correspond une
constante. Ce bloc nest pas
activ et nhrite pas. Il est
donc activ seulement une fois
linitialisation.
19

Simulation

20

Exemple asynchrone (hritage)


Ici la somme et les
oscilloscopes marchent
par hritage.
Les oscilloscopes
hritent des activations
diffrentes.

Lhritage des oscillos


est simple.
La somme hrite de deux
sources dactivation
diffrentes.
Dans ce cas le
mcanisme dhritage
cre deux ports dentre
dactivation.
21

Schma dorigine

Prise en compte
De lhritage

22

Simulation
(mcanisme dhritage)

23

Temps-continu : toujours-actif
Un bloc peut tre dclar toujours-actif.

Un bloc toujours-actif gnre des sorties actives en


temps continu.
Lactivation toujours-actif doit normalement tre traite
comme toute autre activation. Mais pour simplifier
ldition du schma, les blocs ainsi activs sont cods
par un paramtre 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 lest aussi
par hritage.
On aurait pu aussi ne
pas dclarer 1/s
toujours-actif dans ce
cas. Mais pas en gnral
car si lentre de 1/s est
une constante, la sortie
nvolue pas.
Clock est utilis ici juste
pour rythmer laffichage
de loscilloscope.
25

Simulation

26

Temps continu
Sous-chantillonnage
Le sous-chantillonnage
marche aussi pour
lactivation continue.
Sans le bloc S/H, le bloc
multiplication serait
toujours actif (par
hritage de Sinusoid
Generator).
Mais maintenant il hrite
du Else du bloc IfThen_Else. Alors il est
activ seulement quand
sin(t) est ngatif.
Economie faire dans
les cas complexes.

27

Simulation

La simulation
montre
linactivit de la
multiplication.

28

Temps continu/discret :
interaction
Les oprations temps continu et les vnements discrets
interagissent :

Les activations continues et discretes peuvent activer le mme


bloc gnrant des signaux dactivations hybrides.

Les signaux continus peuvent gnrer des vnements par des


blocs zero-crossing.

Un vnement peut gnrer un saut dans un signal continu.

29

Exemple

Les -to+ et +tosont des blocs zerocrossing.


Ici lvnement zerocrossing est utilis
pour activer le bloc
Relay dans un sens
ou dans lautre.

30

Simulation

31

Application (Renault)
moteur injection directe

32

Application (Intertechnique)
masque oxygne

33

Modelica (Langage de modlisation)


Langage dclarative
Avec des quations et des fonctions mathmatiques
Permet la modlisation non causal
Spcification haut niveau

Modlisation multi-domaine
lectrique, mcanique, hydraulique,
Discret (commande), vnementiel

Orient objets
Fortement typ

Non propritaire
Pas directement associ un produit commercial
Dfinition du langage par Modelica design group
Existe depuis 1996
34

Scicos ou Modelica :
Avantages et Inconvnients
Avantages de Modelica
Modlisation au niveau

Inconvnients
Langage compliqu

des composants

Modlisation formelle :
Optimisation du code,
calcul de Jacobien,
rduction dindex

Langage unique

Utilisation des fonctions


externes limite aux
fonctions statiques
Loin du solveur et son
implantation numrique :
directives pour le solveur
numrique (no-event,
smooth,) pas claires et
insuffisantes
35

Scicos ou Modelica :
Avantages et Inconvnients
Avantages de Scicos
Formalisme simple et

Inconvnients
Pas de bloc non-causal

prcis (peu de primitives)

Utilisation des blocs la


simulink

Pas de simplification
formelle ni calcul de
Jacobien

Bloc en C, C++,

Possible dintervenir au
bas niveau pour grer le
solveur numrique
(solveur pas
variable,)

36

Scicos et Modelica :
une premire intgration
Extension du Scicos (RNTL Simpa)
Editeur Scicos permet de mlanger les blocs Scicos et

Modelica au sein du mme schma


Prcompilation : regroupement des blocs Modelica =>
programme Modelica => code C => bloc Scicos

37

Scicos et Modelica :
une premire intgration
Similaire lintgration Dymola/Simulink, AMESim/Simulink

et AMESim/Scicos
Modelica utilis pour construire sous-modle tempscontinu (peu de support pour le discret)
Partie Modelica suppose toujours active (pas dchange
dvnement avec le reste du schma)

38

Scicos et Modelica :
lintgration complte
Projet RNTL Simpa2

Formalisme hybride de Scicos et Modelica compatible :


when , edge Modelica activation Scicos
Notion dvnement
Rinitialisation dtat temps-continu par vnement,

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
Intgration complte du Modelica
Compilateur du langage complet
Inclusion des Modelica libraries

Plus de facilit pour la gnration du code et des


applications hardware in the loop
Extensions pour faciliter la migration Simulink vers
Scicos
Amlioration de lditeur
Optimisation du compilateur
40

Perspectives
A long terme
Transfert du dveloppement et maintenance de lditeur
lquipe Scilab
Traducteur Simulink vers Scicos
Liens avec DSpace, NI, , pour pouvoir proposer une
chaine complte

Documentation professionnelle
Intgration du Synchart (ou autre logiciel similaire)

41

You might also like