CHAPITRE II :
La CONTROL SYSTEM TOOLBOX
I- Introduction ....................................................................................................................... 1
II- Reprsentation des systmes linaires .................................................................................. 1
1- Fonctions de transfert (classe tf) ...................................................................................... 2
III- Les objets LTI et leurs proprits..................................................................................... 5
1- Manipulation de schmas en blocs ................................................................................... 5
2- Proprits des objets LTI ................................................................................................ 5
IV- Outils danalyse ............................................................................................................. 6
1- Analyse temporelle ......................................................................................................... 6
2- Ples, zros, valeurs propres, . . . ..................................................................................... 8
3- Analyse frquentielle ...................................................................................................... 8
I- Introduction
La CONT ROL SYST EM TOOLBOX (CST) est la bote outils MATLAB ddie lAutomatique de
base. Elle fournit un support pour :
- Crer et manipuler des modles linaires de systmes ;
- Analyser ces modles avec les outils classiques de lAutomatique ;
- Synthtiser des rgulateurs.
La liste complte des fonctions de cette toolbox sobtient en tapant help control.
II- Reprsentation des systmes linaires
Dans la Control System Toolbox, les systmes linaires ( paramtres constants dans le temps) sont
reprsents par des objets1 appartenant la classe LTI (Linear Time-Invariant).
Les diffrentes reprsentations des systmes sont disponibles, travers ces sous-classes de LTI :
- La classe ss correspond des systmes sous forme de variables dtat ;
Comme :
1
La plupart des fonctions de la CST peuvent sappliquer des vecteurs et des matrices sans passer forcment par les objets
LTI, comme dans les anciennes versions de cette toolbox (utiliser help pour plus de dtails)
B.BENTAHRA Introduction MATLAB & SIMULINK
1
- La classe tf2, la plus utilis, correspond des systmes sous forme de fonctions de transfert,
comme :
- La classe zpk, moins utilise que les autres, correspond des systmes sous forme zro-
ples-gain ; Comme :
1- Fonctions de transfert (classe tf)
Les fonctions de transfert se crent laide de la fonction tf. Les premiers deux paramtres de tf
sont des vecteurs MATLAB contenant respectivement les coefficients du numrateur et les
coefficients du dnominateur, tandis que les paramtres suivants (facultatifs) spcifient des proprits
ultrieures de la fonction de transfert :
tf(num,den) : crer une fonction de transfert continue ;
tf(num,den,Td,tr) : crer une fonction de transfert continue avec retard tr ;
tf(num,den,te) : crer une fonction de transfert en z avec priode dchantillonnage te ;
tf(num,den,te,Variable,z^-1) : crer une fonction de transfert en .
Exemples
nc = [1 1];
dc = [1 2 1];
Gc = tf(nc,dc)
Transfer function:
s + 1
-------------
s^2 + 2 s + 1
nd = [1 0.985];
dd = = conv([1 -1],[1 -0.999]);
ts = 0.03;
Gd = tf(nd,dd,ts)
Transfer function:
z + 0.985
---------------------
z^2 - 1.999z + 0.999
Sampling time: 0.03
La fonction conv(a,b)utilise ci-dessus permet dobtenir la multiplication polynomiale entre les
polynmes dont les coefficients sont dfinis par les vecteurs a et b .
La fonction tfdata permet de rcuprer (entre autres) le numrateur et le dnominateur dune
fonction de transfert :
[num,den]=tfdata(fdt,v) : extraire le numrateur et le dnominateur ;
[num,den,te]=tfdata(fdt,v) : extraire aussi la priode dchantillonnage ;
[num,den,te,retard]=tfdata(fdt,v) : extraire encore le retard.
2
Dans ce cours nous nutiliserons que la dernire reprsentation : la classe tf (fonction de transfert)
B.BENTAHRA Introduction MATLAB & SIMULINK
2
Exemple:
[num,den,ts]=tfdata(Gd,v);
num =
0 1.0000 0.9850
den =
1.0000 -1.9990 0.9990
ts =
0.03
2- Forme zros-ples-gain (classe zpk)
La forme zros-ples-gain est une reprsentation alternative la fonction de transfert . On cre
des systmes dans cette forme laide de la fonction zpk, qui prend en paramtres deux vecteurs
contenant respectivement les zros et les ples, plus un scalaire qui indique un gain.
Exemple:
zeros=[];
poles=[-1,-2];
gain=-10;
G_zpk=zpk(zeros,poles,gain)
Zero/pole/gain:
-10
------------
(s+1) (s+2)
La fonction zpkdata a un rle analogue celui de tfdata, considre prcdemment.
3- Reprsentation dtat (classe ss)
Les systmes en variables dtat se crent laide de la fonction ss, en spcifiant les quatre matrices
(ou vecteurs) de la reprsentation dx = Ax + Bu; y = Cx + Du :
ss(A,B,C,D) : crer un systme continu en variables dtat ;
ss(A,B,C,D,te) : crer un systme discret avec priode dchantillonnage te .
Exemple
A=[0,1;-4,-4];B=[0;2];C=[1,0];D=0;
syst_ss=ss(A,B,C,D);
a =
x1 x2
x1 0 1
x2 -4 -2
b =
u1
x1 0
x2 2
c =
x1 x2
y1 1 0
d =
u1
y1 0
Continuous-time system.
B.BENTAHRA Introduction MATLAB & SIMULINK
3
[A,B,C,D,te]=ssdata permet de rcuprer les matrices A;B;C;D ainsi que la priode
dchantillonnage (elle est nulle pour un systme continu).
4- Passage dune reprsentation lautre
Soit syst un objet LTI appartenant lune des trois classes, introduites ci-dessus. Alors :
ss(syst) : met le systme syst en reprsentation dtat ;
tf(syst) : met le systme syst sous forme de fonction de transfert ;
zpk(syst) : met le systme syst sous forme zros-ples-gain.
Exemple
syst_tf = tf(syst_ss);
Transfer function:
2
-------------
s^2 + 4 s + 4
syst_zpk = zpk(syst_tf);
Zero/pole/gain:
2
-------
(s+2)^2
Les fonctions tfdata, zpkdata, ssdata peuvent en fait sappliquer nimporte quel objet LTI,
car elles se chargent aussi de la conversion de reprsentation.
5- Conve rsion continu-discret (la discrtisation)
)
Un modle LTI se discrtise au moyen de la fonction c2d, avec la syntaxe :
syst_disc = c2d(syst_cont, te, methode)
O te est la priode dchantillonnage et methode est la mthode de discrtisation utiliser :
bloqueur dordre 0 (zoh), bloqueur dordre 1 (foh), transformation bi-linaire de Tustin
(tustin), etc.
Si lon ne spcifie pas de mthode, le bloqueur dordre 0 est utilis.
Exemple:
syst_tf_z=c2d(syst_tf,0.1)
Transfer function:
0.008762 z + 0.007668
---------------------
z^2 - 1.637 z + 0.6703
Sampling time: 0.1
B.BENTAHRA Introduction MATLAB & SIMULINK
4
III-Les objets LTI et leurs proprits
1- Manipulation de schmas en blocs
Les systmes LTI peuvent sinterconnecter pour former des systmes plus grands :
SYST1 + SYST1
SYST1 SYST2 +
SYST2 SYST2
SYST1 *SYST2 SYST1 +SYST2 SYST1 *SYST2
series(syst1,syst2) parallel(syst1,syst2) feedback(syst1,syst2)
Les fonctions series, parallel, feedback possdent des options pour obtenir des systmes
plus complexes3 (help sur les noms de ces fonctions pour plus de dtails).
2- Proprits des objets LTI
Un systme LTI cr par tf, zpk, est un objet qui possde des proprits. Limplmentation des
objets obit la programmation orient Objets de MATLAB. Les objets sont des structures avec un
flag qui indique leur classe (tf, zpk, ss, frd) et des champs appels proprits des objets.
Pour une utilisation plus avance il peut tre utile de connatre les proprits les plus importantes que
les objets MATLAB reprsentant des modles LTI possdant :
Proprits communes tous les objets LTI
Ts Td InputName OutputName Notes Userdata
Priode dch Retard Nom des entres Nom des sorties Notes perso Autres donns/info
Proprits tf Proprits zpk Proprits ss
num den z p k a b c d
numrateur dnominateur zros ples gain Matrice A Matrice B Matrice C Matrice D
Variable StateName
Nom de la variable (s,z,z^-1,ect.) Noms de variables dtat
On peut lire ou modifier ces proprits trs facilement. Soit syst un objet TF discret :
- syst.Ts=nouveauTe : change la priode dchantillonnage (sans changer les
coefficients) ;
- n=syst.num{1} : rcupre le numrateur sous forme de vecteur ;
- syst.num=nouveauNum : change le numrateur ;
Dune faon analogue
- zeros=syst.z{1} : rcupre les zros sous forme de vecteur ;
- A=syst.a : rcupre la matrice ; A
3
A partir dun certain degr de complexit il faut prendre en considration loption de dessiner les blocs dans un schma
SIM ULINK.
B.BENTAHRA Introduction MATLAB & SIMULINK
5
Une partie des proprits na pas de signification mathmatique, mais sert mieux documenter le
modle
G.InputName=tension (V);G.OutputName=vitesse (rad/s)
Transfer function from input "tension (V)" to output "vitesse (rad/s)":
1
-------
s^2 + s
IV- Outils danalyse
Les fonctions mentionnes dans la suite sont applicables indiffremment des objets tf, zpk et ss.
1- Analyse temporelle
La fonction step permet de tracer la rponse indicielle dun systme
- step(syst) tracer la rponse indicielle, intervalle de temps et nombre de points choisis
par MATLAB ;
- step(syst,tfin) tfin scalaire dtermine le temps final (continu) ou le nombre total
dchantillons (discret) ;
- step(syst,T) T vecteur de temps fourni par lutilisateur ;
- step(syst1,syst2,...) T tracer les rponses indicielles superposes de plusieurs
systmes ;
- [y,t]=step(syst,...) stocke la rponse indicielle sans la tracer.
Exemple
T=0:0.1:10;
step(syst_tf,T)
Step Response
1
0.9
0.8
0.7
0.6
Amplitude
0.5
0.4
0.3
0.2
0.1
0
0 5 10 15 20 25 30 35
Time (sec)
B.BENTAHRA Introduction MATLAB & SIMULINK
6
La rponse impulsionnelle sobtient par la fonction impulse, dont la syntaxe est identique step.
Impulse Response
0.14
0.12
0.1
0.08
Amplitude
0.06
0.04
0.02
0
0 5 10 15 20 25 30 35 40 45 50
Time (sec)
Pour la rponse initiale dun systme en variables dtats on utilise la fonction initial(sys,x0)
avec des options similaires celles vue pour les fonctions ci-dessus.
Pour obtenir des rponses des signaux dentres plus complexes on a deux choix :
- La fonction lsim avec un signal gnr par gensig, square ou sawtooth ;
- Utiliser SIMULINK et le blockset LTI.
Exemple :
%la reponse une rampe
t=linspace(0,40,400);
u=t;
title('Reponse une rampe en boucle fermee')
xlabel('t[s]')
lsim(Go,u,t)
B.BENTAHRA Introduction MATLAB & SIMULINK
7
Linear Simulation Results
40
35
30
25
Amplitude
20
15
10
0
0 5 10 15 20 25 30 35 40
Time (sec)
2- Ples, zros, valeurs propres, . . .
- [vp]=eig(syst) : calculer les valeurs propres de syst ;
- p=pole(syst) : calculer des ples de syst ;
- z=tzero(syst) : calculer les zros de syst (de transmission, pour un systme multi-
variable) ;
- [p,z]=pzmap(syst) : calculer les ples et les zros de syst ;
- [w,csi]=damp(syst) : calculer pulsation naturelle et amortissement des ples de
syst ;
- gs=dcgain(syst) : calculer le gain statique de syst.
En tapant pzmap(syst)tout court, les ples et les zros du systme sont tracs sur le plan s ou z.
Des grilles correspondantes des frquences et des amortissements constants peuvent tre tracs
laide de sgrid et zgrid, respectivement.
3- Analyse frquentielle
La fonction bode permet de tracer le diagramme de Bode dun systme
- bode(syst) tracer le diagramme de Bode, intervalle de frquences et nombre de points
choisis par MATLAB ;
- bode(syst,{wi,wf}) tracer le diagramme de Bode entre les frquences wi et wf ;
- bode(syst,W) tracer le diagramme de Bode avec un vecteur de frquences gnr par
lutilisateur (dhabitude avec logspace) ;
- bode(syst1,syst2,...) tracer les diagrammes de Bode indicielles superposs de
plusieurs systmes ;
- [G,P,W]=bode(syst,...) stocke le diagramme de Bode (gain, phase et frquence)
sans le tracer.
B.BENTAHRA Introduction MATLAB & SIMULINK
8
Bode Diagram
0
Magnitude (dB) -50
-100
-150
-200
0
Phase (deg)
-90
-180
-270
-3 -2 -1 0 1 2 3
10 10 10 10 10 10 10
Frequency (rad/sec)
Une syntaxe similaire est prvue pour les fonctions nyquist et nichols. La grille pour le
diagramme de Nichols se dessine avec ngrid.
Nichols Chart
40
0 dB
0.25 dB
0.5 dB
20 1 dB -1 dB
3 dB -3 dB
6 dB
0 -6 dB
-12 dB
-20 -20 dB
Open-Loop Gain (dB)
-40 -40 dB
-60 -60 dB
-80 -80 dB
-100 -100 dB
-120 -120 dB
-140 -140 dB
-160 -160 dB
-180 dB
-180
-360 -315 -270 -225 -180 -135 -90 -45 0 45 90 135 180
Open-Loop Phase (deg)
B.BENTAHRA Introduction MATLAB & SIMULINK
9
Nyquist Diagram
0.4
-10 dB
10 dB 6 dB 4 dB 2 dB 0 dB -2 dB-4 dB -6 dB
0.3
0.2
20 dB -20 dB
0.1
Imaginary Axis
-0.1
-0.2
-0.3
-0.4
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6
Real Axis
Pour un systme stable, la fonction [mg,mp,wmg,wmp]=margin(syst), calcule la marge de
gain et phase, aussi bien que les frquences qui leur sont associes.
B.BENTAHRA Introduction MATLAB & SIMULINK
10