Professional Documents
Culture Documents
1 INTRODUCTION
Ce document constitue un support d'initiation aux logiciels MATLAB et
SIMULINK qui sont regroupés dans la même application sur Macintosh. Cette ap-
plication porte le nom de “MATLAB”. Il s’agit de la version 5.1.
1
Initiation à la CAO en réglage automatique OUTILS DE BASE
2 OUTILS DE BASE
2.1 Commandes générales
» who : Affiche les variables actuellement présentes en
mémoire.
5, 6 et / : Correspondent respectivement à [, ] et \
2
Initiation à la CAO en réglage automatique OUTILS DE BASE
i, j : Constantes correspondant à – 1 .
–1
» x=[-1;0;2] : Définit le vecteur colonne: x = 0 .
2
3
Initiation à la CAO en réglage automatique OUTILS DE BASE
1 2 3
» A=[1 2 3;4 5 6;7 8 9] : Définit la matrice: A = 4 5 6
7 8 9
» r=[10,11,12]
4
Initiation à la CAO en réglage automatique OUTILS DE BASE
1 0 0
E = 0 1 0
0 0 1
0 0 0
1 0 0
D = 0 2 0
0 0 3
1 3
A = 4 6
7 9
10 12
5
Initiation à la CAO en réglage automatique OUTILS DE BASE
Exemple
Soit A=[1 2 3;4 5 6;7 8 9;10 11 12];
123
» A=A(1:3,:) : Produit la matrice A = 4 5 6
789
1 4 7
» B=A' : Correspond à B = AT = 2 5 8
3 6 0
–1
» x=x' : Produit le vecteur x = 0
2
❏ Transposé
2 6 10
» C=A+B : Produit la matrice C = 6 10 14
10 14 0
6
Initiation à la CAO en réglage automatique OUTILS DE BASE
–2
» y=x-1 : Produit le vecteur y = – 1
1
❏ Multiplication et division
2 1 –1
» x*y' : Produit la matrice ans = 0 0 0
–4 –2 2
5
» b=A*x : Produit le vecteur b = 8
–7
– 3.1416
» pi*x : Produit le vecteur ans = 0
6.2832
1 8 21
C = 8 25 48
21 48 0
0.5
z = 0
2
7
Initiation à la CAO en réglage automatique OUTILS DE BASE
❏ Puissance
– 0.5
z = 1
1
1
» z=x.^2 : Donne le vecteur z = 0
4
2.9 Fonctions
❏ Fonctions matricielles élémentaires
Ces fonctions sont définies uniquement pour des matrices carrées. Soit A
une matrice de dimension n x n;
8
Initiation à la CAO en réglage automatique OUTILS DE BASE
9
Initiation à la CAO en réglage automatique OUTILS DE BASE
12.1229
r = – 5.7345
– 0.3884
10
Initiation à la CAO en réglage automatique OUTILS DE BASE
2.10 Graphiques
Avec MATLAB les données peuvent être examinées graphiquement.
Pour la représentation d'un graphe à l’écran il est possible de choisir le
type d'échelle désiré pour les axes x et y.
Exemple
1
0.8
0.6
» t=[0:0.05:2*pi]; 0.4
» y=sin(t); 0.2
» plot(t,y)
sin(t)
» xlabel('t') -0.2
» ylabel('sin(t)') -0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
11
Initiation à la CAO en réglage automatique OUTILS D'ETUDE DES SYSTEMES DYNAMIQUES
❏ Fonction de transfert
n0 s m + n1 s m – 1 + … + nm
Soit y ( s ) = -------------------------------------------------------------- u(s)
d 0sn + d 1sn – 1 + … + d n
Dans MATLAB, nous décrivons ce système par les deux vecteurs ligne
suivants:
num = [ n 0 ,n 1 ,… ,n m ]
den = [ d 0 ,d 1 ,… ,d n ]
Exemple
s 3 + 2s + 5
Considérons le système H ( s ) = -------------------------------------------
-
3s 3 + 5s 2 + 2s + 1
» num=[1,0,2,5]
» den=[3,5,2,1]
12
Initiation à la CAO en réglage automatique OUTILS D'ETUDE DES SYSTEMES DYNAMIQUES
K ( s + z 1 )… ( s + z m )
Soit H ( s ) = ------------------------------------------------
-
( s + p 1 )… ( s + p n )
k = K
z = [ – z 1 ;– z 2 ;… ;– z m ]
p = [ – p 1 ;– p 2 ;… ;– p n ]
Exemple
4(s + 1)(s + 2) -
Considérons le système H ( s ) = -------------------------------------------------
(s + 3)(s + 4)(s + 5)
» k=4
» z=[-1;-2]
» p=[-3;-4;-5]
» num=poly(z)*k
» den=poly(p)
» z=roots(num)
» p=roots(den)
13
Initiation à la CAO en réglage automatique OUTILS D'ETUDE DES SYSTEMES DYNAMIQUES
m–1
n0 z m + n1 z + … + nm
Soit y ( z ) = --------------------------------------------------------------u (z)
d 0zn + d 1zn – 1 + … + d n
num = [ n 0 ,n 1 ,… ,n m ]
den = [ d 0 ,d 1 ,… ,d n ]
La représentation pôles-zéros peut aussi être utilisée pour les systèmes dis-
crets comme elle a été décrite pour les systèmes analogiques dans le paragraphe
précédent. La fonction c2dm permet de passer d’une représentation continue à la
représentation discrète correspondante (en indiquant la période d’échantillon-
nage).
num1 num2
u -------------- -------------- y
den1 den2
num
-----------
den
14
Initiation à la CAO en réglage automatique OUTILS D'ETUDE DES SYSTEMES DYNAMIQUES
» num=conv(num1,num2)
» den=conv(den1,den2)
Exemple
s+2 s 2 + 0.4s + 4
Soit H 1 ( s ) = ----------------------------------
- et H 2 ( s ) = ------------------------------ deux systèmes
0.5s 2 + s + 0.5 s 2 + 0.5s + 2
mis en série.
Calculer la fonction de transfert H(s) du système équivalent.
» num1=[1 2]
» den1=[0.5 1 0.5]
» num2=[1 0.4 4]
» den2=[1 0.5 2]
s 3 + 2.4s 2 + 4.8s + 8
Alors H ( s ) = ------------------------------------------------------------------------------
0.5s 4 + 1.25s 3 + 2s 2 + 2.25s + 1
Remarque
Il est intéressant de remarquer que la commande conv, judicieusement ma-
nipulée, permet la réduction de n'importe quel schéma bloc (chaîne directe, chaîne
de retour).
15
Initiation à la CAO en réglage automatique OUTILS D'ETUDE DES SYSTEMES DYNAMIQUES
Exemples
2s 2 + 5s + 1
Soit le système H ( s ) = -----------------------------
s 2 + 2s + 3
1
» num=[2 5 1];
» den=[1 2 3]; 0.5
» t=[0:0.1:10]; 0
» y1=impulse(num,den,t);
y1
-0.5
» plot(t,y1) -1
» xlabel('t'), ylabel('y1')
-1.5
-2
0 1 2 3 4 5 6 7 8 9 10
16
Initiation à la CAO en réglage automatique Fichiers de MATLAB (M-Files)
2
» num=[2 5 1];
1.5
» den=[1 2 3];
1
» t=[0:0.1:20]; 0.5
» u=sin(t);
y2
0
» y2=lsim(num,den,u,t); -0.5
» plot(t,y2) -1
-2
0 2 4 6 8 10 12 14 16 18 20
Pour enregistrer le fichier, choisir Save as ... dans le menu File, introduire
le nom désiré, par exemple toto, sélectionner le dossier de destination, puis enreg-
istrer. Le nom du fichier doit comporter l’extension .m.
D'autre part, si c'est la fenêtre toto.m qui est active, par exemple lors de
l'édition du fichier, il suffit de choisir la commande Save and Execute dans le
menu File pour enregistrer les modifications et exécuter les commandes.
17
Initiation à la CAO en réglage automatique Fichiers de MATLAB (M-Files)
4.2 Fonctions
La plupart des fonctions disponibles dans MATLAB ou dans ses toolboxes
sont également définies dans des fichiers de commandes. Afin de pouvoir être ap-
pelés comme des fonctions, ces fichiers doivent posséder une structure particu-
lière. Ces fonctions se distinguent des fichiers de commandes standard par la
possibilité de passer des paramètres d’entrée et de sortie.
Le fichier de définition d’une fonction doit commencer par la ligne de
commandes suivante:
function [S1,S2,...]=NomFonction(E1,E2,...)
NomFonction est une chaîne de caractères qui correspond au nom de la
fonction. Ce nom doit être différent de celui des autres fonctions déjà disponibles.
Le fichier de commandes doit porter le même nom que la fonction. E1, E2, ... sont
les variables transmises à la fonction lorsqu’elle est invoquée. S1, S2, ... sont les
variables retournées par la fonction après son exécution. Ces dernières variables
doivent être définies dans le corps de la fonction. Les autres variables définies à
l’intérieur de la fonction sont locales.
Pour faciliter l’usage de la fonction, des lignes de commentaires peuvent
être introduites. Elles doivent être précédées du symbole %. Les lignes de com-
mentaires qui suivent directement l’entête de la fonction seront affichées si l’util-
isateur introduit la commande:
» help NomFonction
La définition et l’appel d’une fonction sont illustrés dans les deux figures
présentées ci-dessous.
SomProd.m
18
Initiation à la CAO en réglage automatique Introduction à SIMULINK
5 Introduction à SIMULINK
5.1 Construction de modèles
SIMULINK utilise des diagrammes donnés sous forme de blocs pour
représenter les systèmes dynamiques. Il contient des librairies de blocs qui peu-
vent être utilisés pour construire le modèle du système. L'utilisateur a aussi la pos-
sibilité de définir de nouveaux blocs et de créer ainsi sa propre librairie. La
librairie standard est divisée en plusieurs groupes de blocs selon leurs caractéris-
tiques.
La plupart des blocs peuvent être ouverts pour afficher leurs paramètres
dans une fenêtre séparée. Les valeurs par défaut de ces paramètres peuvent être
modifiées. La plupart des blocs possède une touche d'aide qui informe sur le fonc-
tionnement du bloc.
Les blocs ont des ports d’entrée et de sortie. Pour connecter deux blocs, on
doit cliquer sur le port de sortie du premier bloc, déplacer la souris jusqu'au port
d’entrée du deuxième bloc et relâcher le bouton de la souris. Une ligne avec une
flèche au bout est ainsi créée. La flèche indique la direction du flot d'information.
Pour supprimer une connexion, il suffit de la choisir et d'appuyer sur le bouton de-
lete. A titre d’exemple, le modèle du système décrit par l’équation différentielle de
2
Van der Pol ẋ˙ = ẋ ( 1 – x ) – x est construit. Les conditions initiales des deux in-
19
Initiation à la CAO en réglage automatique Introduction à SIMULINK
Le modèle peut être sauvé comme fichier MATLAB. Dans le cas présenté
le fichier porte le nom “Exemple”. Si ce fichier est ouvert lorsque la fenêtre Com-
mand de MATLAB se trouve en premier plan, le modèle est visualisé sous forme
de commandes. Si il est ouvert lorsque la fenêtre simulink se trouve en premier
plan, le modèle est visualisé sous forme de blocs.
20
Initiation à la CAO en réglage automatique Introduction à SIMULINK
21
Initiation à la CAO en réglage automatique Introduction à SIMULINK
-1
-2
-3
0 1 2 3 4 5 6 7 8 9 10
5.4 S-functions
Un modèle créé dans SIMULINK est enregistré en langage MATLAB
sous forme d’une fonction qui contient la description du système et porte le même
nom que le modèle correspondant. Ces fonctions de description de modèles s’ap-
pelles S-functions. Dans le cas de modèles complexes pour lesquels une descrip-
tion par équations différentielles est déjà disponible, il peut être judicieux de
définir directement le modèle dans un fichier de commandes écrites plutôt que
dans un diagramme complexe.
Pour être défini de la sorte, le modèle doit être écrit sous forme d’un
système d’équations différentielles d’ordre un (ou, dans un cas discret, sous forme
d’un système d’équations aux différences d’ordre un). Pour l’exemple mentionné,
ceci est rendu possible par l’introduction de deux variables supplémentaires
x 1 = x et x 2 = ẋ . L’équation de Van der Pol prend alors la forme du système:
ẋ 1 = x 2
2
ẋ 2 = x 2 ( 1 – x 1 ) – x 1
y = x1
22
Initiation à la CAO en réglage automatique Introduction à SIMULINK
23
Initiation à la CAO en réglage automatique Introduction à SIMULINK
DemoVDP.m
24
Initiation à la CAO en réglage automatique Introduction à SIMULINK
ỹ = Cx̃ + Dũ
où x̃ , ũ et ỹ représentent respectivement les écarts des vecteurs d’état, d’entrée et
de sortie par rapport à leurs valeurs nominales x , u et y :
x̃ = x – x
ũ = u – u
ỹ = y – y
La syntaxe de la fonction de linéarisation est la suivante:
[A,B,C,D]=linmod(‘model’, x , u ,pert,xpert,upert,P1,P2,...,P10)
Si les valeurs nominales ne sont pas spécifiées, elles sont considérées com-
me nulles. Les paramètres pert, xpert et upert permettent de fixer les incréments
de perturbations des variables lors du calcul des dérivées partielles nécessaire à la
linéarisation. Ces paramètres possèdent aussi des valeurs utilisées par défaut s’ils
ne sont pas fixés lors de l’appel de la fonction ou s’ils sont omis avec le symbole
[]. Les paramètres facultatifs P1, P2, ..., P10 peuvent également être passés à la
fonction ‘model’. Le modèle ‘model’ doit posséder des entrées constituées de
blocs Inport et des sorties de blocs Outport comme indiqué ci-dessous dans le cas
d’un entraînement électrique en vitesse et de son amplificateur:
25
Initiation à la CAO en réglage automatique Introduction à SIMULINK
[num,den]=ss2tf(A,B,C,D)
[ x , u , y , ẋ ]=trim(‘model’, x 0 , u 0 , y 0 ,ix,iu,iy)
Cette fonction étant basée sur une méthode itérative, les estimations ini-
tiales x 0 , u 0 et y 0 des valeurs nominales x , u et y doivent être fournies. Si elles
sont inconnues, elles peuvent être posées égales à zéro; néanmoins, des valeurs
proches de celles cherchées facilitent la convergence de l’algorithme.
26
Initiation à la CAO en réglage automatique Introduction à SIMULINK
xb=2.5 (x )
ub=1 (u )
yb=10 (y )
dx=0 ( ẋ )
Le modèle non linéaire peut maintenant être linéarisé autour des valeurs
nominales (ou point de fonctionnement) obtenues. Comme une entrée de 1V est
inférieure à la limite de saturation de l’amplificateur qui est de 10V, aucune non
linéarité apparaît dans le schéma fonctionnel. La fonction de transfert obtenue cor-
respond donc à celle de l’entraînement multipliée par le gain du régulateur.
» [A,B,C,D]=linmod(‘Servo’,xb,ub)
» [num,den]=ss2tf(A,B,C,D)
Ce qui donne:
num=20
den=[1 2]
Dans cet exemple simple, une étude pour des valeurs nominales condu-
isant à une sortie de 100 rad/s échoue. En effet, cette valeur correspond à une en-
trée à la limite de la saturation de l’amplificateur. En ce point de discontinuité, les
dérivées partielles nécessaires à l’évaluation des fonctions linmod et trim ne sont
pas définies, montrant ainsi une des limites supplémentaires de ces deux fonctions.
27
Initiation à la CAO en réglage automatique ANNEXE
6 ANNEXE
La fonction drlocus de Matlab permet de tracer le lieu des pôles. Sa syn-
taxe est la suivante:
drlocus(num,den,ax)
Les paramètres num et den (vecteurs lignes contenant les coefficients des
polynômes en z dans l’ordre décroissant des puissances de z) sont respectivement
le numérateur et le dénominateur de la fonction K ( z )G' ( z ) (lorsque le gain K p
est posé égal à 1). Le paramètre ax spécifie les bornes des axes comme cela est fait
avec la fonction axis. La commande:
drlocus(num,den,’auto’)
affiche le lieu des pôles et choisit automatiquement les bornes sur les axes.
Une autre fonction de Matlab appelée rlocfind permet, à l’aide d’un cur-
seur, de localiser un point sur le lieu des pôles et d’obtenir ses coordonnées et le
gain K p correspondant. Sa syntaxe est la suivante:
Kp = rlocfind(num,den)
Les marges de gain et de phase (qui sont de précieux indicateurs de robust-
esse) peuvent être obtenues à l’aide des fonctions dbode et margin dont la syntaxe
est décrite ci-dessous:
[mag,phase,w] = dbode(num,den,h)
[Gm,Pm,Wcg,Wcp] = margin(mag,phase,w)
Le numérateur et le dénominateur de la fonction de transert dont on cher-
che le diagramme de Bode sont donnés par les vecteurs lignes num et den qui con-
tiennent les coefficients des polynômes en z dans l’ordre décroissant des
puissances de z. Le paramètre h est la période d’échantillonnage. Les paramètres
retournés par la fonction dbode servent de paramètres d’entrée pour la fonction
margin qui retourne la marge de gain Gm (sans unité) située à la pulsation Wcg et
la marge de phase Pm (en degré) localisée à la pulsation Wcp. Les détails concer-
nant ces fonctions peuvent être facilement obtenus en tapant help dbode ou help
margin.
28