Vous êtes sur la page 1sur 26

UNIVERSITE CADI AYYAD

ECOLE SUPERIEURE DE TECHNOLOGIE-SAFI


DEPARTEMENT : TICQ
FILIERE : TECHNIQUES INSTRUMENTALES & MANAGEMENT-
QUALITE

Compte rendu
TRAVAUX PRATIQUES : AUTOMATIQUE

Réalisées par : Enseignant :


BENMANSOUR Fahd M. BOUMAAZ
BOUNACER Zine El Abidine

Année universitaire : 2023/2024


Le progiciel Matlab :
I. Introduction
Matlab (MATrix LABoratory) est un langage de programmation orienté calcul scientifique,
pensé pour rendre le calcul matriciel simple à programmer et efficace en temps.
Matlab est un logiciel (payant) proposant une interface graphique vers un éditeur de code en
Matlab, et un outil de debugging pour exécuter des programmes en mode pas à pas.
Matlab propose différents frameworks (payants, appelés toolbox), proposant des
fonctionnalités très avancées permettant de réaliser facilement des tâches complexes (ex:
toolbox équation différentielle, toolbox aérospatial).
Le rôle principal de Matlab est de fournir un environnement interactif pour la manipulation et
le traitement de données numériques, en mettant l'accent sur les matrices et les tableaux.
Grâce à sa syntaxe orientée vers les matrices, il permet aux utilisateurs de résoudre
efficacement des problèmes mathématiques complexes, y compris des opérations linéaires,
des transformations de Fourier, des statistiques et bien plus encore. De plus, Matlab est
également largement utilisé dans le domaine du traitement du signal, de l'imagerie, de la
simulation numérique et du contrôle.
L'objectif principal de Matlab est de faciliter le développement rapide de solutions pour des
problèmes techniques et scientifiques. Il offre un large éventail de fonctions prédéfinies et de
bibliothèques spécialisées, ce qui permet aux utilisateurs de développer des algorithmes et des
applications personnalisés de manière efficace. De plus, Matlab dispose d'outils avancés de
visualisation qui permettent d'analyser et de représenter graphiquement les données, ce qui est
essentiel pour comprendre les résultats des simulations et des analyses numériques.
Comme vue en TP, l’interface de Matlab se compose de plusieurs zones.
Chaque zone possède un objectif précis :
 Le menu regroupe des commandes de base de Matlab, comme enregistrer, afficher les
préférences, etc...
 L'explorateur de fichiers permet de visualiser ses fichiers scripts et de les ouvrir pour
les éditer.
 La zone de commande permet d'écrire des commandes et de visualiser leur résultat
 La zone des variables permet de visualiser toutes les variables en mémoire à l'instant
présent (leur nom ainsi que visualiser leur contenu).
 L'historique permet de visualiser l'historique des commandes précédemment
exécutées.
On peut écrire des commandes simples dans Matlab. Cependant, quand on souhaite écrire un
programme complet, on utilise l’éditeur de script Matlab :
II. Matrices
Matlab propose une gamme de six classes de base, toutes présentées sous forme de tableaux
multidimensionnels. Ces catégories incluent les doubles (représentant des nombres flottants en double
précision), les caractères (constitués de tableaux ou de chaînes de caractères), les matrices creuses, les
entiers non signés codés sur 8 bits, les cellules (tableaux de cellules) et les structures (tableaux
d'enregistrements ou de structures). Un vecteur est essentiellement une matrice avec une seule ligne ou
une seule colonne, tandis qu'un scalaire est une matrice se limitant à une seule ligne et une seule
colonne.
1. Nombres complexes
La majorité des opérations disponibles dans Matlab supportent les nombres complexes. Deux
méthodes permettent de saisir des nombres complexes dans une matrice :
 En utilisant l'addition entre une matrice de nombres réels et une matrice de nombres imaginaires
multipliés par l'unité imaginaire :
A = [1 2;3 4] + i*[5 6;7 8];
 En spécifiant directement les nombres complexes en utilisant la notation standard avec l'unité
imaginaire :
A = [1+5i 2+6i;3+7i 4+8i];
Lors de l'écriture des nombres complexes, il est crucial de ne pas laisser d'espace entre le nombre et
l'unité imaginaire. Les notations "i" et "j" sont interchangeables pour désigner l'unité imaginaire.
2. Variables

En Matlab, toutes les variables sont essentiellement des matrices, qu'elles soient réelles ou complexes.
Les vecteurs ligne, vecteurs colonne et scalaires sont des cas particuliers de ces matrices.
Contrairement à d'autres langages, Matlab n'exige pas une déclaration spécifique des variables ; leur
taille évolue automatiquement selon les besoins au cours de l'exécution.

Matlab ne fait pas de distinction entre les entiers et les réels, et sa syntaxe pour les noms de variables
suit les conventions standards de langages comme Fortran, C ou Pascal. Une caractéristique
importante est la sensibilité de Matlab à la casse dans la différenciation entre majuscules et
minuscules.

Pour obtenir des informations sur les variables en cours d'utilisation, les commandes ‘who’ et ‘whos’
sont utiles. Supprimer des variables du workspace se fait avec la commande ‘clear’, suivie des noms
des variables à supprimer, séparés par des espaces. La commande ‘clear all’ efface toutes les variables
du workspace en une seule fois.
3. Entrées de matrices
Dans un programme ou dans la fenêtre de commande :
>> a=[1 2 3; 4 5 6; 7 8 9] %séparation par des espaces
a=
1 2 3
4 5 6
7 8 9

>> a=[1,2,3; 4,5,6; 7,8,9] %séparation par des virgules


a=
1 2 3
4 5 6
7 8 9
>> b=[1,2,3; 4,5,6; 7,8,9]; %point-virgule de fin pour éviter l’affichage
b=
1 2 3
4 5 6
7 8 9

>> c=[a b] %concaténation en colonnes


c=
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
>> d=[1 2 3 4 5 6]
d=
1 2 3 4 5 6

>> e=[c ;d] %concaténation en lignes


e=
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
1 2 3 4 5 6

4. Indexation - Extraction de sous-matrices


>> f=e(2:3,3:5) %extraction de sous-matrices
f=
6 4 5
9 7 8

5. Initialisation des matrices :


 Pour générer une matrice remplie de zéros, la commande "zeros" est utilisée. Par exemple,
"zeros(m,n)" produit une matrice de dimensions m lignes par n colonnes composée de zéros. De
même, en utilisant "zeros(A)", une matrice de zéros de la même taille que A est créée.
>> zeros(5,5)
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

 Pour créer une matrice remplie de 1, la commande "ones" est employée, et ses syntaxes sont
analogues à celles de "zeros".
>> ones (3)
ans =
1 1 1
1 1 1
1 1 1

 Pour obtenir une matrice identité (unité), on utilise la commande "eye". Par exemple, en saisissant
"eye(n)", une matrice identité de dimension n est générée.
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
6. Taille
Pour obtenir les dimensions d'une matrice x, on peut utiliser la commande "size", avec la syntaxe
suivante : [m,n] = size(x). Ici, m représente le nombre de lignes et n le nombre de colonnes de la
matrice. Par exemple :
>> [m,n]=size(c)
m =3 n=6

Remarque :
 La variable implicite ‘ans’ conserve le résultat de l'évaluation d'expressions qui ne sont pas
assignées à une variable.
 Pour obtenir la longueur d'un vecteur, on peut utiliser la fonction ‘length’.
7. Opérations matricielles :
 Pour additionner : X=A+B
 Pour soustraire : X=A-B
 Pour multiplier : X=A*B ‘Notez que le nombre de colonnes de A doit être égal au nombre de
lignes de B’.
 Pour la division :
 À droite : X=A/B revient à A=X*B.
 À gauche : X=A\B revient à A=B*X.

>> A=[2 7 2;3 6 1];


>> B=[2 9 1;1 9 2];
>> x=A+B
x=
4 16 3
4 15 3
>> x=A-B
x=
0 -2 1
2 -3 -1
>> x=A.*B
x=
4 63 2
3 54 2
>> x=A/B
x=
0.4035 0.4035
1.3509 -0.6491
Remarque : En règle générale, les divisions matricielles offrent une précision supérieure à l'utilisation
de la fonction d'inversion de matrice inv.
 Pour l'élévation à la puissance : X=A^B
 La transposition : A' représente la transposée de A (Attention : si A est complexe, cela donne la
transposée conjuguée).
 La transposition : .' réalise la transposition simple (pour les matrices réelles ou complexes).
 Le déterminant : det(A)
 L'inverse : inv(A)
>> A=[1,2,3; 4,5,6; 7,8,9] ;
>> A'
ans =
1 4 7
2 5 8
3 6 9
>> det(A)
ans =
6.6613e-16

>> inv(A)
ans =
1.0e+16 *
-0.4504 0.9007 -0.4504
0.9007 -1.8014 0.9007
-0.4504 0.9007 -0.4504

III. Structure de Contrôles


Les structures de contrôle dans Matlab opèrent de manière semblable à celles présentes dans d'autres
langages de programmation.
1. Boucles inconditionnelles for :
La forme générale d'une boucle for est la suivante :
for i = 1:n
instructions
end

Les instructions sont exécutées n fois pour des valeurs de successives de i allant de 1 à n.
Par exemple, les instructions :
>>clear all
x=[];
n=10;
for i=1:n
x=[x,i^2]
end
x =1
x =1 4
x =1 4 9
x =1 4 9 16
x =1 4 9 16 25
x =1 4 9 16 25 36
x =1 4 9 16 25 36 49
x =1 4 9 16 25 36 49 64
x =1 4 9 16 25 36 49 64 81
x =1 4 9 16 25 36 49 64 81 100

>>clear all
x=[];
n=3;
for i=n:-1:1
x=[x,i^2]
end
x =9
x =9 4
x =9 4 1

>>clear all
s=0;
A=[5 6 4;4 4 1]
for c=A
s= s + sum(c)
end
s=9
s =19
s =24

2. Boucles conditionnelles while

La structure générale d'une boucle while est la suivante :


while condition
instructions
end

Les instructions seront exécutées de manière répétitive tant que la condition reste vraie.
>>clear all
n=0;
a=6;
while 2^n < a
n=n+1
end

n=1 n=2 n=3

3. Branchements conditionnels if
La structure générale d'une instruction de branchement conditionnel est la suivante :

if condition
instruction1
else
instruction2
end

L'instruction 1 est exécutée si la condition est vraie, sinon l'instruction 2 est exécutée. On peut
également utiliser un branchement multiple en utilisant le mot-clé ‘elseif’, comme illustré dans
l'exemple suivant :

>>clear all
n=12
if n < 0
parite = 0
elseif rem(n,2) == 0
parite = 2
else
parite= 1
end
n=12 parite=2
4. Operateurs relationnels et operateurs logiques

On dispose des opérateurs relationnels suivants :

< strictement inferieur


> strictement supérieur <= inférieur ou égal
>= supérieur ou égal
== égal
~= différent
TP 1 – Initiation a Matlab

I. Généralités :
En Matlab, les calculs sont numériques et impliquent la manipulation de scalaires, de vecteurs et de
matrices.
 Définir un scalaire : Pour définir le réel 𝑟 = 2 ∗ 𝜋, vous pouvez utiliser :
>> r = 2 * pi;
 Définir un vecteur : Pour définir le vecteur vous pouvez utiliser :
>> x = [1; -1]; ou >> x = [1, -1];

 Définir une matrice : Pour définir la matrice 𝑥 = = (1 − 1) ; vous pouvez utiliser :

A = [1 2 3; 4 5 6]; ou A = [1, 2, 3; 4, 5, 6];


II. Utilisation de la Control Toolbox

1. Généralités :
Dans l'environnement de développement intégré de Matlab, la boîte à outils de commande (Control
Toolbox) offre une gamme d'outils d'analyse pour le contrôle automatique.
Définition du système par sa fonction de transfert : Considérons le système décrit par :


𝐺(𝑠) = =2 ,
( )

Où 𝑠 représente la variable de Laplace. En utilisant Matlab, on peut définir le système de manière


alternative avec les commandes suivantes :
>> F = tf([2 1],[1 2 1]); (numérateur, dénominateur)
ou
>> F = zpk([-1/2],[-1 -1],2); (zéros, pôles, facteur de gain)
Pour construire un système à partir de différents sous-systèmes, plusieurs opérations sont possibles.
Soient 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 en boucle avec G2

Diverses informations sur le système défini par sa représentation G sont disponibles :


>> 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, la pulsation propre et l'amortissement associés à chaque pôle
>> pzmap(G) place les pôles et les zéros dans le plan complexe

>> G=tf([2 1],[1 2 1])

G= 2s+1
-------------
s^2 + 2 s + 1

>> F=zpk([-1/2],[-1 -1],2)

F=
2 (s+0.5)
---------
(s+1)^2

G1 =
2s+1
-------------
s^2 + 2 s + 1

>> G2=tf([2 2],[1/2 2 3])

G2 =
2s+2
-----------------
0.5 s^2 + 2 s + 3

>> G2*G1

ans =
4 s^2 + 6 s + 2
-----------------------------------
0.5 s^4 + 3 s^3 + 7.5 s^2 + 8 s + 3

>> G1+G2

ans =
3 s^3 + 10.5 s^2 + 14 s + 5
-----------------------------------
0.5 s^4 + 3 s^3 + 7.5 s^2 + 8 s + 3

>> feedback(G1,G2)

ans =
s^3 + 4.5 s^2 + 8 s + 3
-------------------------------------
0.5 s^4 + 3 s^3 + 11.5 s^2 + 14 s + 5

>> pole(G1)

ans =
-1
-1
>> pole(G2)

ans =

-2.0000 + 1.4142i
-2.0000 - 1.4142i

>> figure(1);step(G1)
Reponse indicielle
1.4

1.2

0.8
v ites s e e n ra d /s

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8
temps en s (seconds)

>> figure(2);impulse(G1)

Impulse Response
2

1.5

1
Amplitude

0.5

-0.5
0 1 2 3 4 5 6 7 8
Time (seconds)
>> figure(3);bode(G1)

Bode Diagram
10

0
Magnitude (dB)

-10

-20

-30

-40
0
Phase (deg)

-45

-90
-1 0 1 2
10 10 10 10
Frequency (rad/s)

>> figure(1);step(G1);hold on;impulse(G1),grid

Step Response
2

1.5

1
Amplitude

0.5

-0.5
0 1 2 3 4 5 6 7 8
Time (seconds)
2. Prise en main de Matlab et de la Control Toolbox
Pour illustrer les concepts fondamentaux de la boîte à outils de contrôle de Matlab, on rappelle la
modélisation du moteur à courant continu (MCC). La fonction de transfert qui lie la vitesse de rotation
du rotor à la tension appliquée à l'induit est exprimée comme suit :
𝜴(𝒔) 𝑲
𝑮(𝒔) = 𝑼(𝒔) = (𝟏 𝝉𝒆𝒍 𝒔)(𝟏 𝝉𝒆𝒎 𝒔)
,

Avec :
𝑲𝒆𝒎
 𝑲 = 𝑹𝒇 : le gain statique du système,
𝑲𝒆𝒎𝟐

𝑹𝑱
 𝜏𝒆𝒎 = 𝑹𝒇 : la constante de temps électromécanique,
𝑲𝒆𝒎𝟐

𝑳
 𝝉𝒆𝒍 = 𝑹 : la constante de temps électrique.

Dans ce modèle, R représente la résistance de l'induit du moteur, L son inductance, f le coefficient de


frottement visqueux, J le moment d'inertie du rotor et Kem le rapport couple-courant (supposé égal au
rapport force électromotrice-vitesse de rotation).
Exercice :
Question 3:
>>clear all
R=1.44;L=5.6e-4;J=1.29e-4;f=7.2e-5;Kem=0.1;
K=Kem/(R*f+Kem^2)
tem=R*J/(R*f+Kem^2)
tel=L/R
G=tf([K],[tel*tem,tel+tem,1])
P=pole(G)
figure(1);step(G)
figure(2);bode(G)
Question 4 :

K = 9.8974
tem =0.0184
tel =3.8889e-04

G=
9.897
----------------------------
7.15e-06 s^2 + 0.01877 s + 1

Question 5 :
P=
1.0e+03 *

-2.5714
-0.0544
Question 6 :
>>clear all
R=1.44;L=5.6e-4;J=1.29e-4;f=7.2e-5;Kem=0.1;
K=Kem/(R*f+Kem^2)
tem=R*J/(R*f+Kem^2)
tel=L/R
G=tf([K],[tel*tem,tel+tem,1])
P=pole(G)
figure(1);step(G)
figure(2);bode(G)
figure(3);nichols(G)
Kp=10;Kw=10/(3000*2*pi/60)
Gbo=Kp*G*Kw
Gbf=feedback(Kp*G,Kw)
figure(4);step(Gbf)
figure(5);bode(Gbf)
figure(6);nichols(Gbf)
Step Response
10

6
Amplitude

0
0 0.02 0.04 0.06 0.08 0.1 0.12
Time (seconds)

Figure 1 step(G)

Bode Diagram
20

0
Magnitude (dB)

-20

-40

-60

-80
0

-45
Phase (deg)

-90

-135

-180
0 1 2 3 4 5
10 10 10 10 10 10
Frequency (rad/s)

Figure 2 bode(G)
Nichols Chart
40
0 dB
0.25 dB
0.5 dB
20 1 dB -1 dB
3 dB
6 dB -3 dB
0 -6 dB
-12 dB
Open-Loop Gain (dB)

-20 -20 dB

-40 -40 dB

-60 -60 dB

-80 -80 dB

-100 dB
-100
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)

Figure 3 Nichols(G)

Step Response
25

20

15
Am plitude

10

0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035
Time (seconds)
Figure 4 step(Gbf)
Bode Diagram
20

Magnitude (dB)
-20

-40

-60

-80
0

-45
Phase (deg)

-90

-135

-180
0 1 2 3 4 5
10 10 10 10 10 10
Frequency (rad/s)

Figure 5 bode(Gbf)

Nichols Chart
40
0 dB
0.25 dB
0.5 dB
20 1 dB -1 dB
3 dB
6 dB -3 dB
0 -6 dB
Open-Loop Gain (dB)

-12 dB

-20 -20 dB

-40 -40 dB

-60 -60 dB

-80 dB
-80
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)

Figure 6 nichols(Gbf)
Question 7 :

Kw =0.0318

Question 8 :
Gbo =

3.15

----------------------------

7.15e-06 s^2 + 0.01877 s + 1

Gbf =

98.97

-------------------------------

7.15e-06 s^2 + 0.01877 s + 4.15

>> mer

K =9.8974

tem =0.0184

tel = 3.8889e-04

G=

9.897

----------------------------

7.15e-06 s^2 + 0.01877 s + 1

P=

1.0e+03 *

-2.5714

-0.0544

Kw =0.0318

Gbo =

3.15

----------------------------

7.15e-06 s^2 + 0.01877 s + 1

Gbf =

98.97

-------------------------------

7.15e-06 s^2 + 0.01877 s + 4.15

>> Kw=10/3000*(2*pi/60)

Question 11:
clear all
R=1.44;L=5.6e-4;J=1.29e-4;f=7.2e-5;Kem=0.1;
K=Kem/(R*f+Kem^2)
tem=R*J/(R*f+Kem^2)
tel=L/R
G=tf([K],[tel*tem,tel+tem,1])
P=pole(G)
Kp=10;Kw=10/(3000*2*pi/60)
Gbo=Kp*G*Kw
Gbf=feedback(Kp*G,Kw)
Kp=[10 100 1000];
figure(7);
for i=1:length(Kp)
Gbo(i)=Kp(i)*G*Kw;
Gbf(i)=feedback(Kp(i)*G,Kw)
step(Gbf(i));
hold on
end;
Grid;title('Reponse indicielle');
clear all
R=1.44;L=5.6e-4;J=1.29e-4;f=7.2e-5;Kem=0.1;
reponse indicielle
50

45

40

35

30
Amplitude

25

20

15

10

0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035
Time (seconds)

K=Kem/(R*f+Kem^2)
tem=R*J/(R*f+Kem^2)
tel=L/R
G=tf([K],[tel*tem,tel+tem,1])
P=pole(G)
Kp=10;Kw=10/(3000*2*pi/60)
Gbo=Kp*G*Kw
Gbf=feedback(Kp*G,Kw)
Kp=[10 100 1000];
figure(8);
for i=1:length(Kp)
Gbo(i)=Kp(i)*G*Kw;
Gbf(i)=feedback(Kp(i)*G,Kw)
nichols(Gbo(i));
hold on
end;
grid;title('diagramme de black nichols');
diagramme de black nichols
60

40
0 dB
0.25 dB
0.5 dB
20 1 dB -1 dB
3 dB
6 dB -3 dB

Open-Loop Gain (dB)


0 -6 dB
-12 dB
-20 -20 dB

-40 -40 dB

-60 -60 dB

-80 -80 dB

-100 dB
-100
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)

clear all
R=1.44;L=5.6e-4;J=1.29e-4;f=7.2e-5;Kem=0.1;
K=Kem/(R*f+Kem^2)
tem=R*J/(R*f+Kem^2)
tel=L/R
G=tf([K],[tel*tem,tel+tem,1])
P=pole(G)
Kp=10;Kw=10/(3000*2*pi/60)
Gbo=Kp*G*Kw
Gbf=feedback(Kp*G,Kw)
Kp=[10 100 1000];
figure(9);
for i=1:length(Kp)
Gbo(i)=Kp(i)*G*Kw;
Gbf(i)=feedback(Kp(i)*G,Kw)
bode(Gbf(i));
hold on
end;
grid;title('diagramme de bode');
diagramme de bode
40

20
Magnitude (dB)

-20

-40

-60
0

-45
Phase (deg)

-90

-135

-180
1 2 3 4 5
10 10 10 10 10
Frequency (rad/s)
diagramme de black nichols
60

40

0 dB

0.25 dB

0.5 dB

20 1 dB -1 dB
System: untitled3 System: untitled2 System: untitled1
Phase Margin (deg): 22.4 Phase Margin (deg): 62.1 Phase Margin (deg): 105
3 dB
Delay Margin (sec): 6.11e-05 Delay Margin (sec): 0.000731 Delay Margin (sec): 0.0113
At frequency (rad/s): 6.39e+03 At f requency (rad/s): 1.48e+03 At f requency (rad/s): 162 -3 dB
6 dB
Closed loop stable? Yes Closed loop stable? Yes Closed loop stable? Yes
0 -6 dB

-12 dB
Open-Loop Gain (dB)

-20 -20 dB

-40 -40 dB

-60 -60 dB

-80 -80 dB

-100 dB
-100
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)

On Ajoute Kp=[10 100 1000 10000]

diagramme de black nichols


80

60

40
0 dB

0.25 dB
0.5 dB
20 1 dB
System: untitled4 System: untitled2 -1 dB
Phase Margin (deg): 7.16 Phase Margin (deg): 62.1
3 dB Delay Margin (sec): 5.98e-06 Delay Margin (sec): 0.000731
-3 dB
6 dB At frequency (rad/s): 2.09e+04 At f requency (rad/s): 1.48e+03
Closed loop stable? Yes Closed loop stable? Yes
Open-Loop Gain (dB)

0 -6 dB
System: untitled3 System: untitled1
Phase Margin (deg): 22.4 Phase Margin (deg): 105
Delay Margin (sec): 6.11e-05 Delay Margin (sec): 0.0113 -12 dB
At frequency (rad/s): 6.39e+03 At frequency (rad/s): 162
Closed loop stable? Yes Closed loop stable? Yes
-20 -20 dB

-40 -40 dB

-60 -60 dB

-80 -80 dB

-100 dB
-100
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)

Interprétation : (Kp augment marge de phase Diminue)

3. Utilisation de Simulink
Généralités :
imulink, une extension de Matlab, offre un environnement graphique pour la simulation de systèmes.
Nous envisageons ici d'utiliser Simulink pour modéliser l'asservissement en vitesse d'un moteur à
courant continu, permettant ainsi la visualisation des réponses du système à diverses entrées.
Pour démarrer Simulink, vous pouvez accéder aux menus disponibles ou saisir la commande suivante
dans la fenêtre de commande : "simulink".
Pour créer un nouveau modèle Simulink, sélectionnez "New" dans le menu "File", puis "Model". Une
feuille de travail s'ouvrira, où vous pourrez définir graphiquement votre système. Les outils
disponibles sont accessibles à partir des menus correspondants : sources, visualisation, automatique
continue, automatique discrète, fonctions mathématiques, fonctions et tables, automatique non-
linéaire, signaux et systèmes.
Du fait de son caractère graphique, Simulink est intuitif à utiliser. Il repose sur la technique du "drag
and drop" (sélectionner et faire glisser), ce qui facilite le positionnement des éléments nécessaires dans
la fenêtre du modèle. Ensuite, vous pouvez connecter ces éléments pour construire le modèle. Chaque
élément est accompagné d'une description et éventuellement de paramètres modifiables. Pour y
accéder, double-cliquez simplement sur l'élément concerné.
Command window : >> Simulink
Conclusion

En somme, cette immersion pratique a brillamment mis en lumière la puissance et la


flexibilité des outils à disposition dans MATLAB, notamment la Toolbox de Contrôle et
Simulink, pour analyser, concevoir et simuler des systèmes de contrôle. Grâce à ces
ressources sophistiquées, nous avons eu l'opportunité d'explorer en profondeur une gamme
étendue d'aspects relatifs à la modélisation des systèmes dynamiques, à l'élaboration de
régulateurs et à l'évaluation des performances en contrôle.

L'exploitation de la Toolbox de Contrôle nous a permis d'aborder de manière méthodique et


rigoureuse les principes fondamentaux de l'automatique, tels que la stabilité, la robustesse et
la dynamique des réponses des systèmes. Nous avons ainsi étudié diverses méthodes de
conception de régulateurs, telles que les régulateurs PID et ceux à avance-retard, tout en
évaluant leur efficacité à travers des simulations avancées.

De manière parallèle, l'utilisation de Simulink nous a offert un environnement graphique


intuitif pour la modélisation et la simulation des systèmes dynamiques. À travers la technique
du "drag and drop", nous avons pu élaborer des modèles complexes en agençant des blocs
fonctionnels représentant les composants du système. Cela nous a octroyé la capacité de
simuler de façon précise le comportement dynamique de systèmes réels et d'analyser leurs
réponses à différentes entrées.

Cette expérience pratique nous a également donné l'opportunité d'approfondir nos


compétences en programmation MATLAB. En recourant à des scripts et à des fonctions
personnalisées, nous avons automatisé des tâches complexes et effectué des analyses
détaillées des données engendrées par nos simulations.

En définitive, cette expérience pratique a été hautement instructive, nous conférant une
compréhension approfondie des concepts théoriques de l'automatique et de leur mise en
œuvre concrète à travers MATLAB. Elle a renforcé notre assurance quant à l'utilisation de ces
outils puissants pour résoudre des problèmes complexes en contrôle et en automatisation, tout
en nous dotant de compétences précieuses pour notre future carrière dans les domaines de
l'ingénierie et de la recherche.

Vous aimerez peut-être aussi