CHAPITRE II

:
La CONTROL SYSTEM TOOLBOX
I-

Introduction ....................................................................................................................... 1

II- Représentation des systèmes linéaires .................................................................................. 1
1III-

Fonctions de transfert (classe tf) ...................................................................................... 2
Les objets LTI et leurs propriétés..................................................................................... 5

1-

Manipulation de schémas en blocs ................................................................................... 5

2-

Propriétés des objets LTI ................................................................................................ 5

IV-

Outils d’analyse ............................................................................................................. 6

1-

Analyse temporelle ......................................................................................................... 6

2-

Pôles, zéros, valeurs propres, . . . ..................................................................................... 8

3-

Analyse fréquentielle ...................................................................................................... 8

I- Introduction
La CONT ROL SYST EM TOOLBOX (CST) est la « boîte à outils » MATLAB dédiée à l’Automatique de
base. Elle fournit un support pour :
- Créer et manipuler des modèles linéaires de systèmes ;
- Analyser ces modèles avec les outils classiques de l’Automatique ;
- Synthétiser des régulateurs.
La liste complète des fonctions de cette toolbox s’obtient en tapant help control.

II- Représentation des systèmes linéaires
Dans la Control System Toolbox, les systèmes linéaires (à paramètres constants dans le temps) sont
représentés par des objets1 appartenant à la classe LTI (Linear Time-Invariant).
Les différentes représentations des systèmes sont disponibles, à travers ces sous-classes de LTI :
- La classe ss correspond à des systèmes sous forme de variables d’état ;
Comme :

1

La plupart des fonctions de la CST peuvent s’appliquer à des vecteurs et à des matrices sans passer forcément par les objets
LTI, comme dans les anciennes versions de cette toolbox (utiliser help pour plus de détails)

B.BENTAHRA – Introduction MATLAB & SIMULINK

1

te]=tfdata(fdt.tr) : créer une fonction de transfert continue avec retard tr . Comme : 1.den. moins utilisée que les autres. comme : - La classe zpk.b)utilisée ci-dessus permet d’obtenir la multiplication polynomiale entre les polynômes dont les coefficients sont définis par les vecteurs a et b . » Gc = tf(nc.999]).den. correspond à des systèmes sous forme zéropôles-gain .985].[1 -0. » Gd = tf(nd.den. 2 Dans ce cours nous n’utiliserons que la dernière représentation : la classe tf (fonction de transfert) B. La fonction tfdata permet de récupérer (entre autres) le numérateur et le dénominateur d’une fonction de transfert : [num.’v’) : extraire aussi la période d’échantillonnage .999 Sampling time: 0.03 La fonction conv(a.’Td’. tf(num. tf(num.den]=tfdata(fdt.Fonctions de transfert (classe tf) Les fonctions de transfert se créent à l’aide de la fonction tf. Exemples » nc = [1 1].te) : créer une fonction de transfert en z avec période d’échantillonnage te .’v’) : extraire le numérateur et le dénominateur .1.’Variable’. correspond à des systèmes sous forme de fonctions de transfert.te. tf(num.BENTAHRA – Introduction MATLAB & SIMULINK 2 . » dd = = conv([1 -1].den. Les premiers deux paramètres de tf sont des vecteurs MATLAB contenant respectivement les coefficients du numérateur et les coefficients du dénominateur. [num.ts) Transfer function: z + 0.’v’) : extraire encore le retard.den) : créer une fonction de transfert continue . tandis que les paramètres suivants (facultatifs) spécifient des propriétés ultérieures de la fonction de transfert : tf(num. » ts = 0.dc) Transfer function: s + 1 ------------s^2 + 2 s + 1 » nd = [1 0.985 --------------------z^2 .999z + 0. » dc = [1 2 1].den.te.- La classe tf2.retard]=tfdata(fdt.03.dd.’z^-1’) : créer une fonction de transfert en . [num. la plus utilisé.

ts]=tfdata(Gd. 3.Exemple: » [num.C=[1.9850 den = 1.2].-4].C.B.poles.-2].te) : créer un système discret avec période d’échantillonnage te .C. Exemple: » zeros=[].BENTAHRA – Introduction MATLAB & SIMULINK 3 .0000 0.gain) Zero/pole/gain: -10 -----------(s+1) (s+2) La fonction zpkdata a un rôle analogue à celui de tfdata. On crée des systèmes dans cette forme à l’aide de la fonction zpk.Représentation d’état (classe ss) Les systèmes en variables d’état se créent à l’aide de la fonction ss.-4.0]. y = Cx + Du : ss(A.9990 ts = 0.03 2. num = 0 1. qui prend en paramètres deux vecteurs contenant respectivement les zéros et les pôles. B.D=0.den.C.B. en spécifiant les quatre matrices (ou vecteurs) de la représentation dx = Ax + Bu.9990 0.Forme zéros-pôles-gain (classe zpk) La forme zéros-pôles-gain est une représentation alternative à la fonction de transfert . » G_zpk=zpk(zeros. » syst_ss=ss(A. » poles=[-1. plus un scalaire qui indique un gain. 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.D). considérée précédemment.B. » gain=-10.D) : créer un système continu en variables d’état . ss(A.D.B=[0.0000 -1.’v’). Exemple » A=[0.1.

zpk(syst) : met le système syst sous forme zéros-pôles-gain. tf(syst) : met le système syst sous forme de fonction de transfert .1. Transfer function: 2 ------------s^2 + 4 s + 4 » syst_zpk = zpk(syst_tf).Conve rsion continu-discret (la discrétisation) ) Un modèle LTI se discrétise au moyen de la fonction c2d.C. etc.1 B. Zero/pole/gain: 2 ------(s+2)^2 Les fonctions tfdata. methode) Où te est la période d’échantillonnage et methode est la méthode de discrétisation à utiliser : bloqueur d’ordre 0 (’zoh’). 4.B.BENTAHRA – Introduction MATLAB & SIMULINK 4 . car elles se chargent aussi de la conversion de représentation.007668 --------------------z^2 .D ainsi que la période d’échantillonnage (elle est nulle pour un système continu). te. le bloqueur d’ordre 0 est utilisé. zpkdata.C.1) Transfer function: 0.637 z + 0. Exemple: » syst_tf_z=c2d(syst_tf.te]=ssdata permet de récupérer les matrices A.Passage d’une représentation à l’autre Soit syst un objet LTI appartenant à l’une des trois classes. Exemple » syst_tf = tf(syst_ss).6703 Sampling time: 0. avec la syntaxe : syst_disc = c2d(syst_cont.D. ssdata peuvent en fait s’appliquer à n’importe quel objet LTI. Si l’on ne spécifie pas de méthode.0. transformation bi-linéaire de Tustin (’tustin’). introduites ci-dessus. 5.008762 z + 0. Alors : ss(syst) : met le système syst en représentation d’état . bloqueur d’ordre 1 (’foh’).[A.B.

L’implémentation des objets obéit à la programmation orienté Objets de MATLAB. zpk.Manipulation de schémas en blocs Les systèmes LTI peuvent s’interconnecter pour former des systèmes plus grands : SYST1 SYST1 SYST2 + + SYST2 SYST2 SYST1 *SYST2 series(syst1. zpk.Propriétés des objets LTI Un système LTI créé par tf.n=syst. .syst2) SYST1 SYST1 +SYST2 parallel(syst1. frd) et des champs appelés propriétés des objets. Soit syst un objet TF discret : .’z^-1’. Pour une utilisation plus avancée il peut être utile de connaître les propriétés les plus importantes que les objets MATLAB représentant des modèles LTI possédant : Propriétés communes à tous les objets LTI Ts Td InputName OutputName Notes Userdata Période d’éch Retard Nom des entrées Nom des sorties Notes perso Autres donnés/info Propriétés tf Propriétés zpk num den z p k numérateur dénominateur zéros pôles gain Variable Nom de la variable (‘s’.’z’.Ts=nouveauTe : change la période d’échantillonnage (sans changer les coefficients) . B.z{1} : récupère les zéros sous forme de vecteur .num=nouveauNum : change le numérateur . A=syst.syst. parallel.III-Les objets LTI et leurs propriétés 1. . ss.) Propriétés ss a b c Matrice A Matrice B Matrice C StateName Noms de variables d’état d Matrice D On peut lire ou modifier ces propriétés très facilement.syst. 2.BENTAHRA – Introduction MATLAB & SIMULINK 5 . A 3 A partir d’un certain degré de complexité il faut prendre en considération l’option de dessiner les blocs dans un schéma SIM ULINK.a : récupère la matrice . D’une façon analogue - zeros=syst. … est un objet qui possède des propriétés.syst2) Les fonctions series.ect.num{1} : récupère le numérateur sous forme de vecteur .syst2) SYST1 *SYST2 feedback(syst1. Les objets sont des structures avec un flag qui indique leur classe (tf. feedback possèdent des options pour obtenir des systèmes plus complexes3 (help sur les noms de ces fonctions pour plus de détails).

Exemple » T=0:0. intervalle de temps et nombre de points choisis par MATLAB .7 Amplitude 0. zpk et ss..9 0.) stocke la réponse indicielle sans la tracer.6 0. mais sert à mieux documenter le modèle » G.8 0. 1.2 0.5 0.syst2.. [y..BENTAHRA – Introduction MATLAB & SIMULINK 6 .Une partie des propriétés n’a pas de signification mathématique. step(syst1.. » step(syst_tf.InputName=’tension (V)’.T) Step Response 1 0.G. step(syst.T) T vecteur de temps fourni par l’utilisateur .OutputName=’vitesse (rad/s)’ Transfer function from input "tension (V)" to output "vitesse (rad/s)": 1 ------s^2 + s IV- Outils d’analyse Les fonctions mentionnées dans la suite sont applicables indifféremment à des objets tf.1 0 0 5 10 15 20 25 30 35 Time (sec) B..Analyse temporelle La fonction step permet de tracer la réponse indicielle d’un système - step(syst) tracer la réponse indicielle.4 0.3 0. step(syst.) T tracer les réponses indicielles superposées de plusieurs systèmes .t]=step(syst.tfin) tfin scalaire détermine le temps final (continu) ou le nombre total d’échantillons (discret) .1:10..

.1 0. dont la syntaxe est identique à step.t) B.La réponse impulsionnelle s’obtient par la fonction impulse.400).06 0. Pour obtenir des réponses à des signaux d’entrées plus complexes on a deux choix : . square ou sawtooth .08 0.12 Amplitude 0. Impulse Response 0.02 0 0 5 10 15 20 25 30 35 40 45 50 Time (sec) Pour la réponse initiale d’un système en variables d’états on utilise la fonction initial(sys.La fonction lsim avec un signal généré par gensig. u=t.Utiliser SIMULINK et le « blockset » LTI.u.04 0.BENTAHRA – Introduction MATLAB & SIMULINK 7 . title('Reponse à une rampe en boucle fermee') xlabel('t[s]') lsim(Go.x0) avec des options similaires à celles vue pour les fonctions ci-dessus.14 0.40. Exemple : %la reponse à une rampe t=linspace(0.

valeurs propres. bode(syst.P.. respectivement.W]=bode(syst. .. bode(syst1.Pôles. pour un système multivariable) . intervalle de fréquences et nombre de points choisis par MATLAB .Linear Simulation Results 40 35 30 Amplitude 25 20 15 10 5 0 0 5 10 15 20 25 30 35 40 Time (sec) 2. .csi]=damp(syst) : calculer pulsation naturelle et amortissement des pôles de syst .Analyse fréquentielle La fonction bode permet de tracer le diagramme de Bode d’un système - bode(syst) tracer le diagramme de Bode. . En tapant pzmap(syst)tout court.) stocke le diagramme de Bode (gain. les pôles et les zéros du système sont tracés sur le plan s ou z. zéros. Des grilles correspondantes à des fréquences et des amortissements constants peuvent être tracés à l’aide de sgrid et zgrid. phase et fréquence) sans le tracer. p=pole(syst) : calculer des pôles de syst . z=tzero(syst) : calculer les zéros de syst (de transmission. 3.BENTAHRA – Introduction MATLAB & SIMULINK 8 .. [G.W) tracer le diagramme de Bode avec un vecteur de fréquences généré par l’utilisateur (d’habitude avec logspace) . [w. gs=dcgain(syst) : calculer le gain statique de syst.{wi. - [vp]=eig(syst) : calculer les valeurs propres de syst .syst2..z]=pzmap(syst) : calculer les pôles et les zéros de syst . [p. bode(syst...) tracer les diagrammes de Bode indicielles superposés de plusieurs systèmes .wf}) tracer le diagramme de Bode entre les fréquences wi et wf . B.

25 dB 0. La grille pour le diagramme de Nichols se dessine avec ngrid.Bode Diagram Magnitude (dB) 0 -50 -100 -150 Phase (deg) -200 0 -90 -180 -270 -3 10 -2 -1 10 0 10 1 10 2 10 3 10 10 Frequency (rad/sec) Une syntaxe similaire est prévue pour les fonctions nyquist et nichols. Nichols Chart 40 0.BENTAHRA – Introduction MATLAB & SIMULINK 9 .5 dB 1 dB 3 dB 6 dB 20 -20 -1 dB -3 dB -6 dB -12 dB -20 dB -40 -40 dB -60 -60 dB -80 -80 dB -100 -100 dB -120 -120 dB -140 -140 dB -160 -160 dB 0 Open-Loop Gain (dB) 0 dB -180 -360 -180 dB -315 -270 -225 -180 -135 -90 -45 0 45 90 135 180 Open-Loop Phase (deg) B.

calcule la marge de gain et phase. la fonction [mg.2 -0.wmg.wmp]=margin(syst).4 -1 -0.1 -0.4 -0. B.mp.6 -0.BENTAHRA – Introduction MATLAB & SIMULINK 10 .2 0 0.6 Real Axis Pour un système stable.Nyquist Diagram 0.3 -0.8 -0.3 0.4 0.1 20 dB -20 dB 0 -0. aussi bien que les fréquences qui leur sont associées.2 Imaginary Axis 0.2 0.4 -10 dB 10 dB 6 dB 4 dB 2 dB 0 dB -2 dB-4 dB -6 dB 0.