Professional Documents
Culture Documents
ET INFORMATIQUE
Introduction
Matlab
Quelques
exemples
Prof. F. Mudry
in s t i t u t d '
Automatisation
in d u s t r i e l l e
LABORATOIRE DAUTOMATIQUE
Introduction `
a Matlab :
quelques exemples
Table des mati`
eres
1 Informations pr
eliminaires
1.1 Les bases de Matlab . . . . . . . . . . . . . . . . . . .
1.1.1 Donnee dune variable reelle ou complexe . . .
1.1.2 Creation de vecteurs et matrices . . . . . . . .
1.1.3 Operations sur les composantes ou les vecteurs
1.1.4 Matrices particuli`eres . . . . . . . . . . . . . .
1.1.5 Aide en ligne . . . . . . . . . . . . . . . . . . .
1.2 Methode de travail . . . . . . . . . . . . . . . . . . . .
1.2.1 Les fichiers de commandes . . . . . . . . . . .
1.2.2 Les fichiers de fonctions . . . . . . . . . . . . .
1.2.3 Sauvegarde de donnees sur disque . . . . . . .
.
.
.
.
.
.
.
.
.
.
1
1
1
1
3
4
4
4
4
5
5
2 R
esolution dun circuit
electrique
2.1 Description du circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Calcul avec Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
6
6
3 R
eponse fr
equentielle dun circuit lin
eaire
3.1 Description du circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Calcul avec Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 R
eponse temporelle dun circuit lin
eaire
10
4.1 Description du circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Calcul avec Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Mise en valeur de r
esultats exp
erimentaux
11
5.1 Exemple 1 : caracteristique dun ressort . . . . . . . . . . . . . . . . . . . . 11
5.2 Exemple 2 : debit et temperature dun flux dair . . . . . . . . . . . . . . . 13
5.3 Exemple 3 : spectres du debit et de la temperature . . . . . . . . . . . . . . 15
6 R
esolution dune
equation diff
erentielle
17
quation du pendule simple . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.1 E
6.2 Mise sous forme canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.3 Integration numerique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Mouvement dune charge
electrique
quations fondamentales . . . . . . . . .
7.1 E
7.2 Description matricielle . . . . . . . . . .
7.3 Description detat dun syst`eme lineaire
7.4 Calcul de la trajectoire . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
20
21
21
8 Exercices
26
8.1 Resolution dun circuit electrique . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2 Reponses frequentielle et temporelle dun circuit . . . . . . . . . . . . . . . 26
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
27
28
29
29
30
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
33
33
34
34
34
34
35
35
36
36
36
36
37
37
38
38
38
38
38
39
39
40
40
40
41
41
41
41
42
42
42
43
43
43
43
44
44
44
44
45
45
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
45
46
iv
Introduction `
a Matlab :
quelques exemples
lectricite et
Cette introduction `a Matlab est proposee aux etudiants du departement dE
Informatique de leivd avant le debut de leur deuxi`eme annee de formation. Ce cours,
donne pendant une journee, permet aux etudiants de travailler individuellement sur les
exemples et exercices presentes ci-apr`es.
Par ce recueil dexemples, on souhaite montrer que lusage de loutil Matlab dans le
domaine de lingenierie est simple et efficace et ainsi inciter nos etudiants `a lappliquer
dans les cours et laboratoires quils auront en deuxi`eme et troisi`eme annee.
Les commandes Matlab sont presentees dans des situations reelles et suffisamment explicites pour que leur utilisation soit claire par elle-meme. Les details syntaxiques doivent
etre recherche par les etudiants en recourant de mani`ere intensive `a laide en ligne Matlab.
1 Informations pr
eliminaires
Matlab est un syst`eme interactif et convivial de calcul numerique et de visualisation
graphique destine aux ingenieurs et scientifiques. Il poss`ede un langage de programmation
puissant et simple `a utiliser avec lequel lutilisateur peut effectuer des calculs en ligne ou
par lintermediaire dun fichier de commandes [3], [4].
Le logiciel Matlab (Matrix Laboratory) est base sur le calcul matriciel numerique. Tous
les objets utilises dans Matlab sont donc definis au travers de matrices ou vecteurs dont
les valeurs sont, par definition, des grandeurs complexes. Il existe un tr`es grand nombre
doperateurs et fonctions distribues dans le logiciel de base et dans des botes `a outils specialisees. A ceci peut sajouter un outil de programmation graphique, Simulink, essentiel
pour la simulation de syst`emes dynamiques non lineaires.
Lenvironnement Matlab se presente sous la forme dun espace de travail dans lequel un
interpreteur de commandes execute les operations demandees.
=
=
=
=
-1.234 ;
12/13 ;
4.567 + j*8.765 ;
cc ;
%
%
%
%
nombre r
eel n
egatif
nombre r
eel positif
nombre complexe
son conjugu
e complexe
1.1.2 Cr
eation de vecteurs et matrices
Un vecteur ligne est introduit de la mani`ere suivante :
LIMINAIRES
1 INFORMATIONS PRE
2
v = [20, 6, 43, 66, 70, 8] ;
43
66
70
20
=
=
=
=
[ 2 4 6 8] ;
[ 1 3 5 7] ;
[11 13 17 19] ;
[v1 ; v2 ; v3]
6
5
17
8
7
19
LIMINAIRES
INFORMATIONS PRE
= m
mt =
1
3
5
7
11
13
17
19
LIMINAIRES
1 INFORMATIONS PRE
Alors que si lon veut effectuer le produit composante par composante, il faut utiliser
loperateur de multiplication precede dun point (.*) :
y3 = v1.*v2
> > y3 =
1
4
9
1.2 M
ethode de travail
1.2.1 Les fichiers de commandes
Apr`es quelques essais initiaux o`
u les commandes sont passees en ligne, on eprouve tr`es
vite le besoin de ne pas perdre le fruit de son travail en ecrivant les operations, de plus en
plus nombreuses et sophistiquees, dans un fichier de commandes dextension .m.
Ce fichier peut etre ecrit avec votre editeur de texte ascii (PFE, UltraEdit, etc.) ou celui
fourni par Matlab. Une fois ce fichier sauve dans votre repertoire de travail, noubliez pas
dindiquer son chemin dacc`es `a Matlab `a laide de File / Set Path. Lexecution de la suite
de commandes ecrites dans le fichier .m se fera alors simplement en tapant son nom dans
la fenetre de commandes.
LIMINAIRES
INFORMATIONS PRE
2 R
esolution dun circuit
electrique
tant donne le circuit de la figure 1, on souhaite calculer les valeurs efficaces et phases
E
des courants lorsque
Ug = 220 [V ],
R2 = 3 [],
I1
fg = 50 [Hz],
R1 = 10 []
C = 10 [F ],
L = 100 [mH]
R1
R2
I3
I2
Ug
1
I2
jC
1
I2 + (R2 + jL) I3
jC
0 = I1 I2 I3
0 =
1
0 jC
1
1
0
I1
Ug
R2 + jL I2 = 0
I3
0
1
1
I2 = 0 jC
I3
1
1
R2 + jL
1
Ug
0
0
w = 2*pi*fg ;
R2 = 3 ;
0.0588
0.0065
0.0652
-0.6853
1.0541
-0.6913
PONSE FRE
QUENTIELLE DUN CIRCUIT LINE
AIRE
RE
3 R
eponse fr
equentielle dun circuit lin
eaire
3.1 Description du circuit
On consid`ere ici un filtre RC passe-bas dont la reponse frequentielle est decrite par :
H(j) =
1
1 + jRC
PONSE FRE
QUENTIELLE DUN CIRCUIT LINE
AIRE
RE
|H| [dB]
10
20
30
40
3
10
10
10
f [Hz]
10
10
10
10
10
/H [deg]
20
40
60
80
100
3
10
10
120
60
0.8
0.6
150
30
0.4
0.2
180
210
330
240
300
270
10
4 R
eponse temporelle dun circuit lin
eaire
4.1 Description du circuit
On consid`ere `a nouveau le filtre passe-bas RC dont la reponse frequentielle est decrite
par :
1
H(j) =
1 + jRC
Cette description permet de calculer aussi bien les reponses frequentielles que temporelles.
Dans ce qui suit, on calculera la reponse indicielle du circuit (cas le plus frequent) et les
reponses `a des signaux sinusodaux et carres.
SULTATS EXPE
RIMENTAUX
MISE EN VALEUR DE RE
11
subplot(3,1,2) ;
plot(tt,yts, tt,xts,--) ;
ylabel(y_{sin} (t)) ;
axis([tmin tmax -1.1*Ampl 1.1*Ampl]) ;
subplot(3,1,3) ;
plot(tt,ytc, tt,xtc,--) ;
ylabel(y_{carr
e} (t)) ;
xlabel(temps [sec]) ;
axis([tmin tmax -1.1*Ampl 1.1*Ampl]) ;
print -deps RCtemp.eps
Rponses temporelles dun circuit RC
yind (t)
0.5
0
0
0.5
1.5
2.5
3.5
4.5
5
6
x 10
ysin (t)
5
0
0.5
1.5
2.5
3.5
4.5
5
6
x 10
ycarr (t)
5
0
0.5
1.5
2.5
temps [sec]
3.5
4.5
5
6
x 10
5 Mise en valeur de r
esultats exp
erimentaux
5.1 Exemple 1 : caract
eristique dun ressort
On consid`ere ici un ressort que lon tend plus ou moins tout en mesurant la force qui
lui est appliquee `a laide dun dynamom`etre dont la precision est denviron 0.5 [N]. Les
resultats que lon a obtenus sont les suivants :
Longueur [cm]
Force [N] 0.5 [N]
4.2
0.0
5.0
1.1
6.0
2.0
7.0
3.2
8.0
3.9
9.0
4.6
10.0
5.8
11.0
7.0
12.0
8.3
13.0
9.0
14.0
9.5
12
SULTATS EXPE
RIMENTAUX
MISE EN VALEUR DE RE
2. Mettre en valeur le graphe `a laide dun titre et dinformations portees sur labscisse
et lordonnee.
3. Rechercher une loi polynomiale representant au mieux cette caracteristique ; celle
dun ressort est generalement lineaire, eventuellement cubique.
4. Mesurer la qualite des mod`eles proposes pour representer le ressort.
5. Afficher les informations sur le graphe lui-meme.
Un programme realisant le cahier des charges demande peut etre le suivant :
% Exemple de traitement des donnees
clear all ; close all ; format compact ;
% elongation dun ressort : valeurs mesurees
x = [4.2 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0] ; % [cm]
force = [0.0 1.1 2.0 3.2 3.9 4.6 5.8 7.0 8.1 9.0 9.5] ; % [N]
% regressions lineaire et cubique
coeff1 = polyfit(x,force, 1)
% coeff. du polyn^
ome dordre 1
coeff3 = polyfit(x,force, 3)
% coeff. du polyn^
ome dordre 3
% tracage
errorbar(x,force,0.5*ones(size(force)),o) ; hold on ;
plot (xfit,F1, xfit,F3,--) ;
axis ([0 20 -5 13]) ;
title(Force dun ressort) ;
xlabel(x [cm]) ; ylabel(F(x) [N]) ;
% affichage des infos
texte = [F_1(x) = , num2str(coeff1(1),3), x
texte = [texte, num2str(coeff1(2),3)] ;
text(1,11, texte) ;
texte = [F_3(x) = , poly2str(coeff3,x)] ;
text(2,-3, texte) ;
] ;
SULTATS EXPE
RIMENTAUX
MISE EN VALEUR DE RE
13
10
F(x) [N]
2
F3(x) =
3 = 0.19 [N]
4
0
10
x [cm]
12
14
16
18
20
5.2 Exemple 2 : d
ebit et temp
erature dun flux dair
Dans cet exemple, on se propose de montrer comment on lit des valeurs fournies par un
fichier ascii et comment on tire quelques informations utiles avant de les porter sur un
graphe (figure 6).
Dbit et temprature dun flux dair
2.6
Dbit [l/sec]
2.5
2.4
2.3
2.2
2.1
2
500
1000
1500
2000
2500
3000
3500
4000
2500
3000
3500
4000
50
Temprature [C]
40
Tempratures min et max : 37.3 / 47.3 [C]
35
500
1000
1500
2000
temps [sec]
14
SULTATS EXPE
RIMENTAUX
MISE EN VALEUR DE RE
2.3597495e+000
2.3446581e+000
2.3312441e+000
4.4197579e+001
4.2045259e+001
4.2574619e+001
2.2748863e+000
2.2713996e+000
4.2438009e+001
4.2516874e+001
SULTATS EXPE
RIMENTAUX
MISE EN VALEUR DE RE
15
texte1 = [D
ebit moyen = , num2str(DebitMoyen,2), [l/sec]] ;
texte2 = [Ecart type = , num2str(BruitDebit,2), [l/sec]] ;
text(200,2.51,[texte1
texte2]) ;
texte = [D
ebits min et max : , num2str(Qmin,3)] ;
texte = [texte / , num2str(Qmax,3), [l/sec]] ;
text(200,2.1, texte) ;
% tracage de la temperature
subplot(2,1,2) ; plot(temps,degre) ;
axis([0 4000 35 50]) ;
xlabel(temps [sec]) ;
ylabel(Temp
erature [
rC]) ;
% information pour le graphe
texte1 = [Temp
erature moyenne = , num2str(DegreMoyen,2), [
rC]] ;
texte2 = [Ecart type = , num2str(BruitDegre,2), [
rC]] ;
text(200,48,[texte1
texte2]) ;
texte = [Temp
eratures min et max : , num2str(Tmin,3)] ;
texte = [texte / , num2str(Tmax,3), [
rC]] ;
text(200,37, texte) ;
print -deps airtemp.eps
16
SULTATS EXPE
RIMENTAUX
MISE EN VALEUR DE RE
40
30
Q(f) [dB]
20
10
0
10
20
0.01
0.02
0.03
0.04
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.05
0.06
frquence [Hz]
0.07
0.08
0.09
0.1
60
50
T(f) [dB]
40
30
20
10
0
SOLUTION DUNE E
QUATION DIFFE
RENTIELLE
RE
17
6 R
esolution dune
equation diff
erentielle
quation du pendule simple
6.1 E
La mise en equation du pendule simple est traitee dans le cours de physique [5]. On y
montre que son mouvement est decrit par une equation differentielle non-lineaire dordre 2 :
d2 (t)
= g sin((t))
= (t)
dt2
L
Dans le cas o`
u langle (t) est petit, cette equation peut etre approchee par une equation
lineaire qui est :
d2 (t)
= g (t)
= (t)
2
dt
L
x2 (t) (t)
Le syst`eme est alors compl`etement decrit par :
dx1 (t)
dt
dx2 (t)
dt
(t)
= x2 (t)
= g sin(x1 (t))
(t)
L
Sous Matlab, la description du syst`eme doit se faire dans un fichier *.m decrivant la
fonction qui fournit les n derivees sous la forme dun vecteur colonne. Dans notre cas, cela
donne :
fichier EDpendule.m :
% Equation differentielle dun pendule simple
function dx = EDpendule(t, x) ;
g = 9.81 ;
longueur = 1.0 ;
theta = x(1) ;
dtheta = x(2) ;
ddtheta = -g/longueur*sin(theta)) ;
dx = [dtheta ; ddtheta] ;
Dans une approche plus generale, les param`etres (g et L) du pendule peuvent etre definis
dans le programme principal et passes en arguments `a la fonction decrivant lequation
lecriture de
differentielle. De plus, sachant que le vecteur x contient les variables et ,
18
SOLUTION DUNE E
QUATION DIFFE
RENTIELLE
RE
la fonction peut se faire dans une forme plus compacte (mais peut-etre moins evidente `a
comprendre).
Lillustration en est donnee dans le fichier suivant ecrit pour lapproximation lineaire du
pendule :
fichier EDpendlin.m :
% Equation differentielle lineaire
function dx = EDpendlin(t, x, options, param) ;
g = param(1) ;
longueur = param(2) ;
dx1 = x(2) ;
dx2 = -g/longueur*x(1) ;
dx = [dx1 ; dx2] ;
6.3 Int
egration num
erique
Lintegration numerique dun syst`eme differentiel se fait `a laide de divers algorithmes
dintegration qui sont fournis par Matlab. Lalgorithme le plus frequemment utilise est
celui de Runge-Kutta qui, dans Matlab, est designe sous le nom de ode45 (Ordinary
Differentiel Equation, approximation dordre 4 et 5).
A lappel de ode45, il faut donner le nom du fichier contenant lequation differentielle, le
domaine temporel desire pour la resolution et les conditions initiales. On peut, si on le
souhaite, modifier les options de resolution et fournir des param`etres :
ode45(fichierED.m,[tmin tmax],CI,options,param)
60
(t) [deg]
40
20
0
20
40
60
10
12
14
16
18
20
10
temps [sec]
12
14
16
18
20
(t) [rad/sec]
2
0
2
4
LECTRIQUE
MOUVEMENT DUNE CHARGE E
19
20
LECTRIQUE
MOUVEMENT DUNE CHARGE E
v x
Ex
vx
Bx
m v y = q Ey + q vy By
v z
Ez
vz
Bz
Effectuant le produit vectoriel, cela donne :
v x
Ex
vy Bz vz By
m v y = q Ey + q vz Bx vx Bz
vx By vy Bx
v z
Ez
On voit ainsi que le mouvement de la charge est decrit par 3 equations differentielles
couplees dordre 1.
vx
~s =
X
vy
vz
v x
~ s =
X
v y
v z
v x
E
X (2) Bz Xs (3) By
q x
q s
~
X s = v y =
Ey +
Xs (3) Bx Xs (1) Bz
m
m
Ez
Xs (1) By Xs (2) Bx
v z
Ce qui, en terme dequation matricielle, devient :
LECTRIQUE
MOUVEMENT DUNE CHARGE E
21
q
q
X s (1)
0
+m
Bz m
By
Xs (1)
q
q
~ s =
0
+m
Bx Xs (2) +
X
X s (2) = m Bz
q
q
+ m By m Bx
0
Xs (3)
X s (3)
q
m
q
m
q
m
Ex
Ey 1
Ez
Une approche analytique du probl`eme permet de montrer que la particule oscille sinusodalement avec une pulsation proportionnelle `a lamplitude du champ magnetique :
n =
q
B
m
7.3 Description d
etat dun syst`
eme lin
eaire
La description matricielle ci-dessus porte le nom de representation detat dun syst`eme et
correspond `a lecriture conventionnelle generale suivante :
~ s = A X
~s + B u
X
~ =CX
~s + D u
Y
dans laquelle :
Dans le cas de notre probl`eme, les dimensions des vecteurs et matrices sont Xs (3, 1),
~ est constitue des 3
A(3, 3), B(3, 1) et u(1, 1). Admettant que le vecteur de sortie Y
~
~
composantes de la vitesse, on a evidemment Y = Xs . La matrice C(3, 3) est alors une
matrice unite de dimension 3 et le vecteur D(3, 1) est nul.
22
LECTRIQUE
MOUVEMENT DUNE CHARGE E
% description detat :
A = q/m * [ 0
+Bz -By
-Bz
0
+Bx
+By
-Bx
0] ;
B = q/m*[Ex ; Ey ; Ez] ;
% matrices de sortie :
C = [1 0 0
0 1 0
0 0 1] ;
D = zeros(3,1) ;
% representation detat du systeme
sys = ss(A,B,C,D) ;
% calcul de la reponse indicielle (=> u = 1) :
tmax = 1e-8 ; kmax = 1000 ;
dt = tmax/kmax ;
tt = 0 :dt :tmax ;
y = step(sys,tt) ;
% extraction des 3 composantes de la vitesse
Vx = y( :,1) ; Vy = y( :,2) ; Vz = y( :,3) ;
~ contient les 3 composantes de la vitesse de la particule et
Comme le vecteur de sortie Y
que lon desire connatre sa trajectoire, il est possible de passer des vitesses aux positions
par integration numerique. Ce qui donne pour la coordonnee x(t) :
Z
x(t) =
0
n
X
vx [k] t
n = 0 Npoints
k=0
Dans Matlab, cette somme cumulative est realisee par la commande cumsum(on notera
quil existe egalement la fonction cumtrapz qui realise une integration trapezodale plus
precise) :
% calcul des positions (integration dordre 0 => cumsum)
xt = dt*cumsum(Vx) ;
yt = dt*cumsum(Vy) ;
zt = dt*cumsum(Vz) ;
% tracage des positions
figure ;
subplot (3,1,1) ; plot (tt,xt) ;
title(D
eplacement de la particule) ; ylabel(x(t)) ;
subplot (3,1,2) ; plot (tt,yt) ; ylabel(y(t)) ;
subplot (3,1,3) ; plot (tt,zt) ;
ylabel(z(t)) ; xlabel(temps [sec]) ;
Les resultats obtenus sont presentes dans les figures 10 et 11. La visualisation 3D de la
trajectoire est realisee simplement avec les commandes
LECTRIQUE
MOUVEMENT DUNE CHARGE E
23
%
%
%
%
%
%
%
Dplacement de la particule
15
% tracage 3D
x 10
x(t)
10
5
0
5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
8
x 10
y(t)
0.5
0
0.5
1
1.5
0
6
x 10
0.1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
8
x 10
z(t)
1
0.5
0
0.2
0.3
0.4
0.5
temps [sec]
0.6
0.7
0.8
0.9
1
8
x 10
~ = (Ex ; 0; 0) et
Fig. 10: Coordonnees dune particule chargee dans un champ electrique E
~
magnetique B = (0; By ; 0)
24
LECTRIQUE
MOUVEMENT DUNE CHARGE E
Trajectoire de la particule
x 10
1
0.8
0.6
0.4
0.2
0
1
By
0.5
Ex
15
10
0.5
0
1
x 10
~ = (Ex ; 0; 0) et
Fig. 11: Trajectoire dune particule chargee dans un champ electrique E
~
magnetique B = (0; By ; 0)
References
25
R
ef
erences
[1] D. M. Etter : Engineering problem solving with Matlab, Prentice Hall, 1993
[2] W. J. Palm III : Introduction to Matlab for Engineers, WCB McGraw-Hill, 1998
[3] M. Etique : Introduction au logiciel Matlab, cours bloc, eivd, 2001
[4] M. Correvon :Introduction `a Matlab 5.2 et Simulink 2.2, Laboratoire de Syst`emes
Electromecaniques, eivd, 2002
[5] E. Lambert : Cours de physique, eivd, 1999
[6] www.mathworks.com : site officiel de Matlab
[7] www.scientific.de : site europeen de Matlab
[8] www.sysquake.com : site dun logiciel similaire `a Matlab dont la version demonstration est gratuite
[9] www-rocq.inria.fr/scilab/ : site dun logiciel libre de la communaute Linux et comparable `a Matlab
[10] www.math.siu.edu/Matlab/tutorials.html : site proposant des tutoriaux interessants
et avances illustrant les possibilites de Matlab
26
EXERCICES
8 Exercices
8.1 R
esolution dun circuit
electrique
tant donne le circuit de la figure 12, calculez les valeurs efficaces et phases des courants
E
et tensions lorsque
Ug = 220 [V ],
L = 1 [mH],
R1 = 100 [],
C1 = 10 [F ],
R2 = 200 [],
C2 = 100 [nF ]
et que la frequence du generateur vaut 50Hz et 250Hz. Plutot que de modifier la valeur
de la frequence dans le fichier, utilisez la commande input :
frequence = input (Entrez la frequence du generateur : ) ;
R1
Ug
C2
C1
R2
8.2 R
eponses fr
equentielle et temporelle dun circuit
On desire realiser et analyser un filtre passif passe-bas dordre 2 :
1. Dessinez le schema du filtre constitue dune resistance R, dune inductance L et
dune capacite C.
2. Calculez litteralement sa fonction de transfert.
3. Admettant L = 10 [mH], C = 10 [nF ] et R = 500, 1000, 2000 [], calculez et tracez
les graphes similaires `a ceux des figures 2 et 3. Adaptez le domaine frequentiel `a
celui du circuit.
4. Faites de meme pour les reponses temporelles (figure 4). Si necessaire, modifiez le
domaine temporel.
8.3 R
eponses fr
equentielle et temporelle dun filtre
La realisation de filtres quelconques se fait `a partir dune cellule de base biquadratique
decrite par un polynome dordre 2 au numerateur et au denominateur. Suivant la valeur
des coefficients du polynome du numerateur, on obtiendra un filtre passe-bas, passe-bande,
passe-haut et rejecteur de bande.
Des filtres dordre superieur `a 2 sont realises en placant en serie des cellules dordre 1 ou 2.
Ainsi, un filtre dordre 5 sera realise par la mise en cascade dune cellule dordre 1 et de
2 cellules dordre 2.
EXERCICES
27
Sachant que les cellules dordre 2 de type passe-bas sont generalement decrites comme
suit :
1
HP B (j) = Au
2
1 + Q10 jn + jn
o`
u Au est le gain, Q0 le facteur de qualite et n la pulsation caracteristique de la cellule
dordre 2, on demande :
crivez la fonction de transfert de chaque cellule realisant un filtre passe-bas dordre
1. E
6 sachant que
a) les 3 cellules ont la meme pulsation caracteristique n = 1000 [rad/sec] ;
b) les facteurs de qualite sont Q01 = 0.5176, Q02 = 0.7071 et Q03 = 1.9319.
2. Calculez la fonction de transfert globale en effectuant le produit des 3 fonctions de
transfert ; affichez le resultat avec la commande zpk.
3. Tracez sur un meme diagramme de Bode :
a) lamplitude des reponses frequentielles de chaque cellule en traitille ;
b) la reponse frequentielle du filtre complet en trait continu ;
c) une droite horizontale situee au niveau 3dB en pointille.
4. Par programmation, recherchez la pulsation de coupure de ce filtre ; que vaut-elle
?
(la pulsation de coupure correspond `a une amplitude diminuee dun facteur 2 par
rapport `a sa valeur maximum).
5. Tracez la reponse indicielle du filtre.
Remarque : Les valeurs proposees pour la realisation du filtre correspondent `a celles dun
filtre, dit de Butterworth, dont la reponse frequentielle est plate au maximum dans la
bande passante.
-5
-2.80
0
1.08
5
5.00
10
8.80
15
11.9
17
12.4
19
12.4
21
11.8
28
EXERCICES
8.5 Mod
elisation de la caract
eristique dune diode
Une diode semi-conductrice est un element electronique dont le fonctionnement peut etre
represente par lequation suivante :
Id = Is eUd /nVT 1
avec :
Id
Ud
Is
VT = kT /q
n
0.18
Is = xxx
eta = xxx
Rd = xxx
0.16
0.14
2
0.1
Log10(Id) [A]
Courant Id [A]
0.12
0.08
0.06
8
0.04
10
0.02
0
0
0.2
0.4
0.6
Tension Ud [V]
0.8
12
0.2
0.4
0.6
Tension Ud [V]
0.8
EXERCICES
29
Sachant que lon a mesure sur une diode les tensions et courants presentes dans le tableau
suivant :
Ud [V ]
Id
Id
0.2
0.6 nA
1 nA
0.3
15 nA
10 nA
0.4
350 nA
10 nA
0.5
9.0 A
5 A
0.6
220 A
5 A
0.7
5.5 mA
5 mA
0.87
137 mA
5 mA
8.7 Saut `
a l
elastique
Dans ce qui suit, on se propose daborder le probl`eme du saut `a lelastique par une
modelisation progressive [1]. Les param`etres necessaires `a sa description sont :
la masse m = 80 [kg] du sauteur,
30
EXERCICES
Felast (t) =
si y(t) L
EXERCICES
31
Trajectoire y(x)
x 10
0.8
0.6
1.5
0.4
0.2
0.5
0
8
Trajectoire z(x)
2.5
x 10
0
8
x 10
Trajectoire z(y)
2.5
x 10
3
1.5
0
1
x 10
x 10
2
7
x 10
0.5
0.5
0
0 1
x 10
0.2
0.4
0.6
0.8
1
5
x 10
32
EXERCICES
33
Imprime un fichier
Lance la demonstration
34
Suppression de fichiers
35
| Ou
<= Inferieur ou egal `a
Non
i,j
1
inf
NaN
Not a Number
flops
Date courante
clock Horloge
etime
Duree dexecution
tic, toc
cputime
36
finite
Attente
Partie imaginaire
37
Reste de la division
exp Exponentielle
log
Log neperien
log10
Log decimal
log2
Log base 2
pow2
Calcule 2 `a la puissance y
Fonction beta
gamma
Fonction gamma
38
Matrice de 0
ones Matrice de 1
eye Matrice identite
diag
Matrice diagonale
Carre magique
logspace
39
Valeurs propres
trace
Trace
9.3.6 D
ecomposition et factorisation de matrices
inv Inversion
lu Decomposition LU
rref Reduction de lignes
chol Factorisation de Cholesky
qr Decomposition QR
nuls
ris
null Noyau
orth Orthogonalisation
eig
hess
40
41
Titre du graphique
gca
axis
caxis
whitebg
Generation de sph`eres
Demonstration
42
9.5.6 Animations
moviein Initialise lespace memoire pour lanimation
getframe Enregistre une image pour lanimation
movie
Joue lanimation
Mode de remplissage
43
waterfall
slice
Visualisation en volume
9.5.9 Op
erations sur les objets graphiques
uicontrol Creation dun interface de controle utilisateur
uimenu Creation dun interface menu utilisateur
set Definit les proprietes dun objet
get Lit les proprietes dun objet
reset Reinitialise les proprietes dun objet
delete
Supprime un objet
drawno
9.6 Op
erations sur les polyn
omes
poly Construit un polynome `
a partir des racines
roots
roots1
44
Filtrage bidimensionnel
FFT bidimensionnel
FFT inverse
9.8 Int
egration, interpolation et et d
erivation num
eriques
9.8.1 Int
egration num
erique
quad Integrale de Simpson
quad8 Integrale de Newton-Cotes
trapz
9.8.2 Interpolation
spline Interpolation spline cubique
interp1
Interpolation monodimensionnel
interp2
Interpolation bidimensionnel
Maillage de donnees
45
9.8.3 Diff
erences finies
diff
Approximation de la derivee
9.9 Optimisation et
equations non lin
eaires
fmin Minimisation dune fonction dune variable
fmins
fsolve
fzero
9.10 Mod
elisation et analyse de syst`
emes continus
Les fonctions qui suivent, malgre le fait quelles sont tr`es frequemment utilisees dans divers domaines, appartiennent malheureusement `a la Control ToolBox !
minreal Suppression des poles compenses par des zeros (simplification algebrique)
damp Frequence propre et amortissement/resonnance
dcgain Gain en continu
pzmap Position des poles et zeros dans le plan complexe
roots
9.10.2 R
eponse temporelle
step Reponse indicielle
impulse
Reponse impulsionnelle
46
9.10.3 R
eponse fr
equentielle
bode Diagramme de Bode
freqresp Reponse `a une gamme de frequence
linspace Vecteurs lineairement espaces
logspace Vecteurs logarithmiquement espaces
nichols
ngrids
Diagramme de Nichols
Grille pour les diagrammes de Nichols