2018 Cours TP - Matlab
2018 Cours TP - Matlab
2018 Cours TP - Matlab
2. Généralités
2.1 Lancement de Matlab
L’interface Matlabse compose d’une fenêtre principale divisée en quatre sous-fenêtres. A
gauche, il y a la fenêtre CurrentFolderqui gère l’emplacement desfichiers. Celui-ci sera utile
pour le travail avec les m-files. Au centre, il y a une grande fenêtre : Command Window. La
Command Windowestla fenêtre d’interaction avec Matlab.En haut à droite, il y a la
fenêtreWorkspacequipermet de gérer les variables utilisées. Nous y reviendrons au
paragraphe 2.3. En bas à droite la fenêtre Command Historyindique les dernières
commandes effectuées.
>> 2+3
ans =
5
>> 3*5
ans =
15
>> 2*
2*
|
Error: Expression or statement is incomplete or incorrect.
>>ax
Undefined function or variable 'ax'.
Les touches [↑] et [↓] permettent de naviguer parmi les dernières commandes
effectuées,ce qui peut être utile si l’on commet une erreur et qu’on veut éviter de taper à
nouveautoute la commande.
>>pi
ans =
3.1416
>>cos(pi/3)
ans =
0.5000
>>log(1.5)
ans =
0.4055
>> j^2
ans =
-1
>> A=21
A=
21
>> a=12.24
a=
12.2400
>> A='Bonjour'
A=
Bonjour
On peut évidement faire des calculs avec des variables. Le résultat d’un calcul est, pardéfaut,
stocké dans une variable nommée ans. Celle-ci peut être changée pour n’importequelle
autre variable. Par défaut, Matlabaffiche le résultat de la dernière opération. Cetaffichage
peut être supprimé en terminant votre commande par la touche [ ;]. Plusieurscommandes
peuvent être rentrées sur une même ligne en les séparant soit par [,] soitpar [ ;].
>> x=3;y=4;
>> z=x^2+y^2
z=
25
Pour une liste complète des opérations mathématiques que l’on peut faire dans Matlabvoir
le paragraphe 3.3.
>> who
MATLAB & SIMULINK - M.N. KABBAJ -2018 4
Your variables are:
A aans x y z
>>whos
Name Size Bytes Class Attributes
A 1x7 14 char
a 1x1 8 double
ans 1x1 8 double
x 1x1 8 double
y 1x1 8 double
z 1x1 8 double
2.5 Aide
Matlabpossède un grand nombre de fonctions et commandes. On ne pourra pastoutes les
traiter en détail. Afin d’obtenir de l’information (nombre de paramètres d’unefonction,
valeur de retour, etc), il suffit de rentrer help nom_de_la_commande.
La commande lookforest très utile. Elle permet de chercher les fonctions par motsclefs.Plus
précisément, lookfor XYZ renvoie toutes les fonctions qui contiennent XYZ dansla première
ligne de leur descriptif. Nous y reviendrons au paragraphe sur m-files.Si vous êtes perdu, la
commande help helppourra vous aider...
2.6 Sauvegarde
Le Workspace : On peut sauver l’état de la session en cours dans un fichier .mat. Pour
cela, dans la barre d’outils, dans l’onglet Variable cliquer sur Save Workspace, et vous
choisissez l’emplacement et le nom de votre fichier. Matlabsauvegarde ainsi le nom et la
valeur de chacune des variables. La prochaine fois que vous utilisez Matlab, au moyen de
l’onglet File /Open vous retrouvez le Workspacedans l’état dans lequel vous l’avez laissé.
Les m-files : Il s’agit d’un fichier dans lequel on regroupe des commandes. C’est très utile
pour aborder des problèmes plus complexes et éviter de retaper les mêmes commandes
plusieurs fois.
3.1 Création
Un tableau est délimité par des crochets. On sépare les colonnes par des espaces et leslignes
par des points-virgules.
>> A=[1 2 3 ; 4 5 6]
A=
1 2 3
4 5 6
>> B=[1; 2; 3]
B=
1
2
3
Les tableaux qui n’ont qu’une seule ligne sont appelés des vecteurs lignes ou des listes ; ceux
qui n’ont qu’une seule colonne sont appelés des vecteurs colonnes ou simplement des
vecteurs. Si le nombre d’éléments dans chaque ligne (ou colonne) n’est pas le même,
Matlabsignale une erreur.
>> A=[1 2 3; 4 5]
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Commande Description
ones(n,m) Matrice de taille n × m ne contenant que des 1.
Le cas particulier [a:b] est un raccourci pour[a:1:b]. Si les conditions initiales sont erronées,
Matlabrenvoie un message d’erreur.
Remarque : Il n’y a pas de différence entre les commandes [a:p:b], (a:p:b) et a:p:b.
>> x=[1:2:10]
x=
1 3 5 7 9
>> y=[-5:0]
y=
-5 -4 -3 -2 -1 0
>> z=[10:2:-10]
z=
Empty matrix: 1-by-0
linspace : Un autre cas particulier de [a:p:b] est la fonction linspace(a,b,n). Celle-ci crée
uneliste de néléments uniformément répartis entre aet b. Autrement dit,
linspace(a,b,n)est la même chose que [a: b−a/n−1:b].
logspace : Il est parfois utile de travailler avec des échelles logarithmiques ; pour cela, la
commandelogspace(x1,x2,n) crée une liste de npoints répartis logarithmiquement
uniformémententre 10x1et 10x2.
Une dernière méthode pour créer des tableaux est la concaténation. Si A et B sontdeux
tableaux, alors [A B], ou [A,B] est le tableau obtenu en collant B à la droite de A,et [A ;B]
est le tableau obtenu en collant B au-dessous de A. Comme d’habitude, il fautfaire
attention aux tailles de A et de B.
B=
2 4 6
C=
1 2
3 4
>> [A;B]
ans =
1 3 5
2 4 6
>> [A,C]
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Commande Description
Renvoie l’élément se trouvant à la
A(k,l)
kèmeligne et la lèmecolonne.
Renvoie le kèmeélément d’une matrice. En
Matlab, les éléments d’une matrice de taille
A(k)
n × m sont indexés de 1 à nm de haut en bas
et de gauche à droite.
Renvoie une liste contenant les éléments
dont l’indice appartient à v. Si v est un
A(v)
vecteur colonne, le résultat est le même
mais sous forme de vecteur colonne.
Renvoie une matrice contenant les éléments
A(M)
dont l’indiceappartient à M.
A(k,:) Renvoie la kèmeligne de la matrice.
A(:,l) Renvoie la lèmecolonne de la matrice.
Tableau2 : Commandes pour accéder aux éléments d’une matrice
>> A=[1 2 3 4; 5 6 7 8]
A=
1 2 3 4
5 6 7 8
>> A(2,4)
ans =
8
Pour modifier les éléments d’une matrice, on utilise les mêmes commandes que ci-
dessus.On ajoute à la commande le signe [=] et la nouvelle valeur.
>> A(2,3)=0
A=
1 2 3 4
5 6 0 8
>> B(2,4)=99
B=
1 2 0 0
3 4 0 99
Commande Description
Addition terme à terme ; A et B doivent avoir le même
A+B
format.
A+c = c+A Addition de c aux éléments de A.
Soustraction terme à terme ; A et B doivent avoir le
A-B
même format.
A-c Soustraction de c aux éléments de A.
A’ Transposition et conjugaison.
Précisons que Matlabne renvoie pas un message d’erreur lors d’une division par 0,
maisdonne le résultat Inf. Attention néanmoins à ne pas travailler avec Infcomme avec
unnombre.
>> A=[1 2 3; 5 0 0; 4 0 7]
A=
1 2 3
5 0 0
4 0 7
>> A+B
ans =
0 0 0
0 0 0
0 0 0
>> A*B
ans =
-23 -2 -24
-5 -10 -15
-32 -8 -61
>> A^2
ans =
23 2 24
5 10 15
32 8 61
>> A/B
ans =
-1 0 0
0 -1 0
0 0 -1
Commande Description
Renvoie le déterminant de A ; celle-ci doit être
det(A)
carrée.
Finalement, on précise que toutes les fonctions mathématiques classiques (cos, sin, log,exp,
etc) s’appliquent également aux tableaux. Le résultat est un tableau où l’on a appliquéterme
à terme la fonction en question.
>>teta=[0:pi/4:pi]
teta =
0 0.7854 1.5708 2.3562 3.1416
>> sin(teta)
ans =
0 0.7071 1.0000 0.7071 0.0000
5. Graphiques
5.1 Courbes dans le plan
Etant donné deux vecteurs de même taille, x et y, la fonction plot(x,y)trace le graphede y en
fonction de x. En fait Matlabrelie les points de coordonnées (x(k),y(k)) pour1 ≤ k ≤ length(x).
En prenant un grand nombre de points dans le vecteur x et endéfinissant ensuite y = f(x)
pour une certaine fonction f, la fonction plot(x,y) nousdonnera le graphe de la fonction f.
>> x=[0:0.01:4*pi];
>> y=sin(x);
>> plot(x,y)
Pour tracer deux graphes, Matlabpropose plusieurs méthodes suivantsi l’on désire que les
courbes apparaissent dans une ou plusieurs fenêtres. Pour voir lesgraphiques sur deux
fenêtres, il suffit de dire à Matlabde construire une nouvelle fenêtreavec la commande
figure.
>> z=cos(x);
>> plot(x,y)
>> figure
>> plot(x,z)
Pour avoir les deux courbes dans la même fenêtre, il existe deux méthodes équivalentes :
soit avec les commandes hold onet hold off,
>>hold on,plot(x,y),plot(x,z),hold off
soit en donnant plus de paramètres à la commande plot.
MATLAB & SIMULINK - M.N. KABBAJ -2018 13
>> plot(x,y,x,z)
Les couleurs et le style du tracé peuvent également être modifiés. Pour cela, il suffitd’ajouter
à plot une chaîne de caractères spécifiant le style ; voir help plot pour toutesles possibilités.
>> x=[0:0.1:4*pi];
>> y=sin(x);
>> z=cos(x);
>> plot(x,y,'ro',x,z,'b*')
15 4
10 3
5 2
0 1
0 5 10 15 20 0 5 10 15 20
courbe 3 courbe 4
400 100
300
200 50
100
0 0
0 5 10 15 20 0 5 10 15 20
MATALB fourni d’autres fonctions de graphisme 2D adaptées à des cas de tracés spécifiques.
On reporte ici quelques unes d’elles :
Tracé de fonctions
fplotpermet de tracer la courbe d'une fonction y = f(x) dont on spécifiel'expression sous
forme d'une chaîne de caractères 'f(x)'.Cette expression peut être remplacée par le nom
d'un fichier M (fichier de fonction) danslequel est programmée la fonction f.
La syntaxe est la suivante :
fplot('expression', [xMinxMax])
La commande suivante permet de contrôler aussi l’axe des ordonnées :
fplot('expression', [xMinxMaxyMINyMAX])
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
-3 -2 -1 0 1 2 3
x dans l’intervalle [-π π]
5.2 Graphiques 3D
Les courbes 3D
Pour la représentation des courbes tridimensionnelles, la fonction plot3constitue l’extension
de plot. Le tracé de la fonction z = (2 - x2 ) (2 - y2) sur la diagonale ducarré [-2, 2] s’obtient par
:
2
z
0
2
1 -2
0 -1
0
-1 1
-2 2
y
x
Les surfaces 3D
Dans la représentation tridimensionnelle des surfaces, les fonctions meshet surfsont les
analogues de la fonction plot. Les surfaces sont définies dans MATLABpar trois matrices
x,y,zdont les composantes sont des coordonnées dans l’espacedes points appartenant à la
surface.
>> x = -pi:pi/10:pi;
>>y= x;
>> [X,Y]= meshgrid(x, y);
>> Z = cos(X.^2+Y.^2)./(X.^2+Y.^2);
>>mesh(X,Y,Z)
>>xlabel('angle x= -\pi : \pi')
>>ylabel('angle y= -\pi : \pi')
>>title('cos (x^2+y^2)/(x^2+y^2)')
15
10
-5
4
2 4
0 2
0
-2 -2
-4 -4
angle y= -π : π angle x= -π : π
6. Les polynômes
MATLAB représente un polynôme sous forme d'un tableau de ses coefficients classés
dansl'ordre des puissances décroissantes.
Saisie d'un polynôme
Le polynôme P d'expression : P(x) = x2−2x + 5, est représenté par le tableau à unedimension
suivant :
>> P=[1 -2 5]
P=
1 -2 5
Evaluation de polynômes
Pour évaluer un polynôme en un point, on utilise la fonction polyval.
Valeur du polynôme P en 1
>>polyval(P,1)
On cherche, par exemple, le polynôme qui a pour racines : 1 et 2.Celles-ci peuvent être
définies comme les éléments d'un vecteur r.
>> r=[1 2]
r=
1 2
>> Q=poly(r)
Q=
1 -3 2
>>racines=roots(Q)
racines =
2
1
Représentation graphique
Pour tracer la représentation graphique du polynôme Q(x), définissons un domaine pour
la variable x qui contient les racines de Q.
>> x = 0:0.1:3;
>> y = polyval(Q,x);
>> plot(x,y)
>>grid
>>title('Tracé de y = x^2-3x+2')
>>xlabel('x')
>>ylabel('y')
7. Entrées – Sorties
7.1 Lecture
La commande input permet de demander à l'utilisateur d'un programme de fournir des
données. La syntaxe est :
MATLAB attend que l'utilisateur saisisse une donnée au clavier. Cette donnée peut être une
valeur numérique ou une instruction MATLAB. Un retour chariot provoque la fin de la saisie.
Une valeur numérique est directement affectée à la variable var. Il est possible de provoquer
des sauts de ligne pour aérer le présentation en utilisant le symbole \n de la manière
suivante:
7.2 Ecriture
On remarque que l'usage de la commande disp est alors un peu particulier. En effet un tableau doit
être d'un type donné, les éléments d'un même tableau ne peuvent donc être des chaînes de
caractères et des valeurs numériques. On a donc recours à la commande num2str (<<number to
string >>) pour convertir une valeur numérique en une chaîne de caractères.
Attention, si la chaîne de caractères contient une apostrophe il est impératif de doubler l'apostrophe.
sprintf(format, variables)
• variables est le nom des variables à imprimer suivant le modèle d'édition spécifié dans
format;
• format est le format d'édition. Il s'agit d'une chaîne de caractères contenant les modèles
d'éditions des variables à imprimer.
>>sprintf('%30s', temps)
ans =
il fera beau à Fès
>>sprintf('%-30s', temps)
ans =
il fera beau à Fès
Exemple :
>>savekfilek
Si l'on charge le fichier kfile, la variable k est de nouveau présente dans l'espace de travail.
>>loadkfile
>>k
k=
10 20 30
Un fichier script peut appeler un autre ou s'appeler lui même de façon récursive.
Exemple : Script stocké dans un fichier appelé courbe1.m, dont le code permet de tracer la
courbe de la fonction y = x2+5, sur l'intervalle [-5, 5].
Pour exécuter un script, dans la fenêtre de commande de MATLAB, il suffit de mettre son
nom après le prompt ou de cliquer sur la flèche verte de l’éditeur (Run).
>> courbe1
Les variables dans les fonctions sont par défaut locales, mais on peut définir des variables
globales.
Exemple : Nous allons écrire une fonction pour générer un tableau de n nombres aléatoires
entiers compris entre 0 et une valeur maximale contenue dans une variable notée max.
>>nba=randint(10,100)
nba =
82 91 12 92 63 9 28 55 96 97
On peut également imbriquer des if. . . elseles uns dans les autres à l’aide de
l’instructionelseif.
if (test 1)
commandes
elseif (test 2)
commandes
elseif (test 3)
...
else
commandes
end
L'exemple suivant permet de vérifier si un entier naturel donné n est pair ou impair.
if rem(n,2) == 0
disp('nombre pair')
else
disp('nombre impair')
end
rem : retourne le reste de la division de deux nombres.
switch (expression)
case expression1, % est vraie
% exécute ces commandes
case expression2, % est vraie
% exécute ces commandes
otherwise, % par defaut
% exécute ces commandes
end
>>nsomme
s=
55
L'instructionwhile
while conditions
instructions
end
Dans l'exemple suivant, on affiche le plus petit entier naturel n tel que 2^n est supérieurou
égal à un nombre donné x.
fichierppn_x.m
%Le plus petit entier naturel n tel que 2^n >=x.
x = 15; n = 0;
while 2^n < x
n = n+1;
end
n
Exercice 2
a) Générez les vecteurs : 𝑎𝑎 = (0 1 2 3 ⋯ 20)𝑒𝑒𝑒𝑒𝑒𝑒 = (0 5 10 ⋯ 100)
b) Vérifiez si la longueur du vecteur a est la même que la longueur du vecteur b en utilisant
la commande « size ».
𝑎𝑎 𝑛𝑛
c) Évaluez 𝑠𝑠 = 𝑏𝑏𝑛𝑛 𝑒𝑒 − 10 où anet bnsont les éléments de a et b.
Exercice 3
a) Soit le vecteur a défini par
Exercice 4
Soit A une matrice carrée. En une ligne, construire une matrice diagonale Bayant lamême
diagonale que A. Autrement dit, quelles sont les commandes Matlabpermettantde passer
𝑎𝑎0 ∗ ∗ 𝑎𝑎0 0 0
de� ∗ ⋱ ∗ � à � 0 ⋱ 0 �.
∗ ∗ 𝑎𝑎𝑛𝑛 0 0 𝑎𝑎𝑛𝑛
Exercice 5
Résoudre matriciellementles systèmes suivants. Si Matlabaffiche un message d’erreur, dire
pourquoi.
a)
b)
6𝑥𝑥 + 𝑦𝑦 − 5𝑧𝑧 = 10
� 2𝑥𝑥 + 2𝑦𝑦 + 3𝑧𝑧 = 2
8𝑥𝑥 + 3𝑦𝑦 − 2𝑧𝑧 = 12
Structure du programme
sigma1 = …..
text (1,10.2, ['\sigma _1 = ', num2str(sigma1,3), ' [N]']) ;
sigma3 = ….
text (2.1,-3.8, ['\sigma _3 = ', num2str(sigma3,3), ' [N]']) ;
a. Description du circuit :
Pour résoudre ce circuit, il faut bien entendu commencer par écrire les équations qui
ledécrivent. Considérant les courants I1, I2, I3 circulant dans les 3 branches du circuit,celui-ci
est complètement décrit par les équations suivantes :
1
⎧ 𝑈𝑈𝑈𝑈 = 𝑅𝑅1 𝐼𝐼1 + 𝐼𝐼
⎪ 𝑗𝑗𝑗𝑗𝑗𝑗 2
1
⎨0 = − 𝐼𝐼 + (𝑅𝑅2 + 𝑗𝑗𝑗𝑗𝑗𝑗)𝐼𝐼3
⎪ 𝑗𝑗𝑗𝑗𝑗𝑗 2
⎩ 0 = 𝐼𝐼1 − 𝐼𝐼2 − 𝐼𝐼3
La solution s'obtient en multipliant à gauche les deux membres de l'équation par l'inverse
dela matrice décrivant le circuit :
−1
1
𝑅𝑅1 0
𝐼𝐼1 𝑗𝑗𝑗𝑗𝑗𝑗 𝑈𝑈𝑔𝑔
⎛ ⎞
�𝐼𝐼2 � = ⎜ 1 �0�
𝐼𝐼3 0 − 𝑅𝑅2 + 𝑗𝑗𝑗𝑗𝑗𝑗⎟ 0
𝑗𝑗𝑗𝑗𝑗𝑗
⎝1 −1 −1 ⎠
b. Calcul avec Matlab
MATLAB :
[T, Y] = ode45(odefun,[t0tf],y0,options)
Dans le cas où l'angle θ(t) est petit, cette équation peut être approchée par une
équationlinéaire :
𝑑𝑑 2 𝜃𝜃(𝑡𝑡) 𝑔𝑔
2
= 𝜃𝜃̈(𝑡𝑡) = − 𝜃𝜃(𝑡𝑡)
𝑑𝑑𝑡𝑡 𝐿𝐿
2.2 Mise sous forme canonique
Avant de résoudre numériquement un système décrit par une équation différentielle, ilfaut
remplacer cette équation d'ordre n par n équations différentielles d'ordre 1 dont
lesvariables x1(t),… , xn(t) sont la variable originale et ses dérivées successives. Dans notrecas,
cela donne:
𝑑𝑑𝑥𝑥1 (𝑡𝑡)
= 𝜃𝜃̇ (𝑡𝑡) = 𝑥𝑥2 (𝑡𝑡)
𝑑𝑑𝑡𝑡
𝑑𝑑𝑥𝑥2 (𝑡𝑡) 𝑔𝑔
= 𝜃𝜃̈ (𝑡𝑡) = − sin (𝑥𝑥1 (𝑡𝑡))
𝑑𝑑𝑡𝑡 𝐿𝐿
Sous Matlab, la description du système doit se faire dans un fichier *.m décrivant la fonction
qui fournit les n dérivées sous la forme d'un vecteur colonne. Dans notre cas, cela donne :
Dans une approche plus générale, les paramètres (g et L) du pendule peuvent être
définisdans le programme principal et passés en arguments à la fonction décrivant l'équation
différentielle.
Fichier EDpendule.m :
Nous présentons, ci-dessous, la librairie Sources. Nous avons, dans cette bibliothèque, des
générateurs de signaux, des blocs de lecture de fichiers, des variables de l’espace de travail,
un bloc constant, etc.
0.5
𝐻𝐻(𝑧𝑧) =
(1 − 0.5𝑧𝑧 −1 )
Figure 3
Figure 4
3.1 Modélisation
Le modèle temporel est donné par :
𝒅𝒅𝒊𝒊𝒂𝒂
⎧𝒖𝒖𝒂𝒂 = 𝑹𝑹𝒂𝒂 𝒊𝒊𝒂𝒂 + 𝑳𝑳𝒂𝒂 + 𝑲𝑲𝑬𝑬 𝝎𝝎
⎪ 𝒅𝒅𝒅𝒅
𝑻𝑻𝒆𝒆𝒆𝒆 = 𝑲𝑲𝑻𝑻 𝒊𝒊𝒂𝒂
⎨ 𝒅𝒅𝒅𝒅
⎪ 𝑱𝑱 = 𝑻𝑻𝒆𝒆𝒆𝒆 − 𝑹𝑹𝒇𝒇 𝝎𝝎
⎩ 𝒅𝒅𝒅𝒅
Tem : couple électromagnétique
Transformée de Laplace
𝑼𝑼𝒂𝒂 (𝒔𝒔) = 𝑹𝑹𝒂𝒂 𝑰𝑰𝒂𝒂 (𝒔𝒔) + 𝑳𝑳𝒂𝒂 𝒔𝒔𝑰𝑰𝒂𝒂 (𝒔𝒔) + 𝑲𝑲𝑬𝑬 𝛀𝛀(𝒔𝒔)
� 𝑻𝑻𝒆𝒆𝒆𝒆 (𝒔𝒔) = 𝑲𝑲𝑻𝑻 𝑰𝑰𝒂𝒂 (𝒔𝒔)
𝑱𝑱𝑱𝑱𝛀𝛀(𝒔𝒔) = 𝑻𝑻𝒆𝒆𝒆𝒆 (𝒔𝒔) − 𝑹𝑹𝒇𝒇 𝛀𝛀(𝒔𝒔)
Après mise en équation le schéma fonctionnel détaillé est reporté sur la figure 6
Le schéma sera construit à partir des blocs contenus dans les bibliothèques Simulink. En
cliquant sur la librairieContinuous(figure 7), apparait alors le bloc fonction de transfert
(Transfer Fcn).
En cliquant ensuite sur la librairie CommonlyUsed Block, on trouve les blocs : Sommateur
(Sum) et Gain (Gain).
A l’aide de la souris dont le bouton gauche est maintenu pressé, on amène les blocs
nécessaires dans la fenêtre de travail. Comme le gain et la fonction de transfert
apparaissent chacun deux fois dans le schéma fonctionnel, l’opération est répétée en
conséquence. La fenêtre de travail Moteur.slxa maintenant l’allure de la figure 8.
Figure 8
Il faut alors réaliser les interconnections. On obtient alors facilement le schéma de la figure
9. Les équations du moteur à courant continu montrent que la FEM est contre-réactionnée.
Double-cliquer alors sur le bloc Sumet changer la liste des signesde ++en +-. A titre de
documentation, il vaut également la peine de renommerces blocs, en cliquant sur les textes
les accompagnant et les remplaçant par des désignations plus parlantes, comme par
exemple induit, constante de couple,charge mécanique et constante de FEM (figure 9).
Figure 9
Il reste à spécifier le signal d’entrée (la tension d’induit ua(t)) et les signaux intéressants à
visualiser ainsi que les moyens pour le faire. On propose pour cetexemple que ua(t) ait la
forme d’un échelon unité, que l’on visualise en plus de lavitesse angulaire ω(t) à l’aide d’un
oscilloscope (scope).
Après avoir connecté ces blocs, on obtient le schéma suivant de la figure 10.
Figure 10
Simulation
A partir de l’option Model Configuration Parameters du menu Simulation, on peut
configurer les paramètres de simulation.
𝑅𝑅𝑎𝑎 𝐽𝐽
𝜏𝜏𝑚𝑚 = = 0.0139 𝑠𝑠
𝐾𝐾𝑇𝑇 𝐾𝐾𝐸𝐸
𝐿𝐿𝑎𝑎
𝜏𝜏𝑒𝑒 = = 0.0042 𝑠𝑠
𝑅𝑅𝑎𝑎
En double-cliquant sur l’oscilloscope, on peut encore ajuster l’échelle verticale, que l’on
choisira ici entre -0.1 et 1.2rad/s.
Figure 11
Figure 12
ua(t) 1
0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
2
ω (t)
0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
0.5
Tem(t)
0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
0.2
Pmec(t)
0.1
0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
t[s]
1. Environnement Matlab
Commandes et fonctions
help Aide
what Liste les fichiers Matlab présents dans le répertoire courant
type Imprime un fichier
lookfor Recherche d'une entrée dans l'aide
which Localise les fonctions et fichiers
demo Lance la démonstration
path Définition des chemins d'accès aux fichiers et fonctions
edit Edition ou création d’un fichier
version Affiche le numéro de version de Matlab
Commandes système
cd Change le répertoire courant
pwd Affiche le répertoire courant
dir, ls Liste les fichiers
delete Suppression de fichiers
getenv Renvoie la variable d'environnement
! Appelle et exécute une commande système
diary Sauvegarde le texte d'une session Matlab
Fenêtre de commande
clc Efface le contenu de la fenêtre de commandes
home Place le curseur en haut de l'écran
format Définit le format d'affichage
echo Affiche les instructions exécutées par un script
more Contrôle de l'affichage paginé
quit, exit Ferme Matlab
Matlabrc Fichier de démarrage
MATLAB & SIMULINK - M.N. KABBAJ -2018 48
Caractères spéciaux
[] Définition de matrices ou vecteurs ; enserre les arguments de sortie des
fonctions
() Gère la priorité des opérations ; enserre les arguments d'entrée des fonctions
. Point décimal
.. Répertoire parent
... Indique une ligne suite
, Séparateur d'arguments ou d'instructions
; Fin de lignes (matrices) ou suppression de l'a_chage
% Commentaires
: Manipulation de sous matrices ou génération de vecteurs
! Appel système
Fonctions logiques
exist Teste l'existence d'une variable ou d'une fonction
any Vrai si un élément est vrai
Instructions de contrôle
if, else, elseif Test conditionnel
for Instruction de répétition avec compteur
while Instruction de répétition avec test
end Terminaison de if, for et while
break Interrompt une boucle
return Retour
error Affiche un message et interrompt l'exécution
Instructions spécifiques
input Indicateur d'attente d'entrée
keyboard Considère le clavier comme un fichier script
menu Génère un menu de choix pour l'utilisateur
pause Attente
function Définition de fonction
eval Exécute une chaîne de caractère
feval Exécute une fonction définie dans une chaîne
global Définit les variables comme globales
nargchk Valide le nombre d'arguments d'entrée
2. Fonctions mathématiques
Fonctions élémentaires
abs Valeur absolue ou module d'une grandeur complexe
angle Argument d'une grandeur complexe
sqrt Racine carrée
real Partie réelle
imag Partie imaginaire
conj Complexe conjugué
gcd PGCD
lcm PPCM
round Arrondi à l'entier le plus proche
fix Troncature
floor Arrondi vers le bas
ceil Arrondi vers le haut
sign Signe d’une valeur réelle ou complexe
rem Reste de la division
MATLAB & SIMULINK - M.N. KABBAJ -2018 50
exp Exponentielle
log Log népérien
log10 Log décimal
log2 Log base 2
pow2 Calcule 2 à la puissance y
Fonctions trigonométriques
sin, asin, sinh, asinh
cos, acos, cosh, acosh
tan, atan, tanh, atanh
cot, acot, coth, acoth
sec, asec, sech, asech
csc, acsc, csch, acsch
Fonctions prédéfinies
bessel Fonction de Bessel
beta Fonction beta
gamma Fonction gamma
rat Approximation par un rationnel
rats Format de sortie pour rat
erf Fonction erreur erf
erfinv Inverse de erf
ellipke Intégrale elliptique complète
ellipj Fonction elliptique de Jacobi
expint Fonction intégrale exponentielle pour n=1
5. Fonctions graphiques
Graphiques 2D
plot Dessine le graphe d'une fonction
loglog Graphe en échelle log-log
semilogx Graphe en échelle semi-log (abscisse)
Annotation de graphiques
title Titre du graphique
xlabel Légende pour l'abscisse
ylabel Légende pour l'ordonnée
zlabel Légende pour la cote
grid Dessin d'une grille
text Texte
gtext Placement de texte avec la souris
ginput Entrée graphique par la souris
Graphiques 3D
meshgrid Grille pour les graphiques 3D
mesh Surface maillée
meshc Combinaison mesh + dessin des équi-niveaux
meshz Surface maillée avec plan de référence
surf Surface 3D à facettes
surfc Combinaison surf + dessin des équi-niveaux
surfl Surface 3D à facettes avec éclairage
plot3 Dessin de lignes et points en 3D
contour Dessin 2D des équi-niveaux
contourc Calcul des valeurs utilisées par contour
contour3 Dessin 3D des équi-niveaux
MATLAB & SIMULINK - M.N. KABBAJ -2018 53
clabel Etiquettes des équi-niveaux (contours)
pcolor Dessine en pseudocouleur
quiver Affichage du gradient sous forme de flèches
waterfall Représentation chute d'eau
slice Visualisation en volume
Interpolation
spline Interpolation spline cubique
interp1 Interpolation monodimensionnelle
interp2 Interpolation bidimensionnelle
interpft Interpolation 1D par FFT
griddata Maillage de données
Différences finies
diff Approximation de la dérivée
gradient Approximation du gradient
del2 Laplacien sur 5-points
Réponse fréquentielle
bode Diagramme de Bode
freqresp Réponse à une gamme de fréquence
linspace Vecteurs linéairement espacés
logspace Vecteurs logarithmiquement espacés
nichols Diagramme de Nichols
ngrids Grille pour les diagrammes de Nichols
nyquist Diagramme de Nyquist