Vous êtes sur la page 1sur 4

INSA de Toulouse, spécialité AEI 4ème année

M ATLAB - Quelques commandes

Septembre 2003

1 Variables Matricielles Bien sûr on peut obtenir des résultats rigolos :

>> 4:1
1.1 Définir une matrice
 ans =


1 2 3 Empty matrix: 1-by-0
Pour définir la matrice A
4 5 6
>>A=[1 2 3
ou >>A=[1,2,3;4 5 6]
1.4 Eléments d’une matrice
4 5 6]
Pour obtenir un élément d’une matrice :

1.2 Définir un scalaire >>A(2,3)


Un scalaire est par définition une matrice de dimensions 1  1 la syn-
ans =
6
taxe est :
>>a=[3.23] ou >>a=3.23 Pour obtenir une ligne ou une colonne :
>> A(:,3) >> A(1,:)
Les scalaires sont tous a priori des réels (pas de distinction explicite ans = ans =
entre nombres entiers et nombres réels) mais peuvent être complexes : 3 1 2 3
6
>>z=2.1+44.9i ou >>z=2.1+44.9j ou
Ces commandes permettent aussi d’extraire des éléments en les réor-
>>z=2.1+44.9*i
ganisant :
Certaines lettres ou chaı̂nes de caractères sont prédéfinies :
i et j correspondent au nombre imaginaire : 1   >> A([2 1],1:3)
ans =
eps est un réel approchant l’ordre des erreurs de calcul sous 4 5 6
M ATLAB 1 2 3
pi, c’est π

  
e permet d’écrire les puissances de 10 : 1.5 Quelques matrices utiles
234 2 34 102

2.34e2
eye(n) : matrice identité de dimension n
Inf ou inf signifie que la variable est infinie : ∞
(-Inf est également définie) eye(2)
1 0
0 1
 
NaN ou nan : “Not a Number”



zeros(m,n) : matrice de zéros de dimension m n


[] : variable vide (i.e. matrice de dimensions nulles). zeros(1,2) 0 0
ones(m,n) : matrice de 1 1
1.3 Définir un vecteur de réels incrémentés ones(2,3)  1
1
1
1
1 
Le caractère : permet de définir des vecteurs d’entiers successifs :
>> 1:5 1.6 Opérations usuelles sur les matrices
ans =
1 2 3 4 5 Addition, soustraction : A+B , A-B

ā         
Multiplications, inversion : A*B , B*A , inv(A)

L’incrément par défaut est +1 mais d’autres valeurs sont possibles :
Conjuguée : conj(A) Ā ij i 1 n j 1 m


>> 5:-1:0
ans = Transpose : A.’ AT
5 4 3 2 1 0 Conjuguée transpose : A’  A  ĀT
>> 0:pi:10
Exponentielle : expm(A)  eA

ans =
0 3.1416 6.2832 9.4248 Puissance : Aˆ3 A3

1
Racine carrée : sqrtm(A)   A >> [R,P,K]= residue([1 2 3], [1 -8 +23 -28 12])
Concaténation horizontale : [A,B]   A B
R =
9.0000
Concaténation verticale : [A;B] 
B 
A -6.0000
-11.0000
Valeurs propres : eig(A) -3.0000
rang : rank(A)
P =
trace : trace(A)
3.0000
déterminant : det(A) 2.0000
normes : norm(A) , norm(A,1) , norm(A,inf) 2.0000
1.0000
polynôme caractéristique : poly(A)
Voir aussi logm, svd... K =
[]
1.7 Opérations termes à termes
a  b         
Ce qui signifie que la décomposition en éléments simples s’écrit (voir
Multiplication : A.*B  aide de M ATLAB pour cette fonction) :

Inversion : 1./A  1 a         
 3  p  2   p  2  p  1 
ij ij i 1 n j 1 m
9 6 11 3

Division : B./A  b  a       
ij i 1 n j 1 m
p 2
0

Exponentielle : exp(A)  e         
ij ij i 1 n j 1 m
ai j

a        3 Systèmes Linéaires
i 1 n j 1 m
Puissance : A.ˆ3  3

 a         
i 1 n j 1 m
Racine carrée : sqrt(A) 
ij
Une boite à outils nommée C ONTROL S YSTEM TOOLBOX permet de
ij i 1 n j 1 m
définir des variables M ATLAB pour un système linéaire invariant dans
Voir aussi abs, log, log10, real, imag, round, sin, acos, le temps (LTI). Cette boite à outils gère de plus les opérations usuelles
tanh... de l’Automatique.

2 Polynômes 3.1 Définir une fonction de transfert


3.1.1 Représentation usuelle
2.1 Ecriture vectorielle
Pour définir une fonction de transfert d’un système à temps continu
Certaines fonctions utilisent des polynômes qui sont alors définis ou bien à temps discret on utilise l’unique fonction tf en spécifiant le
comme des vecteurs ligne :
 
polynôme du numérateur et le polynôme du dénominateur (voir sec-
12p3 6p2  4p 9 s’écrit comme le vecteur ligne : [12 6 -4 9]
  
tion précédente sur les polynômes). L’usage est le suivant :

On représente un polynôme par un vecteur ligne où les coefficients Définir Gc p 22p 1
p 2p 1 
sont entrés dans l’ordre décroissant du degré. >> gc = tf([2 1], [1 2 1])

2.2 Opérations sur le polynômes Transfer function:

 1,   2 s + 1

 x  1  x  2  x  3
Si 2 et 3 sont les racines d’un polynôme -------------
sˆ2 + 2 s + 1
On remarquera que la variable de Laplace a pour notation ’s’
pour calculer la forme développée du polynôme, on fait :

dans M ATLAB (notation anglo-saxonne).
>>poly([-1 -2 -3])
 
z 1
ans= Définir 2 à la cadence T 2s :
z 3z 2
1 6 11 6
  
 
Le polynôme obtenu est donc x3 6x2 11x 6. >> tf([1 -1], [1 -3 2], 2)
Inversement, si on cherche les racines de x2 x 2 0 :
>>roots([1 -1 2]) Transfer function˜:
ans= z - 1
0.5000 + 1.3229i -------------
0.5000 - 1.3229i zˆ2 - 3 z + 2
Une autre opération très utile est la décomposition en éléments simples
d’une fraction rationnelle. Voici un exemple d’utilisation. Partant de Sampling time: 2
la fraction rationnelle suivante : A la donnée d’une représentation sous forme de fonction de transfert
  M ATLAB retourne les vecteurs définissant le numérateur et le dénomi-
p4  8p3
p2
 2p 3
23p2 28p   12
nateur (et éventuellement la cadence) à l’aide de la commande suivante
[NUM,DEN,T] = tfdata(SYS,’v’) où SYS est la variable M ATLAB
La décomposition en éléments simples est obtenue avec la commande : contenant le modèle.

2
3.1.2 Représentation zéros/pôles/gain y1 9
Continuous-time model.
Une autre écriture pour les fonctions de transfert est également accep-
tée : zpk. Elle consiste a factoriser les racines des polynômes numéra- La notation est équivalente pour les systèmes à temps discret, il
teur et dénominateur. Par exemple : faut spécifier la cadence T en plus des quatre matrices :

>> gd = zpk([1 2], [3 -1 4], 10, 1.5) >> ss(A, B, C, D, T)


De même que pour les données de tf et zpk, pour obtenir
Zero/pole/gain˜: les matrices du modèle il suffit d’appliquer la commande
10 (z-1) (z-2) [A,B,C,D,T] = ssdata(SYS).
-----------------
(z-3) (z-4) (z+1)
3.3 Manipulations entre modèles
Sampling time: 1.5 Il est bien sur possible de passer d’une représentation d’état à une
fonction de transfert et réciproquement sans difficulté. Pour cela il
Il est bien évidement possible de passer d’une représentation à l’autre
suffit d’appliquer la fonction tf, zpk ou ss selon le résultat souhaité.
en utilisant les commandes tf et zpk comme suit :
Quelques exemples :
>> zpk(gc)
>> tf(fc)
Zero/pole/gain:
Transfer function:
2 (s+0.5)
9 sˆ2 + 38 s - 2
---------
----------------
(s+1)ˆ2
sˆ2 - 5 s - 2
>> tf(gd)
>> ss(gd)
Transfer function:
a =
10 zˆ2 - 30 z + 20
x1 x2 x3
----------------------
x1 3 -1.225 0.7071
zˆ3 - 6 zˆ2 + 5 z + 12
x2 0 -1 1.732
x3 0 0 4
Sampling time: 1.5

De même que pour les données de tf, pour obtenir les vecteurs b =
comprenant les zéros (racines du numérateur), les pôles (racines u1
du dénominateur) et le gain il suffit d’appliquer la commande x1 0
[Z,P,K,T] = zpkdata(SYS,’v’). x2 0
x3 6.325

3.2 Définir une représentation d’état c =


Pour définir un modèle dans l’espace d’état d’un système à temps con- x1 x2 x3
tinu ou bien à temps discret on utilise l’unique fonction ss en spécifi- y1 4.472 -2.739 1.581
ant les matrices A (dynamiques), B (entrées), C (mesures) et D (trans-

 
fert direct). L’usage est le suivant : d =

  
u1


1 2 5
 ẋ x y1 0
3 4 6
8
x
Définir Fc :

 y 7 9u Sampling time: 1.5


Discrete-time model.
>> fc = ss([1 2; 3 4], [5; 6], [7 8], 9)
a = Les représentation d’état n’étant pas uniques il est possible d’opérer
x1 x2 des changements de bases classiques. Certaines fonctions sont :
x1 1 2 canon : donne la forme modale ou bien une forme canonique
x2 3 4 particulière.
b =
u1 ss2ss : applique un changement de base donné.
x1 5
x2 6
c =
x1 x2
y1 7 8
d =
u1

3
3.4 Algèbre des systèmes >> c2d(gc, 1.2, ’tustin’)
 Systèmes en série H=F*G
Transfer function:
0.6094 zˆ2 + 0.2812 z - 0.3281
H(s) ------------------------------
G(s) F(s)
zˆ2 - 0.5 z + 0.0625

 Systèmes en parallèle H=F+G Sampling time: 1.2

G(s)
H(s) 3.6 Quelques fonctions utiles
+
A NALYSE DES P ÔLES ET Z ÉROS
+ pole : pôles du système
F(s) zero : zéros du système


damp : pôles, les pulsations propres et amortissements associés
Systèmes bouclés H=feedback(G,F) pzmap : représentation graphique des pôles et zéros dans le plan
complexe
+ G(s) R ÉPONSES TEMPORELLES
-
step : réponse indicielle
impulse : réponse impulsionnelle
F(s)
H(s) initial : réponse pour une condition initiale donnée
lsim : réponse à une entrée quelconque
Attention à ne pas opérer des systèmes de différentes représentations
temporelles tels que des systèmes continus avec des systèmes discrets gensig : génère un signal d’entrée
et des systèmes discrets à cadences différentes entre eux. R ÉPONSES FR ÉQUENTIELLES
dcgain : gain statique
3.5 Echantillonnage et discrétisation bandwidth : fréquence de coupure
L’échantillonnage et la discrétisation sont des opérations qui transfor- bode : diagramme de Bode
ment un modèle à temps continu en modèle à temps discret mais ne
sont pas du tout équivalentes. La première est une opération physique- margin : diagramme de Bode + marges de gain/phase
ment réalisée par un bloqueur d’ordre zéro et un échantillonneur alors nyquist : diagramme de Nyquist
que la seconde est purement mathématique. nichols : diagramme de Black-Nichols
grid : abaques pour le diagramme actif
   B  p G  p est réalisée par M
3.5.1 Echantillonnage
S YNTH ÈSE DE CORRECTEURS
L’opération G z 0 ATLAB comme
suit : rlocus : lieu d’Evans
ctrb : matrice de commandabilité
>> c2d(gc, 1.2, ’zoh’)
obsv : matrice d’observabilité
Transfer function: place ou acker : placement de pôle
1.06 z - 0.5719
------------------------
zˆ2 - 0.6024 z + 0.09072 4 Outils Graphiques
Sampling time: 1.2 Matlab est souvent utilisé pour tracer des courbes et des surfaces car
le résultat est très réussi. Les commandes sont assez intuitives et ne
méritent pas d’être détaillées ici. Pour connaı̂tre une grande variété de
3.5.2 Discrétisation
commandes tapez >> help graph2d pour les courbes en 2D. Et pour
Parmi les méthodes d’approximation mathématique du comportement les courbes en 3D, vous devinez ce qu’il faut faire.
d’un système continu par un système à temps discret, nous retiendrons
la méthode de Tustin. Elle est réalisée avec M ATLAB de la façon suiv-
ante :

Vous aimerez peut-être aussi