Académique Documents
Professionnel Documents
Culture Documents
Démarrage Matlab
• Ouvrir MATLAB
Double-clic sur l’icone
• Utiliser Simulink
Taper simulink dans la fenêtre MATLAB 3
Introduction à Simulink
Produits MATLAB
Stateflow Coder
Systèmes de
Systèmes de Navigation
Communications
Satellites
Systèmes Aéronautiques
Systèmes
Biologiques
Systèmes
Monétaires
Systèmes Automobiles 6
Introduction à Simulink
7
Introduction à Simulink
Generation des Signaux
• Pour ouvrir une bibliothèque, double cliquer sur les blocs :
8
Introduction à Simulink
Visualisation des Signaux
9
Introduction à Simulink
Systèmes Continus
10
Introduction à Simulink
Systèmes Discrets
11
Introduction à Simulink
Fonctions et Tables
12
Introduction à Simulink
Opérations Mathématiques
13
Introduction à Simulink
Non-Linéarités
14
Introduction à Simulink
Gestion des Signaux & Systèmes
15
Introduction à Simulink
Sous-Systèmes
16
Introduction à Simulink
Blocs Additionnels
17
Introduction à Simulink
Introduction à Simulink
19
Introduction à Simulink
MATLA
B
20
Introduction à Simulink
21
Introduction à Simulink
22
Introduction à Simulink
MATLA
B
23
Introduction à Simulink
24
Introduction à Simulink
25
Introduction à Simulink
26
Introduction à Simulink
MATLA
B
27
Introduction à Simulink
28
Introduction à Simulink
29
Introduction à Simulink
30
Introduction à Simulink
MATLA
B
31
Introduction à Simulink
MATLA
B
32
Introduction à Simulink
MATLA
B
33
Introduction à Simulink
MATLA
B
34
Introduction à Simulink
Exemple 1 de simulation avec
Simulink :
Système à simuler
2) La deuxième partie de l’équation est sous forme de somme de termes il faut donc
utiliser un bloc, dont les entrées sont ces termes et la sortie est la plus haute dérivée
B
36
Introduction à Simulink
3) Calcul de la dérivée de plus haut degré, on peut utiliser un gain si c’est nécessaire :
MATLA
Gain
4) Insérer un intégrateur pour calculer la valeur de v :
B
Intégrateur
Introduction à Simulink
5) Créer le signal de feedback :
MATLA
B
Gain de feedback
38
Introduction à Simulink
39
Introduction à Simulink
EXERCICE :
MATLA
Refaire la simulation du même exemple précédemment avec Simulink
Rappel du modèle mathématique :
Le bloc Saturation
Le bloc To Workspace
Impression
Sélection des
signaux pour le
Zoom en X et Y scope volant
Scope volant
Zoom en X Restore à l’échelle
de l’axe courant
Zoom en Y
Sauvegarde de l'échelle
courante comme échelle
Mise à l’échelle par défaut, pour les
automatique Simulations à venir
Paramétrage des Blocs
Simulation
Paramètres de Simulation
Les paramètres de la simulation sont saisis dans la fenêtre ci-
dessous obtenue par le menu « Simulation/Parameters » du
système étudié :
Instant de départ
de la simulation
Instant final de
simulation
Paramètres
spécifiques Choix du Solver
au solver (continus, discrets,
choisi pas fixe ou variable)
Simulation
Paramètres de Simulation
Solvers à pas fixe Solvers à pas variable
• Noms : • Noms :
• discrete (pour les systèmes • discrete (pour les systèmes
purement discrets) purement discrets)
• ode5, ode4, ode3, ode2, ode1 • ode45, ode23, ode113 (pour les
(pour les systèmes hybrides) systèmes hybrides non raides)
• ode15s, ode23s, ode23t, ode23tb
(pour les systèmes hybrides raides)
• Paramètres : • Paramètres :
• Fixed step size (pas fixe • Max step size (pas maximum
d ’intégration pour toute la d’intégration)
simulation) • Initial step size (pas initial de
• Mode (mono ou multi-tâches) l ’intégration) Critères
• Relative tolerance d ’adaptation du
pas d ’intégration
• Absolute tolerance au cours de la
simulation
Simulation
Paramètres de Simulation
Courbe non-lisse
Simulation
Choix du Step Size et des Tolerances
• Si le Max Step Size est en
mode ‘auto’, Simulink calcule
le step size comme suit
tstop tstart
h
50
• Le choix d’un step size petit
permet d’avoir une meilleure
résolution
erreur en x
1e3
x
erreur en x 1e - 6
Courbe lisse
Simulation
Gestion de la Simulation
Exécution :
- menu Simulation/Start
- bouton Play
Arrêt :
- menu Simulation/Stop
- bouton Stop
- automatique lorsque le
temps final de simulation
est atteint
d 2x dx
2
0.3 0.2x u
dt dt
U(s)
X (s) 2
s 0.3s 0.2
Simulation
Exemples
Modulateur/Démodulateur
• Créer un signal modulé en amplitude :
• Utiliser un signal en dent de scie unitaire comme source.
• Utiliser un signal sinusoïdal d’amplitude 1 et de pulsation 100
signal modulé =Source x Porteuse
Créer un filtre discret représenté par l’équation 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 résultant avec le filtre ci-dessus.
• Observer le signal transmis ainsi que la sortie du filtre.
Simulation
Solution
Simulation
Exemples
Canal de communication
>> whos
Name Size Bytes Class
Les blocs :
Sum
Product
Gain
Data type Conversion
permettent de gérer le
dépassement du type entier.
Types de Données
• Opérations sur les différents types
Simulation
Debugger
• Le Debugger Graphique
Tools/Simulink Debugger
Simulation
Debugger
• Le Debugger Graphique (cont)
Affichage des entrées/sorties du
Exécution des blocs Arrêt du mode bloc sélectionné même si celui ci
pas-à-pas pour un debugger n'est pas en cours d'évaluation
temps de simulation
fixé
Construction de Sous-Systèmes
•Sélectionner •Il est possible d’annuler (Undo) les effets
les blocs à jusqu'à 101 exécutions consécutives par le
regrouper avec choix menu Edit/Undo. Les opérations
la souris (liens pouvant être annulées sont :
d’entrée et de
sortie inclus) •Ajouter, effacer, ou déplacer un bloc, une
ligne ou une annotation
• Éditer un nom de bloc
•Grouper avec
le menu • Créer un sous-système
Edit/Create •Pour dégrouper sélectionner le
Subsystem menu Edit/Undo Create
Maintenant, un Subsystem
nouveau bloc
remplace tous les
blocs qui étaient
sélectionnés. Le
nom de ce
nouveau bloc est
par défaut
Subsystem
Construction de Blocs
Construction de Sous-Systèmes
Double-clic
Construction de Blocs
Paramétrage
Les blocs peuvent être paramétrés : les valeurs sont remplacées par des variables
MATLAB. Ces variables doivent être définies dans MATLAB avant le lancement de la
simulation.
Masquage
Le masquage permet de :
• Changer les caractéristiques d'un bloc. Par exemple, un bloc
Zero-Pole peut être transformé en filtre de Butterworth
• Personnaliser et simplifier des modèles
Masquage
Construction de Blocs
Masquage
Le résultat du masquage est le suivant :
Double-clic
Construction de Blocs
Masquage
La commande « iconedit » permet de construire une icône graphique : le champ
du masque "Drawing commands" est complété automatiquement avec la
commande plot :
>> iconedit
Name of block window: modele2 nom dufichier
Name of block: FT et Saturation nom au-dessous du bloc (respecter
les majuscules, minuscules, et blancs)
Construction de Blocs
Bibliothèques
• Vocabulaire
Library : ensemble de blocs. Une bibliothèque est créée
uniquement avec le menu File/New/Library d'une fenêtre
SIMULINK.
Bibliothèques
• Créer une Bibliothèque
•Créer une bibliothèque avec le
menu File/New/Library.
•Placer le bloc FT et Saturation,
et sauvegarder la bibliothèque
sous le nom : biblio_perso.mdl.
Bibliothèques
• Copier un bloc-library dans un modèle
En copiant un bloc-library dans un modèle, un lien est créé entre le
bloc-library et le bloc-référence. Les paramètres du bloc sont
modifiables, mais pas son masque, ni le contenu du sous-système s'il
existe.
• Rechercher la bibliothèque
Pour retrouver le bloc-library auquel est lié le bloc-référence, utiliser le
menu Edit/Go To Library Link du modèle. Alors, la bibliothèque est
ouverte avec le bloc-library déjà sélectionné.
Construction de Blocs
Bibliothèques
• Référencer sa propre bibliothèque dans
l’interface Simulink
•Pour utiliser sa propre bibliothèque au même titre que les bibliothèques de base
de SIMULINK, il faut la référencer. Pour cela, il faut ajouter, dans le répertoire où
se trouve la bibliothèque, le fichier slblocks.m que l’on aura personnalisé.
Lisibilité
• Noms des fils
Pour clarifier un modèle de taille importante, les fils peuvent porter un
nom. Ce nom est propagé dans le modèle lorsqu'il passe à travers les
blocs suivants :
Demux, Enable, From, Inport, Mux, Selector, Subsystem.
Lisibilité
• Noms des fils (cont.)
Construction de Blocs
Lisibilité
• Navigateur du modèle
•Le navigateur du modèle, à l’identique du navigateur SIMULINK, permet de se
déplacer dans l’arborescence du modèle parmi les sous-systèmes.
Pour activer cette option, il faut cliquer sur View/Model Browser Options/Model
Browser puis sur View/Model Browser Options/Look Under Masks si certains
blocs sont masqués. L'autre possibilité est de cliquer sur l'icône Toggle model
browser (1) puis sur l'icône « Browse masked subsystems » (2).
2 1
Construction de Blocs
Lisibilité
• Zoom sur le modèle
•Le zoom sur le modèle est accessible à partir du même menu que
précédemment : View/Zoom In (touche R) et View/Zoom Out (touche V)
Lisibilité
• Bloc d’Informations
Le bloc Model Info regroupe toutes les informations nécessaires à
l’identification du modèle : date, auteur, version, mise à jour, etc. Ces
différents champs auront été complétés au préalable dans le menu
File/Model Properties.
Construction de Blocs
Lisibilité
• Bloc d’Informations (cont.)
Etude à Partir de MATLAB
>> simplot(sortie)
Construction de Blocs
Simulation
•La simulation peut être lancée à partir de MATLAB avec les
commandes suivantes :
sim Simulation
simset Définition des paramètres de la simulation
simget Lecture des paramètres de la simulation
Syntaxe de "sim" :
>> [t,x,y] = sim('modèle',timespan)
>> [t,x,y] = sim('modèle',timespan,options,ut)
>> [t,x,y1,...,ym] = sim('modèle',timespan,options,ut)
avec : modèle : nom du modèle
timespan : instant de départ et instant final de la simulation : [TStart TFinal]
options : paramètres de simulation définis par la commande simset
ut : tableau de valeurs définissant les entrées externes : [t,u(1),u(2),...]
Construction de Blocs
Simulation
Syntaxe de "simset" :
>> options = simset
>> options = simset(champ,valeur,...)
>> options = simset(anciennes_options,champ,valeur,...)
avec : champ : nom du champ
valeur : valeur associée au champ
Syntaxe de "simget" :
>> struct_options = simget('modèle',timespan)
>> valeur_options = simget('modèle',champ)
avec : modèle : nom du modèle
champ : nom du champ désiré
struct_options : structure représentant les options
valeur_options : valeur de l ’une des options
Construction de Blocs
Simulation
•Reprendre le modèle précédent en ajoutant un bloc Outport pour indiquer la
sortie, puis taper :
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 'modèle' : nom du modèle à linéariser
x,u : le point de fonctionnement autour duquel le modèle linéaire doit être
extrait est défini par le vecteur d'états x et le vecteur d'entrées u.
pert : amplitude de la perturbation appliquée sur les entrées et les états.
Linéarisation
Exemple :
>>[A,B,C,D]=linmod('modele5',2,0)
>> [A,B,C,D]=linmod('modele5');
>> bode(A,B,C,D)
Année universitaire 2006 -2007.
Construction de Blocs
fprintf('Diagramme\nde Bode')
>> set_param('modele6/Bode','OpenFcn',...
'[A,B,C,D]=linmod(''modele6'');bode(A,B,C,D)')
Construction de Blocs
Commandes de construction
•Des commandes sont utilisées à partir de MATLAB pour modifier un
modèle :
Commandes de construction
Exemple :
En reprenant le bouton qui crée le diagramme
de Bode, dans le modèle modele6.
Remarque : dans le cas où l’on dispose de la toolbox CONTROL, SIMULINK donne accès à un champ
appelé Linear Analysis dans le menu Tools. Cet outil est une I.H.M. d’analyse temporelle/fréquentielle
permettant une étude complète dans ces domaines en restant dans le même environnement. Il est
nécessaire d’insérer dans le modèle des points d’accès pour les entrées/sorties de la linéarisation. Ceci
nous permet, entre autre, de réaliser un diagramme de Bode directement à partir du modèle.
Moteur à Courant Continu
Equations Physiques
En mécanique, le couple en sortie du moteur s'écrit sous la forme suivante :
: couple en N.m
d t J : inertie en kg.m2
t J f t : vitesse angulaire en rad.s-1
dt
f : coef. de frottement visqueux en N.m.s
Données numériques :
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
Construction de Blocs
Modélisation
• Représentation d’état du système (cont.)
Le modèle suivant est créé :
>> J = 0.1;
>> f = 0.01;
>> Kc = 0.5;
>> Ke = 0.1;
>> r = 0.1;
>> L = 0.5;
Construction de Blocs
Modélisation
• Représentation d’état du système (cont.)
Les paramètres de simulation sont les suivants :
Construction de Blocs
Modélisation
• Représentation d’état du système (cont.)
Xmax
X0
Exercice :
Modélisation
• Représentation sous forme de schémas-blocs
d t
J f t Kc It
Les équations du moteur sont : dt
dIt
r It L Ut Ke t
dt
Modélisation
• Représentation sous forme de schémas-blocs
Modélisation
• Validation des modèles
Modélisation
•Validation des modèles (cont.)
Il nous reste à créer le modèle avec
les 3 blocs Sine Wave, Configurable
Subsystem et Scope, puis configurer
le sous-système comme ci-contre.
La saturation insérée en entrée du modèle ne permet pas d’utiliser les méthodes issues de la théorie
linéaire pour le calcul des coefficients du PID (méthode de Ziegler-Nichols par exemple). Nous avons donc
recours à une méthode d ’optimisation numérique.
Construction de Blocs
>> Kp=1;
>> Ki=0;
>> Kd=0;
>> [t,x,y]=sim(‘ pid_process ’,35);
>> plot(t,y);grid
Construction de Blocs
Exemple :
>> f_erreur([1 0 0])
ans =
1.5585
Présentation
Un sous-système à exécution conditionnelle
permet de simuler des modèles SIMULINK sur
événement :
• Utilisation du IF/ELSE
Sous-systèmes à exécution conditionnelle
• Utilisation du SWITCH/CASE
Sous-systèmes à exécution conditionnelle
Exercice 1
• Modifier le modèle pour que le stockage des valeurs soit
déclenché lorsque le signal passe au-dessus de 0.6 et
arrêté lorsque le signal passe au-dessous de la valeur 0.
• Comment obtenir cet affichage (voir graphique ci-
dessous) : le trait épais représente la sortie du système
"enabled".
1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 5 10 15 20
Sous-systèmes à exécution conditionnelle
Exemple
Résoudre 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 modèle correspondant est présenté sous
deux formes différentes, l'une utilisant le bloc
Algebraic Constraint et l'autre non :
Exemple
Ces deux valeurs sont réellement 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
Boucles Algébriques
Exercice 2