Vous êtes sur la page 1sur 7

1

Ecole Nationale Supérieure d’Electricité et de Mécanique - ENSEM


Université Hassan II de Casablanca

Initiation à Matlab
2ème Année CMPI, GSM, PIP, QMSI
Pr A. EL ASSOUDI. Année 2020-2021
——————————————————————————————————————————

1 Présentation de Matlab
En ce qui concerne le domaine de l’automatique que ce soit en matière d’analyse, d’identifica-
tion ou de commande, Matlab constitue l’outil de référence pour la simulation numérique. Il
s’agit d’un puissant outil de calcul numérique, de programmation et de visualisation graphique.
Il permet d’effectuer des opérations mathématiques, de manipuler des matrices, de tracer faci-
lement des graphiques.
Définition d’un vecteur colonne : X=[1 ;2 ;3 ;4 ;5 ;6] ;
Définition d’un vecteur ligne : Y=[10 20 30 40 50 60] ;
Définition d’une Matrice : On définit une matrice M en donnant ses éléments :
M = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] ;
Matrice unitaire : A = eye(3).
Matrice nulle : A = zeros(3).
Emploi des indices : Les éléments d’un vecteur ou d’une matrice peuvent être adressés en uti-
lisant les indices sous la forme suivante :
X(5) : désigne l’élément numéro 5 du vecteur X.
M (2, 3) : désigne l’élément se trouvant à la ligne 2, colonne 3 de la matrice M .
M (:, 2) : désigne la colonne 2 de la matrice M .
M (4, :) : désigne la ligne 4 de la matrice M .
2

Opérations matricielles Les opérations matricielles exécutées par MATLAB sont illustrées
dans le tableau suivant :

B=A’ La matrice B est égale à la matrice A transposée


C=inv(A) La matrice C est égale à la matrice A inversée
D=A+B Addition
E=A-B Soustraction
F=A*B Multiplication
G = A\B Equivalent à inv(A)*B
H = A/B Equivalent à B*inv(A)
P = X. ∗ Y Vecteur de composantes xi ∗ yi

Graphiques

On utilise l’instruction plot pour tracer un graphique 2D.

plot(t,x) Traçage de la courbe x(t)


plot(t,x,’r’) Traçage de x(t) en rouge
plot(t,x,t,y) Traçage de x(t) et y(t) sur le même graphique
semilogx(w,f) Traçage de f(w) avec échelle log(w)
subplot instruction pour tracer plusieurs graphique dans la même fenêtre :
division de la fenêtre en plusieurs parties
grid Ajouter une grille
hold on Superposition de courbes
axis([a b c d]) Affichage d’une partie de la courbe :
[a b] : axe des abscisses et [c d] : axe des ordonnées
plot([a1 a2 ], [b1 b2 ]) Traçage d’un segment :
[a1 a2 ] : axe des abscisses et [b1 b2 ] : axe des ordonnées
X = [α1 α2 α2 α1 α1 ] [α1 α2 ] : axe des abscisses
Y = [β1 β1 β2 β2 β1 ] [β1 β2 ] : axe des ordonnées
plot(X, Y ) Traçage d’un rectangle.
3

2 Simulation d’une fonction de transfert


Etant donnée un SL continu décrit par sa FT :

bm pm + bm−1 pm−1 + . . . + b1 p + b0
F (p) =
an pn + an−1 pn−1 + . . . + a1 p + a0

Programme de simulation : essai.m

clear all ; close all ; clc


% déclaration du numérateur & dénominateur
num = [bm bm−1 . . . b1 b0 ] ; % coefficients dans l’ordre décroissant du polynôme.
den = [an an−1 . . . a1 a0 ] ; % coefficients dans l’ordre décroissant du polynôme.

% Analyse indicielle
t=0 :0.001 :5 ;
y=step(num,den,t)
figure(1), plot(t,y), grid

% Analyse harmonique dans le diagramme de Bode


w=logspace(-1,3,1000) ;
[gain, phase] = bode(num, den, w) ;
gaindB=20*log10(gain) ;
figure(2)
subplot(2,1,1),semilogx(w,gaindB), grid
xlabel(’w,rad/s’),ylabel(’Amplitude,dB’)
subplot(2,1,2),semilogx(w,phase), grid
xlabel(’w,rad/s’),ylabel(’Phase,degré’)

% Tracé dans le plan de Black


figure(3), plot(phase,gaindB)

% Tracé dans le plan de Nyquist


[Re, Im] = nyquist(num, den, w)
figure(4), plot(Re,Im)
4

3 Calcul de la FT à partir d’un schéma bloc


Etant donnée un système linéaire continu décrit par le schéma bloc figure 1 :

Figure 1 : Schéma bloc


Objectif : il s’agit d’évaluer à l’aide du logiciel Matlab la fonction de transfert du système en
boucle fermée, ayant pour expression :
Y (p) C(p)H(p)
=
Yc (p) 1 + C(p)H(p)Gr (p)
Notations :
num1(p) num2(p) num3(p)
C(p) = ; H(p) = ; Gr (p) =
den1(p) den2(p) den3(p)

Simplification des blocs C(p) et H(p) : appelons num4 et den4 le numérateur et le dénominateur
de la fonction de transfert directe
num1(p) num2(p)
C(p)H(p) =
den1(p) den2(p)
num4 = conv(num1, num2) ;
den4 = conv(den1, den2) ;
Ainsi pour le système global, notons par num et den le numérateur et le dénominateur de la
fonction de transfert en BF :
Y (p) C(p)H(p) num(p)
= =
Yc (p) 1 + C(p)H(p)Gr (p) den(p)

[num, den] = f eedback(num4, den4, num3, den3, −1)

Remarque : Cas d’un retour unitaire Gr (p) = 1 càd num3=den3=1


[num, den] = f eedback(num4, den4, 1, 1, −1)
5

4 Calcul de la FT avec retard


Etant donnée un système linéaire continu décrit par la fonction de transfert suivante :

Ke−τ p
F (p) =
(1 + T p)n

Objectif : Il s’agit d’évaluer à l’aide du logiciel Matlab la fonction de transfert du système.

NB : Pour l’approximation du terme de retard, on utilise l’approximation du Padé :


τ2 2
−τ p 1 − τ2 p + 12
p
e = τ2 2
1 + τ2 p + 12
p

% déclaration des paramètres


K = 10 ;
T = 20
τ =2
n=3

% Calcul de la fonction de transfert


num1 = K ;
den1 = conv(conv([T 1], [T 1]), [T 1]) ;

% déclaration du terme de retard


[num2, den2] = pade(τ, 2) ;

Ainsi pour le système global, notons par num et den le numérateur et le dénominateur de la
fonction de transfert :
Ke−τ p num(p)
F (p) = =
(1 + T p)n den(p)
num = conv(num1, num2) ;
den = conv(den1, den2) ;
6

5 Simulation d’un système décrit par son modèle d’état


Etant donnée un système non linéaire continu décrit par sa représentation d’état :

 ẋ = f (x) + g(x)u
 y = h(x)

x = [x1 ... xn ]T est le vecteur d’état du système.


u = [u1 ... um ]T est le vecteur des commandes.
y = [y1 ... yp ]T est le vecteur des mesures.

Programmes de simulation

Programme Principal : test1.m


clear all ; close all ; clc
% déclaration : temps initial t0 , temps final tf , condition initial x0
t0 = 0 ; tf = 20 ; x0 = [0; 0; . . . ; 0] ;
[t, x] = ode45(0 test20 , [t0 tf ], x0 );
save mesures t x
figure(1), plot(t,x( :,1))
..
.
figure(n), plot(t,x( :,n))

Programme secondaire : test2.m


function Xd=test2(t,x)
% déclaration de fx, gx et u
Xd=fx+gx*u

Remarque : Cas d’un système linéaire continu : f (x) = A ∗ x, g(x) = B, h(x) = C ∗ x.


7

6 Application : Simulation d’un MCC


On considère un moteur à courant continu caractérisé par les données suivantes :
φ0 : constante de flux et de couple supposées égales.
R : Résistance de l’induit. L : Inductance de l’induit.
J : Moment d’inertie du moteur chargé. f : Coefficient de frottement visqueux mécanique.
Les variables du moteur sont :
U(t) : tension appliquée aux bornes de l’induit.
I(t) : courant absorbé par l’induit. Γ(t) : couple mécanique.
Ω(t) : vitesse angulaire de l’arbre moteur.
θm (t) : position angulaire de l’arbre moteur.
Les équations temporelles du moteur sont les suivantes :
dI(t)
Equation électrique : U (t) = RI(t) + L + φ0 Ω(t)
dt
dΩ(t)
Equation mécanique : Γ(t) = J + f Ω(t)
dt
Equation de couplage : Γ(t) = φ0 I(t)
• Donner le schéma fonctionnel détaillé liant la position angulaire θm à la tension U .
• Donner les fonctions de transfert du moteur :

θm (p) Ω(p) I(p)


F1 (p) = ; F2 (p) = ; F3 (p) =
U (p) U (p) U (p)

• En choisissant maintenant les variables θm , Ω et I, donner le modèle d’état du système :



 ẋ = Ax + Bu
 y = Cx

x = [θm Ω I]T est le vecteur d’état du système. u est la commande. y est la mesure.
• Procéder à une simulation du comportement du MCC en BO (analyse indicielle).
• Interpréter les résultats de simulations obtenus.

Vous aimerez peut-être aussi