Vous êtes sur la page 1sur 28

Initiation à Matlab Simulink

Résumé :
Ce document présente une découverte de Matlab par l’exemple.
Matlab est un logiciel de calcul numérique, utilisé dans de nombreux domaines d’application. Il se fonde
sur le calcul matriciel. Matlab est d’ailleurs un raccourci pour “Matrix Laboratory”. Le but de ce
document est d’aider les étudiants débutants en Matlab, en introduisant les commandes les plus
courantes.

1- Introduction
Ce document a pour but de vous familiariser avec l’usage de Matlab.
Matlab est un langage de programmation de haut niveau doublé d’un environnement de travail. Il est
principalement utilisé à des fins de calcul numérique. Il est largement utilisé dans les domaines de
l’ingénierie et des mathématiques appliquées. Pour effectuer un TP, si vous n’avez pas accès à une licence
Matlab sur votre machine, vous pouvez utiliser le logiciel GNU Octave qui est un clone gratuit et libre de
Matlab. En règle générale les codes se portent facilement de Matlab vers Octave et vice-versa. Ce mémo
est très loin d’être exhaustif et il est fortement recommandé de s’exercer par soi-même à d´découvrir les
richesses du langage. Matlab a été pensé pour le calcul numérique et dispose d’implémentation natives et
généralement très bien optimisées de toutes les fonctions mathématiques de base. L’évaluation du cours
comportera une partie pratique, sous forme de TP à finir à la maison ou en présentiel. L’ensemble des TP
sont à faire en autonomie, le professeur sera là uniquement pour s’assurer que l’application du cours
d’automatique linéaire et de régulation industrielle est bien assimilée à travers l’application sous
Matlab/Simulink.

2- Environnement Matlab
Le logiciel propose un environnement de travail composé de multiples fenêtres.
Commencez par lancer l’interface graphique de Matlab. Vous observez une fenêtre du type de celui sur la
Figure 1. Cette fenêtre est typique de Matlab.
Vous pouvez distinguer quatre blocs :
- au centre, l’invite de commande >> (console d’exécution). L’utilisateur peut entrer les instructions à
exécuter. Il s’agit de la fenêtre principale de l’interface de MATLAB (mode interactif).
- en haut à droite le contenu de l’espace courant de travail, (espace de travail). Il permet de visualiser les
variables définies, leur type, la taille occupée en mémoire…
- à gauche la liste des fichiers du répertoire courant (répertoire courant). Il permet de naviguer et de
visualiser le contenu du répertoire courant de l’utilisateur. Les programmes de l’utilisateur doivent être
situés dans ce répertoire pour être visible et donc exécutable.
- en bas à droite l’historique des commandes que l’utilisateur a exécutées. Il est possible de faire glisser
ces commandes vers la fenêtre de commande
3. L’aide dans Matlab
Mieux vaut apprendre à se repérer tout seul que de demander en permanence à son voisin comment faire.

helpwin ouvre une fenêtre contenant la liste des commandes


Matlab ainsi que leurs documentations
help donne la liste de toutes les commandes par thèmes
help nom décrit la fonction nom.m
lookfor nom recherche une instruction à partir du mot clé nom
intro lance une introduction `a Matlab help produit une liste de
toutes les commandes par thèmes
demo démonstration donnant une représentation des
fonctionnalités de bases de Matlab info information sur la
boite à outils disponibles
4. Commandes générales
4.1. Gestion des fichiers.
Vous pouvez utiliser la petite fenêtre en haut à droite, ou à d´défaut :

pwd affiche le nom du répertoire courant pour Matlab


cd rep change le répertoire courant pour Matlab qui devient rep
dir fournit le catalogue d’un répertoire
delete efface des fichiers ou des objets graphiques
4.2. Calculs ´élémentaires.
Dans la partie commandes de l’interface,
>> 5+8
Résultat : >> 13
Pour conserver le résultat, il faut l’assigner dans un objet :
>> a=5+8
>> a Pour ne pas faire afficher le résultat, mettez ; à la fin de la commande :
>> a=5+8;

4.3. Constantes prédéfinies

eps 2.2204e-016

NaN n’est pas un nombre ; exprime parfois une

4.3. Historique.
Matlab conserve l’historique des commandes. Il est donc possible de récupérer des instructions
déjà saisies (et ensuite de les modifier dans le but de les réutiliser) :

dans la de commandes

4.4. Variables d’environnement.


Matlab garde en mémoire les variables qui ont été créées. On les voit en haut, à̀ gauche, lorsque
Matlab dispose d’une interface graphique. Sinon, on peut les afficher et les effacer par la
ligne de commande :
who donne la liste des variables présentes dans l’espace de travail
whos donne la liste des variables présentes dans l’espace de travail ainsi que
leurs propriétés
what donne la liste des fichiers .m et .mat présents dans le répertoire courant
Exemple
clear var1 . . . varn efface les variables var1, . . . varn de l’espace de travail
>> x = 4
clear all efface toutes les variables crées dans l’espace de travail
>> whos
Name Size Bytes Class
x 1x1 8 double

4.5. Types de variables


Il existe 4 types principaux des variables en Matlab :
• Variable réel : e.g., x = 1 ; y = 5.6;
• Variable complexe : e.g., z = 2 + 2*i ; L = 1-j; m = complex (1, -2);
• Variable caractère : e.g., t = ‘bonjour’ ;
• Variable logique : vrai (valeur = 1) ; fau (valeur = 0).
Exemple :
Z = 2+3i
>> whos
Name Size Bytes Class attributes
z 1x1 16 double complexe

4.6. Fonctions de base

4.7. Fonctions trigonométriques

Exemple :

Pour les angles en dégrées on ajoute ‘d’ à la fin de la fonction trigonométrique: e.g., cosd, sind …
Remarque : les commandes help, lookfor et doc peuvent être utilisées pour obtenir l’aide sur les fonctions
utilisées.

5. Les types de données ´


Matlab traite un seul 1 type d’objet : les matrices ! Les scalaires sont des matrices 1 × 1, les vecteurs lignes
des matrices 1 × n, les vecteurs colonnes des matrices n × 1.

5.1. Construction explicite.


On peut former des vecteurs et des matrices en entrant leurs coefficients.
• vecteurs de chaine de caractères
La chaine de caractères est un vecteur ligne. Pour le créer, on entre les caractères en commençant et en
terminant par ’ (quote).
>> ch=’matlab’

• les nombres complexes


Dans Matlab, un nombre complexe est de la forme :
z = a + ib.
>> c=2+i

• scalaires
>> s=30

• vecteurs numériques
>> V=[1;2;3] (les ; séparent les éléments d’un vecteur colonne)
V=
1
2
3
>> V=[1,2,3] (les , ou les blancs séparent les éléments d’un vecteur ligne)
V=
1 2 3
>> V=[1 0.5 -2]
V=
1 0.5 -2

Bien que simple, cette méthode n’est pas pratique pour définir des vecteurs de taille importante. Une
seconde méthode utilise l’opérateur deux-points « : ». Il permet de discrétiser un intervalle avec un pas
constant. la syntaxe est de la forme: vecteur = valeur_initial : pas : valeur_finale Par défaut, le pas est égal
à 1. :
Exemple :
>>V = [1 :5]
V=
1 2 3 4 5
>> V = [0.1 :0.2 :0.8]
V=
0.1 0.3 0.5 0.7
On peut générer aléatoirement un vecteur en utilisant une fonction prédéfinie linspace. La syntaxe de cette
fonction est donnée par : Vecteur = linspace (début, fin, Nbr des éléments)
>> V = linspace(1, 4,5)
V=
1 1.5556 2.3334 3.9873 4
>>V(3)
ans =
2.3334
>>V(2 :4)
ans =
1.5556 2.3334 3.9873

• matrices
>> M=[11 12 13 14;21 22 23 24; 31 32 33 34; 41 42 43 44] (où les ; séparent les lignes d’une matrice)

• les polynômes
Matlab représente un polynôme sous forme d’un vecteur ligne contenant les coefficients classés dans
l’ordre des puissances décroissances. Par exemple le polynôme P d’expression
P(x) = x2 − 6x + 9 est représenté par
>> P=[1 -6 9]

5.2. Operations vectorielles.


Les tableaux suivants résument certaines commandes couramment utilisées.

Vecteurs
n:m nombres de n `a m par pas de 1
n:p:m nombres de n `a m par pas de p
linspace(n,m,p) p nombres de n à m
x(i) i-ème coordonnée de x
x(i1:i2) coordonnées i1 `a i2 de x
x(i1:i2)=[] supprimer les coordonnées i1 à i2 de x
[x,y] concaténer les vecteurs x et y
x*y’ produit scalaire des vecteurs lignes x et y
x’*y produit scalaire des vecteurs colonnes x et y
reshape(x,u,v) crée une matrice de taille [u,v], à partir de x
lenght(x) longueur de x
max(V) renvoie la valeur maximale du tableau
min(V) renvoie la valeur minimale du tableau
mean(V) renvoie la valeur moyenne des éléments du tableau
sum(V) calcule la somme des éléments du tableau
prod(V) calcule le produit des éléments du tableau
sort(V) range les éléments du tableau dans l'ordre croissant
Matrices
A’ ou transpose(A) transposée de A
inv(A) inverse de A
expm(A) exponentielle de A
trace(A) trace de A
poly(A) polynôme caractéristique de A
size(A) renvoie le nombre de lignes et de colonnes de A
A(i,j) coefficient d’ordre i, j de A
A(i1:i2,:) lignes i1 à i2 de A
A(i1:i2,:) =[] supprimer les lignes i1 à i2 de A
A(:,j1:j2) colonnes j1 à j2 de A
A(:,j1:j2)=[] supprimer les colonnes j1 à j2 de A
A(:) indexation linéaire de A, (concaténation des vecteurs
colonnes de A)
A(i) coefficient d’ordre i dans l’indexation linéaire
zeros(m,n) matrice nulle de taille m,n
ones(m,n) matrice de taille m,n dont tous les coefficients valent 1
eye(n) matrice identité de taille n
diag(A) extrait la diagonale de la matrice A
rank(A) renvoie le rang de la matrice A
det(A) renvoie le déterminant de la matrice A
max (A) renvoie un vecteur-ligne contenant les valeurs maximales
associées à chaque colonne
min (A) renvoie un vecteur-ligne contenant les valeurs minimales
associées à chaque colonne
triu(A) extrait la matrice triangulaire supérieure de A
tril(A) extrait la matrice triangulaire inférieure de A
[U,D] = eig (A) renvoie les vecteur propres et les valeurs propres de la matrice A
magic(n) carré magique de taille n
rand(m,n) matrice de taille m,n à coefficients i.i.d.de loi uniforme sur [0, 1]
randn(m,n) matrice de taille m,n à coefficients i.i.d. de loi normale N (0, 1)

6. Opérations sur les matrices


+- addition, soustraction
*^ multiplication, puissance (matricielles)
.* .^ multiplication, puissance terme à terme
A\b solution de Ax = b
b/A solution de xA = b
./ division terme à terme

NB : A\b est équivalent à inv(A)*b si A est inversible


6.1. Exemple – Résolution d’un système d’équations linéaires

2𝑥 + 𝑦 = −5
Soit le système: 4𝑥 − 3𝑦 + 2𝑧 = 0
𝑥 + 2𝑦 − 𝑧 = 1

2 1 0 𝑥 −5
Ecriture sous forme matricielle AX=B: 4 −3 2 𝑦 = 0
1 2 −1 𝑧 1
Si A est une matrice inversible alors le système admet une solution unique qui s’exprime par :
X = A-1.B
>> A = [2 1 0; 4 -3 2; 1 2 -1]
>>B = [-5;0;1]
>> X = inv(A)*B
X=
1.7500
-8.5000
-16.2500
Solutions : x = 1.75 y = -8.5 z = -16.25

On peut aussi utiliser la fonction prédéfinie roots pour résoudre une équation
Exemple :
x2 − x + 1 = 0:
>>roots([1 -1 1])
>>ans =
0.5000 + 0.8660i
0.5000 - 0.8660i

6.2. DERIVATION DE POLYNÔMES


Polyder( ) : réalise la dérivation du polynôme

EXEMPLE :
𝐹(𝑝) = 9𝑝5 + 6𝑝2 + 2
>>F=[9 0 0 6 0 2];
>>polyder (F)
ans =
45 0 0 12 0 → 45𝑝4 + 0𝑝3 + 0𝑝2 + 12𝑝1 + 0𝑝0

6.3 EVALUATION D’UN POLYNÔME POUR UNE VALEUR DONNEE :


Polyval(f,val) :donne la valeur numérique que prend le polynôme lorsqu’on lui applique la valeur
numérique val.

EXEMPLE :
G(𝑝) = 9𝑝5 + 6𝑝2 + 2
>>G=[9 0 0 6 0 2];
>>polyval(G,2)
ans =
314

6.4 MULTIPLICATION DE POLYNÔMES :


z=conv(x,y) :crée le polynôme 𝒛 = 𝒙 × 𝒚 sous sa forme développée. Le degré du polynôme z est la somme
des degrés des polynômes x et y
EXEMPLE :
G(𝑝) = 9𝑝5 + 6𝑝2 + 2
>>G=[9 0 0 6 0 2]
>>H=[1 2 5] → H(p) = 1𝑝2 + 2𝑝1 + 5𝑝0
F=conv(G,H)

F=
9 18 45 6 12 32 4 10 → F(p) = 9𝑝7 + 18𝑝6 + 45𝑝5 + 6𝑝4 + 12𝑝3 + 32𝑝2 + 4𝑝1 + 10𝑝0

6.5. LA TRANSFORMEE DE LAPLACE:


Matlab permet de calculer les transformées de Laplace et les transformées inverses de Laplace.
Syms : définit les symboles "t" et "s"…………
laplace : calcule la transformée de Laplace de l’expression donnée.
EXEMPLE:
>>syms t
>>f=sin(t);
>>F=laplace(f)
F=
1/(s^2 + 1)

6.7. LA TRANSFORMEE INVERSE DE LAPLACE


ilaplace : calcule la transformée inverse de Laplace de l’expression donnée.
EXEMPLE
>>syms s
>> ilaplace(1/(s^2 + 1))
ans =
sin(t)
II. Utilisation de la Control toolbox
1. Généralités
La boîte à outils dédiée à la commande (Control Toolbox) permet de disposer de nombreux outils
d’analyse pour l’automatique.
Définition du système par sa fonction de transfert
Soit le système décrit par :
1
2𝑝 + 1 𝑝+2
𝐺(𝑝) = =2
𝑝 + 2𝑝 + 1 (𝑝 + 1)
où s désigne la variable de Laplace. A l’aide de Matlab, on peut définir alternativement :
>>G=tf([2 1],[1 2 1]) (numérateur et dénominateur de la fonction de transfert) ou
>>G=zpk([-1/2],[-1 -1],2) (zéros, pôles et facteur de gain de la fonction de transfert).
Pour constituer un système à l’aide de différents sous-systèmes on peut effectuer différentes opérations.
Soit G1 et G2 les représentations des deux systèmes. Les combinaisons de base sont :
>>G1*G2 ou >>series(G1,G2) G1 en série avec G2
>>G1+G2 ou >>parallel(G1,G2) G1 en parallèle avec G2
>>feedback(G1,G2) G1 bouclé par G2

Autre façon de définir une fonction de transfert test la suivante


>>syms p % syms définit le symbole p
>>p=tf(‘p’)
>>G = (2*p+1)/(p^2+2*p +1) ;

On peut obtenir diverses informations sur le système défini par sa représentation G :


>>pole(G) donne les pôles du système
>>step(G) trace la réponse indicielle
>>impulse(G) trace la réponse impulsionnelle
>>bode(G) trace le diagramme de Bode
>>nyquist(G) trace le diagramme de Nyquist
>>nichols(G) trace le diagramme de Black-Nichols
>>rlocus(G) trace le lieu d’Evans
>>rlocfind(G) donne les valeurs des pôles et du gain correspondant sur le lieu d’Evans >>damp(G)
donne les pôles, ainsi que la pulsation propre et l’amortissement associes
à chaque pôle
>>pzmap(G) place les pôles et les zéros dans le plan complexe
>> margin donne les marges de stabilité d’un système : la marge de Gain (mais pas
en dB), la marge de phase, -180 et co.
2. représentation graphique des résultats
2.1. Représentation de points dans le plan
Il existe plusieurs possibilités pour représenter un ensemble de points (x(i), y(i))
plot(x,y,'s') trace une courbe ou d'un nuage de points
bar(x,y,'s') tracé sous forme d'un histogramme
stem(x,y,'s') diagramme en bâtons
stairs(x,y) tracé en escalier des valeurs discrètes
fplot représentes des fonctions
hist trace des histogrammes

Remarque :
's' est un paramètre facultatif qui permet de donner des précisions quant à la couleur ou au type de tracé
souhaité. Par exemple '-r' permet de tracer une ligne continue rouge

2.2. Gestion de la fenêtre graphique

2.3. Axes et légendes

Exemple
Soit un système du second ordre :H(p) = (en notation anglo-saxonne, la variable complexe p
est remplacée par s).

Ecriture de la fonction de transfert :


Taper les instructions suivantes dans le "workspace" de Matlab
>> num=10 ;
>>den=[1 2 10] ;
>>G = tf(num,den) ;
Etude de la réponse à un échelon :
>>step(G) ;
pour voir la réponse à un échelon pendant 10s
>>t=0:0.1:10 ;
>>y=step(G,t); %le point-virgule ";" évite d'afficher le résultat
>> plot(t,y) ;
Commentaires sur la courbe :
>>title('réponse à un échelon');
>>xlabel('temps');
>>ylabel('y');

Réponse du système G à un échelon unité


Pour lire des valeurs sur la courbe :

>>[x,y]=ginput(3) et cliquer avec la souris sur 3 points à mesurer (pas de point-virgule


sinon commande inopérante ici)

Pour tracer un quadrillage ou une ligne :

>>grid
>>line([0 10],[1.05 1.05])
>>line([0 10],[1.05 1.05] ,'color','g')
ces instructions permettent de tracer deux lignes horizontales et de faire apparaître le"tuyau
des réponses à 5%" :
>>line([0 10],[1.05 1.05])
>>line([0 10],[0.95 0.95])
la commande line([x1,x2],[y1,y2]) trace une ligne du point (x1,y1) au point (x2,y2).
"Tuyaux de la réponse à 5%" sur la réponse à un échelon

Réponse à un signal quelconque :


il faut d’abord définir le temps
>>t=0:0.1:10; la variable t prend des valeurs de 0 à 10 par pas de 0,1
une rampe :
>>ramp=t;
>>y=lsim(G,ramp,t);
>>plot(t,y)
Réponse de G à une rampe unité, zoom effectué pour observer le départ dela réponse

Une sinusoïde :

>> sinus=sin(t); (ne pas employer sin comme nom car c'est une fonction de Matlab etcela
entraînerait une "plante" du programme)
>>z = lsim(G,sinus,t) ;
>>plot(t,z) ;
Afin de visualiser la sinusoïde originale et le signal de sortie, taper :
>> hold on
>> plot(t,sinus,'r') %'r' permet d'affecter la couleur rouge à ce tracé pour le différencier du
précédent "hold on" permet de tracer plusieurs courbes dans la même fenêtre. "hold off"
annule cette commande.
Réponse de G à une excitation sinusoïdale (en bleu), sinusoïde excitatrice en rouge 4)
Etude fréquentielle
>>nichols(G)
>>ngrid
>>line([-135 -135],[0 -50]) permet de tracer une ligne verticale d'abscisse –135° pour la
visualisation de la marge de phase à 45°.
La fonction zoom on permet d'agrandir une partie de la figure, cliquer a l'aide du bouton droit
de la souris et tirer le pointeur en maintenant l'appui afin de délimiter une zone précise.
Réponse fréquentielle de H dans le repère de Black Nichols

>>bode(G) ;

Diagramme de Bode de G
>>[Gm,Pm,Wcg,Wcp] = MARGIN(num,den) %mesure de la marge de phase et de la
marge de gain ainsi que des pulsations correspondantes
Gm = Inf ; Pm = 53.1301
Wcg = Inf ; Wcp = 4.0000
>>figure pour ouvrir une nouvelle fenêtre "windows"

pour avoir un diagramme de Bode personnalisé :


>>puls=logspace(0,1,100);
>>[ampli,phase,puls]=bode(num,den,puls);
>>subplot(211),
>>semilogx(puls,20*log10(ampli)),
>> grid

Diagramme de Bode personnalisé pour GH


Mesure de la marge de phase et de la marge de gain ainsi que des pulsations correspondantes :
margin(G)
[Gm,Pm,Wcg,Wcp] = margin(G)
Diagramme de Bode de H avec la marge de gain
>>figure
>> nyquist(num,den)

Diagramme de Nyquist de G
Lieu des racines
La méthode consiste à regarder où se trouvent les pôles du système bouclé lorsque l'on fait
varier le gain du correcteur proportionnel. Pour afficher le lieu des pôles :
>>rlocus(num,den);
Lieu des racines de G
Pour préciser une zone sur le lieu des pôles :
>>zeta=0.2;
>>wo=5;
>>sgrid(zeta,wo)
Pour chercher la valeur du gain k permettant d'obtenir les pôles désirés en boucle fermée
>>[k,poles]=rlocfind(G);
Sélectionner un point sur le graphique, les coordonnées s'affichent dans le "workspace".
Pour construire un système en boucle fermée :
>>BF=cloop(G,-1);
>>step(BF) permet de visualiser la réponse en boucle fermée unitaire à un échelon
Réponse du système en boucle fermé unitaire à un échelon
III Les commandes structurées
1. L’instruction for.
La syntaxe en est la suivante :
>>for variable = vecteur
>> instructions
>> end
Les colonnes du ‘vecteur’ sont affectées, l’une après l’autre à la variable ‘variable’ et pour chacune de
ces valeurs, les ‘instructions’ sont exécutées. Remarquez qu’il faut privilégier les opérations vectorielles
à l’utilisation de boucles.
Exemple 7.
Ces quelques lignes calculent n! pour n = 1 à 100. fact = zeros(1,100);
>>n=100;
>>fact(1)=1;
>>for k=2:n
>>fact(k)=fact(k-1)*k;
>>end

2. Les instructions conditionnelles.


2.1. Le bloc if
La manière la plus brute de procéder est d’utiliser un bloc if ... then ... else ... end. La syntaxe en est la
suivante :
>>if conditions
>>instructions
>>end
Les ‘instructions’ ne sont exécutées que si les ‘conditions’ sont vérifiées, plus précisément si ‘conditions’
à une valeur différente de 0. Une variante plus élaborée est :
>>if conditions
>>instructions (exécutées si les ‘conditions’ sont vérifiées)
>>else
>>instructions (exécutées si les ‘conditions’ ne sont pas vérifiées)
>>end

Ou encore (avec des emboîtements) :

>>if conditions1
>>instructions (exécutées si les ‘conditions1’ sont vérifiées)
>>elseif
>>conditions2
>>instructions (exécutées si les ‘conditions1’ ne sont pas vérifiées mais si les ‘conditions2’ le
sont)
>>else
>>instructions (exécutées si ni les ‘conditions1’ ni les ‘conditions2’ ne sont vérifiées)
end

NB : Matlab gère les commandes classiques switch et case.

Exemple. Le programme suivant simule le lancer d’une pièce.


>>p=0.5;
>>u=rand;
>>if u<p
>>disp(’pile’)
>>else
>> disp(’face’)
>>end

2.2. Boucle WHILE:


Objectif : Répéter une instruction tant qu’une condition reste vérifiée. Syntaxe:
>>while expression logique
>>séquence d’instructions
>>end
Exemple :
IV. Introduction au Logiciel Simulink
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 nonliné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…

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 entre eux par des signaux temporels:
❑ 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.
Analyse de G à l'aide de simulink

G(p) =

Ouvrir Simulink, soit par un clic sur son icône, soit en tapant simulink et en appuyant sur la
touche entrée. Cliquer sur l'icône représentant une page blanche en haut à gauche "new
model" afin d'ouvrir une nouvelle fenêtre permettant de construire H. Cliquer sur
"continuous" dans la fenêtre "Simulink" et traîner à la souris une "transfer Fcn" dans la fenêtre
vide. Cliquer sur "Math" et traîner dans la nouvelle fenêtre un "Gain", et un "sum". Cliquer
sur "sinks" et traîner un "scope" dans la nouvelle fenêtre. Cliquer ensuite sur "Sources" et
trainer un bloc "step" dans la nouvelle fenêtre. Raccorder les éléments comme indiqué ci-
dessous.

Double cliquer sur "transfer Fcn" et ajuster les coefficients du numérateur et du dénominateur.
Le nombre le plus à gauche représente la plus grande puissance de p, créer un espace (barre
d'espace), écrire le coefficient suivant (éventuellement 0), etc. Bien faire attention à ce que les
coefficients soient entre crochets. Vérifier que la durée de la simulation est bien de 10 s en
cliquant sur "simulation", "simulation parameters" (ne toucher à rien d'autre). Lancer la
simulation, puis double cliquer sur le scope.

L'échelon peut être réglé lui aussi en double cliquant dessus. Par défaut, il possède une
amplitude de 1 et devient égal à 1 à t = 0,5 s.
En double cliquant sur le scope, on obtient la figure suivante :
Réponse de G à un échelon visualisé par un oscilloscope de Simulink
Cliquer éventuellement sur le bouton figurant une paire de jumelles afin d'ajuster la courbe à la
taille de l'écran du scope. Cette figure peut être ajustée à la taille désirée en cliquant avec le
bouton gauche sur un coin de la figure et en traînant le coin à la souris en maintenant le bouton
enfoncé.
En double cliquant sur l'élément "gain", une boite de dialogue s'ouvre et il est possible de
modifier le gain. Relancer la simulation permet d'obtenir la nouvelle réponse sur le scope si on
a pris soin de ne pas fermer cette fenêtre "scope". Il est possible d'ajuster rapidement la courbe
à la fenêtre en cliquant sur l'icône représentant une paire de jumelles.

Afin d'étudier le réglage d'un PID et l'influence des différents paramètres, on reprend le schéma
précédent sur Simulink. Un clic sur l'élément "gain" le sélectionne. Un appui sur la touche
"suppr" le supprime. Il ne reste plus qu'à le remplacer par un élément PID que l'on trouve dans
"Simulink Extras" "Additional Linear". On obtient le schéma suivant :

Schéma-bloc Simulink montrant la fonction de transfert H contrôlée par un PID

Double cliquant sur l'élément PID, il est très facile de modifier les paramètres.
On peut donc simuler rapidement en salle de classe n'importe quel système à la correction du
système en boucle fermée que ce soit avec un PID ou à l'aide d'autre régulateur. Les possibilités
ainsi offertes au professeur sont immenses.
Il n'a plus besoin d'équipement encombrant et coûteux pour expérimenter et mettre au point ses
connaissances, ses cours, ses exercices et problèmes. Un PC équipé du logiciel adéquat suffit.
Références webographiques
https://www.cu-elbayadh.dz/ar/wp-content/uploads/2020/03/assrv.pdf
https://www.researchgate.net/publication/361380906_Introduction_a_l'utilisation_de_MATL
AB_Simulink
http://www.est-usmba.ac.ma/coursenligne/SE-S2-M5.2-%20Programmation%20Matlab-CRS-
%20Taoussi.pdf
https://homepages.laas.fr/yariba/enseignement/memo-matlab-autom.pdf
https://docplayer.fr/218165040-1-acceder-a-matlab-memo-matlab.html
https://www.univ-usto.dz/images/coursenligne/ARSLN_ZMFM.pdf

Vous aimerez peut-être aussi