Vous êtes sur la page 1sur 28

Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

Chapitre I
Introduction à Matlab
I.1. Généralités

a) historique :

MATLAB est une abréviation de Matrix LABoratory. C'est un logiciel de calcul matriciel (1985
par C.Moler), considéré comme un environnement puissant, complet et facile à utiliser destiné
au calcul scientifique. Il apporte aux ingénieurs, chercheurs et à tout scientifique un système
interactif intégrant calcul numérique et visualisation. C'est un environnement performant,
ouvert et programmable qui permet de remarquables gains de productivité et de créativité.

b) Particularité:

Plus besoin de programmer des boucles pour modifier les éléments d'une matrice un à un, on
peut traiter la matrice comme une simple variable. Il permet un travail interactif on mode
commande et un travail exécutif en mode programmation.

c) Schéma synoptique :

Fenêtre Graphique

Control System Fenêtre de


Toolbox commande

Interpréteur

Robust control
System Identification Toolbox
Toolbox

Simulink Interface

Fig 1.1 Environnement Matlab

1
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

I.2. Mode de travail

a) Mode interactif :

ZOOM

Fenêtre de
Commande

>> L'invite de matlab indiquant que l'interpréteur est prêt à recevoir une commande

>> x = 2 Retour chariot

x= Commande

2
Affichage

>> Interpréteur disponible


>> Une ligne de commande peut contenir plusieurs instructions séparées par des virgules .
>> Commande ;

>> Résultat : le point virgule provoque l'absence


de l'affichage

b) Mode exécutif :

Matlab permet d'ouvrir, de créer et de modifier des fichiers :

· Créer : File New M-file

2
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

· Sauvegarde :
- Les noms des fichiers programmes se terminent par l'extension : m

Pour lancer l'exécution d'un programme il faut se mettre toujours dans même répertoire ou se
trouve se programme.
- Les noms des fichiers de données se terminent par l'extension : mat
Les fichiers mat-files sont des fichiers permettant sous-matlab de sauvegarder des données, par
exemple on réalise une simulation, dont on veut garder les résultats, on auvegarde alors les
données dans un fichier :

>> a=5

a= Commande pour sauvegarder


des données
5
La variable à
>> save sauve1.mat a sauvegarder : a

Nom du fichier dans lequel


on désire sauvegarder les
données

>> load sauve1


>> a

a=
Récupération des données

>>

· Modifier : Il est possible de modifier le répertoire par défaut soit à l'aide de la


commande 'cd' ou en lançant le ' bath browser '.

· Commentaire : Le symbole % introduit un commentaire, tous ce qui se trouve après


ce symbole ne sera pas évaluer par l'interpréteur.

Les variables et les données (data) crées lors de la programmation résident dans ce qu’en
appelle : espace de travail : Wokspace. Dans cette fenêtre il est possible de supprimer ou de
modifier le nom, la taille et le contenu de l’une ou de l’autre des variables.
Dans Matlab l’accès à l’espace de travail s’effectue à partie du menu View : Workspace.
Il permet également la suppression ou la modification des variables. Il offre aussi la possibilité
de retrouver toutes les commandes taper antérieurement en mode interactif dans la fenêtre ;
Command History (l’historique des commandes), avec la date de la session correspondante.

3
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

L’espace de travail
L’historique des
commandes

I.3. Opérations mathématiques et fonctions

I.3.1. Opérateurs

a) Opérations relationnels

Une expression relationnelle contient des opérateurs tels que :

< : strictement plus petit


< = : plus petit ou égal
>: strictement plus grand
>=: plus grand ou égale
==: égalité
~=: non égalité

4
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

une expression relationnelle renvoie 1 si elle est vérifiée (vraie ) et 0 autrement (fausse).
S'ils sont appliquées à une matrice, ces opérations renvoient une matrices de mêmes
dimension car ils s'appliquent à chacun de ces éléments.

b) Opérations mathématiques :

· * : Multilicateur
· + : sommateur
· - : soustracteur
· /: diviseur

c) Opérations logiques
Il existe 3 opérateurs logiques qui peuvent être utilisés pour gérer les résultats binaires (0 ou
1) renvoyés par des expressions relationnelles.

ê: ou logique (OR)
~ : opérateur non ( Not)
& : opérateur ET (And)

d) Caractères spécifiques

. % point décimal (3.1416)


… % continuation de ligne : si une ligne se termine par 3 point (ou plus), cela
signifie que la ligne suivante en constitue la suite.
, % sépare les arguments d'une fonction ou différentes commandes lorsqu'elles sont
tapées sur une même ligne.
; % sépare deux lignes dans une matrice ou supprime l'affichage d'une donnée
numérique à l'écran.

I.3.2. Variables

a) vecteur
- définition: Les éléments d'un vecteur sont entrées l'un après l'autre séparés par des
blancs ou des virgules, l 'ensemble étant encadré par des crochets.

>> x=[1 2 3 4 5 6 7]

x=

1 2 3 4 5 6 7

ou autrement:
x =[1:7]; % l 'incrément est par défaut égal à 1

5
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

x=[1:1:7]; % l 'incrément est égal à 1


x=linspace(1,7,7); % créer un vecteur ligne , contenant 7 valeurs
régulièrement espacées entre 1 et 7.
x=logspace(1,7,7); % créer un vecteur ligne , contenant 7 valeurs reparties de
façon logarithmique entre les décades 101 et 107.

a-2/ dimension d'un vecteur :

>> length(x)
La longueur du vecteur
ans =

7 Une variable qui est définit par défaut et qui


contient le résultat de la commande effectuée

a-2/ Somme des éléments du vecteur :

>> x=[2 8 4 3 5]
x=
2 8 4 3 5
>> sum(x)
ans =
22 Pour demander la syntaxe d'une
fonction On tape :
help nom_fonction

>> help sum


SUM Sum of elements.
For vectors, SUM(X) is the sum of the elements of X. For
matrices, SUM(X) is a row vector with the sum over each
column. For N-D arrays, SUM(X) operates along the first
non-singleton dimension.
SUM(X,DIM) sums along the dimension DIM.

Example: If X = [0 1 2
3 4 5]

then sum(X,1) is [3 5 7] and sum(X,2) is [ 3


12];

a-3/ différence des éléments du vecteur:

>> diff(x)
ans =
6 -4 -1 2
La différence se fait de droite vers la gauche et on obtient un élément en moins.

>> help diff

6
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

DIFF Difference and approximate derivative.


DIFF(X), for a vector X, is [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)].
DIFF(X), for a matrix X, is the matrix of row differences,
[X(2:n,:) - X(1:n-1,:)].
DIFF(X), for an N-D array X, is the difference along the first
non-singleton dimension of X.
DIFF(X,N) is the N-th order difference along the first non-singleton
dimension (denote it by DIM). If N >= size(X,DIM), DIFF takes
successive differences along the next non-singleton dimension.
DIFF(X,N,DIM) is the Nth difference function along dimension DIM.
If N >= size(X,DIM), DIFF returns an empty array.

a-4/ Produit des éléments d'un vecteur :

>> prod(x)
ans =
960
>> help prod

PROD Product of elements.


For vectors, PROD(X) is the product of the elements of X. For
matrices, PROD(X) is a row vector with the product over each
column. For N-D arrays, PROD(X) operates on the first
non-singleton dimension.

b) Matrice
b-1/ définition : le tableau à 2 dimensions (matrice) est l'élément de base de Matlab , un
vecteur n'est autre qu'une matrice à une ligne ou à une colonne. Un scalaire est une matrice
à une ligne et une colonne.

Une matrice peut être saisie de la manière suivante :

>> a=[1 5 7;3 8 1]

a=

1 5 7
3 8 1

On peut aussi entrer la première ligne puis on effectue un retour chariot avant de saisir la
deuxième :

7
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

>> a=[1 5 7
3 8 1]

a=

1 5 7
3 8 1

b-2/ Opérations sur les matrices :

a + b ; % addition
a - b ; % soustraction
a*b ; % multiplication
e =inv(a); % e est égal à l'inverse de a
c = a' ; % la matrice C est la transposée de a
c = a/b ; % a*inv(b)
c = a\b ; % inv(a)*b

b-3/ Opérations éléments par éléments :

% les opérations éléments par éléments des vecteurs et des matrices sont effectuées on ajoutant
un point avant les opérateurs : * / \ ^

>> a=[1 2; 3 4],b=[1 4; 4 1]

a=
1 2
3 4
b=

1 4
4 1

>> a.*b

ans =

1 8
12 4

b-4/ Emploi des indices :

size(a) % dimension de la matrice


a(i,j) % element ligne i colonne j
a(:,n) % nième colonne
a(p,:) % pième ligne
a(i:j,:) % sous matrice de ligne i à j
a(i:j,k:l) % sous matrice de lignes i à j et de colonnes de k à l

8
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

b-5 Matrices spéciales :

matrice identité : eye(n)


matrice nulle : zeros(n)
matrice unité : ones(n)
matrice aleatoire : rand(n)

* Matrice unité rectangulaire:

> un = ones(3,2)
un =

1 1
1 1
1 1

* Matrice identité d'ordre 3 :


> identite =eye(3)

identite =
1 0 0
0 1 0
0 0 1

* Matrice nulle rectangulaire :

>> zero=zeros(2,3)

zero =

0 0 0
0 0 0

b-6/ Affichage d'une matrice

Un affichage d'une matrice est possible dans une fenêtre graphique avec la commande:
pltmat.

Pltmat (mat, 'nom_mat','couleur', taille)

Mat : matrice à afficher,


Nom_mat : titre donné à la matrice,
Couleur : couleur de quadrillage,
Taille : taille des caractères.

b-7/ Comparaison des matrices


La comparaison de deux matrices (Comme de deux vecteurs) de mêmes dimensions donne
une matrice de dimensions analogues, composé de 0 et de 1. Cette opération se fait élément

9
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

par élément. Le résultat de la comparaison de deux éléments est 1 lorsque la condition est
vérifiée et 0 dans le cas contraire. Considérons les deux matrices A et B :

>> A=[1 2;4 5]


A=
1 2
4 5

>> B=[3 6;0 7]


B=

3 6
0 7

>> A<B

ans =

1 1
0 1

b-8/ Transformation d'une matrice:

La commande rot90 réalise une rotation de 90° d'un vecteur ou d'une matrice

>> x=[1 2 3;4 5 6]


x=

1 2 3
4 5 6

>> x_rot=rot90(x)
x_rot =

3 6
2 5
1 4

b-9/ Opérations sur tous les éléments d'une matrice

valeurs minimale et maximale de tous les éléments de x :


>> x

x=

1 2 3
4 5 6

>> mnx=min(min(x))

10
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

mnx =

1
>> mxx=max(max(x))
mxx =

6
> somx=sum(sum(x))

somx =

21
b-10/ la concaténation

c’est une opération qui permet d’adjoindre un tableau B, éventuellement réduit à un vecteur (
ligne ou colonne ) à un tableau A pour former un nouveau tableau de taille plus grande. Les
dimensions de B et de A doivent être compatibles.

Exemple

L=[A , B] ;% concaténation en ligne


C=[A ;B] ;% concaténation en colonne

b-11/ extraction d’un sous tableau


- procédure de base : un tableau T peut être une partie d’une tableau A . il suffit de désigner les
éléments par leurs indices :
T= A(ligne,colonne)
Exemple
Soit A = rand(3,5)
% la fonction rand est une fonction prédéfinie qui permet de générer une matrice aléatoire 3×5 .
%sur la fenêtre de commande , l’interpréteur étant disponible
-------------------------------------------------------------------------------------------------------------------

>> A=rand(3,5)

A=

0.4057 0.4103 0.3529 0.1389 0.6038


0.9355 0.8936 0.8132 0.2028 0.2722
0.9169 0.0579 0.0099 0.1987 0.1988
%On peut en extraire le sous-tableau

>> Sous_taba=A([2,3],[1,3 :4])

Sous_taba =

0.9355 0.8132 0.2028


0.9169 0.0099 0.1987
-------------------------------------------------------------------------------------------------------------------

11
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

b-12/ l’élimination d’une ligne d’un tableau


Exemple
--------------------------------------------------------------------------------------------
>> Sous_taba(:,3)=[]

Sous_taba =

0.9355 0.8132
0.9169 0.0099

% élimination d’une colonne

b-13/ Logarithme, Exponentielle et Valeurs propres d'une matrice

- La fonction log appliquée à une matrice calcule le logarithme népérien de chacun de ces
éléments
Log(x)

- la fonction exp appliquée à une matrice calcule l'exponentielle élément par élément.
exp(x)

- les valeurs propres d'une matrice sont calculées par la fonction : eig
eig(x)

c) Les nombres complexes

MATLAB accepte les nombres complexes sous leur forme algébrique a+i*b ou
exponentielle rho*exp(j*theta). Les symboles i et j représentent le nombre imaginaire pur
vérifiant: i^2 = j^2 = -1. Pour l'affichage des nombres complexes, MATLAB utilise
toujours le symbole i.

>> z = 1+i
z=
1.0000 + 1.0000i
>> z= complex(2,3)
z=
2.0000 + 3.0000i

>> help complex

COMPLEX Construct complex data from real and imaginary parts.


COMPLEX(A,B) returns the complex result A + Bi, where A and B
are identically sized real arrays or scalars of the same data type.
Note that in the event that B is the scalar 0 or an all
zero vector, that an all zero imaginary part is created, unlike
the result of the addition A+0i which returns a strictly real

12
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

result.

COMPLEX(A) returns the complex result A + 0i, where A must


be real and an all zero imaginary part is created. Note that the expression
A+i*B or A+j*B will give identical results for nonzero B if A and B
are double-precision and i or j has not been assigned.

Sous forme polaire :

>> z = sqrt(2)*exp(i*pi/4)
z=
1.0000 + 1.0000i

d) Les chaînes de caractères

1/ définition :

Outre ces capacités de calcul numérique et de visualisation, MATLAB possède des fonctions
de traitement de chaînes de caractères. Une chaîne de caractère est traitée, tout comme un
polynôme sous la forme d'un vecteur dont chaque élément est un caractère de la chaîne, à La
différence des vecteurs la représentation d'une chaîne de caractère est que le texte est encadré
d'apostrophe et non de crochets.

Exemple :

>> chaine='matlab et simulink'

chaine =

matlab et simulink

>>

La longueur d'une chaîne est donnée comme pour les vecteurs, par la commande length:

>> length(chaine)

ans =

18
>>
Comme matlab est un langage matricielle, certaines fonctions propres aux vecteurs sont
applicables aux chaînes de caractères, telle que la transposition.

>> chaine1=chaine(1:6)'

13
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

chaine1 =

m
a
t
l
a
b

Une chaîne de caractère étant comparable à un vecteur, ces dimensions peuvent être obtenues
par la commande size:

>> size(chaine1)

ans =

6 1

>>

l'affichage d'une chaîne se fait, comme pour les vecteurs ou matrices à l'aide de la commande
disp:

>> disp(chaine1')
matlab
>>

2/ fonctions propres aux chaînes de caractères

a/ Transformation d'un nombre en chaîne de caractère

Un nombre réel ou entier peut être converti en chaîne de caractère en utilisant la fonction
num2str :

>> num2str(536.23)

ans =

536.23

>>
on peut connaître si le type d'un résultat est une chaîne de caractère en utilisant la commande :
isstr:

>> isstr(ans)

ans =

14
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

>>
La fonction isstr retourne 1 si l'argument est une chaîne de caractère et 0 si non. La commande
num2str est très utilisée lorsqu'on désire afficher un résultat numérique de type : ' le résultat
de calcul est 25 '.

Exemple :

>> x=randn(5);
>> std_x=std(x(:));
>> disp(['l''ecart type est ' num2str(std_x)])
l'ecart type est 1.0473
>>

La commande mat2str permet la transformation d'une matrice en une chaîne de caractère:

>> mat2str([1 2; 3 4])

ans =

[1 2;3 4]

>> length(ans)

ans =

9
----------------------------------------------------------------------------------------------------------------
Dans ce cas, tout est considéré comme un vecteur dont le point virgule en est un élément.

Un nombre donné sous forme d'une chaîne de caractère peut redevenir en format numérique par
la commande str2num :

>> str2num('20')+5

ans =

25
>>

b/ Manipulation des chaînes de caractères

· passage de majuscule en minuscule et inversement : upper et lower

>> [ 'matlab ' upper('est un langage puissant')]

ans =

matlab EST UN LANGAGE PUISSANT

>> lower(ans)

15
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

ans =

matlab est un langage puissant

· Comparaison de deux chaînes de caractères


Pour comparer deux chaînes de caractères en utilise la commande : strcmp

>> ok=strcmp('MATLAB','MaTLAB')

ok =

· Pour savoir si une expression quelconque est une chaîne de caractère alphabétique, on
peut utiliser la commande isletter :

>> chaine='matlab 6.0'

chaine =

matlab 6.0

>> isletter(chaine)

ans =

1 1 1 1 1 1 0 0 0 0

>>

· Pour savoir si un caractère est un espace , on peut utiliser la commande : isspace


>> isspace('mat lab ')

ans =

0 0 0 1 1 0 0 0 1
>>
· Recherche d'une chaîne dans une autre avec la commande findstr :

>> ok=findstr('toolbox','o')

ok =

2 3 6
La fonction retourne les positions de la lettre 'o' dans la chaîne 'toolbox'

>> ok=findstr('toolbox','box')

ok =

16
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

-La commande strtok recherche le premier mot chaîne dans une autre et retourne le reste :

>> chaine='ceci est un test'

chaine =

ceci est un test

>> [premier_mot,rest]=strtok(chaine)

premier_mot =

ceci

rest =

est un test

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

I.3.3. Expression mathématique et fonctions :

Comme pour tout autre langage évolué, les variables sont des chaînes alphanumériques dont le
premier caractère doit être alphabétique. toute variable est vue par matlab comme une matrice
et ne se déclare donc pas à l'avance comme pour le langage C ou pascal.
a/ Expression mathématique :

On définit une variable en donnant son nom et son expression mathématiques , le nom peut
être en majuscules, en minuscules ou mélange des deux, la seule restriction est qu'il soit
différent d'un mot clé du langage, un nom de variable peut avoir une longueur allant jusqu'à 9
caractères:
a = 1.25;
x = 0:0.25:10;
y = a*x;
z = y.^2;
% expression mathématique

On écrit les expressions mathématiques de la façon habituelle


Z = 5*exp(-0.4*x ).*sin(7.5*y);

b/ Fonctions mathématiques usuelles

abs % valeur absolue


angle % argument (cxe)
sqrt % racine carré
real % partie réelle (cxe)
imag % partie imaginaire (cxe)

17
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

I.4. Les Graphiques :

MATLAB est un outil très puissant et très convivial pour la gestion des graphiques, que ce soit
en deux dimensions ou en trois dimensions. Pour tracer une courbe y = sin(x) par exemple, où
x=0 :50 ; il suffit de faire :

>>x=0:50;y=sin(x);plot(x,y)

Ci-dessous, on présente un petit résumé très succinct concernant le traçage des graphiques et la
manipulation des axes et des échelles :

· xlabel('temps') ; %pour donner un titre à l’axe x,


· ylabel('vitesse') ; % pour donner un titre à l’axe y,
· title('évolution de la vitesse'); % pour donner un titre au graphique,

· text(2,4,'+++Température T1'); % écrire la légende de la courbe au point (2,4).


· loglog(x,y) ; % tracer la courbe en échelle logarithmique (log-log),
· semilogx(t,f(t)) ; % tracer la courbe seulement en échelle logarithmique suivant x,
· semilogy(t,f(t)) ; % tracer la courbe seulement en échelle logarithmique suivant y,
· grid ; % on afficher le quadrillage dans le graphique,
· grid off ; % masquer le quadrillage dans le graphique,
· clf ; % effacer le graphique,
· close figure(i); % fermer (ou quitter) la figure (i),
· close all ; % fermer tous les graphiques ouverts,
· plot(x,y,x,z,x,w) ; % tracer y, z et w en fonction de x sur le même graphe,
· polar(x,y) ; %tracer la courbe y en fonction de x en coordonnées polaires,
· plot(x,y,’+g’) ; % tracer y en fonction de x avec des marques ‘+’ en couleur verte,

· axis([x-mini, x-maxi, y-mini,y-maxi]) ; % affiche le graphique selon les limites


données des axes x et y,
· hold on ; % traçage des courbes sur le même graphique à chaque fois qu’on exécute la
fonction plot,
· hold off ; % traçage de chaque courbe sur un nouveau graphique à chaque fois qu’on
exécute la fonction plot.

· subplot(m,n,k) ; %tracer mxn graphiques séparés dans la fenêtre , où k est le numéro


de chaque graphiques.

Exemple 1

x=0 :25 ;y=x ;


subplot(2,2,1),plot(x,y) ; ylabel('y') ; title('(2,2,1)') ;
subplot(2,2,2),plot(x,2*y) ; ylabel('y') ; title('(2,2,2)') ;
subplot(2,2,3),plot(x,3*y) ; xlabel('x') ;ylabel('y') ;title('(2,2,3)') ;
subplot(2,2,4),plot(x,4*y) ; xlabel('x') ;ylabel('y') ;title('(2,2,4)') ;

18
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

Exemple 2

>> x=0 :25 ;y=x ;


>> subplot(1211),plot(x,0.1*y) ; xlabel('x1') ;ylabel('y1') ;title('y1=f(x1)') ;
>> subplot(1214),plot(x,0.4*y) ; xlabel('x2') ;ylabel('y2') ;title('y2=f(x2)') ;
>> subplot(1217),plot(x,2*y) ; xlabel('x3') ;ylabel('y3') ;title('y3=f(x3) ') ;

y1=f(x1)
4
y1

2
0
0 5 10 15 20 25
x1
y2=f(x2)
10
y2

5
0
0 5 10 15 20 25
x2
y3=f(x3)
50
y3

0
0 5 10 15 20 25
x3

I.5. Programmation avec matlab


Un script matlab est un programme contenant du code du langage et possédant l'extension '.m',
il est dit aussi fichier M. dans script, pour des raisons de modularité, on peut faire appel à des
fonctions (sous-programme) auxquelles on donne des arguments d'appel et qui retournent des
résultats dans des variables (arguments de retour).

19
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

Le logiciel matlab est bâti sur des fonctions (sous-programme),ayant toutes le même modèle,
Comme dans la plupart des langages.

I.5.1. Fonctions

Les fonctions attendent des arguments d'entrée et fournissent en retour des arguments de sortie.
Sous matlab la syntaxe d'appel est la suivante :

[arg_sor1, arg_sor2, arg_sor3, …., arg_n] = nom_fonc(arg_en1,arg_en2, arg_en3, ...,arg_enn)

avec :
arg_sori = constituent les arguments de sortie, c'est à dire les résultats retournés par la fonction
lorsque celle-ci a fini son exécution;

arg_eni = constituent les arguments d'entrée, c'est à dire les paramètres passés a la fonction
pour qu'elle puisse être exécutée.

Nom_fonc: le nom de la fonction appelée .

Sur ce modèle, voyons la façon de créer ses propres fonctions en langage matlab :
Une fonction est un programme dont la structure est un peut particulière : principalement au
niveau de sa première ligne. En effet, pour q'un programme écrit en matlab soit vu comme une
fonction , il faut que sa première ligne contient la déclaration suivante :

Function [arg_sor1, arg_sor2,…., arg_n] = nom_fonc(arg_en1,arg_en2, ...,arg_enn)

Mot clé indiquent que le


fichier est un fichier fonction

Une fonction est fichier programme dont le nom est celui de la fonction crée suivi de
l'extension .m : nom_fonc.m

Exemple 1: fichier sature.m

function u_limite = sature(u, u_min, u_max)


% limitation d'un signal
% si signal < u_min alors signal = u_min,
% si signal > u_max alors signal = u_max,

20
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

% si u_min <= signal <= u_max alors signal non modifié


% expressions logiques retournant 0 ou 1
expr1 = (u >= u_max);
expr2 = (u <= u_max);
expr3 = ((u < u_max) & (u > u_min));
u_limite = expr1 .* u_max + expr2 .* u_min + expr3.*u;

Exemple 2: fichier laplinv.m

function x=laplinv(num,den,t)
% La fonction laplinv permet d'obtenir l'expression temporelle
% du signal x(t) dont on donne sa transformée de Laplace X(p)
% sous forme d'une fraction N(p)/D(p)
% function x=laplinv(num,den)
% x : valeurs du signal temporel x(t)
% num,den : numérateur et dénominateur de X(p)
% t : intervalle de temps pour les valeurs du signal x(t)
[r,p,k]=residue(num,den);
x=r'*exp(p*t);

% Application de la fonction :
1
% Soit y(p) =
(p + 1)(p + 2)
>> num=1;
>> den=conv([1 1],[1 2]);
>> t=0:0.01:10;
>> x=laplinv(num,den,t);
>> plot(t,x)
>> grid
>> title('signal de transformée X(p)=1/(p+1)(p+2)')

21
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

I.5.2. Communication avec l'usager :

· affichage d'un commentaire

>> disp('ceci est mon premier programme')


ceci est mon premier programme
>>
ou autrement :
'ceci est mon premier programme '

· saisie des données à partir du clavier

>> k=input('donner la valeur de k = ')


donner la valeur de k = 5

k=

I.5.3. Structure de contrôle :

a) Cas conditionnel

· if : permet l'exécution conditionnelle d'une séquence d'actions


Utilisation :
if expression,
Action 1
Action 2
..
Action n
end

else : permet la combinaison de deus séquences d'actions différentes au sein d'un if

Utilisation :

if expression,
Action 1
else
Action 2
end

elseif : permet l'imbrication de plusieurs cas de type if au sein d'un if

Utilisation :
if expression1,

Action 1

22
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

elseif expression2,

Action 2
end

· switch : permet d'aiguiller conditionnellement vers une séquence d'actions

Utilisation :
switch switch_expression,

Case case_expression1

action 1, action2 ,…
Case case_expression2

action11, action12
otherwise,
action n, action nx
end

b) Cas des boucles

· For : permet de répéter une séquence d'actions un nombre de fois fixé par
l'utilisateur.

Utilisation :
for variable = deb : pas : fin,

action 1, action2 ,…action n

end

Cette séquence est donc exécutée le nombre de fois qu'il faut pour que la variable
fin - deb
atteigne la valeur fin. Ce nombre de fois vaut : +1
pas
· while : permet de répéter une séquence d'actions un nombre de fois
indéterminé mais conditionné par la réalisation d'une occurrence particulière.
Utilisation :

while expression,
action 1, action2 ,…action n
end
I.6. Simulink
Simulink est l'extension graphique de Matlab permettant de représenter les fonctions
mathématiques et les systèmes sous forme de diagramme en blocs, et de simuler le
fonctionnement de ses systèmes.
1/ Pour démarrer simulink

23
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

Première méthode on tape le mot


Simulink dans la fenêtre de
commande. Et puis retour chariot

Deuxième méthode un double


click sur l’onglet de Simulink.

La fenêtre Simulink va s'ouvrir :

Cette fenêtre contient des collections de blocs que l'on peut ouvrir en cliquant (double ) dessus.

Sources : Sources des signaux


Discrete : blocs discrets
Continuous : blocs continus
Signal Routing : entrée/sortie, multiplexeur/démultiplexeur
Demos : Démos

Si on double click sur le block continuous on aura :

24
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

2/ Construction d'un diagramme Simulink

* Créer
Pour commencer, dans le menu file, on choisit NEW-MODEL. Une fenêtre de travail
untitled s'ouvrira.

*Enregistrer

Une fois le diagramme terminé, on peut l'enregistrer dans un fichier : dans le menu
file choisir Save as et donner un nom (*.mdl) au fichier .

a) Réalisation des connexions

On sélectionne avec la souris, le symbole > situé sur un composant, On maintient l'appui
sur le bouton et on tire le lien vers le symbole >

25
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

b) Paramétrage des composants

Méthode : on effectue un double clic sur le composant gain , la fenêtre de paramétrage


s'ouvre, on tape les valeurs désirées: ici la valeur 10 pour indiquer un gain de 10 , on ferme
cette fenêtre par close les nouvelles valeurs sont prises en compte.

26
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

c/ Désignation des composants

Chaque composant possède un nom par défaut (transfert fnc) , on peut modifier ce nom :
click sur le nom et on tape le nouveau nom .

d/ Renvoi d'un signal et récupération

Afin de ne pas surcharger le dessin, on peut utiliser 2 composant situés dans la librairie
connections (Routing)qui permettent d'effectuer une transition sans fil. Ces 2 composants
s'appellent GOTO et FROM.

27
Ecole Nationale d'Ingénieurs de Gabès – DGEA Cours Technique de simulation numérique - chapitre I

e/ Modifications des composants

On peut ajouter un composant à tout moment, supprimer un composant en le sectionnant


et en utilisant la touche Suppr. Dupliquer un composant : on le sectionne et on appuie sur le
bouton droit de la souris et copier.

3/ Simulation

a/ paramétrage
La simulation utilise un certain nombre de paramètres :
Instant de départ ( 0 par défaut)
Instant d'arrêt (20s par exemple)
Algorithme d'intégration (exemple ode 45)
Erreur relative (exemple 10-3)
Erreur absolue ( exemple 10-6)

b/ Lancement de la simulation
Menu simulation Þ Start
Ou l'icône :

4/ Lien entre Simulink et Matlab

Les blocs ToWorkspace de la librairie Sinks permettent de diriger les signaux vers l'espace
de travail de Matlab.
Les blocs From Workspace de la librairie Source permettent de définir des signaux dans
Matlab et les utiliser dans simulink

28