Compte Rendu TP Matlab
Compte Rendu TP Matlab
[Date] 1
I. Généralités
Introduction
MATLAB est un logiciel largement utilisé dans les domaines scientifiques et techniques,
notamment en génie électrique et en automatique. Il permet d’effectuer des calculs
numériques, de manipuler des matrices et de simuler des systèmes dynamiques de manière
simple et efficace. L’objectif de ce travail pratique est de se familiariser avec l’environnement
MATLAB, d’explorer ses principales fonctionnalités et de l’appliquer à l’étude des systèmes
linéaires invariants. Nous nous intéressons particulièrement à la modélisation des systèmes, à
l’analyse de leurs réponses temporelles et fréquentielles, ainsi qu’à leur simulation à l’aide de
Simulink.
1. Interface principale
Au lancement du logiciel MATLAB, une interface graphique complète apparaît à l’écran.
Cette interface constitue un environnement de travail interactif permettant à l’utilisateur
d’exécuter des commandes, de programmer et d’analyser des résultats numériques et
graphiques.
L’environnement MATLAB est organisé en plusieurs fenêtres principales, chacune ayant un
rôle spécifique dans l’exécution et la gestion des programmes. On distingue principalement
quatre blocs essentiels :
1.1 Command Window (fenêtre de commande)
La Command Window est la fenêtre principale de MATLAB. Elle permet à l’utilisateur de
saisir directement des instructions à l’aide de l’invite de commande représentée par le
symbole « >> ».
Les commandes entrées dans cette fenêtre sont exécutées immédiatement après validation, ce
qui permet d’obtenir rapidement des résultats. Cette interaction directe rend MATLAB
particulièrement efficace pour les calculs rapides et les tests.
1.2 Current Directory (répertoire courant)
Le Current Directory permet de visualiser et de gérer les fichiers présents dans le répertoire
de travail courant.
Les scripts et fonctions MATLAB doivent être enregistrés dans ce répertoire afin d’être
accessibles et exécutables. Cette fenêtre facilite également la navigation entre différents
dossiers.
1.3 Workspace (espace de travail)
Le Workspace affiche l’ensemble des variables utilisées au cours de la session MATLAB.
Pour chaque variable, MATLAB indique son nom, sa taille, son type ainsi que l’espace
mémoire occupé. Cela permet à l’utilisateur de suivre et de contrôler facilement les données
manipulées.
[Date] 2
1.4 Command History (historique des commandes)
La fenêtre Command History contient la liste des commandes précédemment exécutées par
l’utilisateur.
Il est possible de réutiliser ces commandes en les sélectionnant ou en les faisant glisser vers la
Command Window, ce qui permet de gagner du temps et d’éviter de retaper des instructions
répétitives.
1.5 Fonctionnement général
La Command Window est au centre de l’utilisation de MATLAB. Toutes les instructions y
sont saisies et exécutées. Le fonctionnement est simple : l’utilisateur entre une commande,
puis valide pour obtenir le résultat.
Par exemple, si l’on saisit l’instruction suivante :
3*5
MATLAB affiche immédiatement le résultat :
ans = 15
Le mot « ans » représente la variable automatique contenant le dernier résultat calculé.
1.6 Utilisation du point-virgule
Afin d’éviter l’affichage automatique des résultats, il est possible d’ajouter un point-virgule
« ; » à la fin d’une instruction.
Dans ce cas, le calcul est effectué mais le résultat n’est pas affiché dans la Command Window.
Par exemple :
[Date] 3
Texte
On commence par définir un vecteur de temps contenant plusieurs valeurs comprises entre 0
et 6 avec un pas de 0.5 :
t = 0:0.5:6;
plot(t,y,'*')
grid on
title('Signal sinusoidal')
xlabel('Temps')
ylabel('Amplitude')
Le vecteur « t » représente le temps. MATLAB calcule ensuite les valeurs du sinus pour
chaque instant.
Le graphique obtenu représente une fonction sinusoïdale de période égale à 6.
On observe que le signal est périodique et oscille entre -1 et 1.
[Date] 4
2.2 Résolution d’un système d’équations linéaires
Considérons le système d’équations suivant :
Code Matlab :
A = [2 1 0; 4 -3 2; 1 2 -1];
B = [-5; 0; 1];
X = inv(A)*B
MATLAB permet de résoudre facilement ce système en utilisant les matrices.
La fonction inv(A) calcule l’inverse de la matrice A, ce qui permet d’obtenir la solution du
système.
Le vecteur X contient les valeurs des inconnues x, y et z.
[Date] 5
Résultat
On obtient :
x = 1.75
y = -8.5
z = -16.25
3 - Les variables
MATLAB permet de manipuler différents types de données tels que les nombres entiers, les
nombres réels, les nombres complexes ainsi que les chaînes de caractères.
La déclaration des variables dans MATLAB est implicite, c’est-à-dire qu’il n’est pas
nécessaire de préciser leur type. La mémoire est automatiquement allouée lors de leur
création.
L’affectation d’une valeur à une variable se fait à l’aide du symbole « = »
Expl
icati
on
[Date] 6
Dans cet exemple, MATLAB effectue des opérations simples d’addition et de multiplication.
Lorsque le résultat n’est pas affecté à une variable, MATLAB le stocke automatiquement
dans une variable spéciale appelée ans.
Il est important de noter que MATLAB distingue les majuscules et les minuscules (par
exemple x et X sont deux variables différentes).
Workspace
Lorsqu’une variable est définie, elle apparaît automatiquement dans la fenêtre Workspace.
Cette fenêtre permet de visualiser les variables, leur type, leur taille ainsi que la mémoire
qu’elles occupent.
La commande suivante permet d’afficher toutes les variables présentes :
<<whos>>
[Date] 7
Explication
La constant pi représente le nombre π, tandis que i ou j représente l’unité imaginaire √-1.
MATLAB permet également de manipuler des nombres complexes.
Exemple nombres complexes
a = 2 + 3*i;
b = 1 - i;
a+b
Remarque importante
Les constantes prédéfinies peuvent être modifiées si l’utilisateur les redéfinit, ce qui peut
entraîner des erreurs.
pi = 1
clear pi
3.3 Quelques fonctions mathématiques
MATLAB propose un grand nombre de fonctions mathématiques permettant d’effectuer
différents types de calculs.
Catégorie Fonctions
[Date] 8
Catégorie Fonctions
[Date] 9
Syntaxe : valeur_initiale : pas : valeur_finale
Si le pas n’est pas précisé, il vaut 1 par défaut :
v = 0:5
Génère : 0 1 2 3 4 5
[Date] 10
4.2 Quelques fonctions utiles
Fonction Description
Résultat :
M=
1 2 3
4 5 6
7 8 9
[Date] 11
Accès et modification des éléments
Pour accéder à un élément : M(i,j)
Exemple :
M (2,3) % élément 2ème ligne, 3ème colonne
Matrices particulières
Fonction Description Exemple
Matrice nulle
Z = zeros(2,3)
[Date] 12
4.4 Extraction de sous-matrices et construction par
blocs
Extraction de sous-matrices
L’opérateur : permet d’extraire des blocs de lignes ou
colonnes d’une matrice.
La syntaxe générale :
M (1:2,:) → lignes 1-2, toutes les colonnes
M (1,:) → première ligne complète
[Date] 13
M (:,2) → deuxième colonne complète
[Date] 14
Fonctions utiles pour les matrices
Fonction Description
det(M) Déterminant
Opérateur Description
+ addition
[Date] 15
Opérateur Description
- soustraction
* produit matriciel
/ division droite
\ division gauche
^ puissance
' transposition
inv() inversion
II. Application à
l’Automatique
1. Introduction
MATLAB est un logiciel largement utilisé en
automatique grâce à ses nombreuses fonctionnalités pour l’analyse et la simulation des
systèmes dynamiques. La Control System Toolbox fournit des outils essentiels pour
manipuler des systèmes linéaires invariants, notamment la création et l’analyse des fonctions
de transfert.
[Date] 16
De plus, Simulink®, intégré à MATLAB, offre un environnement graphique pour la
modélisation et la simulation des systèmes multi-domaines.
2. Représentation des systèmes linéaires invariants
2.1 Fonctions de transfert
Une fonction de transfert est un outil fondamental pour représenter un système linéaire
invariant. MATLAB permet de créer des fonctions de transfert à l’aide de la commande tf().
La syntaxe générale est :
G = tf(num, den)
où :
num : vecteur des coefficients du numérateur
den : vecteur des coefficients du dénominateur
Ainsi, pour une fonction de transfert de la forme :
[Date] 17
Ces commandes permettent de créer des objets MATLAB représentant les systèmes étudiés,
ce qui facilite par la suite le calcul des réponses temporelles et fréquentielles, ainsi que la
simulation dans Simulink®.
2.2 Représentation d’état
En automatique, une autre façon de modéliser un système linéaire invariant est la
représentation dans l’espace d’état. Cette méthode est particulièrement adaptée pour les
systèmes multi-entrées et multi-sorties (MIMO) et pour l’analyse des systèmes dynamiques
internes.
MATLAB permet de créer un système d’état à l’aide de la commande ss(). Cette fonction
prend en argument les quatre matrices du système :
où :
A: matrice dynamique (état → état)
B : matrice de commande (entrée → état)
C : matrice de sortie (état →
sortie)
D : matrice de transfert
direct (entrée → sortie)
Exemple continu
Définissons un système
continu :
[Date] 18
2.2.2 Systèmes discrets
Pour un système discret (échantillonné), la création est similaire, mais il faut spécifier la
période d’échantillonnage Ts.
Exemple 1 – Fonction de transfert discrète en Z (période d’échantillonnage 0.2 s) :
[Date] 19
Exemple 3 – Représentation
d’état discrète (Ts = 1 s) :
[Date] 20
Représentation d’état → fonction de transfert :
[Date] 21
2.3.2 Discrétisation des systèmes continus
La fonction c2d permet de passer d’un système continu à un système discret, en spécifiant la
période d’échantillonnage et la méthode de conversion :
Méthode ZOH (Zero-Order Hold) : obtention par échantillonnage direct.
Méthode Tustin (approximation bilinéaire) : obtention par discrétisation via la
transformation de Tustin.
Exemple avec ZOH :
[Date] 22
2.4 Connexions de systèmes
Des systèmes plus complexes peuvent être construits à partir de sous-systèmes élémentaires.
MATLAB propose trois opérations principales :
1. Mise en série :
2. Mise en parallèle :
3. Bouclage (feedback) :
[Date] 23
2.3.3 Analyse des systèmes dynamiques
MATLAB fournit également des fonctions dédiées pour l’étude des caractéristiques
des systèmes dynamiques.
Fonction Description
[Date] 24
Un clic droit sur la figure MATLAB permet d’obtenir des informations sur les caractéristiques du
système simulé.
[Date] 25
4. Génération de signaux d’entrée arbitraires
MATLAB propose la fonction gensig pour générer automatiquement des signaux de test
standards :
sin : signal sinusoïdal
square : signal carré
pulse : signal impulsionnel
Syntaxe générale :
[u, t] = gensig(type, T, Tf, Ts)
où :
type : type du signal ('sin', 'square', 'pulse')
T : période du signal (en secondes)
Tf : durée totale de la simulation
Ts : pas d’échantillonnage
u : vecteur du signal généré
t : vecteur temps associé
Exemple : signal sinusoidal
[Date] 26
Exemple : signal carré
[Date] 27
G = tf([1 1],[1 4 3/2]);
[U,T] = gensig('square', 20, 70); % signal carré, période 20s, durée 70s
lsim(G,U,T) ; % simulation du système avec ce signal
La fonction lsim permet de simuler la réponse d’un système LTI à une entrée arbitraire,
mesurée ou générée :
Syntaxe générale :
où :
MATLAB permet d’effectuer une analyse fréquentielle complète des systèmes LTI grâce à
plusieurs fonctions spécifiques :
[Date] 28
Exemple : diagramme de Bode
nichols(G)
grid on
La fonction margin(G) est similaire à bode(G) mais affiche également les marges de
gain et de phase, très utiles pour évaluer la stabilité du système.
6. Simulink
Simulink® est un logiciel intégré à MATLAB, muni d’une interface graphique permettant
de modéliser, simuler et analyser des systèmes dynamiques via des schémas-blocs.
Simulink
Simulink est particulièrement pratique pour les systèmes complexes, multi-entrées et multi-
sorties, et permet de visualiser graphiquement les réponses temporelles et fréquentielles.
[Date] 29
Conclusion
Au cours de ce travail pratique, nous avons découvert les bases du logiciel MATLAB ainsi
que ses principales fonctionnalités pour la manipulation des matrices et la résolution de
problèmes numériques.
Nous avons également appliqué ces outils à l’étude des systèmes linéaires invariants en
automatique, notamment à travers la modélisation par fonctions de transfert et représentation
d’état, ainsi que l’analyse des réponses temporelles et fréquentielles.
Enfin, l’utilisation de Simulink nous a permis de mieux visualiser le comportement des
systèmes dynamiques à travers des schémas blocs. Ce TP nous a donc permis d’acquérir des
compétences essentielles pour l’analyse et la simulation des systèmes en génie électrique.
[Date] 30