Vous êtes sur la page 1sur 9

TP1 Commande numérique

TP1 : Initiation à MATLAB


I. Présentation de MATLAB
MATLAB est un logiciel interactif conçu pour la résolution des problèmes mathématiques et
des problèmes pratiques d’ingénieries : calcul matriciel, traitement de signal, statistiques,
automatique… Le nom MATLAB provient de MATrix LABoratory développé par Math
Works Inc. Les données de bases sont des matrices qui ne nécessitent aucun
dimensionnement, contrairement aux autres langages classiques de programmation. Le
logiciel MATLAB est réservé notamment au traitement numérique des signaux, à la
modélisation, à la simulation et à la conception des systèmes numériques complexes.
MATLAB peut être utilisé en mode programmation, c-à-d il est capable d’exécuter une série
de commandes mémorisées ou écrites dans un fichier M-Files défini par l’extension .m . Pour
une prise en main rapide de MATLAB, nous allons brièvement introduire quelques fonctions
de base.
MATLAB (« matrix laboratory ») est un langage de programmation de quatrième génération
émulé par un environnement de développement du même nom ; il est utilisé à des fins de
calcul numérique. MATLAB permet de manipuler des matrices, d'afficher des courbes et des
données, de mettre en œuvre des algorithmes, de créer des interfaces utilisateurs, et peut
s’interfacer avec d’autres langages comme le C, C++, Java, et Fortran. Les utilisateurs de
MATLAB (environ un million en 20041) sont de milieux très différents comme l’ingénierie,
les sciences et l’économie dans un contexte aussi bien industriel que pour la recherche.
Matlab est utilisé avec des toolbox (« boîte à outils »).

II. Démarrage de MATLAB


Pour lancer l’exécution de MATLAB sous Windows, il faut effectuer un double clic sur
l’icône de MATLAB.

II.1. Quelques commandes utiles

- Help : donne en ligne les informations nécessaires sur n’importe quelle commande
MATLAB

- Demo : lance la démonstration


- Who : liste des variables en mémoire
- What : liste des M-Files
- Size : donne la dimension d’une matrice
- Lengh : donne la longueur d’un vecteur
- Clear : efface toutes les variables mémorisées lors d’une session
- Exit : sortir de MATLAB

II.2. Opérations élémentaires

+ : addition
- : soustraction
* : multiplication
.* : multiplication élément par élément
/ : division à droite
TP1 Commande numérique

./ : division à droite élément par élément


^ : élévation à la puissance
.^ : élévation à la puissance élément par élément

II.3. Variables spéciales et constantes

Inf (infinite) : nombre infini


Ans : variable contenant la dernière réponse
Pi : 3,14159265358979
i, j : variables complexes

II.4. Fonctions arithmétiques

Abs : module
sqrt : racine carré
real : partie réelle ; imag : partie imaginaire
angle : la phase ; conj : conjugué
rem : reste de la division entière
ceil : quotient de la division entière +1 ; round : quotient de la division entière
exp, log, log10,…

II.5. Fonctions trigonométriques


sin, cos, tan, cot, …

II.6. Fonctions pour l’analyse des données


min, max, mean, std, sum, …

II.7. Fichier de commandes et de fonctions

MATLAB peut exécuter une séquence d’instructions dans un fichier appelé M (M-File), avec
une extension .m. Il y a deux types de fichiers M : les fichiers de commandes et les fichiers de
fonctions. Un fichier de commandes est une séquence d’instructions MATLAB. Les fichiers
fonctions fournissent une extensibilité à MATLAB.

III. Programmation avec MATLAB


III.1. Communication avec l’utilisateur

On peut afficher un message ou une valeur à l’écran avec l’instruction disp : Exemple : disp
(‘ceci est une introduction à MATLAB’) affiche « ceci est une introduction à MATLAB » sur
l’écran. On peut faire entrer une valeur avec l’instruction
X = input (‘valeur de x=’)
affiche sur l’écran « valeur de x= »

III.2. Vecteurs et Matrices

En fait, toute variable de Matlab est une matrice (scalaire : matrice 1x1, vecteur : matrice 1xN
ou Nx1). On peut spécifier directement une matrice sous la forme d'un tableau avec des
crochets, l'espace ou la virgule sépare deux éléments d'une même ligne, les points virgules
séparent les éléments de lignes distinctes.
TP1 Commande numérique

1. Tapez sur matlab la matrice suivante


>> A = [ 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ]
Les éléments d'une matrice peuvent être n'importe quelle expression de Matlab :
>> x = [ -1.3, sqrt(3), (1+2+3)*4/5 ]
x = -1.3000 1.7321 4.8000
Pour calculer la transposée d’un vecteur x ou d’une matrice A , il faut écrire
x1 = x’
A1 = A’

Les vecteurs et les matrices sont les deux modes usuels de représentation des données.ils
peuvent être définis de plusieurs manières :
a = [0 2.5 8] ou [0,2.5,8] est une matrice 1 ligne, 3 colonnes ;
a = [0 ; 2.5 ; 8] une matrice 3 lignes, 1 colonne. Un point virgule termine une ligne.
A(i,j) : élément de la matrice A de ligne i, colonne j.
A(:,j) : correspond à la colonne n°j
A(i,:) : correspond à la ligne n°i
X=[1 5 9 13 17] ou [1:4:17] (début:pas:fin)
A.^2 donne le carré des éléments de A
Certaines fonctions génèrent des matrices :
zeros (m,n) : génère une matrice m*n de zéros.
ones (m,n) : génère une matrice m*n de 1.
eyes (m,n) : identité.

2. Générer une matrice de dimension 4*4 de valeur 1

Les éléments d'une matrice peuvent ensuite être référencés par leurs indices, on utilise alors
des parenthèses et non des crochets. Le mot-clé end peut être utilisé en indice pour signifier le
dernier élément.
On peut effectuer les opérations d’addition, de soustraction, de multiplication sur les vecteurs
et les matrices, s’ils ont bien sûr les dimensions adéquates, en utilisant les symboles +, -, * .
Le tableau suivant donne quelques fonctions de base pour le calcul matriciel :

On peut avoir des informations sur la taille d'une matrice:


TP1 Commande numérique

>> size(x)
>> length(x) % longueur
Les opérations usuelles sont définies de façon naturelle pour les matrices :
>> 2*A % Produit par un scalaire
>> A*B % Produit de deux matrices (de dimensions cohérentes)
>> A^p % Elève la matrice carrée A à la puissance p
>> inv(A) % Inversion d'une matrice carrée inversible (message d'alerte éventuel)
>> A.*B % Produit élément par élément de deux matrices.
Attention : A*A est différent de A.*A.
>> X = A\B % Donne la solution de A*X = B (équivalent à X = inv(A)*B)
>> X = B/A % Donne la solution de X*A = B (équivalent à X = B*inv(A))

>> X = A./B % Division éléments par éléments

3. Générer une matrice quelconque 5*5 et son déterminant, sa trace, son inverse, sa
taille, ses valeurs propres, son rang et sa longueur.

 M1 M2 
Pour définir une matrice M   M par bloc, il faut d’abord définir les matrices
 M3 M 4 
M1, M2, M3 et M4 puis écrire:

M=[M1 M2 ;M3 M4]

4. Tapez sur Matlab le code suivant :


Exemple :
A=[2 0;1 3]
B=[1 1;0 5]
C=eye(2)
D=ones(2)
A1=inv(A)
E=[A B;C D]
size(E)
det(E)
rank(E)

III.3. Boucle for

On peut créer une boucle en utilisant for……end. On peut aussi réaliser des boucles for
imbriquées. Boucle for simple:

for i=1 :100


X(i)=2*cos(2*pi*i/100)
end

Deux boucles for :

for i=1 :1:4


for j=1:2:4
TP1 Commande numérique

a(i,j)=i*j
end
end

5. Taper sur matlab les deux boucles suivants et indiquez quel est le rôle de chaque
code

III.4. Ponctuation % :

tout ce qui suit cette instruction est considéré comme commentaire et ne sera donc pas
exécuté. ; : le résultat d’une instruction MATLAB est affiché à l’écran, sauf si ce signe
termine l’instruction.

Exemple :

essayez a=10*2 puis b=10*2 ;

III.5. Variables

Avec MATLAB, il n’est plus nécessaire de dimensionner les variables avant de les utiliser.
Les variables sont conservées en mémoire jusqu’à ce que l’ordre d’effacement clear soit
exécuté. On peut avoir une idée sur les variables en mémoire ainsi que leurs dimensions par
l’ordre whos.

III.6 Affichage alphanumérique

On peut afficher des chaînes de caractères dans la fenêtre de commande :


>> message = 'bienvenue sur Matlab';
>> disp(message)
Les fonctions sprintf et fprintf existent également (même syntaxe qu'en langage C).
>> fprintf('pi vaut %f\n',pi)
pi vaut 3.141593.
On peut aussi demander des valeurs à l'utilisateur :
>> rep = input (' Nombre d’'itération de l’’algorithme : ');
Matlab affichera la chaîne de caractère entrée en paramètre et attendra une réponse de
l'utilisateur.
6. Taper les instructions précédentes

III.7. Représentation graphique

Exemple : discrétiser le temps t = [1 :0.1 :16] puis générer un signal sinusoïdal


y = sin (2*pi*0.5*t)
plot (y) : dessine les points représentant y en lissant la courbe (joindre les points)
stem (y) : dessiner les points représentant y. Pour mieux constater la différence entre plot et
stem, effectuer une variation du pas.
xlabel (‘texte’) : donne un nom aux abscisses
ylabel (‘texte’) : donne un nom aux ordonnées
title (‘texte’) : donne un titre au graphique

7. Tapez les instructions précédentes et donner vos remarques


TP1 Commande numérique

axis [xmin xmax ymin ymax] : définit les valeurs des axes.
Grid : trace une grille sur le graphique
Hold on/off : permet ou interdit la superposition des courbes
Figure : ouvre une nouvelle figure
Subplot (m,n,e) : subdivise la figure en m lignes et n colonne et trace la courbe dans l’élément
e.
Legend : affiche, dans un cadre, en face du style de chaque courbe le texte correspondant.

III.7. Les fichiers .m

Ils permettent la sauvegarde d’un ensemble de commandes et leur exécution. Ils permettent
aussi d’écrire et de sauvegarder des fonctions. Exemple :

function y = sinusoide (pas, long, per)


t = [0:pas:long]
y=sin(2*pi*(1/per)*t)
plot (y)
xlabel (‘temps)
ylabel (‘y(t)’)
title (nom,’color’,’r’)

Génération des signaux : Impulsion, Unité et Echelon Unité

a. Impulsion de Dirac :

L'impulsion de Dirac correspond à la fonction suivante :

0 pour t  0
 (t )  
1 pour t  0
1. Soit le programme suivant qui représente une fonction de dirac (impulsion de dirac) avec
un échelle de temps t0 entre -10s et 20s en utilisant la fonction zeros.
TP1 Commande numérique

2. Faire les changements nécessaires au programme précédent pour représenter les


impulsions suivantes :
x1(t)= 2δ(t), x2(t)= δ(t + 3) et x3(t)= δ(t-4).

3. Utiliser la commande subplot afin de tracer les quatre courbes les unes en dessous des
autres.

b. Fonction signe et Fonction échelon:

Soit les deux signaux sign(t) et u(t) donnés par les fonctions suivantes :

1 pour t  0
sign(t )  
1 pour t  0
0 pour t  0
u (t )  
1 pour t  0
1. Modifier le programme Matlab précédent pour générer et représenter graphiquement les
signaux sign(t) et u(t). (Utiliser la commande ones).
2. Faire les changements nécessaires au programme précédent pour représenter les
impulsions suivantes : x1(t)= 2u(t), x2(t)= u(t + 3) et x3(t)= u(t-4).
3. Utiliser la commande subplot afin de tracer les trois courbes les unes en dessous des
autres

Exercice 2 : Génération des signaux sinusoïdaux

Une autre classe de signaux très utile en traitement du signal et en automatique sont les
signaux sinusoïdaux de la forme :
 2   
x(t)  A cos   t  
 T  

On considère les quatre signaux suivants :

 x1(t) = 3*cos (2π*f1*t+p1)


 x2(t) = cos (2π*f2*t)
 x3(t) = 2*sin (2π*f3*t+p3)
 x4(t) = x1(t) + 3*x2(t) + 2*x3(t)
Avec :
 f1 = 0.04 Hz; p1 = π/4,
 f2 = 0.105 Hz;
 f3 = 0.2 Hz; p3 = π/3.

Ecrire un programme Matlab qui permet de :

1- Générer un vecteur temps t de 100 points entre t0 = 0s et t1 = 100s.


2- Générer et représenter les xi(t); (i = 1; 4). Utiliser la commande subplot afin de tracer
les quatre courbes les unes en dessous des autres.
3- Commenter les résultats obtenus.
TP1 Commande numérique
TP1 Commande numérique

Vous aimerez peut-être aussi