(EMI) Formation Simulink
(EMI) Formation Simulink
(EMI) Formation Simulink
Formation Simulink
Sommaire
Introduction 1
Les Bibliothques de Simulink 11
Construction de systmes 23
Simulation 39
Construction de blocs 65
Etude partir de MATLAB 83
Moteur Courant Continu 97
Sous systmes excution conditionelle 115
Boucles algbriques 125
S-function 129
Exercice : rebond d'une balle 153
1. Introduction
Simulink Introduction - 2
Ouvrir MATLAB
Double-clic sur licone
Utiliser Simulink
Taper simulink dans la fentre MATLAB
Stateflow Coder
Systmes Aronautiques
Systmes
Biologiques
Systmes
Montaires
Systmes Automobiles
Anne universitaire 2006 -2007
Simulink Introduction - 7
>> simulink
et le navigateur SIMULINK
apparat.
Icne
SIMULINK
>> simulink3
2. Les Bibliothques
de Simulink
Simulink Les Bibliothques - 12
2.1 Gnration des Signaux
Pour ouvrir une bibliothque, double cliquer sur les blocs :
2.7 Non-Linarits
3. Construction de
Systmes
Simulink Construction de Systmes - 24
Le bloc Saturation
Le bloc To Workspace
Impression
Slection des
signaux pour le
Zoom en X et Y scope volant
Scope volant
Zoom en X Restore lchelle
de laxe courant
Zoom en Y
Sauvegarde de l'chelle
courante comme chelle
Mise lchelle par dfaut, pour les
automatique Simulations venir
Anne universitaire 2006 -2007
Simulink Construction de Systmes - 37
4. Simulation
Simulink Simulation - 40
Instant de dpart
de la simulation
Instant final de
simulation
Paramtres
spcifiques Choix du Solver
au solver (continus, discrets,
choisi pas fixe ou variable)
Paramtres : Paramtres :
Fixed step size (pas fixe Max step size (pas maximum
d intgration pour toute la dintgration)
simulation) Initial step size (pas initial de
Mode (mono ou multi-tches) l intgration) Critres
Relative tolerance d adaptation du
pas d intgration
Absolute tolerance au cours de la
simulation
Anne universitaire 2006 -2007
Simulink Simulation - 42
Courbe non-lisse
erreur en x
< 1e 3
x
erreur en x < 1e - 6
Courbe lisse
Excution :
- menu Simulation/Start
- bouton Play
Arrt :
- menu Simulation/Stop
- bouton Stop
- automatique lorsque le
temps final de simulation
est atteint
Anne universitaire 2006 -2007
Simulink Simulation - 45
Exemples
Equation de Mathieu :
d 2 x( t )
2 = 2
(1 + cos( t )) x( t )
dt
Exemples (cont.)
Oscillateur
Construire et comparer les schmas-blocs correspondant aux
quations ci-dessous :
d 2x dx
2 + 0.3 + 0.2 x = u
dt dt
U ( s)
X ( s) = 2
s + 0.3s + 0.2
0 1 0
x& = x + u
0.2 0.3 1
y = [1 0] x
Anne universitaire 2006 -2007
Simulink Simulation - 49
Exemples (cont.)
Modulateur/Dmodulateur
Crer un signal modul en amplitude :
Utiliser un signal en dent de scie unitaire comme source.
Utiliser un signal sinusodal damplitude 1 et de pulsation 100
signal modul =Source x Porteuse
Crer un filtre discret reprsent par lquation suivante :
y(n)-1.6y(n-1)+0.7y(n-2) = 0.04u(n)+0.08u(n-1)+0.04u(n-2)
Utliser le signal modul comme source.
Multiplier le signal transmis par une forme discrete de la
porteuse (frequency=100, sample time=5 ms)
Filtrer le signal rsultant avec le filtre ci-dessus.
Observer le signal transmis ainsi que la sortie du filtre.
Solution
Exemples (Cont.)
Canal de communication
Implanter la dynamique dun canal de communication :
Utiliser
un bruit Additive "noise corruption" avec une variance de
0.01
un bloc delay avec une taille buffer de 1024
lquation dcrivant la dynamique du canal
10 9 &y& + 10 3 y& + y = u
Utiliser le signal modul de lexemple prcdent.
Observer la sortie
Essayer differents solvers
Solution:
>> whos
Name Size Bytes Class
Les blocs :
Sum
Product
Gain
Data type Conversion
permettent de grer le
dpassement du type entier .
4.6 Debugger
Le Debugger Graphique
Tools/Simulink Debugger
5. Construction de
Blocs
Simulink Construction de Blocs - 66
5.1 Construction de Sous-Systmes
Slectionner Il est possible dannuler (Undo) les effets
les blocs jusqu' 101 excutions conscutives par le
regrouper avec choix menu Edit/Undo. Les oprations
la souris (liens pouvant tre annules sont :
dentre et de
sortie inclus) Ajouter, effacer, ou dplacer un bloc, une
ligne ou une annotation
diter un nom de bloc
Crer un sous-systme
Grouper avec
le menu Pour dgrouper slectionner le
Edit/Create menu Edit/Undo Create
Subsystem Subsystem
Maintenant, un
nouveau bloc
remplace tous les
blocs qui taient
slectionns. Le
nom de ce
nouveau bloc est
par dfaut
Subsystem Anne universitaire 2006 -2007
Simulink Construction de Blocs - 67
Double-clic
5.2 Paramtrage
Les blocs peuvent tre paramtrs : les valeurs sont remplaces par des variables
MATLAB. Ces variables doivent tre dfinies dans MATLAB avant le lancement de la
simulation.
5.3 Le Masquage
Le masquage permet de :
Changer les caractristiques d'un bloc. Par exemple, un bloc
Zero-Pole peut tre transform en filtre de Butterworth
Personnaliser et simplifier des modles
Double-clic
5.4 Bibliothques
Vocabulaire
Rechercher la bibliothque
Pour retrouver le bloc-library auquel est li le bloc-rfrence, utiliser le
menu Edit/Go To Library Link du modle. Alors, la bibliothque est
ouverte avec le bloc-library dj slectionn. Anne universitaire 2006 -2007
Simulink Construction de Blocs - 76
5.5 Lisibilit
Noms des fils
Pour clarifier un modle de taille importante, les fils peuvent porter un
nom. Ce nom est propag dans le modle lorsqu'il passe travers les
blocs suivants :
Demux, Enable, From, Inport, Mux, Selector, Subsystem.
2 1
6. Etude Partir de
MATLAB
Simulink Etude Partir de MATLAB - 84
>> whos
Name Size Bytes Class
sortie 1x1 1476 struct array
>> simplot(sortie)
Syntaxe de "sim" :
>> [t,x,y] = sim('modle',timespan)
>> [t,x,y] = sim('modle',timespan,options,ut)
>> [t,x,y1,...,ym] = sim('modle',timespan,options,ut)
avec : modle : nom du modle
timespan : instant de dpart et instant final de la simulation : [TStart TFinal]
options : paramtres de simulation dfinis par la commande simset
ut : tableau de valeurs dfinissant les entres externes : [t,u(1),u(2),...]
Syntaxe de "simget" :
>> struct_options = simget('modle',timespan)
>> valeur_options = simget('modle',champ)
avec : modle : nom du modle
champ : nom du champ dsir
struct_options : structure reprsentant les options
valeur_options : valeur de l une des options
Anne universitaire 2006 -2007
Simulink Etude Partir de MATLAB - 88
6.4 Linarisation
A partir d'un modle SIMULINK, il est possible d'extraire une
reprsentation dtat par linarisation autour d'un point de fonctionnement
donn :
X& = AX + BU
Y = CX + DU
Syntaxe :
>> [A,B,C,D] = linmod('modele')
>> [A,B,C,D] = linmod('modele',x,u)
>> [A,B,C,D] = linmod('modele',x,u,pert)
avec 'modle' : nom du modle linariser
x,u : le point de fonctionnement autour duquel le modle linaire doit tre
extrait est dfini par le vecteur d'tats x et le vecteur d'entres u.
pert : amplitude de la perturbation applique sur les entres et les tats.
>>[A,B,C,D]=linmod('modele5',2,0)
>> [A,B,C,D]=linmod('modele5');
>> bode(A,B,C,D)
Anne universitaire 2006 -2007.
Simulink Etude Partir de MATLAB - 92
fprintf('Diagramme\nde Bode')
>> set_param('modele6/Bode','OpenFcn',...
'[A,B,C,D]=linmod(''modele6'');bode(A,B,C,D)')
Remarque : dans le cas o lon dispose de la toolbox CONTROL, SIMULINK donne accs un champ
appel Linear Analysis dans le menu Tools. Cet outil est une I.H.M. danalyse temporelle/frquentielle
permettant une tude complte dans ces domaines en restant dans le mme environnement. Il est
ncessaire dinsrer dans le modle des points daccs pour les entres/sorties de la linarisation. Ceci
nous permet, entre autre, de raliser un diagramme de Bode directement partir du modle.
Anne universitaire 2006 -2007
Simulink
7. Moteur
Courant Continu
Simulink Etude dun Moteur Courant Continu - 98
Donnes numriques :
J : 0.1 kg.m2 Kc : 0.5 N.m.A -1 r : 0.1
f : 0.01 N.m.s Ke : 0.1 N.m.A-1 L : 0.5 H
Anne universitaire 2006 -2007
Simulink Etude dun Moteur Courant Continu - 99
7.2 Modlisation
Reprsentation dtat du systme
Les quations peuvent tre mises sous la forme suivante :
J & ( t ) + f ( t ) = Kc I ( t )
r I ( t ) + L I&( t ) = U ( t ) Ke ( t )
f Kc
& ( t ) = ( t ) + I( t )
J J
()
&I( t ) = Ke ( t ) r I( t ) + U t
L L L
f Kc
0
d ( t ) J J ( t ) + U (t )
= r I (t ) 1
dt I ( t ) Ke
L
L L
( t )
[
(t) = 1 0 ]I ( t ) + 0 U (t)
Anne universitaire 2006 -2007
Simulink Etude dun Moteur Courant Continu - 100
>> J = 0.1;
>> f = 0.01;
>> Kc = 0.5;
>> Ke = 0.1;
>> r = 0.1;
>> L = 0.5;
Anne universitaire 2006 -2007
Simulink Etude dun Moteur Courant Continu - 101
Xmax
X0
Exercice :
d ( t )
J + f ( t ) = Kc I( t )
Les quations du moteur sont : dt
dI( t )
r I( t ) + L = U( t ) Ke ( t )
dt
La saturation insre en entre du modle ne permet pas dutiliser les mthodes issues de la thorie
linaire pour le calcul des coefficients du PID (mthode de Ziegler-Nichols par exemple). Nous avons donc
recours une mthode d optimisation numrique.
Anne universitaire 2006 -2007
Simulink Etude dun Moteur Courant Continu - 108
>> Kp=1;
>> Ki=0;
>> Kd=0;
>> [t,x,y]=sim( pid_process ,35);
>> plot(t,y);grid
>> etud_param
Exemple :
>> f_erreur([1 0 0])
ans =
1.5585
8. Sous-systmes
excution conditionnelle
Simulink Sous-systmes excution conditionnelle - 116
8.1 Prsentation
Un sous-systme excution conditionnelle
permet de simuler des modles SIMULINK sur
vnement :
Utilisation du IF/ELSE
Utilisation du SWITCH/CASE
Exercice 1
Modifier le modle pour que le stockage des valeurs soit
dclench lorsque le signal passe au-dessus de 0.6 et
arrt lorsque le signal passe au-dessous de la valeur 0.
Comment obtenir cet affichage (voir graphique ci-
dessous) : le trait pais reprsente la sortie du systme
"enabled".
1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 5 10 15 20
9. Boucles Algbriques
Simulink Boucles Algbriques - 126
Exemple
Rsoudre f(z) = 0 avec f(z) = 3 + z - exp(z)
Cette quation a deux solutions. Avec le bloc
Algebraic Constraint, il est possible de donner
une valeur initiale pour permettre l'algorithme
de se diriger vers une des solutions voulues.
Le modle correspondant est prsent sous
deux formes diffrentes, l'une utilisant le bloc
Algebraic Constraint et l'autre non :
Exemple (cont.)
Ces deux valeurs sont rellement les solutions de
l'quation f(z)=0 :
>> z=yout(end,:)
z =
-2.9475 1.5052
>> Fz=3+z-exp(z)
Fz =
1.0e-015 *
-0.1943 0
Exercice 2
10. S-Functions
Simulink S-Functions - 130
10.1 Introduction
Une S-Function dfinit la dynamique dun systme. Il
existe diffrent types de S-Functions :
M-file Fonction en
S-Function language MATLAB
MEX-file Fonction en
S-Function language C
Anne universitaire 2006 -2007
Simulink S-Functions - 131
avec :
x : les tats continus xc et discret xd
u : les entres
[]
x =
xc
xd
0.0 0.0
t : le temps te1 Offset1
t = te2 Offset2
. . . . . .
ten Offsetn
Anne universitaire 2006 -2007
Simulink S-Functions - 133
Flag = 3
Calcul des sorties
mdlOutputs
Flag = 2
Mise jour des tats discrets
mdlUpdate
Phase
dintgration
Mise jours des tats continus drivs Flag = 1
mdlDerivatives
Flag = 3
Calcul des sorties mdlOutputs
Flag = 9
Termine la simulation mdlTerminate
Anne universitaire 2006 -2007
Simulink S-Functions - 134
x0 =
2 conditions initiales de ltat integrator1
0 conditions initiales de ltat integrator2
xstr =
vdp/x1 le premier tat sappelle x1
vdp/x2 le deuxime tat sappelle x2
ts =
0 0 le systme est continu
x0 =
2 conditions initiales de l tat integrator1
0 conditions initiales de l tat integrator2
0 Conditions initiales de la fonction de
0 transfert discrte d ordre 2
xstr =
vdp/x1 le premier tat sappelle x1
vdp/x2 le deuxime tat sappelle x2
vdp/Discrete Transfert Fcn
vdp/Discrete Transfert Fcn
ts =
0 0 partie continue
0.700 0.0200 partie discrte
Initialisation - mdlInitializeSizes
- mdlInitializeSampletimes
- mdlInitializeConditions
Calcul des sorties - mdlOutputs
Mise jour des tats discrets - mdlUpdate
Calcul du prochain temps - mdlGetTimeOfNextVarHit
dappel (option)
Mise jour des tats - mdlDerivatives
continus drivs
Tches de fin de simulation - mdlTerminate
Il existe galement des macros pour lire ces valeurs (prfix ssGet)
Double clic
Le modle modele_graphique
correspond la reprsentation
sous forme de bloc graphique
Le modle modele_sfunc_m
correspond la S-Function
en langage MATLAB :
Le modle modele_sfunc_c
correspond la S-Function en
langage C :
10.9 Exercice
crivez une S-Function pour crer un bloc ayant deux ports dentres
et un port de sortie. La largeur des ports dentre et du port de sortie
est identique.
Le vecteur de sortie est la somme des deux vecteurs dentres
Exercice :
Rebond dune Balle
Simulink Exercice : Rebond dune Balle - 154
Modliser la chute libre d'une balle sur un sol, sachant que la hauteur
initiale est de 10 m, la vitesse initiale est de 5m/s vers le haut et
l'amortissement du sol est de 0.8
Complter le modle de manire ce que la simulation s'arrte
lorsque l'amplitude des rebonds est "faible" (par exemple, amplitude
infrieure 5 cm)
Complter le modle pour reprsenter une balle qui se dplace dans
un plan vertical avec une vitesse initiale colinaire au sol de 0.1 m/s,
entre les abscisses 0 m et 5 m. Utiliser le bloc XY Graph pour
l'affichage. Les murs sont considrs sans amortissement
Complter le modle pour reprsenter une balle qui se dplace dans
un cube dont les quatre murs sont placs 5 m l'un de l'autre. La balle
est place l'origine une hauteur de 10 m. Les murs sont considrs
sans amortissement. Puis, crer une S-Function en langage MATLAB
pour l'affichage
Relation Fondamentale
Z de la Dynamique :
V0
m = Fext
z0
g Donnes Numriques :
z0 = 10 m
sol
V0 = 5 m.s-1