Vous êtes sur la page 1sur 16

Ecole des Mines d’Albi-Carmaux Formation Initiale - M1

Une introduction à
MATLAB - CONTROL SYSTEM TOOLBOX (version R2012a)
TD MATLAB No 1

Pour en savoir plus, consulter les fichiers d’aide en ligne :


– « Getting Started with the Control System Toolbox »
– « Using the Control System Toolbox »

1 Fonction de transfert

1.1 Exemple 1 : 1er ordre

K
T (p) =
1+T p

Instructions :

>> K=10;
>> T=0.5;
>> num = [K];
>> den = [T 1];
>> sys = tf(num,den)

ou de manière condensée :

>> K=10;
>> T=0.5;
>> sys = tf(K,[T 1])

Sortie :

Transfer function:
10
---------
0.5 s + 1

1
>> sys.inputname = ’débit’;
>> sys.outputname = ’niveau’

Sortie :

Transfer function from input "débit" to output "niveau":


10
---------
0.5 s + 1

1.2 Exemple 2

p+1
T (p) =
p2 + 4

>> sys = tf([1 1],[1 0 4])

Sortie :

Transfer function:
s + 1
-------
s^2 + 4

1.3 Exemple 3

p2 + p + 1
T (p) =
(p + 1)(p + 2)

>> sys1 = tf([1 1 1],[1 1]);


>> sys2 = tf(1,[1 2]);
>> sys=sys1*sys2

Sortie :

2
Transfer function:
s^2 + s + 1
-------------
s^2 + 3 s + 2

Possibilité de factoriser1 avec l’instruction :

>> zpk(sys)

Sortie :

Zero/pole/gain:
(s^2 + s + 1)
--------------
(s+2) (s+1)

1.4 Exemple 4 : 1er ordre avec retard

Instructions :

>> K=10;
>> T=0.5;
>> sys = tf(K,[T 1])
>> sys.InputDelay = 2

ou

>> K=10;
>> T=0.5;
>> sys = tf(K,[T 1])
>> set(sys,’InputDelay’,2)
>> sys

Sortie :

Transfer function:
10
exp(-2*s) * ---------
0.5 s + 1
1
Attention l’instruction zpk() ne renvoie pas le gain statique du système.

3
1.5 Propriétés des fonctions de transfert

Rentrer les fonctions de transfert suivantes :

p+1
sys1 =
p+2
3
sys2 =
p2 +p+1
3(p + 4)
sys3 =
p2 +2p+1
10
sys4 =
p2 + 3 p + 2
10
sys5 =
(p + 1)2
p+1
sys6 =
p(p + 2)(p + 3)

p2 + p + 1
sys7 = 10
(p + 2)(p + 3)
p + 1 −3p
sys8 = e
p+2
5
sys9 =
p2 +5p+6

Pour chacune de ces fonctions de transfert, exécuter (pas à pas) la série d’instructions
suivante :

>> sys=sys1
>> class(sys)
>> size(sys)
>> get(sys)
>> dcgain(sys)
>> pole(sys)
>> zero(sys)
>> damp(sys)
>> pzmap(sys)

4
1.6 Accès aux données

>> sys = tf([1 3],[1 3 2])


>> get(sys)
>> sys.num
>> num = sys.num{1}
>> sys.den
>> den = sys.den{1}
>> [num,den] = tfdata(sys)
>> celldisp(num)
>> num = num{1}
>> celldisp(den)
>> den = den{1}
>> [num,den] = tfdata(sys,’v’)

2 Analyse temporelle

2.1 Réponse à une impulsion de Dirac

>> sys = tf(10,[0.5 1])


>> impulse(sys)
>> title(’Réponse impulsionnelle’)

>> sys = tf(10,[0.5 1]);


>> sys.InputDelay = 2
>> impulse(sys)
>> title(’Réponse impulsionnelle’)

>> sys = tf(1,[1 1 1])


>> impulse(sys)
>> title(’Réponse impulsionnelle’)

2.2 Réponse à un échelon de position unité

>> sys1 = tf(10,[0.5 1])


>> step(sys1)
>> title(’Réponse à un échelon unité’)

5
>> sys = tf(10,[0.5 1]);
>> sys.InputDelay = 2
>> step(sys)
>> title(’Réponse à un échelon unité’)

>> sys2 = tf(10,[1 1 1])


>> step(sys2)
>> title(’Réponse à un échelon unité’)
>> step(sys1,sys2)

>> stepinfo(sys1)
>> stepinfo(sys2)

2.3 Réponse à une entrée quelconque (fonction LSIM)

2.3.1 Réponse à un échelon d’amplitude quelconque

>> sys = tf(10,[0.5,1]);


>> t = [0:0.1:3];
>> amplitude = 10;
>> input = amplitude*ones(size(t));
>> output = lsim(sys,input,t);
>> plot(t,input,t,output)

On peut aussi écrire :

>> sys = tf(10,[0.5,1]);


>> amplitude = 10;
>> step(amplitude*sys)

2.3.2 Réponse à une rampe

>> t = [0:0.1:3];
>> input = t;
>> plot(t,input,t,dcgain(sys)*t,t,lsim(sys,input,t))
>> title(’Réponse à une rampe’)

6
2.3.3 Réponse à une sinusoı̈de

>> sys = tf(10,[1 0.5 1]);


>> [u,t]=gensig(’sin’,100,1000);
>> plot(t,u,t,lsim(sys,u,t))
>> title(’Réponse à une sinusoı̈de’)

Visualisation du régime transitoire2

>> [u,t]=gensig(’sin’,1,30,0.01);
>> plot(t,u,t,lsim(sys,u,t))
>> title(’Réponse à une sinusoı̈de’)

2.4 Influence des zéros sur la réponse temporelle

Rentrer la fonction de transfert d’ordre 2 suivante :

1 + τa p
H(p) = K
(1 + τ1 p)(1 + τ2 p)

avec : K = 1, τ1 = 15 et τ2 = 5

Ce système comporte 2 pôles à partie réelle négative et un zéro.

Tracer sur un même graphique la réponse à un échelon unité pour :

a) τa = −10
b) τa = 0
c) τa = 10
d) τa = 15
e) τa = 50

2.5 Etude d’un actionneur électromécanique

Cet exercice est extrait du livre d’exercices « Applications du Formalisme d’Etat à la


Commande des Systèmes Continus » par D. Jaume, S. Thelliez et M. Vergé, Edition
EYROLLES.
2
RAPPEL : la réponse à un signal sinusoı̈dal est sinusoı̈dale en régime permanent.

7
La modélisation simplifiée en vue de l’asservissement en position d’un actionneur élec-
tromécanique et de sa charge a conduit au schéma de la Figure 1.

Fig. 1 – Un actionneur électromécanique

L’ensemble chariot de masse M, ressort de raideur k, coefficient de frottement visqueux


f modélise la partie mécanique.

L’ensemble résistance R, inductance L, force contre-électromotrice introduite par l’en-


dy
roulement e(t) = α , force appliquée à la charge fc (t) = β i(t), caractérise la partie
dt
électrique.

Les variables u, i, y dénotent respectivement la tension à l’entrée, le courant dans l’en-


roulement et la position de la charge à partir d’un état d’équilibre.

On adopte les valeurs numériques suivantes :

M = 30 kg , k = 15 N/m , f = 15 N.s/m , R = 10 Ω
L = 10 H , α = 0, 2 V.s/m , β = 6 N/A

A partir des équations électriques et mécaniques du système :

di dy
u−Ri−L −α =0
dt dt

d2 y dy
M = −f −ky+βi
dt 2 dt

on peut obtenir sa fonction de transfert :

8
Y ∗ (p) β
=
U (p)
∗ L M p + (R M + L f ) p + (R f + L k + α β) p + R k
3 2

1ère partie :

Dans un premier temps, on néglige le frottement visqueux (f = 0).

1) Introduire la fonction de transfert dans MATLAB.

2) Calculer le gain statique du système.

3) Quels sont les pôles du système ? Afficher les pôles et les zéros du système dans le
plan complexe.

4) Tracer la réponse y ∗(t) lorsqu’on envoie une impulsion de tension au système.

5) Tracer la réponse y ∗(t) lorsqu’on applique un échelon de tension u∗ = 100 V au


système.

6) Comment pouvait-on prévoir la valeur de régime permanent ?

7) Quel est le type de régime transitoire en présence ?

8) Quel est approximativement le temps de réponse de ce système ?

2ème partie :

On améliore le modèle en prenant en compte le frottement visqueux (f 6= 0).

9) Introduire la fonction de transfert dans MATLAB.

10) Calculer le gain statique du système.

11) Quels sont les pôles du système ? Afficher les pôles et les zéros du système dans le
plan complexe.

12) Tracer la réponse y ∗(t) lorsqu’on envoie une impulsion de tension au système.

9
13) Tracer la réponse y ∗ (t) lorsqu’on applique un échelon de tension u∗ = 100 V au
système.

14) Comment pouvait-on prévoir la valeur de régime permanent ?

15) Quel est le type de régime transitoire en présence ?

16) Quel est approximativement le temps de réponse de ce système ?

3 Analyse fréquentielle

3.1 Système du 2nd ordre


1) Tracer le diagramme de Bode d’un système du 2nd ordre ayant pour paramètres :

K = 10 ; ξ = 0.01 ; wn = 10

2) Donner la valeur de son coefficient de surtension (retrouver le résultat à partir de la


formule théorique).

3) Pour quelle fréquence, l’amplitude de sortie sera-t-elle égale au double de l’amplitude


d’entrée ?

3.2 Etude d’un système à avance de phase

On considère le système de fonction de transfert :

1+aτ p
T (p) =
1+τ p

Lorsque a > 1, ce type de système est appelé un système à avance de phase.

1) Introduire la fonction de transfert dans MATLAB correspondant à a = 10 et τ =


0, 006.

2) Tracer le diagramme de Bode du système et expliquer l’appelation « avance de


phase ».

10
3) Tracer le diagramme de Bode pour a = 10 et τ = 0, 06.
Comparer au résultat de la question 2).

4) Tracer le diagramme de Bode pour a = 5 et τ = 0, 06.


Comparer aux résultats des questions 2) et 3).

5) Discuter sur l’influence des paramètres a et τ sur la réponse fréquentielle du système.

4 Résumé des fonctions usuelles


Pour savoir ce que fait une fonction donnée et connaitre la syntaxe d’utili-
sation :
help <fonction>

5 Résumé des fonctions de Control System Toolbox

Control System Toolbox


Version 9.3 (R2012a) 29-Dec-2011

General.
ctrlpref - Set Control System Toolbox preferences.
InputOutputModel - Overview of input/output model objects.
DynamicSystem - Overview of dynamic system objects.
lti - Overview of linear time-invariant system objects.

Graphical User Interfaces.


ltiview - LTI Viewer (time and frequency response analysis).
sisotool - SISO Design Tool (interactive compensator tuning).
pidtool - PID Design Tool (interactive PID controller tuning).
sisoinit - Configure the SISO Design Tool at startup.

Linear models.
tf - Create transfer function (TF) models.
zpk - Create zero/pole/gain (ZPK) models.
ss - Create state-space (SS) models.
dss - Create descriptor state-space models.
delayss - Create state-space models with delayed terms.
frd - Create frequency response data (FRD) models.
pid - Create PID controller in parallel form.
pidstd - Create PID controller in standard form.

11
tf/exp - Create pure continuous-time delays (TF and ZPK only)
filt - Specify digital filters.
InputOutputModel/set - Set/modify properties of model object.
setDelayModel - Specify internal delay model (state space only).

Data extraction.
tfdata - Extract numerators and denominators.
zpkdata - Extract zero/pole/gain data.
ssdata - Extract state-space matrices.
dssdata - Descriptor version of SSDATA.
frdata - Extract frequency response data.
piddata - Extract PID parameters in parallel form.
pidstddata - Extract PID parameters in standard form.
InputOutputModel/get - Access properties of model object.
ss/getDelayModel - Access internal delay model (state space only).

Model conversion.
tf - Conversion to transfer function.
zpk - Conversion to zero/pole/gain.
ss - Conversion to state space.
frd - Conversion to frequency data.
pid - Conversion to PID controller in parallel form.
pidstd - Conversion to PID controller in standard form.
c2d - Continuous to discrete conversion.
d2c - Discrete to continuous conversion.
d2d - Resample discrete-time model.
upsample - Upsample discrete-time systems.
chgTimeUnit - Change time units.
imp2exp - Implicit to explicit conversion.

System interconnection.
append - Aggregate models by appending inputs and outputs.
parallel - Connect models in parallel (see also overloaded +).
series - Connect models in series (see also overloaded *).
feedback - connect models with a feedback loop.
lft - Generalized feedback interconnection.
connect - Arbitrary block-diagram interconnection.
sumblk - Specify summing junction (for use with connect).
strseq - Builds sequence of indexed strings (for I/O naming).

System dynamics.
dcgain - Steady-state (D.C.) gain.
pole - System poles.
zero - Zeros and gain of SISO system.

12
tzero - Invariant zeros of MIMO system.
order - System order (number of states).
pzmap - Pole-zero map.
iopzmap - Input/output pole-zero map.
damp - Natural frequency and damping of system poles.
esort - Sort continuous poles by real part.
dsort - Sort discrete poles by magnitude.
stabsep - Stable/unstable decomposition.
modsep - Region-based modal decomposition.

Time-domain analysis.
step - Step response.
stepinfo - Step response characteristics (rise time, ...)
impulse - Impulse response.
initial - Free response with initial conditions.
lsim - Response to user-defined input signal.
lsiminfo - Linear response characteristics.
gensig - Generate input signal for LSIM.
covar - Covariance of response to white noise.

Frequency-domain analysis.
bode - Bode diagrams of the frequency response.
bodemag - Bode magnitude diagram only.
sigma - Singular value frequency plot.
nyquist - Nyquist plot.
nichols - Nichols plot.
freqresp - Frequency response over a frequency grid.
evalfr - Evaluate frequency response at given frequency.
margin - Gain and phase margins.
allmargin - All crossover frequencies and related gain/phase margins.
bandwidth - System bandwidth.
getPeakGain - Peak gain of frequency response.
getGainCrossover - Gain crossover frequencies.
DynamicSystem/norm - H2 and Hinfinity norms of LTI models.

Model simplification.
minreal - Minimal realization and pole/zero cancellation.
sminreal - Structurally minimal realization (state space).
hsvd - Hankel singular values (state contributions)
balred - Reduced-order approximations of linear models.
modred - Model order reduction.

Compensator design.
pidtune - Tune PID controller based on linear plant model.

13
rlocus - Evans root locus.
place - Pole placement.
estim - Form estimator given estimator gain.
reg - Form regulator given state-feedback and estimator gains.
ss/lqg - Single-step LQG design.
lqr, dlqr - Linear-Quadratic (LQ) state-feedback regulator.
lqry - LQ regulator with output weighting.
lqrd - Discrete LQ regulator for continuous plant.
lqi - Linear-Quadratic-Integral (LQI) controller.
kalman - Kalman state estimator.
kalmd - Discrete Kalman estimator for continuous plant.
lqgreg - Build LQG regulator from LQ gain and Kalman estimator.
lqgtrack - Build LQG servo-controller.
augstate - Augment output by appending states.

Time delays.
hasdelay - True for models with time delays.
totaldelay - Total delay between each input/output pair.
absorbDelay - Replace delays by poles at z=0 or phase shift.
pade - Pade approximation of continuous-time delays.
thiran - Thiran approximation of fractional discrete-time delays.

State-space (SS) models.


rss - Random stable continuous-time state-space models.
drss - Random stable discrete-time state-space models.
ss2ss - State coordinate transformation.
canon - Canonical forms of state-space models.
ctrb - Controllability matrix.
obsv - Observability matrix.
gram - Controllability and observability gramians.
prescale - Optimal scaling of state-space models.
balreal - Gramian-based input/output balancing.
xperm - Reorder states.

Frequency response data (FRD) models.


chgFreqUnit - Change frequency vector units.
fcat - Merge frequency responses.
fselect - Select frequency range or subgrid.
fnorm - Peak gain as a function of frequency.
frd/abs - Entrywise magnitude of the frequency response.
frd/real - Real part of the frequency response.
frd/imag - Imaginary part of the frequency response.
frd/interp - Interpolate frequency response data.
mag2db - Convert magnitude to decibels (dB).

14
db2mag - Convert decibels (dB) to magnitude.

Generalized linear models.


realp - Tunable real parameter.
ltiblock.pid - Tunable PID controller.
ltiblock.tf - Tunable SISO transfer function.
ltiblock.ss - Tunable state-space model.
ltiblock.gain - Tunable static gain.
genmat - Generalized matrix.
genss - Generalized state-space model.
genfrd - Generalized FRD model.
getValue - Evaluate generalized model.
getBlockValue - Get block value.
setBlockValue - Update block value.
showBlockValue - Display block values.
replaceBlock - Replace block by value or another block.

Model characteristics and model arrays.


isct - True for continuous-time models.
isdt - True for discrete-time models.
isproper - True for proper models.
issiso - True for single-input/single-output models.
isstable - True for models with stable dynamics.
InputOutputModel/size - Size of model or model array.
InputOutputModel/ndims - Number of dimensions.
InputOutputModel/nmodels - Number of models in model array.
InputOutputModel/isempty - True for empty models.
InputOutputModel/reshape - Reshape model array.
InputOutputModel/permute - Permute model array dimensions.

Overloaded arithmetic operations.


+, - - Add and subtract systems (parallel connection).
* - Multiply systems (series connection).
/ - Left divide -- sys1\sys2 means inv(sys1)*sys2.
/ - Right divide -- sys1/sys2 means sys1*inv(sys2).
^ - Powers of a given system.
’ - Pertransposition.
.’ - Transposition of input/output map.
.* - Element-by-element multiplication.
[..] - Concatenate models along inputs or outputs.
stack - Stack models/arrays along some array dimension.
InputOutputModel/inv - Inverse of input/output model.
InputOutputModel/conj - Complex conjugation of model coefficients.

15
Matrix equation solvers and linear algebra.
lyap, dlyap - Solve Lyapunov equations.
lyapchol, dlyapchol - Square-root Lyapunov solvers.
care, dare - Solve algebraic Riccati equations.
gcare, gdare - Generalized Riccati solvers.
bdschur - Block diagonalization of a square matrix.

Visualization and plot manipulation.


Type "help ctrlguis" for details on how to customize plots.

Demonstrations.
Type "demo toolbox control" for a list of available demos.

16

Vous aimerez peut-être aussi