1 Fonction de transfert - Ecole des Mines d`Albi

Transcription

1 Fonction de transfert - Ecole des Mines d`Albi
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
1.1
Fonction de transfert
Exemple 1 : 1er ordre
T (p) =
K
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
T (p) =
p+1
p2 + 4
>> sys = tf([1 1],[1 0 4])
Sortie :
Transfer function:
s + 1
------s^2 + 4
1.3
Exemple 3
T (p) =
p2 + p + 1
(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
>>
>>
>>
>>
>>
K=10;
T=0.5;
sys = tf(K,[T 1])
set(sys,’InputDelay’,2)
sys
ou
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 :
sys1 =
sys2 =
sys3 =
p+1
p+2
p2
3
+p+1
3(p + 4)
+2p+1
p2
sys4 =
10
p2 + 3 p + 2
sys5 =
10
(p + 1)2
sys6 =
p+1
p(p + 2)(p + 3)
sys7 = 10
sys8 =
sys9 =
p2 + p + 1
(p + 2)(p + 3)
p + 1 −3p
e
p+2
p2
5
+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
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
2
2.1
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’)
Analyse temporelle
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
2.3.1
Réponse à une entrée quelconque (fonction LSIM)
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 :
H(p) = K
1 + τa p
(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)
b)
c)
d)
e)
τa = −10
τa = 0
τa = 10
τa = 15
τ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 électromé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’endy
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’enroulement 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 :
u−Ri−L
M
di
dy
−α
=0
dt
dt
d2 y
dy
= −f
−ky+βi
2
dt
dt
on peut obtenir sa fonction de transfert :
8
Y ∗ (p)
β
=
∗
3
2
U (p)
L M p + (R M + L f ) p + (R f + L k + α β) p + R k
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
3.1
Analyse fréquentielle
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 :
T (p) =
1+aτ 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’utilisation :
help <fonction>
5
Résumé des fonctions de Control System Toolbox
Control System Toolbox
Version 9.3 (R2012a) 29-Dec-2011
General.
ctrlpref
InputOutputModel
DynamicSystem lti
-
Set Control System Toolbox preferences.
- Overview of input/output model objects.
Overview of dynamic system objects.
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
zpk
ss
dss
delayss
frd
pid
pidstd
-
Create
Create
Create
Create
Create
Create
Create
Create
transfer function (TF) models.
zero/pole/gain (ZPK) models.
state-space (SS) models.
descriptor state-space models.
state-space models with delayed terms.
frequency response data (FRD) models.
PID controller in parallel form.
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
zpk
ss
frd
pid
pidstd
c2d
d2c
d2d
upsample
chgTimeUnit
imp2exp
-
Conversion to transfer function.
Conversion to zero/pole/gain.
Conversion to state space.
Conversion to frequency data.
Conversion to PID controller in parallel form.
Conversion to PID controller in standard form.
Continuous to discrete conversion.
Discrete to continuous conversion.
Resample discrete-time model.
Upsample discrete-time systems.
Change time units.
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
order
pzmap
iopzmap
damp
esort
dsort
stabsep
modsep
-
Invariant zeros of MIMO system.
System order (number of states).
Pole-zero map.
Input/output pole-zero map.
Natural frequency and damping of system poles.
Sort continuous poles by real part.
Sort discrete poles by magnitude.
Stable/unstable decomposition.
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
place
estim
reg
ss/lqg
lqr, dlqr
lqry
lqrd
lqi
kalman
kalmd
lqgreg
lqgtrack
augstate
-
Evans root locus.
Pole placement.
Form estimator given estimator gain.
Form regulator given state-feedback and estimator gains.
Single-step LQG design.
Linear-Quadratic (LQ) state-feedback regulator.
LQ regulator with output weighting.
Discrete LQ regulator for continuous plant.
Linear-Quadratic-Integral (LQI) controller.
Kalman state estimator.
Discrete Kalman estimator for continuous plant.
Build LQG regulator from LQ gain and Kalman estimator.
Build LQG servo-controller.
Augment output by appending states.
Time delays.
hasdelay
totaldelay
absorbDelay
pade
thiran
-
True for models with time delays.
Total delay between each input/output pair.
Replace delays by poles at z=0 or phase shift.
Pade approximation of continuous-time delays.
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
chgFreqUnit
fcat
fselect
fnorm
frd/abs
frd/real
frd/imag
frd/interp
mag2db
-
data (FRD) models.
Change frequency vector units.
Merge frequency responses.
Select frequency range or subgrid.
Peak gain as a function of frequency.
Entrywise magnitude of the frequency response.
Real part of the frequency response.
Imaginary part of the frequency response.
Interpolate frequency response data.
Convert magnitude to decibels (dB).
14
db2mag
- Convert decibels (dB) to magnitude.
Generalized linear
realp
ltiblock.pid
ltiblock.tf
ltiblock.ss
ltiblock.gain genmat
genss
genfrd
getValue
getBlockValue setBlockValue showBlockValue replaceBlock
-
models.
Tunable real parameter.
Tunable PID controller.
Tunable SISO transfer function.
Tunable state-space model.
Tunable static gain.
Generalized matrix.
Generalized state-space model.
Generalized FRD model.
Evaluate generalized model.
Get block value.
Update block value.
Display block values.
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
lyap, dlyap
lyapchol, dlyapchol care, dare
gcare, gdare
bdschur
-
and linear algebra.
Solve Lyapunov equations.
Square-root Lyapunov solvers.
Solve algebraic Riccati equations.
Generalized Riccati solvers.
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

Documents pareils