STFL Doc V3
STFL Doc V3
STATEFLOW
Pour les curieux et ceux qui sy intressent
Ph. Hautcoeur
Paul Le autaud
Philippe Hautcoeur
Professeur de Sciences Industrielles de lInge nieur
Classes Pre paratoires aux Grandes Ecoles
Lyce e Clemenceau a Nantes
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Lutilisation caractre commerciale ou lhbergement sur un site de ce document sans
autorisation de lauteur est strictement interdite.
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Avant-propos
Stateflow est un module de veloppe par la socie te
ame ricaine MathWorks qui permet la simulation
de machines de tat.
Une machine de tat comporte un nombre fini de tats.
Elle mode lise le comportement de syste mes qui
passent dun e tat a un autre en re ponse a des
e ve nements. On parle alors de syste mes a
e ve nements discrets.
Comme son nom lindique, ce module permet de
tracer des diagrammes de tat ( State Chart ) et des
diagrammes de flux ( Flow Chart ).
Stateflow est inte gre a Matlab et Simulink. Les mode les construits pourront par
conse quent comporter des blocs des diffe rentes toolboxes de Simulink et/ou
appeler des fonctions Matlab et/ou des fonctions Simulink comme nous le verrons.
Ainsi le mode le global dun syste me complexe pourra comporter des modles
linaires continus construits avec Simulink sous la forme de sche ma-blocs, des
machines tat construites avec Stateflow ou encore des modles acausaux
re alise s en utilisant Simscape.
Aussi Stateflow permet de simuler le comportement de systmes hybrides cest-a dire a e ve nements discrets et continus. Cest par exemple le cas dune balle qui
rebondit sur le sol. En effet son de placement dans lair est continu alors qua chaque
rebond, conside re comme un e ve nement, sa trajectoire est modifie e. Cest encore le cas
si un robot doit e viter un obstacle pre sent sur sa trajectoire.
Une connaissance approfondie de Matlab et Simulink nest pas indispensable pour
commencer a travailler avec Stateflow. Dans la plupart des exemples traite s avec la
version 2013b, les chemins menant aux composants des bibliothe ques Simulink
utilise es sont pre cise s.
Apre s avoir pre sente les diffe rents outils et quelques applications, nous verrons
comment imple menter un programme re alise avec Stateflow vers une cible telle que
la carte Arduino Mga 2560.
Le guide de lutilisateur complet de Stateflow est te le chargeable sur le site de
MathWorks :
http://www.mathworks.com/help/pdf_doc/stateflow/sf_ug.pdf
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
14
14
15
15
17
18
18
26
27
27
28
28
28
29
29
30
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
3.4- Traitement des informations de livre es par un Codeur SinCos ________________ 103
Chapitre 4 - Le Chart (MATLAB) __________________________________________________ 112
4.1- Exemple de la re gulation TOR dun four ________________________________________ 112
Chapitre 5 - La State Transition Table ___________________________________________ 117
5.1- Exemple du codeur incre mental _________________________________________________ 121
Chapitre 6 - La Truth Table ________________________________________________________ 128
6.1- Exemple de la commande dun pont roulant ___________________________________ 129
Chapitre7 Prototypage _______________________________________________________________ 140
7.1 Arduino et Simulink ____________________________________________________________ 140
7.2 La carte Arduino Mega 2560 ____________________________________________________ 141
7.3 Application : le GyrodriverTM ___________________________________________________ 142
Chapitre 8 Proposition de mthodologie _________________________________________ 155
Chapitre 9 - SysML State Machine vs Stateflow ___________________________________ 158
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 1
Pour bien commencer
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La
bibliothe que
Stateflow
comporte quatre e le ments :
Chart , Chart (MATLAB) ,
State Transition Table et
enfin Truth Table .
Chart
permet
de
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Dans ce document nous passerons en revue ces quatre e le ments de la bibliothe que de
Stateflow pour en pre senter les principes a partir dexemples.
Cependant nous nous inte resserons de manie re plus approfondie a lutilisation du bloc
Chart pour la cre ation dun mode le. Les savoir-faire alors apporte s pourront
faciliter la prise en main des trois autres e le ments mis a disposition dans la
bibliothe que Stateflow.
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 2
Le Chart
10
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 2 - Le Chart
Pour construire une machine de tat, il faut lancer Matlab puis la bibliothe que
Simulink. Ouvrir Stateflow et glisser un Chart (ou diagramme) dans la fene tre de
construction du mode le. Un double-clic sur le bloc permet dacce der a son contenu de
ce bloc cest-a -dire au digramme e tat-transition.
11
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La bibliothque
Simulink
Le modle
Simulink
La machine
dtat
12
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
State
Junction
Default Transition
Box
Simulink Function
Graphical Function
MATLAB Function
Truth Table
History
13
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
2.1- STATE
Cette ico ne, un rectangle aux coins arrondis, repre sente un e tat. Lactivite ou la nonactivite dun e tat de pend de ve nements et/ou de conditions.
Le nom de le tat ou son e tiquette ( state label ) est saisi a la place du point
dinterrogation en haut a gauche du rectangle. Les actions associe es aux e tats peuvent
avoir lieu :
entry , during , exit sont appele s pre fixe (prefix) ou mot-cle (keyword). Ils
peuvent se crire de manie re plus synthe tique : en pour entry , du pour
during , ex pour exit .
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Afin de pre ciser certains e le ments, il est aussi possible de saisir un commentaire dans
un e tat en le pre ce dant dun %comme le montre la figure pre ce dente.
Avant de construire des machines plus sophistique es, il est souhaitable de lire ce qui
suit a propos des transitions, des ope rateurs temporels, des de compositions exclusive
et paralle le.
Cette synthe se permet de comprendre les principes de base du comportement dune
machine de tat construite avec Stateflow.
Le passage dun e tat a lautre se fait par une transition qui se mate rialise par une liaison
oriente e entre un e tat source et un e tat pointe . Nous parlerons de transition externe.
Le trace de la transition se fait naturellement en amenant le curseur de la souris sur le
contour de le tat source et en cliquant avec le bouton gauche de la souris jusquau
contour de le tat pointe .
15
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Si le ve nement nest pas pre cise dans le tiquette de la transition, la condition qui suit,
si elle existe, sera e value e a chaque pas de calcul.
Si un e ve nement exte rieur est conside re , il faudra le de finir. Il saffichera alors sur le
dessus du Chart pre alablement cre e , comme nous le verrons plus loin.
Pour expliciter une transition, il est possible dajouter un commentaire. La syntaxe
serait par exemple la suivante par :
16
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La transition interne ( inner transition ) ne sort pas de son e tat source. Elle peut
pointer un e tat enfant ou bien un pseudo-e tat.
Prenons lexemple du forage dans un e tat particulier :
Dans le cas qui nous
inte resse ici, le tat parent
E1 et le tat enfant E13 sont
actifs.
A chaque pas de calul, les
transitions associe es a
l e tat actif de plus haut
niveau hie rarchiquue sont
dabord e value es. Donc ici
la transition entre E1 et
E12 est e value e a chaque
pas de calcul.
La
condition
[ARU]
devient vraie. E13 est
alors de sactive et E12
devient actif : cest le
forage dans un e tat
donne .
On
force
lactivation
de
E12
lorsque la condition
[ARU] est vraie.
La transition interne peut pointer une jonction History (voir le paragraphe
consacre a la jonction History Junction ).
17
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Enfin lutilisation de cette transition peut aussi e tre inte ressante pour simplifier la
structure dun e tat composite ( voir le paragraphe consacre a la jonction : Junction )
Ici le passage de le tat E21 a E23 se fait si le tat E12 est actif.
Le retour a le tat E21 a lieu si le tat E11 est actif.
Un peu de pratique
Nous allons construire une machine a e tat comportant deux e tats E1 et E2. Le passage
de lun a lautre se fera a loccurrence dun e ve nement exte rieur note top .
Pulse generator
Scope
Scope
18
State chart
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
19
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Lexplorateur de mode le va permettre la de finition des entre es, des sorties, des
e ve nements. Nous utiliserons les deux ico nes du bandeau supe rieur suivantes :
20
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous pouvons ve rifier que la sortie S est de sormais pre sente sur
le co te droit du Chart .
21
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Un double clic permet douvrir le Chart . Tracer par exemple le diagramme suivant :
22
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La simulation donne les chronogrammes suivants (double clic sur les Scopes ):
Remarque : dans cet exemple les e tats sont active s a loccurrence de le ve nement
top . Laction associe e ne peut se faire quen entrant dans le tat. Ici nous avons
donc utilise le mot-cle entry .
23
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Il est tout a fait possible de combiner deux signaux dans Simulink et ge ne rer les
e ve nements qui en seraient issus. Il faut alors utiliser le bloc Mux qui se trouve dans
la bibliothe que Signal Routing de Simulink :
Mux
Ensuite, il faut affecter un port du bloc Mux aux e ve nements que lon veurt prendre
en compte. Les ports sont nume rote s du haut vers le bas de manie re croissante.
24
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
25
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pouvez-vous le justifier ?
Si oui, cest que vous avez compris et donc passez a la suite. Sinon il faut
relire le paragraphe pre ce dent !
Le tiquette dune transition peut aussi contenir un ope rateur temporel : after ,
before , at , every , temporalCount .
Remarque prliminaire :
26
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Loprateur after :
Dans lexemple ci-contre,
le passage de le tat E1 a
le tat E2 se fait apre s 10
pas de calcul ( ticks ) et
le passage de le tat E2 a
le tat E1 se fait lui apre s 5
secondes du temps de
simulation.
Une
modification du Sample
Time du solveur modifie la dure e du passage de E1 a E2. En effet une augmentation
du Sample Time augmente la dure e dun tick et inversement.
Loprateur before :
Ici, la transition
sera franchie si la
condition
[e==1] est vraie
avant que le temps
de
simulation
atteigne
5
secondes.
Par conse quent, un ope rateur temporel peut e tre associe a une condition.
Il peut aussi e tre pre sent dans une expression logique.
Par exemple :
27
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Loprateur at :
Lope rateur
temporel
at de finit la date a
laquelle le tat E2 sera
active si E1 est active et
re ciproquement.
Les
dates ne peuvent e tre
exprime es quen tick
ce sont donc des nombres
entiers.
Loprateur every :
Loprateur temporalCount :
Pour e valuer la dure e de lactivite dun e tat, nous disposons de lope rateur
temporalCount . Le compteur est remis a 0 a chaque activation de le tat associe .
28
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Les quelques notions de base concernant les e tats et les transitions expose es jusquici
sont a connatre pour construire des machines de tat.
29
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Subchart
30
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Une transition par de faut impose lactivation dun e tat en cas dambiguite .
Cette transition pointe un e tat mais na pas de tat source apparent. Le format de
le tiquette est identique a celui dune transition ordinaire. Elle est obligatoire de s que
le diagramme comporte au moins deux e tats.
E1 et E2 ont le me me niveau
hie rarchique.
E21 et E22 ont eux aussi le
me me niveau hie rarchique.
31
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
2.3- JUNCTION
La jonction ( Junction ) est un pseudo-e tat utilise par exemple pour factoriser des
expressions boole ennes associe es a des conditions.
Dans
lexemple
ci-contre,
lorsque la condition [a] est
vraie, la jonction devient active
(cest un pseudo-e tat) mais E1
nest pas de sactive pour autant.
E2 sera active si [b] devient
vraie.
E1
est
alors
simultane ment de sactive .
Ou bien E3 sera active si [c]
devient vraie. E1 est alors
simultane ment de sactive .
32
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
e quivaut a .
[a||b]
a+b
[a&&b]
a.b
[!a]
Lordre
de valuation
des
transitions peut e tre modifie en
se lectionnant
la
ou
les
transitions a modifier, clic droit,
Properties .
Se lectionner
lordre de valuation dans la liste
de roulante
Evaluation
order .
Un autre exemple de
simplification utilisant une
transition interne :
33
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Switch
Bloc Constant
Simulink.
Les blocs 0 et 1 sont des blocs Constant qui se trouvent dans le menu Commonly
Used Blocks .
34
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Les Flow Charts ou diagrammes de flux sont pratiques pour de crire les structures
algorithmiques de base comme les structures alternatives ou de choix, et les structures
ite ratives ou re pe titives.
35
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Cet exemple peut e tre inte gre a une boucle de re gulation TOR de la tempe rature dun
four industriel :
Le syste me thermodynamique est mode lise par une fonction de transfert du premier
ordre de gain unitaire et de constante de temps 60s.
La sortie S du re gulateur Tout Ou Rien (TOR) correspond a la puissance e lectrique
ne cessaire au chauffage des re sistances. La puissance maximale admissible est 1000
W.
La consigne est un e chelon de tempe rature de 700 C.
36
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Le trace du diagramme de flux pre ce dent peut se faire par glisse -de pose de jonctions
et en reliant ces diffe rentes jonctions les unes aux autres. Reste alors a saisir les
conditions et les actions.
Stateflow
propose
un
outil
qui
ge ne re
automatiquement les structures algorithmiques. Pour
ajouter une structure dans un diagramme on peut
utiliser la commande Add Pattern In Chart du
menu contextuel.
structures
Dans notre cas nous allons cliquer sur Decision et choisir la structure alternative
if-else :
37
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
38
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
39
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
re sultat
se
retrouve
40
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Il sagit dun pseudo-e tat qui me morise lactivite des sous-e tats dun super-e tat ou e tat
composite. Cela permet donc de re activer un e tat dans la situation dans laquelle on la
quitte . Les proprie te s de la History junction ne sappliquent quau niveau de
hie rarchie dans lequel elle apparait.
Conside rons que le tat E0 et le tat E2 soient actifs. Si la condition [c] est vraie, E3 est
alors active et E0 de sactive .
La jonction History permet de me moriser lactivation des sous-e tats au moment de
la de sactivation de E0, ici on a me morise lactivation de E2. Si bien que lorsque la
condition [!c] devient vraie, E3 est de sactive et E0 est active a nouveau mais la pre sence
de la jonction History permet de re -activer E2.
41
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Imaginons que E0, E2, E22 soient actifs. Quand la condition [c] est vraie, E3 est active
alors que les trois e tats pre ce dents sont de sactive s. Lorsque la condition [!c] devient
vraie a son tour on retrouve la situation quitte e cest-a -dire E0, E2, E22 actifs.
43
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Remarque : si la jonction History nexistait pas dans le tat E2, E22 ne serait pas
active mais ce serait bien le tat E21 compte tenu de la pre sence de la transition par
de faut sur E21.
Dans le paragraphe consacre aux transitions internes, nous avons e voque la situation
ou celle-ci pouvait pointer une jonction History .
Ce sera le cas lorsquon souhaite par exemple figer la machine dans son e tat courant :
44
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
45
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
2.5- BOX
46
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Cet outil permet lintroduction de fonctions utilisant des sche mas blocs construits avec
les diffe rentes bibliothe ques de Simulink.
47
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Un double-clic sur le Chart affiche le diagramme de ja pre sente quelques lignes plus
hautes.
Nous allons inse rer deux fonctions Simulink qui permettront de re aliser les deux
phases de crites pre ce demment :
En cliquant sur le point dinterrogation on pre cise la signature de la fonction qui sera
appele e par le tat qui de clenchera le ou les calculs souhaite s.
La signature de la fonction pre cise son nom, ses arguments et sa valeur de retour :
tache_i est le nom de la fonction, u son argument et y sa valeur de retour :
48
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Dune manie re ge ne rale la syntaxe est la suivante : (r1, r2,rn)= nom(a1, a2,an)
Reste a de finir les mode les Simulink associe s aux fonctions en double-cliquant sur les
blocs Simulink Function :
49
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
On ajoute 5 a lentre e u :
Interface
Simulink
Chart
Fonctions
Simulink
50
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pour exploiter pleinement les avantages de cet outil une bonne connaissance de
Simulink est indispensable.
51
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Le tat Phase1 est actif. Pendant toute la dure e de son activite , on ajoute 5 a lentre e.
On obtient donc en sortie 15.
Si la condition [a] est vraie, le tat Phase2 est actif et on multiplie par 3 lentre e. On
obtient 30 en sortie :
52
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous
souhaitons
observer en sortie du
Chart la somme
de deux signaux
carre s damplitude
unitaire, de pe riode 2
s et dont un des deux
est de phase dun
quart de pe riode, soit
0.5 s.
53
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
pre cise son nom, ses arguments et sa valeur de retour : somme est le nom de la
fonction, a et b ses arguments et f1 sa valeur de retour.
Notons que la somme des arguments se fait ici sur une transition par de faut qui pointe
une jonction. Le calcul est lance a loccurrence de le ve nement qui re veille la machine.
54
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Elments de rponse :
55
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
56
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ou U est un vecteur caracte ristique des variables dentre e, X des variables de tat et
Y des variables de sortie. A, B, C et D sont des matrices.
La premie re e quation traduit la dynamique du syste me line aire alors que la seconde
donne le volution de la sortie.
Concernant le moteur a courant continu, on rappelle les quatre e quations qui
de crivent son comportement dynamique :
57
le courant qui le
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Et
!" #
!#
!$ #
!#
&
'
(
)#
+
0 1 9
)*
(
/
, - .0
+
1+
0 5
%4 6 7
0 0
2
(
0 0 9
Nous allons utiliser ces e quations dans la machine de tat. Pour ce faire il faudra
inse rer des fonctions graphiques ( Graphical Function ) qui seront appele es
par les e tats correspondants ( Arret, Marche.Sens_trigo et
Marche.Sens_horaire ).
On obtient donc le diagramme comple te suivant:
58
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Prenons par exemple, le cas du moteur Maxxon DCX32 dont voici les
caracte ristiques (http://www.maxonmotor.com/maxon/view/catalog/):
La cre ation dun masque permet de saisir les caracte ristiques du moteur choisi :
59
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
60
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Se lectionner le Chart , cliquer avec le bouton droit de la souris pour ouvrir le menu
contextuel et se lectionner successivement les commandes Mask puis Create
Mask :
61
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ce qui saffiche
dans le masque
62
Variable de finie
dans le mode le
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Les diffe rents champs du masque sont cre e s en cliquant successivement sur Edit .
Le dition du masque est termine e lorsque les six champs de notre exemple sont
de clare s.
63
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Comme nous venons de le voir dans le paragraphe pre ce dent, il est possible dans un
Chart de faire appel a une fonction graphique.
Nous allons voir maintenant quil est aussi possible dappeler
une fonction directement programme e en langage MATLAB.
Ces fonctions sont appele es Embedded MATLAB
Functions . Elles sont repre sente es par un rectangle.
Un double-clic sur le bloc permet douvrir le diteur ( Editor ) de fonction dans lequel
il faut programmer la fonction de sire e :
64
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
65
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
On obtient une
interface dont la
forme
est
la
suivante :
66
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
67
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Le diagramme comporte une transition par de faut pointant vers une jonction. Laction
associe e fait appel a quatre fonctions MATLAB inse re es dans deux Boxes . Attention
a bien indique le chemin des fonctions en pre cisant le label de la Box qui la
contient :
Dans la Box signaux_carres se trouvent les fonctions f1 et f2 qui vont
construire les signaux carre s de me me pe riode que les signaux sinusodaux dentre e.
Dans la Box detection_fronts se trouvent les fonctions detect_f1 et
detect_f2 qui vont ge ne rer les trains dimpulsions qui correspondent aux
changements de niveau logique des signaux carre s
Les fonctions f1 et f2 sappliquant aux deux entre es sinusodales sont similaires.
De me me que detect_f1 et detect_f2 .
68
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
De me me pour f2 :
69
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Lexplorateur donne la
hie rarchie du mode le
construit. On y trouve :
Les Boxes ,
Les
fonctions
MATLAB,
On
y
trouve
aussi
les
caracte ristiques des diffe rentes
variables :
70
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pour cette application nous avons choisi le solveur discrete (no continuous
states) avec un pas fixe de 0.001 s:La simulation sur 0.5 secondes affiche les re sultats ci-
contre.
71
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La pre sentation de lensemble peut e tre ame liore e en cre ant un masque qui inte gre
une image dans les blocs qui mode lisent le codeur et linterpolateur (voir la mise en
uvre dans lexemple du pont roulant au chapitre 5 consacre a la table de ve rite ) :
72
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Condition
De cision
Action
73
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chaque table posse de aussi une colonne Description . Elle est destine e aux
commentaires. Comple ter ces champs nest pas obligatoire.
Dans la seconde colonne de la Condition Table apparaissent les conditions
auxquelles sont associe es des actions. La condition peut e tre vraie ( True :T ), fausse
( False :F ), vraie ou fausse ( - ).
Une Decision (Di) correspond a une colonne dans laquelle on prend en compte
le tat des conditions. A chaque de cision correspond une action repe re e par le nume ro
de ligne de l Action Table lie e a cette action.
Si nous prenons lexemple ci-dessus, la de cision D6 conside re (a_vraie ET b_vraie ET
c_fausse). Dans ce cas laction associe e est de finie a la quatrie me ligne de l Action
Table : send(OFF,E0), cest-a -dire quon de clenche le ve nement OFF qui se trouve
dans le tat E0 etc
Une premire application
De veloppons davantage lexemple pre sente plus haut.
74
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Le fonctionnement est de crit dans la table de ve rite qui suit. Il est propre a le tat E0. La
table sera donc inse re e dans le tat E0.
75
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
c
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
a
0
1
0
1
0
1
0
1
Evnement associ
stop
on
on
off
off
on
on
start
Etat point
E0.STOP
E0.ON
E0.ON
E0.OFF
E0.OFF
E0.ON
E0.ON
E0.ON
Apre s avoir glisse -de pose la table de ve rite , nous allons saisir son e tiquette ( label ) :
arret_marche a la place du point dinterrogation :
76
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Un double-clic sur le
rectangle ouvre la
table de ve rite quil
faut
comple ter
conforme ment
au
mode
de
fonctionnement
normal
de
notre
syste me. Nous devons
ajouter des lignes et
des colonnes :
77
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La table de
est
ve rite
maintenant remplie.
Or pendant la simulation
il faut appeler la table de
ve rite alors que le tat E0
est actif.
78
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
79
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ainsi de suite
80
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 3
Dautres exemples
dapplication
du Chart
81
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Capteur
gauche
82
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
De but
Initialiser
Capteur
gauche
Aller a gauche a
vitesse rapide (BO)
Capteur
gauche
Aller a droite a
vitesse lente (BO)
Capteur
gauche
Initialiser le
compteur
Fin
83
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
84
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Une solution possible pour la phase dinitialisation qui reprend le cahier des charges
peut e tre celle qui suit :
85
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
86
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Sorties
Chart 2
Chart 1
Chart 2
vnement. ext.
Signal dhorloge
Commande
Chart 1
Chart 2
87
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
88
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Le diagramme est compose des e tats initialisation , arret et du sousdiagramme ( Subchart ) chronomtrage .
Affichage
Variables
89
Linitialisation :
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
90
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
91
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Lorsque le tat compteur_centime_sec est active , le tat C_csec est lui aussi active .
La pe riode du signal dhorloge est de 0.01s et la largeur dimpulsion est de 50% de la
pe riode.
A chaque e ve nement clk , cest-a -dire a chaque front montant du signal dhorloge
(tous les 0.01 s), les transitions 1 et 2 sont e value es. Dabord la transition 1 et ensuite
la transition 2.
La transition 1 est valide lorsque sur un front montant du signal dhorloge le nombre
de centie mes de seconde vaut 99. Dans ce cas la variable csec est initialise e.
Sinon, a chaque front montant du signal dhorloge la variable csec est incre mente e
dune unite .
La sortie csecondes affiche e vaut csec a chaque instant que dure lactivite de
le tat compteur_centieme_sec .
Remarque : il faut noter quici lordre de valuation de la validite des deux transitions
est important. Inverser cet ordre ne conduit pas au re sultat attendu. En effet, si tel est
le cas, un front montant du signal dhorloge sera toujours de tecte , ainsi la transition
devenue la premie re sera toujours valide, alors que la deuxie me transition ne le sera
jamais.
92
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pendant le de compte des centie mes de seconde, le tat attente est active . De s que
99 centie mes de seconde sont affiche s, le tat C_sec est active . Le de compte des
secondes commence. Il se fait de la me me manie re que pour les centie mes de seconde
tout comme les de comptes des minutes et des heures.
Nous avons vu comment re aliser le chronome trage et afficher le temps chronome tre .
93
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous distinguons ici deux e tats: un e tat dinitialisation et un e tat composite pour
laffichage du temps interme diaire et du nombre de tours.
Laffichage du temps interme diaire est obtenu en figeant le temps chronome tre . Pour
ce faire il suffit de de sactiver le tat temps_intermdiaire lors de lappui sur la
touche lap . Se faisant on incre mente dune unite la variable N dont la valeur
correspondra au nombre de tours effectue s.
Le tat dinitialisation est active lors de lappui sur le bouton Reset . A cet instant, la
variable N vaut ze ro et laffichage est initialise .
Affichons maintenant lexplorateur de mode le :
94
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
De lautre lensemble des entre es, sorties, e ve nement, pour chacun des diagrammes :
Ici pour le
Chart1 :
Chronomtre
95
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
96
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
97
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Cette base est mue par quatre roues Mecanum motorise es.
Elles sont constitue es de deux flancs solidaires du moyeu
entre lesquels des galets oriente s a 45 par rapport a laxe de
la roue peuvent tourner librement par rapport a leur axe
longitudal.
Le but de cette application est de laborer un mode le de commande des moteurs pour
les de placements longitudinaux, late raux, diagonaux et de rotation autour de laxe
vertical.
Auparavant, une e tude cine matique doit e tre mene e pour e tablir le mode le
cine matique inverse qui met en relation le de placement de la plateforme avec la
rotation des moteurs qui entrainent les roues.
Le parame trage choisit pour e crire ce mode le est le suivant :
98
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
<
=
1
1
>
1
1
1
1
1
1
?
BC
?
@ ABD E
?
?
99
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
100
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Concernant maintenant la
commande des moteurs, un
double-clic sur la bloc
Plateforme EasymovX
permet
dacce der
au
Chart suivant :
101
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La simulation pour un de placement late ral droit donne les re sultats suivants :
102
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous allons maintenant construire les diagrammes qui donneront a la fois la position
grossie re et la position fine pour un seul sens de rotation.
La position fine est obtenue au moyen de la fonction arc-tangente interpole e par un
algorithme entre deux positions grossie res conse cutives. Cette interpolation nest pas
prise en compte ici.
Goto
103
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
From
On initialise la
comptage i .
variable
de
104
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
105
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
de diviser le sinus par le cosinus (bloc Divide dans la bibliothe que Math
Operations de Simulink) et dextraire langle avec la fonction arc-tangente
(bloc atan dans la bibliothe que Math Operations de Simulink),
de connatre le signe du sinus et du cosinus pour connaitre le quadrant dans
lequel se situe langle a afficher (bloc Sign dans la bibliothe que Math
Operations de Simulink).
Le re sultat que donne la
fonction atan met
clairement en e vidence
son changement de
signe a chaque quart de
pe riode des signaux
dentre e, tous les /2
radians. On note aussi
une
discontinuite
lorsque le cosinus est
nul.
Par
conse quent
la
position fine de pend du
signe du cosinus et du
signe du sinus qui de finit
ainsi le quadrant de volution de la position angulaire du rotor.
106
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La sortie du bloc Sign vaut 1 si son entre e est positive, -1 si elle est ne gative, sinon
elle vaut 0.
107
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Linterface Simulink mise en place nous allons tracer le diagramme qui permet
dobtenir la position fine. Comme nous lavons vu pre ce demment il faut identifier les
quatre quadrants et adapter la position donne e par la fonction arc-tangente pour
chacun des quadrants. Lope ration consiste a translater les valeurs retourne es de
ou 2 suivant le cas.
Une solution possible est donne e ci-dessous, elle fait appel a une fonction graphique :
Quatrie me quadrant
Premier quadrant
Initialisation des variables
Deuxie me quadrant
Troisie me quadrant
Fonction graphique
108
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pour la simulation nous allons choisir un solveur Discrete a pas variable avec un
pas maximal de 0.0001s. Ce solveur est adapte lorsque le passage dun e tat a lautre
doit se faire rapidement. De plus il diminue le temps de calcul de la simulation :
Pour cette simulation nous disposons entre deux positions grossie res conse cutives de
cinquante positions fines interme diaires.
Les positions grossie re et fine du rotor du codeur affiche es en degre s sont donne es
ci-dessous :
109
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
110
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 4
Le Chart (MATLAB)
111
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
112
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous
allons
reprendre
le
sche ma-blocs
et
remplacer
le
Chart par un
Chart(MATLAB) .
113
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous allons cre er un e tat dans lequel nous allons saisir les lignes de code Matlab
correspondant au comportement logique du re gulateur TOR avec hyste re sis.
Dans le cas pre ce dent nous avions utilise une structure If-elseif . Nous allons faire
de me me ici en respectant la syntaxe Matlab:
114
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pour exploiter pleinement les avantages de cet outil une connaissance approfondie de
Matlab est indispensable.
115
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 5
La State Transition
Table
116
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Par de faut, la table comporte deux lignes et trois colonnes. Dans la premie re colonne
sont repre sente s les e tats. Dans la seconde et la troisie me seront de finies les
transitions.
Il est possible dajouter des lignes et des colonnes en cliquant sur les ico nes :
117
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Lorsquon inse re une ligne il est possible de prendre en compte la hie rarchie des e tats
inse re s :
Par de faut :
118
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pour ajouter une transition entre ces deux e tats, il faut remplir la case adjacente au
premier e tat :
Si [a] est vraie, la transition pointe vers le tat suivant.
Comple tons cette table en introduisant une deuxie me transition : si [a] est vraie alors
la transition pointe le tat 2, sinon si [b] est vraie la transition pointe le tat 3 quil faut
ajouter ( State Row ) :
119
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Pour construire un e tat composite, il faut introduire des e tats enfants ( Child State
Row ) :
Cliquer sur le tat 3 et inse rer deux e tats enfants et les transitions suivantes :
Les actions associe es aux e tats se saisissent directement dans les e tats en utilisant les
mots-cle s correspondants :
120
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous venons de voir succinctement les principes de base de la construction dune table
e tat-transition.
Concentrons-nous de sormais sur lapplication qui suit
Nous allons conside rer le codeur incre mental AEDB9140-F12 fabrique par la socie te AVAGO
Technologies.
121
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
122
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
123
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
124
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
125
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
126
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 6
La Truth Table
127
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
En
effet
dans
la
bibliothe que de Stateflow
apparait lico ne dune table
de ve rite ( Truth Table ).
Cest loccasion de traiter une
nouvelle application.
128
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Dans cet exercice nous ne prenons pas en compte leffet des capteurs fin de course
haut, bas, droite et gauche. Vous pourrez ulte rieurement comple ter le mode le si vous
le souhaitez.
129
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Les de placements de la charge sont assure s par une commande filaire a quatre
boutons :
d , commande le sens D,
g , commande le sens G,
m , commande la monte e M,
b , commande la descente B.
10
11
12
13
14
15
16
En lisant la table de ve rite qui est donne e, nous pouvons nous apercevoir qua des
combinaisons des variables dentre es diffe rentes peuvent correspondre une me me
action. Cest le cas par exemple pour les lignes 8 et 9 ou 1 et 11 Cette remarque devra
e tre prise en compte au moment de la cre ation de la table de ve rite sous Stateflow.
130
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
131
Display Block
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Une fois linterface Simulink pre te nous nous inte ressons a la table de ve rite :
Rappel sur la lecture de la table : a une combinaison des entre es, par exemple la
de cision D5 (F, T, T, F), correspond une action, ici laction 4, qui consiste a affecter les
valeurs 0 a B, 1 a M, 1 a G et 0 a D.
132
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La table de ve rite ainsi remplie permet de lancer une simulation et de ve rifier la validite
du mode le.
Pour ame liorer la pre sentation graphique du mode le il est possible dajouter de la
couleur aux e le ments ou de cre er un masque sur la table de ve rite et y ajouter une
photo repre sentative du syste me mode lise .
Pour ajouter de la couleur :
Se lectionner le bloc a colorier, afficher le menu contextuel par un clic droit, puis
Format , Background Color . Choisir une des couleurs propose es ou bien
personnalise e la en cliquant sur Custom .
Pour cre er un masque sur la table de ve rite et y inse rer une photo :
133
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Se lectionner
la
table de ve rite , puis
clic droit, Mask ,
Create Mask
La fene tre suivante
souvre. Il sagit de
le diteur
de
masque ( Mask
Editor
134
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Au bas de le diteur
se lectionner :
image (show a
picture on the
block)
135
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La syntaxe qui permet laffichage dune image apparat en bas a gauche de la fene tre.
Le fichier de limage est nomme pont_roulant .
Attention : pour que limage saffiche, ce fichier doit obligatoirement e tre pre sent dans
le Path cest-a -dire a lendroit au le fichier Simulink est sauvegarde .
Il suffit alors de saisir la commande : image ( pont_roulant.jpg )
Limage doit apparaitre dans le bloc. Pour supprimer le masque, il faut louvrir et
cliquer sur le bouton Unmask en bas a gauche de la fene tre.
136
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Validation du mode le :
Ligne 1 de la
table de ve rite :
Ligne 3 de la
table de ve rite :
137
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ligne 11 de la
table de ve rite :
Etc
138
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 7
Le prototypage
139
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre7 Prototypage
Dans ce chapitre consacre au prototypage, nous proposons une application prenant
comme support cible une carte Arduino Mega 2560.
Sont mis a disposition deux bibliothe ques : Common et Ethernet Shield ainsi
que quelques exemples.
140
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La bibliothe que Ethernet Shield contient des e le ments pour des applications sur
le protocole Ethernet :
Nous ne nous inte resserons pas a cette bibliothe que dans le cadre de ce document.
141
ATmega2560
5V
7- 1 2 V
6 - 20V
54 (dont 14 pouvant gnrer des
signaux PWM)
16
40 mA
50 mA
256 KB (ATmega328) dont 8 KB utilis par
le bootloader
8 KB (ATmega328)
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
EEPROM
Vitesse horloge
4 KB (ATmega328)
16 MHz
ATmega 2560
Port USB
LED pin 13
Boutons
Reset
Alimentation
externe
LED de
communication
Entre es
analogiques
142
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Bouton poussoir
LED
tmoin
de
batterie
faible :
clignotement rapide de 5 secondes
lorsque la charge de la batterie
commence a faiblir.
tmoin de surchauffe : quand la
tempe rature du circuit (pont en H) est trop e leve e, la LED clignote 5 secondes en
alternant un clignotement court et un clignotement long. Dans ce cas il convient
de laisser refroidir le tournevis pour quil atteigne la tempe rature de
fonctionnement optimale denviron 24.
Arrt automatique : pour pre server la charge de la batterie en cas dactivation
fortuite, le tournevis se teint automatiquement apre s 45 secondes de
fonctionnement continu. La LED clignote alors rapidement pendant 5 secondes
avant extinction.
Cette application a pour but de valider un mode le de commande en chargeant le
programme correspondant dans la carte Arduino Mega 2560 dont une pre sentation
sommaire a e te faite pre ce demment.
Nous allons nous inte resser a la gestion de la LED et de lalimentation du moteur du
Gyro DriverTM.
Commenons par un montage simple qui consiste a allumer et e teindre la LED au
moyen dun Switch . Linterface Simulink sera donc la suivante :
143
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
La LED sera ici branche e sur la sortie 8 de la carte. Laccompagner dune re sistance en
se rie nest pas indispensable.
Et le Chart :
144
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Le solveur choisi est discret a pas fixe de 0.1 s. Dans notre exemple, le pas de calcul na
pas lieu de tre trop fin. Le temps de simulation doit e tre infini pour profiter du mode
externe :
Le
mode
externe
( external ) est se lectionne
dans le menu de roulant a
droite
du
temps
de
simulation :
Pour charger le programme une fois compile il faut ve rifier les parame tres de
configuration de la cible en cliquant sur la me me ico ne du bandeau supe rieur que celle
permettant dacce der au choix du solveur :
Dans le menu de gauche, se lectionner longlet : Run on Target Hardware .
Choix de la carte.
145
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
146
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Une fois le programme te le charge , le comportement de la LED est bien celui attendu.
Apre s se tre inte resse au ca blage de la LED, nous allons voir comment piloter le moteur.
Commenons par un programme simple identique au pre ce dent : lorsque le Switch
est a 1 le moteur tourne lorsquil est a 0 le moteur sarre te. Nous ne conside rerons
quun seul sens de rotation.
Linterface Simulink est la me me en remplaant LED par moteur :
147
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Ces composants courants sont fournis avec les diffe rents kits du marche .
148
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Moteur CC
Diode
MOSFET
Alimentation externe
9V
+
-
GND
Une fois le programme charge , le comportement du moteur est bien celui attendu.
149
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous venons de voir les deux montages de base qui vont nous servir pour construire
un prototype de tournevis. En effet nous aurons besoin dallumer une LED et de faire
tourner un moteur (dans un seul sens pour ce prototype).
Dans un nouveau diagramme, nous allons prendre en compte, par exemple, la tension
de la batterie qui doit e tre suffisante pour utiliser le tournevis. Pour informer
lutilisateur de dune tension trop faible, la LED devra clignoter toutes les secondes
pendant cinq secondes.
Linterface Simulink sera donc la suivante :
150
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Attention a lordre
de valuation des
transitions
La jonction e vite un
conflit si [bp==1] et
[u<=2] sont vraies
simultane ment !
Nous avons choisi une structure comportant deux e tats orthogonaux (de composition
en ET). Cette structure permet de se parer distinctement chaque fonction : tension
faible, surchauffe, arre t automatique.
Avant de charger le programme, une simulation en mode normal peut e tre
effectue e. Lorsque le re sultat de la simulation est valide , le chargement du programme
peut alors se faire.
Une fois le programme charge , nous constatons que le comportement de lensemble
correspond bien a celui attendu.
Prenons maintenant en compte la surchauffe du pont en H. Nous conside rerons quil y
a surchauffe au-dela de 50C.
La structure demeure identique a la pre ce dente. On ajoute un Switch pour simuler
laugmentation de tempe rature et un e tat Surchauffe au diagramme pre ce dent:
151
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
152
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Nous venons de re aliser un prototype simplifie du Gyro DriverTM BDCS36G Black &
Decker en utilisant comme cible une carte Arduino Mega 2560.
153
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 8
Proposition
de me thodologie
154
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
155
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Enfin, la simulation peut avoir lieu. Au cours de cette dernie re e tape il sera bien
souvent ne cessaire de debugger la machine a e tat et de reprendre une partie des
e tapes pre ce dentes.
Quand le mode le est valide , il peut e tre inte ressant de retravailler sa forme en inse rant
des images par le biais de masques, de colorer certains e le ments ou encore ajouter des
commentaires pour une meilleure lisibilite .
Aussi le programme e crit avec cet outil graphique peut e tre charge dans une cible
apre s avoir e te compile . Ce qui permet de valider avec un prototype les fonctions
de finies dans le cahier des charges.
156
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Chapitre 9
SysML State Machine
vs
Stateflow
157
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
SysML stm
Stateflow
evt [condition]/action
evt
[condition]{action}/action
Etat
Transition
avec :
/action : action sur transition
avec :
{action} :
action
sur
condition
/action : action sur transition
Etat initial
ou jonction
par dfaut
158
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Etat final
Point
dcision
inexistant
de
Pseudo-tat
historique
Pseudo-tat
historique
Profond
H*
inexistant
Etat
composite
Etat
composite
masqu
Points
de
connexion
159
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
entre e
sortie
entre e
sortie
Etat
orthogonal
Barre
de
divergence
inexistant
Barre
de
convergence
inexistant
160
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)
Aout 2014 V3
161
Ph. Hautcoeur Stateflow: modlisation et simulation des systmes discrets (et continus)