8/19/2019 stfl Doc V3
1/162
Ph. Hautcoeur
INTRODUCTION ASTATEFLOW®
Pour les curieux et ceux qui s’y intéressent…
Modélisation & Simulation des
Systmes ! E"nementsDis#$ets %et Continus'
8/19/2019 stfl Doc V3
2/162
8/19/2019 stfl Doc V3
3/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+
)’utilisation $ caractère commerciale ou l’hé*er"ement sur un site de ce document sans
autorisation de l’auteur est strictement interdite.
8/19/2019 stfl Doc V3
4/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),
-&ant'propos.
Stateflow® est un !odule dé&eloppé par la société
a!éricaine MathWorks® %ui per!et la si!ulation
de !achines d’état.
/ne !achine d’état co!porte un no!0re fini d’états.
Elle !odélise le co!porte!ent de sste"!es %ui
passent d’un état a" un autre en réponse a" des
é&e"ne!ents. n parle alors de sste"!es a"
é&e"ne!ents discrets.
Co!!e son no! l’indi%ue ce !odule per!et de
tracer des diagra!!es d’état 2$ State Chart *) et des
diagra!!es de flux 2$ 3lo4 Chart *).
Stateflow® est intégré a" Matlab® et Simulink ®. Les !ode" les construits pourront par
consé%uent co!porter des 0locs des différentes $ tool0oxes * de Si!ulin5 et6ou
appeler des fonctions Matlab et6ou des fonctions Simulink co!!e nous le &errons.
-insi le !ode"le glo0al d’un sste"!e co!plexe pourra co!porter des modèles
linéaires continus construits a&ec Si!ulin5 sous la for!e de sché!a'0locs des
machines à état construites a&ec Stateflo4® ou encore des modèles acausaux
réalisés en utilisant Simscape®.
-ussi Stateflo4® per!et de si!uler le co!porte!ent de systèmes hybrides c’est'a"'dire a" é&e"ne!ents discrets et continus. C’est par exe!ple le cas d’une 0alle %ui
re0ondit sur le sol. En effet son déplace!ent dans l’air est continu alors %u’a" cha%ue
re0ond considéré co!!e un é&e"ne!ent sa tra7ectoire est !odifiée. C’est encore le cas
si un ro0ot doit é&iter un o0stacle présent sur sa tra7ectoire.
/ne connaissance approfondie de 8atla0® et Si!ulin5 ® n’est pas indispensa0le pour
co!!encer a" tra&ailler a&ec Stateflo4®. 9ans la plupart des exe!ples traités a&ec la
&ersion +:1,0 les che!ins !enant aux co!posants des 0i0liothe"%ues Si!ulin5 ®
utilisées sont précisés.
-pre"s a&oir présenté les différents outils et %uel%ues applications nous &errons
co!!ent i!plé!enter un progra!!e réalisé a&ec Stateflo4® &ers une ci0le telle %ue
la carte rduino Mé!a "#$%.
Le guide de l’utilisateur co!plet de Stateflo4® est téléchargea0le sur le site de
8ath;or5s® <
http
8/19/2019 stfl Doc V3
5/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>
+a*le des matières
&ant propos' ============================================================================= ,
(hapitre ) * Pour bien commencer ====================================================== ?
1.1' Préparation et présentation de l’interface ========================================= ?
(hapitre " * +e , (hart - ================================================================= 11
- propos du fonctionne!ent de la !achine d’état ============================== 1,
+.1' State ================================================================================= 1>
+.1.1 ' $ La0el * et !ots clé d’un état ============================================= 1>
- propos des transitions et des é&e"ne!ents ======================================= 1@
+.1.+ ' $ La0el * d’une transition ================================================== 1@
+.1., ' Cas particuliers de la transition réflexi&e et de la transition interne === 1?
+.1.> ' Prise en co!pte de l’acti&ité d’un état dans une transition ============= 1A +.1.@ ' Les é&e"ne!ents extérieurs ================================================ 1A
- propos des opérateurs te!porels ================================================= +B
L’opérateur $ after * =============================================================== +?
L’opérateur $ 0efore * ============================================================= +?
L’opérateur $ at * ================================================================== +A
L’opérateur $ e&er * ============================================================== +A
L’opérateur $ te!poralCount * =================================================== +A
- propos des super'états ou états co!posites ==================================== +
9éco!position exclusi&e 2D) ou paralle" le 2-#9) des états co!posites ===== + /tilisation d’un $ Su0chart * ====================================================== ,:
+.+' 9efault Eransition ================================================================== ,1
+.,' Function ============================================================================= ,+
- propos des $ 3lo4 Charts * ======================================================== ,@
+.>' Histor 7unction =================================================================== >1
+.@' ox ================================================================================== >B
+.B' Si!ulin5 3unction ================================================================= >?
+.?' Graphical function ================================================================= @,
+.A 8-EL- 3unction ================================================================== B>
+. Eruth ta0le ========================================================================== ?,
(hapitre . * /0autres exemples d0application du , (hart - ======================= A+
,.1' Initialisation de l’axe linéaire 8aet ============================================ A+
,.+' Si!ulation du fonctionne!ent d’un chrono!e"tre ============================== AB
,.,' Pilotage d’une platefor!e o!nidirectionnelle ================================== ?
8/19/2019 stfl Doc V3
6/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@
,.>' raite!ent des infor!ations déli&rées par un Codeur SinCos ================ 1:,
(hapitre 1 * +e , (hart 2M3+45 - ================================================== 11+
>.1' Exe!ple de la régulation D d’un four ======================================== 11+
(hapitre # * +a , State 3ransition 3able - =========================================== 11?
@.1' Exe!ple du codeur incré!ental ================================================= 1+1
(hapitre $ * +a , 3ruth 3able - ======================================================== 1+A
B.1' Exe!ple de la co!!ande d’un pont roulant =================================== 1+
(hapitre6 7 Prototypa!e =============================================================== 1>:
?.1 J -rduino et Si!ulin5 I ============================================================ 1>:
?.+ J La carte -rduino 8ega +@B: ==================================================== 1>1
?., J -pplication < le Grodri&er8
=================================================== 1>+ (hapitre 8 7 Proposition de méthodolo!ie ========================================= 1@@
(hapitre 9 * SysM+ State Machine &s Stateflow® =================================== 1@A
8/19/2019 stfl Doc V3
7/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B
Chapitre 1
Pour *ien commencer
8/19/2019 stfl Doc V3
8/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?
(hapitre ) ' Pour 0ien co!!encer.
):)* P;?
8/19/2019 stfl Doc V3
9/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A
9’autre part il pourra e(tre prati%ue d’installer $ ;eal*3ime Pacer * disponi0le en
télécharge!ent li0re sur le site de 8ath;or5s®. Le 0loc $ ;eal*3ime Pacer * per!et
de ralentir la si!ulation %ui peut parfois e(tre trop rapide pour e(tre analsée.
/n si!ple glissé'déposé de ce 0loc
dans le !ode"le Si!ulin5 ® sui&i
d’un dou0le clic per!et d’a7uster
le rapport te!ps de si!ulation 6
te!ps réel. Ici ce rapport est de
@:K.
La 0i0liothe"%ue Stateflo4®
co!porte %uatre élé!ents <
$ (hart * $ (hart 2M3+45 *$ State 3ransition 3able * et
enfin $ 3ruth 3able *.
• $ (hart * per!et de
construire un diagra!!e étatJ transition.
8/19/2019 stfl Doc V3
10/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)
• $ (hart 2M3+45 * per!et aussi la création d’un diagra!!e état'transition
!ais en utilisant des expressions ou des structures 8-L-® pour décrire un
co!porte!ent logi%ue. Ces expressions peu&ent e( tre présentes aussi 0ien dans
un état %ue dans une transition.
• $ State 3ransition 3able * géne"re auto!ati%ue!ent un diagra!!e d’état'
transition a" partir d’une ta0le %ui précise tous les états et toutes les transitions.
• Enfin $ 3ruth 3able * per!et la création de ta0le de &érité %ui décrira le
co!porte!ent co!0inatoire d’un sste"!e.
9ans ce docu!ent nous passerons en re&ue ces %uatre élé!ents de la 0i0liothe"%ue de
Stateflo4® pour en présenter les principes a" partir d’exe!ples.
Cependant nous nous intéresserons de !anie"re plus approfondie a" l’utilisation du 0loc
$ (hart * pour la création d’un !ode" le. Les sa&oir'faire alors apportés pourrontfaciliter la prise en !ain des trois autres élé!ents !is a" disposition dans la
0i0liothe"%ue Stateflo4®.
8/19/2019 stfl Doc V3
11/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:
Chapitre +
)e , hart -
8/19/2019 stfl Doc V3
12/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)11
(hapitre " ' Le $ Chart *.
Pour construire une !achine d’état il faut lancer 8atla0® puis la 0i0liothe"%ue
Si!ulin5 ®. u&rir Stateflo4® et glisser un $ (hart * 2ou diagra!!e) dans la fene(tre de
construction du !ode" le. /n dou0le'clic sur le 0loc per!et d’accéder a" son contenu de
ce 0loc c’est'a" 'dire au digra!!e état'transition.
n pourra 7udicieuse!ent ou&rir le
contenu du 0loc $ (hart * dans une
nou&elle fene(tre en cli%uant 0outon
droit puis $ >pen =n ?ew Window *.
Cette disposition sera intéressante au
!o!ent de la si!ulation co!!e nousle &errons un peu plus tard.
otre écran affichera alors les trois fene(tres sui&antes
8/19/2019 stfl Doc V3
13/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+
-ussi il est i!portant de sélectionner un sol&eur adapté a" la si!ulation. Ici nous
choisirons le sol&eur <
$ discrete 2no continuous states5 * $ @ixed*stepA fundamental sample time %:%)
s * par exe!ple.
La palette d’outils nécessaire a" la construction d’un diagra!!e état'transition par un
$ glissé6déposé * est la sui&ante. Elle co!porte plusieurs o07ets dont certains sont
graphi%ues<
+a bibliothèBue
Simulink
+e modèle
Simulink
+a machine
d0état
8/19/2019 stfl Doc V3
14/162
8/19/2019 stfl Doc V3
15/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1>
":)* S33
8/19/2019 stfl Doc V3
16/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1@
-fin de préciser certains élé!ents il est aussi possi0le de saisir un co!!entaire dans
un état en le précédant d’un Kco!!e le !ontre la figure précédente.
Gn premier petit exercice'
Stateflo4 ou&ert &ous alle créer un pre!ier $ State (hart *.
Saisir l’état E1 précédent pour &ous fa!iliariser a&ec la sntaxe.
Les couleurs des caracte"res %ui apparaissent dans l’état sont générées
auto!ati%ue!ent 2&ert pour les co!!entaires 7aune orangé pour les
é&e"ne!ents fushia pour les &aleurs nu!éri%ues). Cela per!et de détecter
rapide!ent une faute de frappe ou de sntaxe.
-&ant de construire des !achines plus sophisti%uées il est souhaita0le de lire ce %ui
suit a" propos des transitions des opérateurs te!porels des déco!positions exclusi&e
et paralle"le.
Cette snthe"se per!et de co!prendre les principes de 0ase du co!porte!ent d’une
!achine d’état construite a&ec Stateflo4.
A propos des transitions et des évènements…
Le passage d’un état a" l’autre se fait par une transition %ui se !atérialise par une liaison
orientée entre un état source et un état pointé. #ous parlerons de transition externe.
Le tracé de la transition se fait naturelle!ent en a!enant le curseur de la souris sur le
contour de l’état source et en cli%uant a&ec le 0outon gauche de la souris 7us%u’au
contour de l’état pointé.
":):" * , +abel - d0une transition
8/19/2019 stfl Doc V3
17/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1B
La transition est caractérisée par une éti%uette ou , transition
label * 2saisie dans la one contenant le point d’interrogation) %ui
décrit les circonstances ou les conditions de passage d’un état a"
un autre.
L’éti%uette peut contenir un é&e"ne!ent et6ou une condition
et6ou une action sur condition et6ou une action sur transition.
Le for!at général de l’éti%uette d’une transition s’écrit alors<
8/19/2019 stfl Doc V3
18/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1?
":):. * (as particuliers de la transition réflexi&e et de la transition interne
La transition réflexi&e 2$ self loop transition *) part d’un
état ou d’un pseudo'état et re&ient. L’état source et l’état
pointé est donc le !e(!e.
Ouand la condition aQ est &raie alors %ue l’état E1 est actif
il est désacti&é puis aussito( t réacti&é au pas de calcul
sui&ant.
La transition interne 2$ inner transition *) ne sort pas de son état source. Elle peut
pointer un état enfant ou 0ien un pseudo'état.
Prenons l’exe!ple du forNage dans un état particulier <
9ans le cas %ui nous
intéresse ici l’état parent
E1 et l’état enfant E1, sont
actifs.
- cha%ue pas de calul les
transitions associées a"
l état actif de plus haut
ni&eau hiérarchi%uue sont
d’a0ord é&aluées. 9onc ici
la transition entre E1 et
E1+ est é&aluée a" cha%ue
pas de calcul.
La condition -D/Q
de&ient &raie. E1, est
alors désacti&é et E1+
de&ient actif < c’est le
forNage dans un état
donné. n force
l’acti&ation de E1+
lors%ue la condition
-D/Q est &raie.
La transition interne peut pointer une 7onction $ History * 2&oir le paragraphe
consacré a" la 7onction $ History Cunction *).
8/19/2019 stfl Doc V3
19/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1A
Enfin l’utilisation de cette transition peut aussi e(tre intéressante pour si!plifier la
structure d’un état co!posite 2 &oir le paragraphe consacré a" la 7onction < $ Cunction *)
":):1 * Prise en compte de l0acti&ité d0un état dans une transition
La prise en co!pte dans une transition de l’acti&ité d’un état est possi0le si la &aria0le $ in2état
à préciser a&ec son ni&eau hiérarchiBue5 * est &raie par exe!ple <
Ici le passage de l’état E+1 a" E+, se fait si l’état E1+ est actif.
Le retour a" l’état E+1 a lieu si l’état E11 est actif.
":):# * +es é&ènements extérieurs
Gn peu de pratiBue'
#ous allons construire une !achine a" état co!portant deux états E1 et E+. Le passage
de l’un a" l’autre se fera a" l’occurrence d’un é&e"ne!ent extérieur noté $ top *.
L’é&e"ne!ent pourra e(tre un front !ontant
2$ risin! *) un front descendant 2$ fallin! *) ou
encore un front !ontant ou descendant
2$ either *).
9ans Si!ulin5 construisons l’exe!ple ci'contre < $ State chart *
$ Scope *
$ Scope *
$ Pulse generator *
8/19/2019 stfl Doc V3
20/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1
9ans le !enu $ Sources * de Si!ulin5 sélectionner le 0loc $ Pulse Denerator *
choisir un signal carré d’a!plitude 1 d’une période de 1s et de largeur d’i!pulsion
@:K de la période <
Les $ Scopes * sont extraits de la 0i0liothe"%ue
$ Sinks * de Si!ulin5 et per!ettent de
&isualiser les résultats de la si!ulation.
Pour ter!iner glisser un $ State (hart * a" partir
de Stateflo4.
Il faut !aintenant !ettre en place les entrées et sorties du $ (hart *. n choisitd’appeler la sortie $ S * et l’é&e"ne!ent extérieur $ top *. L’occurrence de l’é&e"ne!ent
$ top * se fait sur cha%ue front !ontant du signal carré $ top *.
Sélectionner le $ (hart * afficher le !enu contextuel a&ec le 0outon droit de la souris
puis sélectionner $
8/19/2019 stfl Doc V3
21/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+:
L’explorateur de !ode"le &a per!ettre la définition des entrées des sorties des
é&e"ne!ents. #ous utiliserons les deux ico(nes du 0andeau supérieur sui&antes <
Per!et l’a7out d’un é&e"ne!entPer!et l’a7out d’un data
2entrée sortie)
8/19/2019 stfl Doc V3
22/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+1
#ous pou&ons &érifier %ue la sortie $ S * est désor!ais présente sur
le co(té droit du $ (hart *.
9e la !e(!e !anie"re on définit l’é&e"ne!ent $ top *. Le signal dont on souhaite extraire
l’é&e"ne!ent $ top * pointe le $ (hart * sur le dessus. Il correspond a" une entrée depuis
Si!ulin5 2$ =nput from Simulink *). n choisit le front descendant 2$ 3ri!!er E
@allin! *) du signal pour ré&eiller la !achine.
8/19/2019 stfl Doc V3
23/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)++
#ous pou&ons &érifier la création d’un port de déclenche!ent
2$ 3ri!!er *) sur le dessus du $ (hart *. La nature de l’é&e"ne!ent
est s!0olisée ici par un front descendant.
Deste a" relier les différents 0locs <
/n dou0le clic per!et d’ou&rir le $ (hart *. racer par exe!ple le diagra!!e sui&ant <
Cette transition est une transition par
défaut %ui per!et de sélectionner l’état
%ui doit e(tre actif lors du ré&eil de la
!achine 2&oir paragraphe sui&ant).
8/19/2019 stfl Doc V3
24/162
8/19/2019 stfl Doc V3
25/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+>
Il est tout a" fait possi0le de co!0iner deux signaux dans Si!ulin5 et générer les
é&e"ne!ents %ui en seraient issus. Il faut alors utiliser le 0loc $ Mux * %ui se trou&e dans
la 0i0liothe"%ue $ Si!nal ;outin! * de Si!ulin5 <
9ans le cas %ui nous intéresse nous
considérons %ue les é&e"ne!ents
$ clic * et $ clac * correspondent aux
fronts !ontants des deux signaux
o0tenus gra(ce aux deux générateurs
de signaux 2$ Pulse Denerator *). Les
signaux sont déphasés d’un %uart de
période.
Ensuite il faut affecter un port du 0loc $ Mux * aux é&e"ne!ents %ue l’on &eurt prendre
en co!pte. Les ports sont nu!érotés du haut &ers le 0as de !anie"re croissante.
8ux
8/19/2019 stfl Doc V3
26/162
8/19/2019 stfl Doc V3
27/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+B
Le passage de E1 a" E+ se fera a" l’occurrence de $ clic * 2front !ontant du $ si!nal
clic *) soit a" t R +s dans ce cas S R 1 7us%u’a" l’occurrence de $ clac * 2front !ontant du
$ si!nal clac *) et ainsi de suite.
Pour !ontrer l’i!portance de la
connexion des signaux au 0loc $ Mux *
nous pou&ons inter&ertir l’affectation
des ports < $ si!nal clic * sur le port + et
$ si!nal clac * sur le port1.
#ous o0tenons le résultat ci'contre.
A propos des opérateurs temporels…
L’éti%uette d’une transition peut aussi contenir un opérateur te!porel < $ after *$ before * $ at * $ e&ery * $ temporal(ount *.
;emarBue préliminaire E
• le te!ps de si!ulation peut s’expri!er en seconde 2sec) en !illiseconde
2!sec) en !icroseconde 2usec). Le te!ps de si!ulation est un réel positif.
Il dépend du processeur et de ses capacités a" !ener les calculs liés au
!ode"le. Il ne correspond pas au te!ps réel.
Pou&eN*&ous le Oustifier
Si oui c’est %ue &ous a&e co!pris et donc passe a" la suite. Sinon il faut
relire le paragraphe précédent
8/19/2019 stfl Doc V3
28/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+?
• Le te!ps d’échantillonnage 2$ sa!ple ti!e *) du sol&eur s’expri!e en tic5.
Il correspond a" un pas de calcul et il est a7usté au !o!ent de la définition
du sol&eur. Le no!0re de tic5s est donc un no!0re entier.
+0opérateur , after - E
9ans l’exe!ple ci'contre
le passage de l’état E1 a"
l’état E+ se fait apre"s 1:
pas de calcul 2$ ticks *) et
le passage de l’état E+ a"
l’état E1 se fait lui apre"s @
secondes du te!ps de
si!ulation. /ne
!odification du $ Sample
3ime * du sol&eur !odifie la durée du passage de E1 a" E+. En effet une aug!entation
du $ Sample 3ime * aug!ente la durée d’un $ tick * et in&erse!ent.
+0opérateur , before - E
Ici la transition
sera franchie si la
condition
eRR1Q est &raie
a&ant %ue le te!ps
de si!ulation
atteigne @
secondes.
Par consé%uent un opérateur te!porel peut e(tre associé a" une condition.
Il peut aussi e(tre présent dans une expression logi%ue.
Par exe!ple <
a QQ before2)%Asec5I Bui se lit , a
8/19/2019 stfl Doc V3
29/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+A
+0opérateur , at - E
L’opérateur te!porel
$ at * définit la date a"
la%uelle l’état E+ sera
acti&é si E1 est acti&é et
récipro%ue!ent. Les
dates ne peu&ent e(tre
expri!ées %u’en $ tick *
ce sont donc des no!0res
entiers.
+0opérateur , e&ery - E
$ e&ery2nAtick5 * est &rai au nie"!e pas de
calcul. Cet opérateur sera expri!é
o0ligatoire!ent en no!0re de $ ticks *.
Ici on incré!ente d’une unité un
co!pteur 2$ compteurRR *) tous les 1:
pas de calcul tant %ue l’état E1 est actif.
+0opérateur , temporal(ount - E
Pour é&aluer la durée de l’acti&ité d’un état nous disposons de l’opérateur
$ temporal(ount *. Le co!pteur est re!is a" : a" cha%ue acti&ation de l’état associé.
8/19/2019 stfl Doc V3
30/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+
9ans l’exe!ple ci'dessus %uand E1 est
acti&é un co!pteur déco!pte le te!ps
d’acti&ation de l’état. Ici ce te!ps est
!esuré en secondes.
Lors%ue le co!pteur atteint 1s alors la
condition te!poralCount2sec)RR1Q
de&ient &raie E1 est désacti&é et E+ est
acti&é.
-pre"s +s E+ est désacti&é et E1 réacti&é.
-insi de suite Le scope associé a" la
sortie S confir!e 0ien ce co!porte!ent.
A propos des super-états ou états composites …
/écomposition exclusi&e 2>;5 ou parallèle 2?/5 des états composites
9ans la figure %ui suit le super'état E1 est un état paralle" le. Lors%ue E1 est acti&é alors
E11 E E1+ sont actifs si!ultané!ent.
La présence d’une transition par défaut
affectée a" E11 ou E++ n’a pas lieu d’e(tre
du fait de la si!ultanéité de l’acti&ation
des états.
Ces sous'états présentent un contour
en pointillés.
n acce"de a" la déco!position en
sélectionnant le super'état par un clic
gauche puis clic droit
$ /ecomposition' *
Les %uel%ues notions de 0ase concernant les états et les transitions exposées 7us%u’ici
sont a" connaT(tre pour construire des !achines d’état.
9éco!position exclusi&e 2D)
9éco!position paralle" le 2-#9)
8/19/2019 stfl Doc V3
31/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),:
Gtilisation d0un , Subchart -
Si un super'état ou état
co!posite contient de
no!0reux états il est possi0le
de réduire le diagra!!e en
!as%uant le contenu de l’état
co!posite. n transfor!e le
surper'état en $ Subchart * <
-fficher le !enu contextuel par
un clic droit puis sélectionner
$Subchart Q Droup * puis
$ Subchart *.
/n dou0le'clic sur le
$ Subchart * ainsi créé per!et
d’afficher l’état co!posite dont
le contenu a été !as%ué.
Su0chart
8/19/2019 stfl Doc V3
32/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),1
":"* /?
/ne transition par défaut i!pose l’acti&ation d’un état en cas d’a!0iguité.
Cette transition pointe un état !ais n’a pas d’état source apparent. Le for!at de
l’éti%uette est identi%ue a" celui d’une transition ordinaire. Elle est o0ligatoire de"s %ue
le diagra!!e co!porte au !oins deux états.
9ans l’exe!ple ci'dessous lors%ue la !achine est excitée E1 est acti&é.
Ouand la transition entre E1
et E+ est franchie le super'
état ou état co!posite E+ est
acti&é et E1 désacti&é.
-u !o!ent de l’acti&ation
de E+ E+1 est alors acti&é
;emarBue E
Ici le super'état E+ est le
parent des sous'états E+1 etE++.
E1 et E+ ont le !e(!e ni&eau
hiérarchi%ue.
E+1 et E++ ont eux aussi le
!e(!e ni&eau hiérarchi%ue.
Ce sont les états enfants de E+.
ransition par défaut
ransition par défaut
8/19/2019 stfl Doc V3
33/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),+
":.* CG?(3=>?
La 7onction 2$ Cunction *) est un pseudo'état utilisé par exe!ple pour factoriser des
expressions 0ooléennes associées a" des conditions.
9ans l’exe!ple ci'contre
lors%ue la condition aQ est
&raie la 7onction de&ient acti&e
2c’est un pseudo'état) !ais E1
n’est pas désacti&é pour autant.
E+ sera acti&é si 0Q de&ient
&raie. E1 est alors
si!ultané!ent désacti&é.
u 0ien E, sera acti&é si cQ
de&ient &raie. E1 est alors
si!ultané!ent désacti&é.
Le co!porte!ent précédent est identi%ue au sui&ant <
n re!ar%uera %ue dans le
pre!ier cas l’é&aluation de 0Q se
fait a&ant celle de cQ 2transition
dont la source est repérée 1 sur
la 7onction). Par consé%uent en
cas de si!ultanéité l’acti&ité de
E+ sera prioritaire.
Cette priorité est retrou&ée dans
le second cas 2transition dont la
source est repérée 1). La
condition aUU0Q est é&aluée a&ant
aUUcQ.
8/19/2019 stfl Doc V3
34/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),,
=nfo < la sntaxe utilisée est celle du langage C <
L’ordre d’é&aluation des
transitions peut e(tre !odifié en
sélectionnant la ou les
transitions a" !odifier clic droit
$ Properties *. Sélectionner
l’ordre d’é&aluation dans la liste
déroulante $
8/19/2019 stfl Doc V3
35/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),>
Prenons le cas du passage de
l’état E11 considéré actif a" l’état
E1,. Le passage se fera a"
l’occurence de l’é&e"ne!ent e et a"
condition %ue 0Q soit &raie. Sur le
pre!ier diagra!!e la transition
est claire!ent identifia0le. Sur le
second elle ne l’est pas.
#éan!oins nous sa&ons %ue si
E11 est actif alors %ue
l’é&e"ne!ent e sur&ient cet état
est désacti&é et la 7onction ré'
acti&ée et si 0Q est &raie alorsl’état E1, de&ient actif.
Gn petit exercice de saisie et de simulation'
- titre d’exercice &ous
pou&e asse facile!ent
&érifier la si!ilitude des
co!porte!ents des
deux !achines.
Ci'contre se trou&e le
!ode"le Si!ulin5
per!ettant de si!uler et
de co!parer le
co!porte!ent des deux!achines d’état
si!ultané!ent.
Les $ Switches * se
trou&ent dans le !enu
$ Si!nal ;outin! * de
Si!ulin5 .
Les 0locs : et 1 sont des 0locs $ (onstant * %ui se trou&ent dans le !enu $ (ommonly
Gsed 4locks *.
$ S4itch *
loc $ Constant *
8/19/2019 stfl Doc V3
36/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),@
Pour la si!ulation choisir un te!ps de si!ulation infini en saisissant $ inf * dans le
cha!p correspondant du 0andeau supérieur <
érifier le co!porte!ent des
!achines d’état en dou0le cli%uantsur les $ Switches * pendant la
si!ulation pour les faire co!!uter.
A propos des « Flow Charts »…
Les $ @low (harts * ou diagra!!es de flux sont prati%ues pour décrire les structures
algorith!i%ues de 0ase co!!e les structures alternati&es ou de choix et les structures
itérati&es ou répétiti&es.
Le diagra!!e de flux contraire!ent aux diagra!!es d’état 2$ State (hart *) ne
co!porte pas d’état !ais uni%ue!ent des transitions et des 7onctions.
8/19/2019 stfl Doc V3
37/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),B
8/19/2019 stfl Doc V3
38/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),?
Le résultat de la si!ulation s’affiche
dans le $ Scope * <
Si la te!pérature de consigne n’est
pas atteinte l’écart u est positif etdans ce cas les résistances sont
ali!entées.
Ouand l’écart est nul les résistances
ne sont plus ali!entées.
En a0sence de pertur0ation c’est'a"'
dire sans in7ection d’air frais la
te!pérature du four reste constante.
Le tracé du diagra!!e de flux précédent peut se faire par glissé'déposé de 7onctions
et en reliant ces différentes 7onctions les unes aux autres. Deste alors a" saisir les
conditions et les actions.
Stateflo4
propose un outil %ui géne"reauto!ati%ue!ent les structures algorith!i%ues. Pour
a7outer une structure dans un diagra!!e on peut
utiliser la co!!ande $ dd Pattern =n (hart * du
!enu contextuel.
/n second !enu s’ou&re proposant différentes
structures algorith!i%ues<
$ /ecision * < structures
alternati&es
$ +oop * < structures
répétiti&es.
9ans notre cas nous allons cli%uer sur $ /ecision * et choisir la structure alternati&e
$ if*else'*
8/19/2019 stfl Doc V3
39/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),A
La fene(tre ci'contre s’ou&re
8/19/2019 stfl Doc V3
40/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),
#ous o0tenons 0ien le diagra!!e attendu <
9ans la prati%ue on introduit une plage de !ise en
ser&ice du régulateur D autour d’un point de
fonctionne!ent en introduisant un hstérésis.
Celui'ci peut e(tre a7usta0le ou 0ien fixe. Il est donné
co!!uné!ent par les constructeurs en pourcentage de
la pleine échelle de la sortie.
Par exe!ple pour le régulateur 8D# E@CS en
!ode D 2#'33) le constructeur annonce un
hstérésis de :.+K de la pleine échelle 23ull Scale < 3S) <
Introduisons alors un hstérésis dans le
!ode"le du régulateur
8/19/2019 stfl Doc V3
41/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>:
/ne structure $ =f *
8/19/2019 stfl Doc V3
42/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>1
":1* H=S3>;U CG?(3=>?
Il s’agit d’un pseudo'état %ui !é!orise l’acti&ité des sous'états d’un super'état ou étatco!posite. Cela per!et donc de réacti&er un état dans la situation dans la%uelle on l’a
%uitté. Les propriétés de la $History Ounction * ne s’appli%uent %u’au ni&eau de
hiérarchie dans le%uel elle apparait.
Considérons %ue l’état E: et l’état E+ soient actifs. Si la condition cQ est &raie E, est
alors acti&é et E: désacti&é.
La 7onction $ History * per!et de !é!oriser l’acti&ation des sous'états au !o!ent dela désacti&ation de E: ici on a !é!orisé l’acti&ation de E+. Si 0ien %ue lors%ue la
condition cQ de&ient &raie E, est désacti&é et E: est acti&é a" nou&eau !ais la présence
de la 7onction $ History * per!et de ré'acti&er E+.
8/19/2019 stfl Doc V3
43/162
8/19/2019 stfl Doc V3
44/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>,
I!aginons %ue E: E+ E++ soient actifs. Ouand la condition cQ est &raie E, est acti&é
alors %ue les trois états précédents sont désacti&és. Lors%ue la condition cQ de&ient
&raie a" son tour on retrou&e la situation %uittée c’est'a"'dire E: E+ E++ actifs.
8/19/2019 stfl Doc V3
45/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>>
;emarBue < si la 7onction $ History * n’existait pas dans l’état E+ E++ ne serait pas
acti&é !ais ce serait 0ien l’état E+1 co!pte tenu de la présence de la transition par
défaut sur E+1.
Gn autre petit exercice de saisie et de simulation'
9es si!ulations sont possi0les en disposant des 7onctions $ Histor * ou" &ous le
souhaite. Ci'dessous le !ode" le Si!ulin5
correspondant <
9ans le paragraphe consacré aux transitions internes nous a&ons é&o%ué la situation
ou" celle'ci pou&ait pointer une 7onction $ History *.
Ce sera le cas lors%u’on souhaite par exe!ple figer la !achine dans son état courant
8/19/2019 stfl Doc V3
46/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>@
En effet dans cet exe!ple si la
condition SPQ est &raie alors
%u’un des %uatre états E11 E1+
E1, E1> est actif celui reste actif.
L’acti&ité de l’état courant a été
!é!orisée.
9e"s %ue la condition SPQ n’est
plus &raie l’état E1 reprend son
!ode d’é&olution nor!al.
8/19/2019 stfl Doc V3
47/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>B
":#* 4>V
La 0oT(te 2$ 4ox *) est un élé!ent %ui per!et le regroupe!ent d’o07ets graphi%ues de
Stateflo4 co!!e des états des fonctions Les $ 4oxes * peu&ent e(tre réutilisées
dans d’autre !ode" les.
Par exe!ple ci'dessous le $ (hart * fait appel a" %uatre fonctions 8-L- %ui sont
$ rangées * par paires dans deux $ boxes * < $ si!nauxcarres * et
$ detectionfronts *.
#ous construirons et co!!enterons un peu plus tard ce diagra!!e.
8/19/2019 stfl Doc V3
48/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>?
":$* S=MG+=?X @G?(3=>?
Cet outil per!et l’introduction de fonctions utilisant des sché!as 0locs construits a&ec
les différentes 0i0liothe"%ues de Si!ulin5 .
/ne fonction Si!ulin5 est représentée par un 0loc
rectangulaire glissé'déposé dans un $ (hart *. <
Prenons un exe!ple si!ple pour illustrer la dé!arche.
#ous allons considérer une !achine a" état constituée de deux états < Phase1 et Phase+
L’état $ Phase) * est initiale!ent actif. L’acti&ation de l’état $ Phase" * se fait si la
condition aQ est &raie. In&erse!ent la réacti&ation de l’état $ Phase) * se fait si la
condition aQ est &raie.
La phase 1 consiste a" a7outer @ a" l’entrée du sste"!e considérée co!!e constante et
&alant 1:. La phase + !ultiplie par , la !e(!e entrée.
L’interface Si!ulin5 sera alors la sui&ante
8/19/2019 stfl Doc V3
49/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>A
/n dou0le'clic sur le $ (hart * affiche le diagra!!e dé7a" présenté %uel%ues lignes plus
hautes.
#ous allons insérer deux fonctions Si!ulin5 %ui per!ettront de réaliser les deux
phases décrites précéde!!ent <
En cli%uant sur le point d’interrogation on précise la signature de la fonction %ui sera
appelée par l’état %ui déclenchera le ou les calculs souhaités.
La signature de la fonction précise son no! ses argu!ents et sa &aleur de retour <
$ tachei * est le no! de la fonction $ u * son argu!ent et $ y * sa &aleur de retour
8/19/2019 stfl Doc V3
50/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>
9’une !anie"re générale la sntaxe est la sui&ante < 2r1 r+rn)R no!2a1 a+an)
L’in&ocation de la fonction ou son appel se fait pendant l’acti&ité de l’état $ Phase) *
ou $ Phase" *. - un état correspond une fonction particulie"re. Par consé%uent les
fonctions sont insérées dans les états correspondants <
Deste a" définir les !ode" les Si!ulin5 associés aux fonctions en dou0le'cli%uant sur les
0locs $ Simulink @unction * <
n constate la génération auto!ati%ue de
l’argu!ent de la fonction et de la &aleur de
retour %ui correspondent respecti&e!ent a"
l’entrée et a" la sortie du !ode" le Si!ulin5 .
9’autre part s’affiche un 0loc précisant %ue
le sous'sste"!e fait appel a" une fonction.
8/19/2019 stfl Doc V3
51/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@:
Préparons le !ode" le Si!ulin5
associé a" la pre!ie"re phase <
n a7oute @ a" l’entrée $ u *<
Pendant la seconde phase $ u * est !ultiplié
par , <
Le !ode" le glo0al co!porte donc les élé!ents
sui&ants <
Interf ace
Si!ulin5 $ Chart *
3onctions
Si!ulin5
8/19/2019 stfl Doc V3
52/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@1
L’explorateur du !ode"le donne son ar0orescence <
Pour la si!ulation il con&ient de choisir un sol&eur autre %ue $ discrete 2nocontinuous state5 * n pourra prendre par exe!ple le sol&eur $ ode# * a&ec un pas
fixe de :.:1 s et un te!ps de si!ulation infini<
Pour exploiter pleine!ent les a&antages de cet outil une 0onne connaissance de
Si!ulin5 est indispensa0le.
érifions les résultats o0tenus
8/19/2019 stfl Doc V3
53/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@+
L’état $ Phase) - est actif. Pendant toute la durée de son acti&ité on a7oute @ a" l’entrée.
n o0tient donc en sortie 1@.
Si la condition aQ est &raie l’état $ Phase" - est actif et on !ultiplie par , l’entrée. n
o0tient ,: en sortie <
Enfin si la condition aQ est &raie on o0tient a" nou&eau en sortie 1@
8/19/2019 stfl Doc V3
54/162
8/19/2019 stfl Doc V3
55/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@>
précise son no! ses argu!ents et sa &aleur de retour < $ somme * est le no! de la
fonction $ a * et $ b * ses argu!ents et $ f) * sa &aleur de retour.
L’in&ocation de la fonction ou son appel se fait pendant l’acti&ité de l’état E1.
#otons %ue la so!!e des argu!ents se fait ici sur une transition par défaut %ui pointe
une 7onction. Le calcul est lancé a" l’occurrence de l’é&e"ne!ent %ui ré&eille la !achine.
Le résultat correspond a" l’affichage de
la &aria0le $ yWout *.
n re!ar%uera %ue le pre!ier résultat
est donné apre"s le pre!ier pas de
calcul. Ici le $ Sample 3ime * du
sol&eur est réglé sur :.1s.
L’explorateur de !ode"le ci'dessous affiche dans la colonne de droite le no! de la
fonction.
Les entrées et les sorties sont précisées ainsi %ue la &aria0le locale $ y *.
8/19/2019 stfl Doc V3
56/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@@
Yoici un petit exercice Bui &a enrichir le précédent < on souhaite tou7ours
faire la so!!e des !e(!es signaux %ue précéde!!ent !ais cette so!!e sera!ultipliée par deux. Ce facteur sera donc une entrée du $ (hart *.
8/19/2019 stfl Doc V3
57/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@B
Le !oteur sera sollicité par un échelon de tension. /n pre!ier $ Switch * per!et
d’in&erser son sens de rotation le second autorise ou pas l’ali!entation du !oteur.
La pre!ie"re étape consiste a" tracer le diagra!!e d’états traduisant le co!porte!ent
du !oteur au cours de son fonctionne!ent <
La &aria0le $ dir * donne le sens de rotation du !oteur et $ on * autorise ou non la
!arche du !oteur. Le !oteur peut tourner dans un sens ou dans l’autre sui&ant l’état
du $ Switch * correspondant. Par consé%uent dans l’état $ Marche * la transition par
défaut pointe une 7onction %ui &a tester la &aleur d’affectation de la &aria0le $ dir *.
Si $ dir * &aut 1 le !oteur tourne dans le sens trigono!étri%ue sinon il tournera dans
le sens horaire.
8/19/2019 stfl Doc V3
58/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@?
8aintenant il faut prendre en co!pte le co!porte!ent du !oteur. Ecri&ons alors le
!ode"le par représentation d’état d’un !oteur a" courant continu.
Petit rappel sur la représentation d0état et les éBuations du moteur à courant
continu E
9’un point de &ue !athé!ati%ue nous définirons des &ariables d0entrée des
&ariables de sortie et des &ariables d0état . Ces dernie"res sont obser&ables a"
cha%ue instant et donc mesurables. Les &aleurs des &aria0les de sortie &ont
dépendre de celles des &aria0les d’entrée et des &aria0les d’état. Les é%uations liant
ces &aria0les sont appelées éBuations de sortie. Par contre elles ne suffisent pas
pour décrire le co!porte!ent dna!i%ue du sste"!e. Cette dna!i%ue correspond
a" la &ariation des &aria0les d’état au cours du te!ps dépendante des &aria0les
d’entrée et des &aria0les d’état a" un instant antérieur. 9ans le cas d’un
co!porte!ent linéaire ces é%uations sont des é%uations différentielles. Elles
s’écri&ent de la !anie"re sui&ante <
u" / est un &ecteur caractéristi%ue des &aria0les d’entrée Z des &aria0les d’état et
[ des &aria0les de sortie. - C et 9 sont des !atrices.
La pre!ie"re é%uation traduit la dna!i%ue du sste"!e linéaire alors %ue la seconde
donne l’é&olution de la sortie.
Concernant le !oteur a" courant continu on rappelle les %uatre é%uations %ui
décri&ent son co!porte!ent dna!i%ue <
• La pre!ie"re issue de la loi d’h!
8/19/2019 stfl Doc V3
59/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@A
/ est la résistance de l’induit et L l’inductance.
f est le coefficient de frotte!ent &is%ueux.
0 t et 0 e sont respecti&e!ent la constante de couple et la constante de force
électro!otrice.
#ous allons re!anier les é%uations précédentes pour se ra!ener a" la
représentation d’état rappelée %uel%ues lignes plus hautes. n trou&e <
!"#!#!$#!# % &'( )*()#+ ,+ - . /01\
2( 33 3% 456 7 Et
3 8 9 : 3 3 93 :
#ous allons utiliser ces é%uations dans la !achine d’état. Pour ce faire il faudra
insérer des fonctions graphi%ues 2$ Draphical @unction *) %ui seront appelées
par les états correspondants 2$ rretA Marche:Senstri!o - et
$ Marche:Senshoraire -).
n o0tient donc le diagra!!e co!plété sui&ant
8/19/2019 stfl Doc V3
60/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@
ttention
8/19/2019 stfl Doc V3
61/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B:
Pour un échelon de tension de +> nous o0tenons le résultat sui&ant<
n retrou&e 0ien les
données du constructeur <
• en régi!e per!anent
le !oteur atteint une
&itesse de ABB rd6s soit
A+?: tr6!in.
• La constante de te!ps
est de ,.+ !s.
(omment créer un masBue E
L’a&antage du !as%ue est l’é&entuelle réutilisation du !ode"le !ais pour un !oteur
%ui posse"de des caractéristi%ues différentes.
8/19/2019 stfl Doc V3
62/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B1
Sélectionner le $ (hart * cli%uer a&ec le 0outon droit de la souris pour ou&rir le !enu
contextuel et sélectionner successi&e!ent les co!!andes $ Mask * puis $ (reate
Mask * <
L’éditeur de !as%ue s’affiche <
Sélectionner l’onglet $ Parameters Q /ialo! *
8/19/2019 stfl Doc V3
63/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B+
Saisir un pre!ier cha!p du !as%ue en cli%uant sur l’ico(ne $
8/19/2019 stfl Doc V3
64/162
8/19/2019 stfl Doc V3
65/162
8/19/2019 stfl Doc V3
66/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B@
L’infor!ation i!age de la position est consta!!ent disponi0le. La &aleur de la
position est o0tenue par le calcul nu!éri%ue de la fonction arc'tangente apre"s
con&ersion des signaux sinus et cosinus. Ce calcul consiste en une interpolation fine
dépendante de la position grossie"re du rotor <
La position grossie"re du rotor correspond a" sa position angulaire déter!inée par le
co!ptage d’i!pulsions de la !e(!e !anie"re %ue pour un codeur incré!ental.
L’o07et de cette application est la !ise en for!e des trains d’i!pulsions nécessaires a"
la déter!ination de la position grossie"re.
Pour ce faire nous allons construire un $ (hart * co!prenant %uatre fonctions
8-L-.
Préparons l’interface Si!ulin5 . Elle co!prend deux élé!ents principaux <
• Le codeur %ui déli&re les signaux sinus et cosinus
• L’interpolateur %ui géne"re le train d’i!pulsions nécessaire.
8/19/2019 stfl Doc V3
67/162
8/19/2019 stfl Doc V3
68/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B?
n conside"rera un signal d’a!plitude l’unité et de
pulsation 1:: rad6sec
/n dou0le'clic sur le $ (hart * fait apparaitre le diagra!!e 2dé7a" &u précéde!!ent
lors%ue nous a&ons défini la $ 4ox *) %ue nous allons !aintenant construire et
co!!enter
8/19/2019 stfl Doc V3
69/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)BA
Le diagra!!e co!porte une transition par défaut pointant &ers une 7onction. L’action
associée fait appel a" %uatre fonctions 8-L- insérées dans deux $ 4oxes *. -ttention
a 0ien indi%ué le che!in des fonctions en précisant le $ la0el * de la $ ox * %ui la
contient <
9ans la $ 4ox * $ si!nauxWcarres * se trou&ent les fonctions $ f) * et $ f" * %ui &ont
construire les signaux carrés de !e(!e période %ue les signaux sinusoT]daux d’entrée.
9ans la $ 4ox * $ detectionWfronts * se trou&ent les fonctions $ detectWf) * et
$ detectWf" *%ui &ont générer les trains d’i!pulsions %ui correspondent auxchange!ents de ni&eau logi%ue des signaux carrés
Les fonctions $ f) * et $ f" * s’appli%uant aux deux entrées sinusoT]dales sont si!ilaires.
9e !e(!e %ue $ detectWf) * et $ detectWf" *.
/n dou0le'clic sur la fonction $ f) * ou&re l’éditeur de fonction
8/19/2019 stfl Doc V3
70/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B
La fonction progra!!ée affecte la &aleur 1 a" la &aria0le locale $ y) * si l’entrée
$ u) *est positi&e sinon la &aleur :.
9e !e(!e pour $ f" * <
Concernant la détection des fronts un dou0le'
clic sur la fonction $ detectWf) * ou&re
l’éditeur <
Si la &aleur de la &aria0le locale $ y) * est
différente de sa &aleur au pas de calcul
précédent alors la sortie $ impW) * prend la
&aleur 1 sinon :. -pre"s le test la &aria0le locale
$ y)Wprec * prend la &aleur de la &aria0le
locale $ y) *.
8/19/2019 stfl Doc V3
71/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?:
9e !e(!e pour la fonction $ detectf" * <
L’explorateur donne la
hiérarchie du !ode"le
construit. n trou&e <
• Les $ 4oxes *
• Les fonctions
8-L-
n trou&e aussi les
caractéristi%ues des différentes
&aria0les
8/19/2019 stfl Doc V3
72/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?1
Pour cette application nous a&ons choisi le sol&eur $ discrete 2no continuous
states5 * a&ec un pas fixe de :.::1 s
8/19/2019 stfl Doc V3
73/162
8/19/2019 stfl Doc V3
74/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?,
":9 3;G3H 34+<
Stateflo4 offre la possi0ilité d’insérer dans un !ode"le une
ta0le de &érité %ui &a traduire le co!porte!ent
combinatoire d’un sste"!e ou d’un sous'sste"!e. Cette
ta0le de &érité peut si!plifier considéra0le!ent les
diagra!!es.
/ne ta0le de &érité est représentée par un rectangle.
/n dou0le'clic sur ce rectangle ou&re une fene(tre dans la%uelle apparaissent deux
ta0leaux < le ta0leau des conditions 2$ (ondition 3able *) et le ta0leau des actions
2$ ction 3able *).
9ans ces ta0les nous trou&ons < des conditions des décisions et des actions <
-ction
Condition 9écision
8/19/2019 stfl Doc V3
75/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?>
Cha%ue ta0le posse"de aussi une colonne $ /escription *. Elle est destinée aux
co!!entaires. Co!pléter ces cha!ps n’est pas o0ligatoire.
9ans la seconde colonne de la $ (ondition 3able * apparaissent les conditions
aux%uelles sont associées des actions. La condition peut e(tre &raie 2$ 3rue E3 *) fausse
2$ @alse E@ *) &raie ou fausse 2^ * ^).
/ne $ /ecision * 29i) correspond a" une colonne dans la%uelle on prend en co!pte
l’état des conditions. - cha%ue décision correspond une action repérée par le nu!éro
de ligne de l’ $ ction 3able * liée a" cette action.
Si nous prenons l’exe!ple ci'dessus la décision 9B conside"re 2a=&raie E 0=&raie E
c=fausse). 9ans ce cas l’action associée est définie a" la %uatrie"!e ligne de l’ $ ction
3able * < send233E:) c’est'a"'dire %u’on déclenche l’é&e"ne!ent 33 %ui se trou&e
dans l’état E: etc
Gne première application'
9é&eloppons da&antage l’exe!ple présenté plus haut.
8/19/2019 stfl Doc V3
76/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?@
9ans Si!ulin5 nous
allons saisir le !ode"le
ci'contre constitué d’un
$ (hart * de trois
$ Switches * affectant la
&aleur : ou 1 aux trois
&aria0les 0inaires a 0 et
c.
Le diagra!!e d’état o0tenu en dou0le'cli%uant sur le $ (hart * est le sui&ant <
E: est un état co!posite
dans le%uel se trou&ent les
trois états # 33 et
SP.
-fin de li!iter le no!0re
de transitions et donc de
si!plifier le diagra!!e il
est intéressant d’utiliser
une ta0le de &érité %ui
ren&oie ici les é&e"ne!ents
de tpe $ local * start
sto& on et off 2en orangé).
Le fonctionne!ent est décrit dans la ta0le de &érité %ui suit. Il est propre a" l’état E:. La
ta0le sera donc insérée dans l’état E:.
n conside"re la ta0le de &érité sui&ante pour traduire le co!porte!ent logi%ue du
sste"!e
8/19/2019 stfl Doc V3
77/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?B
# ( a E"nement asso#ié Etat )ointé
: : : stop E:.SP
: : 1 on E:.#
: 1 : on E:.#
: 1 1 off E:.33
1 : : off E:.331 : 1 on E:.#
1 1 : on E:.#
1 1 1 start E:.#
-pre"s a&oir glissé'déposé la ta0le de &érité nous allons saisir son éti%uette 2$ label *) <
$ arretmarche - a" la place du point d’interrogation
8/19/2019 stfl Doc V3
78/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)??
/n dou0le'clic sur le
rectangle ou&re la
ta0le de &érité %u’il
faut co!pléter
confor!é!ent au
!ode defonctionne!ent
nor!al de notre
sste"!e. #ous de&ons
a7outer des lignes et
des colonnes <
Ces ico(nes du 0andeausupérieur per!ettent
de le faire.
8/19/2019 stfl Doc V3
79/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?A
La ta0le de &érité
est
!aintenant re!plie.
r pendant la si!ulation
il faut appeler la ta0le de
&érité alors %ue l’état E:
est actif.
n utilise ici le !ot clé
$ on évènement E
action F *.
La ta0le de &érité sera
appelée a" cha%ue pas de
calcul.
L’é&e"ne!ent déclencheur sera donc $ tick *.
8/19/2019 stfl Doc V3
80/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?
La si!ulation est désor!ais pre(te a" e( tre lancée <
-u dé!arrage l’état SP
est actif.
L’état # sera acti&é a"
l’occurrence de
l’é&e"ne!ent start1 c’est'
a" 'dire pour a 0 et c &rais.
L’état 33 sera acti&é a"
l’occurrence de l’é&e"ne!ent off1
c’est'a" 'dire pour a et 0 &rais puis
c faux.
8/19/2019 stfl Doc V3
81/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A:
-insi de suite
8/19/2019 stfl Doc V3
82/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A1
Chapitre ,
2’autres exem&les
d’a&&licationdu, hart -
8/19/2019 stfl Doc V3
83/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A+
(hapitre . * 9’autres exe!ples d’application du
$ Chart *.
.:)* =?=3=+=S3=>? /< +0V< +=?
8/19/2019 stfl Doc V3
84/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A,
9é0ut
Initialiser
Capteur
gauche
Capteur
gauche
-ller a" gauche a"
&itesse rapide 2)
-ller a" droite a"
&itesse lente 2)
Capteur
gauche
Initialiser le
co!pteur
3in
8/19/2019 stfl Doc V3
85/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A>
8ettons l’interface Si!ulin5 en place <
En entrée du $ (hart * 2Carte) nous retrou&ons les infor!ations 0inaires trans!ises
par le capteur fin de course gauche et le 0outon poussoir d’initialisation la &aleur du
co!pteur associé au codeur a&ant l’initialisation. En sortie sont affichées la co!!ande
du !oteur 2rotation rapide dans un sens < 8R'1: lente dans l’autre < 8R1 arre( t < 8R:)
l’état d’une &aria0le 0inaire de gestion de la 0oucle d’asser&isse!ent 20oucle fer!ée <
3R1 0oucle ou&erte 3R:) et la &aleur courante du co!pteur.
L’asser&isse!ent en position est défini par le sché!a'0locs
8/19/2019 stfl Doc V3
86/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A@
/ne solution possi0le pour la phase d’initialisation %ui reprend le cahier des charges
peut e( tre celle %ui suit
8/19/2019 stfl Doc V3
87/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)AB
,.+' SI8/L-I# 9/ 3#CI##E8E# 9’/# CHD#8EDE
Les s!artphones du !arché disposent tous
d’horloges di&erses personnalisa0les de
ré&eil de chrono!e"tre de co!pteur a"
re0ours etc
#ous nous intéressons dans le cadre de cet
exercice au chrono!e"tre d’un s!artphone
et en particulier au lance!ent du
chrono!étrage au chrono!étrage a" l’arre(t
du chrono!étrage a" l’affichage du te!ps
inter!édiaires et du no!0re de tours ainsi
%u’a" la re!ise a" éro.
#ous disposons de trois affichages < le pre!ier pour le chrono!étrage le second pour
les te!ps inter!édiaires au%uel est associé
le troisie"!e %ui affiche le no!0re de tours
effectués.
Les te!ps sont affichés en heures !inutes
secondes et centie"!es de seconde.
Le fonctionne!ent du chrono!e"tre est le sui&ant <
• /n pre!ier appui sur le 0outon $ Sart6Stop * lance le chrono!e"tre. /n second
appui arre(te le chrono!e"tre.
• L’appui sur le 0outon $ Lap i!e* affiche un te!ps inter!édiaire et le tour
2$ lap *) correspondant.
• - cha%ue instant l’appui sur $ DESE * re!et le chrono!e" tre a" éro.
Préparons !aintenant l’interface Si!ulin5 %ui ser&ira pour la si!ulation.
/ne idée consiste a" séparer les fonctions $ afficher le temps chronométré * et
$ afficher le temps intermédiaire et le nombre de tours *. #ous aurons par
consé%uent deux $ (harts * a" construire.
9’autre part il faut définir les entrées et sorties de cha%ue $ (hart *.
• Concernant les entrées du pre!ier < les infor!ations liées aux actions
sur les 0outons de co!!ande 2Start6Stop Deset) et un signal d’horloge
pour construire le te!ps chrono!étré.
• Concernant les sorties du pre!ier < le te!ps chrono!étré.
8/19/2019 stfl Doc V3
88/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A?
• Concernant les entrées du second < le te!ps chrono!étré l’infor!ation
$ ;eset * et l’infor!ation $ +ap 3ime *.
• Concernant les sorties du second < le te!ps inter!édiaire le no!0re de
tours.
#ous pou&ons snthétiser l’ense!0le dans le ta0leau %ui suit <
8/19/2019 stfl Doc V3
89/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)AA
Pour la fonction chrono!étrage
soit le Chart 1
8/19/2019 stfl Doc V3
90/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)A
Le diagra!!e est co!posé des états $ initialisation * $ arret * et du sous'
diagra!!e 2$ Subchart *) $ chronométra!e *.
L’utilisation du $ Subchart * per!et de
condenser les diagra!!es afin de faciliter
leur lecture.
Pour créer un $ Subchart * sélectionner les
états %ui en feront partie. Clic droit pour
ou&rir le !enu contextuel puis
$ Subchart * <
• L’initialisation <
Lors%ue cet état est acti&é
l’affichage du chrono!e"tre est
initialisé ainsi %ue les &aria0les
%ui seront incré!entées pour la
déter!ination du te!ps
chrono!étré.
• Les !odes de !arche <
Les figures ci'dessous reprennentles différents !odes de !arche du
chrono!e"tre tels %u’ils ont été
décrits plus haut.
-ffichage
aria0les
8/19/2019 stfl Doc V3
91/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus):
8/19/2019 stfl Doc V3
92/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1
Intéressons'nous !aintenant au chrono!étrage <
Ce 0loc doit per!ettre
l’affichage du te!ps
chrono!étré expri!é
en heures !inutes
secondes et centie"!es
de seconde.
Co!!e nous pou&onsle &oir sur la figure %ui
suit
$ chronometra!e *
est un état co!posé de
%uatre états paralle"les.
Chacun de ces états
per!et le déco!pte
respecti&e!ent des
centie"!es de secondedes secondes des
!inutes et des heures.
8/19/2019 stfl Doc V3
93/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)+
Le déco!pte des centie"!es de seconde <
Lors%ue l’état $ compteurcentièmesec * est acti&é l’état C=csec est lui aussi acti&é.
La période du signal d’horloge est de :.:1s et la largeur d’i!pulsion est de @:K de la
période.
- cha%ue é&e"ne!ent $ clk * c’est'a"'dire a" cha%ue front !ontant du signal d’horloge
2tous les :.:1 s) les transitions 1 et + sont é&aluées. 9’a0ord la transition 1 et ensuite
la transition +.
La transition 1 est &alide lors%ue sur un front !ontant du signal d’horloge le no!0re
de centie"!es de seconde &aut . 9ans ce cas la &aria0le csec est initialisée.
Sinon a" cha%ue front !ontant du signal d’horloge la &aria0le $ csec * est incré!entée
d’une unité.
La sortie $ csecondes * affichée &aut $ csec * a" cha%ue instant %ue dure l’acti&ité de
l’état $ compteurWcentiemeWsec *.
;emarBue E il faut noter %u’ici l’ordre d’é&aluation de la &alidité des deux transitions
est i!portant. In&erser cet ordre ne conduit pas au résultat attendu. En effet si tel est
le cas un front !ontant du signal d’horloge sera tou7ours détecté ainsi la transitionde&enue la pre!ie"re sera tou7ours &alide alors %ue la deuxie"!e transition ne le sera
7a!ais.
8/19/2019 stfl Doc V3
94/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus),
Le déco!pte des secondes <
Pendant le déco!pte des centie"!es de seconde l’état $ attente * est acti&é. 9e"s %ue
centie"!es de seconde sont affichés l’état $ (sec * est acti&é. Le déco!pte des
secondes co!!ence. Il se fait de la !e(!e !anie"re %ue pour les centie"!es de seconde
tout co!!e les déco!ptes des !inutes et des heures.
#ous a&ons &u co!!ent réaliser le chrono!étrage et afficher le te!ps chrono!étré.
Ou’en est'il de la fonction
$ afficher le temps
intermédiaire et le nombre
de tours * b
8/19/2019 stfl Doc V3
95/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)>
oici une proposition de solution <
#ous distinguons ici deux états< un état d’initialisation et un état co!posite pour
l’affichage du te!ps inter!édiaire et du no!0re de tours.
L’affichage du te!ps inter!édiaire est o0tenu en figeant le te!ps chrono!étré. Pour
ce faire il suffit de désacti&er l’état $ tempsintermédiaire * lors de l’appui sur la
touche $ lap *. Se faisant on incré!ente d’une unité la &aria0le $ ? * dont la &aleur
correspondra au no!0re de tours effectués.
L’état d’initialisation est acti&é lors de l’appui sur le 0outon $ ;eset *. - cet instant la
&aria0le $ ? * &aut éro et l’affichage est initialisé.
-ffichons !aintenant l’explorateur de !ode" le <
9’un co( té l’ar0orescence co!ple"te du !ode" le est affichée
8/19/2019 stfl Doc V3
96/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)@
9e l’autre l’ense!0le des entrées sorties é&e"ne!ent pour chacun des diagra!!es <
Ici pour le
Chart1
8/19/2019 stfl Doc V3
97/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)B
Et ci'dessous pour le Chart+
8/19/2019 stfl Doc V3
98/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)?
.:.* P=+>3D< /0G?< P+3;M< >M?=/=;??
8/19/2019 stfl Doc V3
99/162
8/19/2019 stfl Doc V3
100/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)
En for!ulant l’hpothe"se de roule!ent
sans glisse!ent des galets par rapport au
sol on !ontre %ue le !ode"le in&erse
s’écrit <
&2;
8 8 ?8 8 ?8 8 ? 8 8 ?@ ABCBDE
Intéressons'nous !aintenant a" la co!!ande des !oteurs pour différents
déplace!ent de la platefor!e.
Co!pte tenu du para!étrage précédent nous affecterons la &aleur 1 a" la &aria0le 8i
associée a" la rotation d’une roue i lors%ue celle'ci tourne dans le sens direct '1 pour
une rotation dans le sens indirect et lors%ue la roue est a" l’arre( t.
-insi la platefor!e a&ancera sui&ant [ si < 81 R 8+ R 8, R 8> R '1
9’autre part on conside"rera %ue les !oteurs lors%u’ils tournent le font a" la !e(!e
&itesse.
L’interface Si!ulin5 se présente de la !anie"re sui&ante
8/19/2019 stfl Doc V3
101/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1::
n retrou&e les !ode"les associés au pupitre de co!!ande et a" la co!!ande des
!oteurs.
/n dou0le'clic sur le 0loc $ Pupitre de
commande * ou&re la fene(tre ci'contre<
La sortie 1 correspond a" la !ise en ser&ice de
la co!!ande des déplace!ents.
Les sorties repérées + a" 11 autorisent les dix
!ou&e!ents possi0les de la platefor!e <
longitudinaux latéraux diagonaux et de
rotation.
En sortie du 0loc $ Plateforme
8/19/2019 stfl Doc V3
102/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:1
Concernant !aintenant la
co!!ande des !oteurs un
dou0le'clic sur la 0loc$ Plateforme
8/19/2019 stfl Doc V3
103/162
8/19/2019 stfl Doc V3
104/162
8/19/2019 stfl Doc V3
105/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:>
Ensuite &ient le $ (hart * %ui reprend la structure &ue au chapitre ><
#ous disposons a" l’entrée du $ (hart * des trains d’i!pulsions $ impWcos * et
$ impWsin * %ui &ont per!ettre d’o0tenir en sortie la position angulaire $ SWposW!ros *
en radians %ui sera con&ertie en degrés. Le codeur déli&re @1+ périodes. /ne i!pulsion
correspond a" un %uart de période co!!e nous l’a&ons dé7a" &u.
9’ou" le diagra!!e <
n initialise la &aria0le de
co!ptage $ i *.
-pre"s détection d’une i!pulsion
on affiche la rotation en radians
du rotor du codeur.
- cha%ue i!pulsion le co!pteur
est incré!enté d’une unité.
La si!ulation d’une durée de :.:,s donne les résultats sui&ants <
3ro!
8/19/2019 stfl Doc V3
106/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:@
Pour une pulsation des signaux
sinusoT]daux de 1::π rad6s le
rotor du codeur a atteint ici une
position angulaire de ,@1>W.
8/19/2019 stfl Doc V3
107/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:B
Intéressons'nous !aintenant a" la déter!ination de la position fine a" partir de la
fonction arc'tangente.
Préparons l’interface Si!ulin5 correspondante<
Pour afficher la position angulaire fine du rotor du capteur il est nécessaire <
• de di&iser le sinus par le cosinus 20loc $ /i&ide * dans la 0i0liothe"%ue , Math
>perations * de Si!ulin5 ) et d’extraire l’angle a&ec la fonction arc'tangente
20loc $ atan * dans la 0i0liothe"%ue $ Math >perations * de Si!ulin5 )
• de connaT(tre le signe du sinus et du cosinus pour connaitre le %uadrant dans
le%uel se situe l’angle a" afficher 20loc $ Si!n * dans la 0i0liothe"%ue $ Math
>perations * de Si!ulin5 ).
Le résultat %ue donne la
fonction $ atan * !et
claire!ent en é&idence
son change!ent de
signe a" cha%ue %uart de
période des signaux
d’entrée tous les π6+
radians. n note aussi
une discontinuité
lors%ue le cosinus est
nul.
Par consé%uent la
position fine dépend du
signe du cosinus et du
signe du sinus %ui définit
ainsi le %uadrant d’é&olution de la position angulaire du rotor.
8/19/2019 stfl Doc V3
108/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:?
La sortie du 0loc $ Si!n *&aut 1 si son entrée est positi&e '1 si elle est négati&e sinon
elle &aut :.
Pour co!pléter l’interface Si!ulin5 nous
allons snthétiser les résultats de la
si!ulation dans un !e(!e $ Scope * en
utilisant le 0loc $ Mux * <
L’interface glo0ale aura alors l’allure sui&ante
8/19/2019 stfl Doc V3
109/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:A
L’interface Si!ulin5 !ise en place nous allons tracer le diagra!!e %ui per!et
d’o0tenir la position fine. Co!!e nous l’a&ons &u précéde!!ent il faut identifier les
%uatre %uadrants et adapter la position donnée par la fonction arc'tangente pour
chacun des %uadrants. L’opération consiste a" $ translater * les &aleurs retournées de π
ou +π sui&ant le cas.
/ne solution possi0le est donnée ci'dessous elle fait appel a" une fonction graphi%ue <
-pportons %uel%ues co!!entaires sur ce diagra!!e <
Si le sinus et le cosinus sont positifs la position é&olue dans le pre!ier %uadrant et &aut
la &aleur retournée par le 0loc $ atan * 7us%u’a" ce %ue le cosinus change de signe.
- l’instant ou" le cosinus change de signe la position é&olue dans le second %uadrant.
Il faut alors a7outer π a" la &aleur retournée par la fonction arc'tangente 7us%u’a" ce %ue
le sinus change de signe.
- l’instant ou" le sinus change de signe la position é&olue dans le troisie"!e %uadrant. Il
faut alors a7outer π a" la &aleur retournée par la fonction arc'tangente 7us%u’a" ce %ue le
cosinus change de signe.
- l’instant ou" le cosinus change de signe la position é&olue dans le %uatrie"!e %uadrant.
Il faut alors a7outer +π a" la &aleur retournée par la fonction arc'tangente 7us%u’a" ce %ue
le sinus change de signe.
Les %uatre %uadrants étant parcourus la &aria0le # est incré!entée d’une unité etc
Pre!ier %uadrant
9euxie"!e %uadrant roisie"!e %uadrant
Ouatrie"!e %uadrant
3onction graphi%ue
Initialisation des &aria0les
8/19/2019 stfl Doc V3
110/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1:
Pour la si!ulation nous allons choisir un sol&eur $ /iscrete * a" pas &aria0le a&ec un
pas !axi!al de :.:::1s. Ce sol&eur est adapté lors%ue le passage d’un état a" l’autre
doit se faire rapide!ent. 9e plus il di!inue le te!ps de calcul de la si!ulation <
La si!ulation donne les résultats sui&ants <
Pour cette si!ulation nous disposons entre deux positions grossie"res consécuti&es de
cin%uante positions fines inter!édiaires.
Les positions grossie" re et fine du rotor du codeur affichées en degrés sont données
ci'dessous
8/19/2019 stfl Doc V3
111/162
8/19/2019 stfl Doc V3
112/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)111
Chapitre >
Le $ Chart 28-EL-G)*
8/19/2019 stfl Doc V3
113/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)11+
(hapitre 1 ' Le $ Chart 28-EL-G) *.
Le $ (hart 2M3+45 * per!et d’utiliser directe!ent la sntaxe 8atla0 dans un état
ou dans l’éti%uette d’une transition. Il est donc possi0le de progra!!er des structures
algorith!i%ues de 0ase dans un état.
1:)* G;
Deprenons l’exe!ple de la régulation D de la te!pérature d’un four industriel <
n conside"re un régulateur D a&ec hstérésis.
#ous a&ions progra!!é la logi%ue de co!!ande en utilisant un $ @low (hart *
8/19/2019 stfl Doc V3
114/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)11,
Le résultat de la si!ulation était celui'ci <
#ous allons
reprendre le
sché!a'0locs et
re!placer le
$ (hart * par un
$ (hart2M3+45 *.
Il faut créer l’entrée $ u * et la sortie $ S * du $ (hart2M3+45 *. Pour ce faire lancer
l’explorateur de !ode"le et les insérer dans le !ode" le
8/19/2019 stfl Doc V3
115/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)11>
Deconstruire le sché!a'0locs <
/n dou0le'clic sur le $ (hart 2M3+4) * per!et de l’ou&rir <
L’ico(ne 8-L- apparait en
0as a" gauche de la fene(tre
indi%uant ainsi la nature du
$ (hart *.
n retrou&e les !e(!es o07ets
graphi%ues %ue ceux utilisés
pour le tracé d’un diagra!!e
$ ordinaire *.
#ous allons créer un état dans le%uel nous allons saisir les lignes de code 8atla0
correspondant au co!porte!ent logi%ue du régulateur D a&ec hstérésis.
9ans le cas précédent nous a&ions utilisé une structure $ =f*elseif' *. #ous allons faire
de !e(!e ici en respectant la sntaxe 8atla0
8/19/2019 stfl Doc V3
116/162
8/19/2019 stfl Doc V3
117/162
8/19/2019 stfl Doc V3
118/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)11?
(hapitre # ' La $ State Eransition Ea0le *.
Intéressons'nous !aintenant a" la ta0le état'transition.
-pre"s un glissé'déposé un dou0le'clic sur le 0loc , State 3ransition 3able * ou&re la
fene(tre sui&ante <
Par défaut la ta0le co!porte deux lignes et trois colonnes. 9ans la pre!ie"re colonne
sont représentés les états. 9ans la seconde et la troisie"!e seront définies les
transitions.
Il est possi0le d’a7outer des lignes et des colonnes en cli%uant sur les ico(nes
8/19/2019 stfl Doc V3
119/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)11A
Lors%u’on inse"re une ligne il est possi0le de prendre en co!pte la hiérarchie des états
insérés <
/n clic sur l’ico(ne du !enu per!et la &isualisation du diagra!!e tracé.
Par défaut <
Exe!ple non pris en co!pte dans
le tracé du diagra!!e.
8/19/2019 stfl Doc V3
120/162
8/19/2019 stfl Doc V3
121/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+:
Pour construire un état co!posite il faut introduire des états enfants 2$ (hild State
;ow *) <
Cli%uer sur l’état , et insérer deux états enf ants et les transitions sui&antes <
Les actions associées aux états se saisissent directe!ent dans les états en utilisant les
!ots'clés correspondants <
Etat co!posite !as%ué
8/19/2019 stfl Doc V3
122/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+1
#ous &enons de &oir succincte!ent les principes de 0ase de la construction d’une ta0le
état'transition.
Concentrons'nous désor!ais sur l’application %ui suit
#:)*
8/19/2019 stfl Doc V3
123/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1++
Ce codeur posse"de trois &oies < une &oie - et
une &oie en %uadrature une &oie
per!ettant le co!ptage des tours du dis%ue.
La résolution de ce codeur est de @:: points
par tour.
L’o07ectif de cette application est de déter!iner la position angulaire du dis%ue en
fonction des signaux - et reNus. n conside"re %ue ces signaux sont des signaux carrés.
Le déco!pte du no!0re de tours n’est pas a0ordé ici.
Préparons l’interface Si!ulin5 <
Ce !ode"le co!prend les signaux - et en %uadrature des 0locs per!ettant la
détection des fronts !ontants et descendants sur ces signaux la ta0le état'transition
un con&ertisseur du no!0re d’i!pulsions en degrés et l’affichage de l’angle de rotationdu dis%ue.
9éfinition des signaux - et 20loc $ Pulse Denerator * dans le !enu $ Sources * de
Si!ulin5 )
8/19/2019 stfl Doc V3
124/162
8/19/2019 stfl Doc V3
125/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+>
Pour la déter!ination de l’angle de rotation du dis%ue on propose le diagra!!e état'
transition sui&ant <
Il s’agit de !ettre en place un
co!pteur en introduisant la
&aria0le i %ui est incré!entée a" la
détection d’un front sur - ou .
/n calcul rapide per!et de&alider la si!ulation. En effet la
période des signaux étant de :.1 s
une si!ulation sur 1: s géne"re >
i!pulsions fois 1:: soit >::
i!pulsions. En con&ertissant le
no!0re d’i!pulsions en degrés
on trou&e une rotation du dis%ue
%ui &aut +AAW.
Ce %ue donne 0ien la si!ulation a&ec le diagra!!e précédent
8/19/2019 stfl Doc V3
126/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+@
8et tons !aintenant en place la ta0le état'transition
8/19/2019 stfl Doc V3
127/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+B
La si!ulation donne 0ien le résultat attendu
8/19/2019 stfl Doc V3
128/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+?
Chapitre B
La $ Eruth Ea0le *
8/19/2019 stfl Doc V3
129/162
Ph. Hautcoeur Stateflow ®: modélisation et simulation des systèmes discrets (et continus)1+A
(hapitre $ ' La $ Eruth Ea0le *.
Si le sste"!e