Introduction au Logiciel Simulink
1
Introduction
• SIMULINK est un logiciel muni d’une interface graphique, intégré à l’environnement
MATLAB, permettant de représenter les fonctions mathématiques et les systèmes dynamiques
se forme de schémas en blocs.
• SIMULINK permet de modéliser, simuler (en temps continus ou discrets) et analyser les
systèmes dynamiques linéaires et non linéaires.
• SIMULINK est largement utilisé dans le monde, dans différents domaines tels que:
✓ Energies renouvelables
✓ Aérospatial
✓ Automatique
✓ Communications
✓ Electronique et Traitement du signal
✓ Systèmes de contrôle
✓ Instrumentation médicale…
2
Toutes représentations sous Simulink se fait au moyen de blocs, caractérisés par leur fonction et
leurs entrées/sorties:
Les blocs sont reliés entres eux par des signaux temporels:
3
Création d’un modèle Simulink
Simulink peut être lancé depuis l’environnement de MATLAB
• en cliquant, dans la barre d’outils, sur le bouton
• ou en tapant simulink dans le Command Windows.
4
Après le lancement de la page de démarrage de Simulink.
5
Créer un model simulink (Cliquez sur le modèle Blank Model,
l'éditeur Simulink s'ouvre)
6
Bibliothèques et blocs SIMULINK
7
Bibliothèques et blocs SIMULINK
Il existe plusieurs bibliothèques
dans le Simulink
▪ La fenêtre à
gauche liste les
bibliothèques des
blocs disponibles.
▪ À la sélection
d’une bibliothèque,
les blocs qui la
composent sont
affichés.
8
❑Bibliothèque «Commonly Used Blocks»:
«Commonly Used Blocks»:
Contient les blocs les plus
fréquents:
• Constant;
• Intégrateur;
• Sommateur
• Multiplicateur;
• Switch …
9
❑Bibliothèque «Sources»:
«Sources»:
Contient les blocs sources:
• Onde sinusoïdale;
• Nombre aléatoire;
• Lecteur des données à
partir Matlab …
Les blocs sources sont des
blocs possédant une ou
plusieurs sorties et aucune
entrée. Il sont utilisés pour
la génération de signaux.
10
❑Bibliothèque «Sinks»:
«Sinks»:
• Afficheur (Display);
• Enregistreur (Record);
• Oscilloscope (Scope);
• X Y Graph …
Au contraire des blocs sources.
Les blocs sinks sont des blocs
possédant une ou plusieurs
entrées et aucune sortie. Il sont
utilisés pour afficher les résultats
de la simulation.
11
❑Bibliothèque «Math Operations»:
«Math Operations»:
• Produit (Product);
• Diviser (Divide);
• Ajouter (Add);
• Valeur absolue (Abs);
• Multiplicateur (Gain) …
Les blocs Math Operations
sont des blocs réalisant des
opérations mathématiques
pour transformer le signal
entrant.
12
❑Bibliothèque«Signal Routing»:
«Signal Routing»:
• Mux;
• Switch;
• Demux…
Les blocs Signal
Routing sont des
blocs utilisés pour
l’aiguillage de
signaux ou la
connexion des
blocs.
13
Principe de fonctionnement de SIMULINK
14
Exercice de prise en main de Simulink:
La somme de deux nombres
Étape 1 : Création d’un nouveau modèle Simulink
15
Étape 2 : Ajouter des blocs par « glisser / déposer » (drag and drop):
16
Étape 2 : Ajouter des blocs par «glisser / déposer » (drag and drop):
• 2 blocs de type Constant (Bib. Sources)
• 1 bloc de type Add(bib. Math Operations)
• 1 bloc de type Display ( bib. Sinks)
17
Etape 3 : Connecter les blocs en utilisant la souris
18
Etape 4 : Lancer la simulation en appuyant sur l'icône ou en tapant sim (nom_model) dans la
Command Windows
19
Exercice de prise en main de Simulink:
La somme de deux nombres Résumé des étapes:
Étape 1 : Création d’un nouveau modèle Simulink
Étape 2 : Ajouter des blocs par « glisser / déposer » (drag and drop):
• 2 blocs de type Constant (Bib. Sources)
• 1 bloc de type Add (bib. Math Operations)
• 1 bloc de type Display ( bib. Sinks)
Etape 3 : Connecter les blocs en utilisant la souris
Etape 4 : Lancer la simulation en appuyant sur l'icône ou en tapant sim
20
Exercice de prise en main de Simulink:
La somme de deux nombres
Le Bloc Constant peut être utilisé également pour représenter les nombres complexes.
21
Exercice de prise en main de Simulink :
La somme de deux nombres Remarque:
Le Bloc Constant peut être utilisé également pour représenter les vecteurs.
22
Exemples d’Applications SIMULINK
23
Exemple 1:
• Affichage d’un signal sinusoïdal
• 1 bloc Sine Wave (bib. Sources)
• 1 bloc Scope (bib. Sinks)
24
Exemple 1:
• Paramétrage d’un sine wave
25
Exemple 1:
• Paramétrage d’un scope
26
Exemple 2:
• Affichage de plusieurs signaux sinusoïdaux
• 3 bloc Sine Wave (bib. Sources)
• 1 bloc Scope (bib. Sinks)
27
Exemple 2:
• Affichage de plusieurs signaux sinusoïdaux
28
Exemple 2:
• Pour augmenter la précision d’affichage, on clique sur les paramètres et en minimise Max step
size dans le solveur:
Modifier le solveur : CTRL+E
29
Exemple 2:
• Affichage de plusieurs signaux sinusoïdaux
30
Exemple 3:
• La somme de plusieurs signaux sinusoïdaux
• Exemple précèdent + 1 bloc de type Add ou Sum (bib. Math Operations).
31
Exemple 3:
• La somme de plusieurs signaux sinusoïdaux
32
Exemple 4:
• Affichage des résultats à Workspace Matlab
• 1 bloc Sine Wave (bib. Sources)
• 1 bloc To Workspace (bib. Sinks)
33
Exemple 5:
• Multiplication d’un signal par un nombre réel
• 1 bloc Sine Wave (bib. Sources)
• 1 bloc Scope (bib. Sinks)
• 1 bloc Gain (bib. Math Operations)
34
Exemple 5:
• Multiplication d’un signal par un nombre réel
• 1 bloc Sine Wave (bib. Sources)
• 1 bloc Scope (bib. Sinks)
• 1 bloc Constant (bib. Sources)
• 1 bloc Product (bib. Math Operations)
Schémas équivalent
* Le bloc Gain replace les deux
blocs Constant et Product à la fois !
35
Exemple 5:
• Multiplication d’un signal par un nombre réel
36
Exemple 5:
• Multiplication d’un signal par un nombre réel
• Remarque: Le multiplicateur (Gain) peut être utilisé pour la multiplication ou la division
d’un signal.
37
Exemple 6:
• En utilisant le Simulink, réaliser un convertisseur qui transforme la température de °𝐂 en °𝐅.
sachant que :
• 2 bloc Constant (bib. Sources)
• 1 bloc Display (bib. Sinks)
• 1 bloc Gain (bib. Math Operations)
• 1 bloc Add (bib. Math Operations)
38
Exemple 6:
• En utilisant le Simulink, réaliser un convertisseur qui transforme la température de °𝐂 en °𝐅.
On peut lire les données 𝐓(°𝐂) à partir d’un fichier Matlab.
39
Exemple 7:
• Instruction conditionnelle (IF):
• 2 blocs Constant String (bib. String)
• 1 bloc Display (bib. Sinks)
• 1 bloc Constant (bib. Sources)
• 1 bloc Switch (bib. Signal Routing)
40
Exemple 7:
• Instruction répétitive (For):
• 1 bloc Constant (bib. Sources)
• 1 bloc Display (bib. Sinks)
• 1 bloc For Iterator Subsystem (bib. Ports and Subsystems)
• 1 bloc Add (bib. Math Operations)
→ Sous-système
41
Exemple 8:
• Intégration d’un signal
• 1 bloc Sine Wave (bib. Sources)
• 1 bloc Scope (bib. Sinks)
• 1 bloc Integrator (bib. Commonly used )
* L’intégrateur est utilisé pour résoudre les équations différentielles sur Simulink.
42
• Intégration d’un signal
43
• Intégration d’un signal
• On peut changer la valeur initiale
dans les paramètres de l’intégrateur
44
Résolution des Équations Différentielles
sur SIMULINK
45
Résolution des équations différentielles sur Simulink
Exemple 1:
résoudre l'équation différentielle du premier ordre suivante:
• Les étapes de résolution du problème sont résumées comme suit:
Etape 1: Écrire le terme avec la plus haute dérivé en fonction du reste:
Etape 2: Insérer un intégrateur pour calculer la valeur de x, la condition initiale est par défaut
x(0)= 0.
Etape 3: Insérer un Constant pour attribuer la valeur 3/2.
Etape 4: Connecter les blocs à un Scope pour afficher les résultats.
46
Exemple 1: x(0)=0
47
Exemple 2:
Équation du 1er ordre- Mouvement sinusoïdal
On considère l’équation différentielle suivante:
Schémas du système:
Amplitude = 2.
Fréquence = 3.
48
Équation du 1er ordre- Mouvement sinusoïdal
49
Remarque: On peut réduire la taille du système en créant un sous-système:
50
Exemple 3: Équation du 1er ordre- Chute libre
L’équation de chute d’un corps solide dans l’air est:
Schémas du système:
51
52
Résolution des équations différentielles sur Simulink
Ces équations impliquent la dérivée seconde, y (x). Supposons que nous puissions écrire
l’équation comme suit :
Pour résoudre cette équation à l'aide de Simulink nous utilisons deux intégrateurs afin de
générer y(x) et y(x).
53
Équations à coefficient constant
Pour résoudre l'équation différentielle à coefficient constant
en réécrivant l'équation comme
Exemple : Modéliser le problème de valeur initiale
avec des conditions initiales appropriées. Il y a deux intégrateurs. L'un intègre la première
entrée, y'' , et l'autre intègre la sortie du premier intégrateur, y', donnant une sortie de y. Chaque
bloc Intégrateur a besoin d'une condition initiale. Le premier prend y’(0) = 1 et le second a
besoin de y(0) = 0.
54
Modèle pour l’équations différentielle d'ordre à coefficient constant du second ordre
y'' + 5y' + 6y = 0 y’(0) = 1 et y(0) = 0.
y'' = - 5y' - 6y
55
56
Oscillation harmonique
L'oscillateur harmonique simple est une application des équations différentielles à coefficient
constant du second ordre.
Considérons une masse, m, attachée à un ressort avec une constante de
ressort k. Selon la loi de Hooke, un ressort étiré est soumis à la force F= -kx,
où x est le déplacement du ressort par rapport à son équilibre non étiré.
Selon la deuxième loi du mouvement de Newton, F=ma,
nous avons
𝑚𝑥 + 𝑘𝑥 = 0
Ici, nous supposons que x=x(t) et que les dérivées sont des dérivées temporelles. L'équation
𝑘
caractéristique est donnée par : 𝑚. 𝑟 2 + 𝑘 = 0, alors 𝑟 = ±𝑖 = ±𝑖𝜔0
𝑚
Ensuite, la solution générale est donnée comme : 𝑥 𝑡 = 𝐴𝑐𝑜𝑠𝜔0 𝑡 + 𝐵𝑠𝑖𝑛𝜔0 𝑡
57
Exemple : Mouvement harmonique simple
Nous écrivons l'équation différentielle sous la forme
1
𝑥=− 𝑘𝑥
𝑚
Pour cet exemple, nous posons k=5 et m=2. Nous spécifions également les conditions initiales
x(0)=1 et 𝑥(0)=0 dans les deux intégrateurs.
58
59
Exemple : Mouvement harmonique simple avec ( transfer fcn )
Nous écrivons l'équation différentielle sous la forme
m * x''(t) + k * x(t) = 0
où :
m est la masse
k est la constante de raideur du ressort
x(t) est l'élongation de la masse à l'instant t
x''(t) est l'accélération de la masse
En appliquant la transformée de Laplace, on obtient la fonction de transfert du système :
H(s) = X(s) / F(s) = 1 / (m*s² + k)
où F(s) est la transformée de Laplace de la force appliquée et X(s) est la transformée de Laplace
de l'élongation.
60
Construction du modèle:
Bloc "Transfer Fcn": Insérez ce bloc et définissez les numérateurs et dénominateurs de la
fonction de transfert en fonction de k=5 et m=2.
Bloc "Step": Utilisez ce bloc pour simuler une force appliquée constante (échelon unité).
Scope: Connectez la sortie du bloc "Transfer Fcn" à un scope pour visualiser la réponse en temps.
61
Exemple : Mouvement harmonique simple amorti
Une modification simple de l'oscillateur harmonique est obtenue en ajoutant un terme d'amortissement
proportionnel à la vitesse, 𝑥. Cela donne l'équation différentielle
𝑚𝑥 + 𝑏𝑥 + 𝑘𝑥 = 0
où b > 0 est la constante d'amortissement.
Nous pouvons vérifier le comportement d'amortissement dans la solution en étudiant l'équation
caractéristique,
𝑚𝑟 2 + 𝑏𝑟 + 𝑘 = 0
Où 𝑥 𝑡 = 𝑒 𝑟𝑡 est une estimation de la forme des solutions linéairement indépendantes. Les solutions de
l'équation caractéristique sont trouvées à l'aide de la formule quadratique
−𝑏 ± 𝑏2 − 4𝑘𝑚
𝑟=
2𝑚
2
Si 𝑏 − 4𝑘𝑚 < 0, alors les racines de l'équation caractéristique sont des racines conjuguées complexes et la
solution prend la forme
𝑥 𝑡 = 𝑒 −𝑏𝑡/2𝑚 𝐴𝑐𝑜𝑠𝜔0 𝑡 + 𝐵𝑠𝑖𝑛𝜔0 𝑡
Avec
4𝑘𝑚 − 𝑏 2
𝜔0 =
2𝑚
Dans ce cas, on a des solutions oscillatoires avec une amplitude décroissante exponentiellement.
62
Un modèle Simulink pour l'oscillateur harmonique amorti peut être créé à l'aide de l'équation
1
différentielle sous la forme 𝑥 = − (𝑏𝑥 + 𝑘𝑥)
𝑚
Nous considérons un exemple spécifique utilisant k = 5, m = 2 et b = 0,1. Les conditions initiales
x(0) = 1 et 𝑥(0) = 0 sont utilisées dans les deux intégrateurs. En exécutant le modèle pour t [0,20]
63
64
Exemple : mouvement harmonique simple forcé
Nous considérons un forçage sinusoïdal simple et aucun amortissement donné par
𝑚𝑥 + 𝑘𝑥 = 𝐹0 𝑠𝑖𝑛𝜔𝑡
Le modèle Simulink de l’exemple précédent est modifié, en ajoutant Sine Wave Function et une
Clock (Les conditions initiales x(0) = 1 et 𝑥(0) = 0).
En utilisant les constantes m = 2, k = 10, nous définissons F0 = 1 et Frequency (rad/sec)=2 dans la
fonction d'onde sinusoïdale, En exécutant le modèle pour t [0,20].
65
66
Exemple d’un oscillateur amorti dont la dynamique s’écrit :
On peut modéliser ce système dans le module Simulink de MATLAB à l’aide des blocs de
base Integrator, Gain et Sum de la manière suivante :
Le bloc Step fournit une étape entre deux niveaux définissables à un moment donné.
67
avec (transfer fcn )
L’oscillateur amorti étant un système dynamique linéaire, on peut aussi le représenter à l’aide d’une
fonction de transfert :
On peut modéliser ce système dans le module Simulink de MATLAB à partir de sa fonction de
transfert à l’aide du bloc Transfer Fcn de la manière suivante :
68