Académique Documents
Professionnel Documents
Culture Documents
( TIN)
Filière Génie Electrique
Régulation numérique (REN)
(laboratoire)
in s t i t u t d '
Automatisation
in d u s t r i e l l e
Yverdon-les-Bains
HEIG-VD Laboratoire de régulation numérique
4 Régulation de température 27
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Conditions générales des mesures . . . . . . . . . . . . . . . . . . 28
4.3 Identication du foehn . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 Relevé de la caractéristique statique . . . . . . . . . . . . . 29
4.3.2 Recherche du modèle dynamique du foehn . . . . . . . . . 29
Première partie
régulation numérique
Chapitre 1
Programme du laboratoire
Chapitre 2
compte-rendus
Rapport
Structure, présentation Par exemple, introduction et conclusion situant le su-
jet, résumant le travail eectué, permettant d'avoir une idée assez précise
du travail eectué sans lire l'entier du rapport, faisant le lien avec la théorie
ou d'autres disciplines, citant des exemples d'applications pratiques, etc).
Analyses, explications Par exemple remarques, commentaires sur telle ou telle
situation observée, point de vue critique, curiosité, etc.
Transfert de connaissances, documentation Par exemple, situation du su-
jet dans son contexte, référence aux cours, application pratique, documen-
tation des programmes, liste du matériel utilisé, etc).
Généralités
Connaissance, maîtrise du sujet Par exemple, compréhension de l'utilité des
techniques apprises et mises en ÷uvre au laboratoire.
Apport personnel Les "plus" apportés au travail, par exemple qualité rédac-
tionnelle, essais complémentaires, remarques pertinentes, logiciels dévelop-
pés, enthousiasme, intérêt, etc.
Deuxième partie
laboratoire
Chapitre 3
3.1 Introduction
Le but de ce travail de laboratoire est de programmer puis de mettre en
oeuvre une première version du régulateur numérique de type PID. L'algorithme
du régulateur sera programmé en langage de haut niveau (C) sur Windows XP
puis testé sur un système à régler du laboratoire (simulateur analogique, foehn,
rail, etc).
Bien que l'environnement de travail proposé (Windows XP, temps réel, Simu-
link, etc) puisse paraître relativement complexe, il est bon de se rappeler que la
seule et unique fonction C que l'on demande de programmer est
reg_pid()
regul.c
pid_num.zip
Les paramètres du régulateur doivent quant à eux être déclarés comme variables
globales, par exemple comme suit :
/ ∗ g a i n s du r e g u l a t e u r PID ∗ /
f l o a t Kp = 0 . 0 ;
f l o a t Gi = 0 . 0 ;
f l o a t Td = 0 . 0 ;
float a = 0.01;
Le paramètre Gi est égal à T1i . Pourquoi le gain sur l'action intégrale est-il implanté
de cette manière ?
De façon à ce que ces paramètres soient visibles et modiables en ligne à partir
de RTPWatch, il faut les enregistrer dans le tableau var comme suit :
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
D e c l a r a t i o n d e s v a r i a b l e s a c c e s s i b l e s d e p u i s l e PC v i a RTPWatch
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
t_var var [ ] = {
... ,
v a r _ f l o a t (Kp) ,
v a r _ f l o a t ( Gi ) ,
v a r _ f l o a t (Td ) ,
... ,
end_var_list
};
Si vous l'estimez nécessaire, vous pouvez bien sûr créer d'autres fonctions pri-
vées de regul.c, comme par exemple une fonction de limitation de la commande.
A noter que les valeurs numériques initiales, "par défaut" des paramètres
peuvent être spéciées dans regul.c : la fonction regulation_init est appelée
au démarrage et les initialisations peuvent y être placées :
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
I n i t i a l i s a t i o n du r e g u l a t e u r
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
void r e g u l a t i o n _ i n i t ( void )
{
/ ∗ D e f i n i t i o n de l a f o n c t i o n e f f e c t u a n t l a r e g u l a t i o n de l a b o u c l e no1 ∗ /
r e g u l a t i o n _ b o u c l e _ i n t e r n e = regul_PID ; / ∗ R e g u l a t e u r 1 ∗ /
mode_boucle_interne = 1 ; / ∗ mode r e g u l a t i o n ∗ /
/ ∗ D e f i n i t i o n de l a f o n c t i o n e f f e c t u a n t l a r e g u l a t i o n de l a b o u c l e no2 ∗ /
regulation_boucle_externe = regul_rien ; /∗ R e g u l a t e u r 2∗/
mode_boucle_externe = 0 ; / ∗ mode r e g u l a t i o n ∗ /
/ ∗ I n i t i a l i s a t i o n d e s p a r a m e t r e s de l a r e g u l a t i o n ∗ /
Kp = 0 . 0 ;
Gi = 0 . 0 ;
Td = 0 . 0 ;
a = 0.01;
AW = 0 ;
offset_out0 = 0 . 0 ;
offset_out1 = 0 . 0 ;
offset_in0 = 0.0;
offset_in1 = 0.0;
offset_in2 = 0.0;
offset_in3 = 0.0;
w = 0.0;
umax = 1 0 . 0 ;
}
Les valeurs pourront ensuite être modiées en ligne via l'interface RTPWatch.
partir de l'éditeur PFE, menu Execute DOS Command and Capture Output. La
commande make ou make -B (équivalente à l'opération build) doit être tapée.
Si aucune erreur n'est détectée, le chier objet (regul.obj) est généré. Dans la
négative, la fenêtre PFE ouverte indique le message d'erreur.
Essai du régulateur
Lorsque le code temps réel a été compilé sans erreur, il faut lancer RTPWatch
et utiliser l'outil Enregistreur. Sélectionner Autre code temps réel dans le menu et
choisir votre DLL se trouvant dans votre répertoire de travail.
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Version Date Auteur Motif
1 04/05/98 MEE R e g u l a t e u r s c a l a i r e de c o u r a n t
R e g u l a t e u r PID de p o s i t i o n
2 14/08/99 MEE Mise a j o u r
3 06/09/99 MEE Adaptation pour temps r e e l NT
4 07/02/01 MEE Labo PID numerique
5 11/03/02 MEE Labo PID numerique avec c a r t e NI
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
#d e f i n e REGUL_C
#i n c l u d e " r e g u l . h" / ∗ e n t ê t e de l ' u n i t é ∗ /
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Variables , constantes et fonctions r e l a t i v e s a la regulation
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
f l o a t out0 , out1 ; /∗ s o r t i e s a n a l o g i q u e s ∗/
f l o a t in0 , in1 , in2 , i n 3 ; /∗ e n t r e e s a n a l o g i q u e s ∗/
/∗ d e c a l a g e s a a p p l i q u e r s u r l e s s o r t i e s a n a l o g i q u e s ∗/
f l o a t offset_out0 , offset_out1 ;
/∗ d e c a l a g e s a a p p l i q u e r s u r l e s e n t r e e s a n a l o g i q u e s ∗/
f l o a t offset_in0 , offset_in1 , offset_in2 , offset_in3 ;
f l o a t w; /∗ c o n s i g n e ∗/
f l o a t w_0 = 0 . 0 ; /∗ d e c a l a g e c o n s i g n e ∗/
/∗ p e r i o d e d ' e c h a n t i l l l o n n a g e ∗/
f l o a t Te = 0 . 0 1 ;
f l o a t Kp = 0 . 0 ; / ∗ g a i n s du r e g u l a t e u r PID ∗ /
f l o a t Gi = 0 . 0 ;
f l o a t Td = 0 . 0 ;
float a = 0.01;
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
D e c l a r a t i o n d e s v a r i a b l e s a c c e s s i b l e s d e p u i s l e PC v i a RTPWatch
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
t_var var [ ] = {
v a r _ f l o a t (w) ,
var_float ( offset_out0 ) ,
var_float ( offset_in0 ) ,
var_float ( offset_in1 ) ,
v a r _ f l o a t (w_0) ,
v a r _ f l o a t ( Te ) ,
var_int (T_u) ,
v a r _ f l o a t (A_u) ,
end_var_list
};
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
R e g u l a t e u r PID
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
v o i d regul_PID ( )
{
/ ∗ C a l c u l de l a c o n s i g n e ∗ /
w = generateur_u ( 2 ) + w_0 ;
// Mesures
y = in0 − offset_in0 ;
/ ∗ Algorithme ∗ /
out0 = . . . ;
/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
I n i t i a l i s a t i o n du r e g u l a t e u r
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/
void r e g u l a t i o n _ i n i t ( void )
{
/ ∗ D e f i n i t i o n de l a f o n c t i o n e f f e c t u a n t l a r e g u l a t i o n de l a b o u c l e no1 ∗ /
r e g u l a t i o n _ b o u c l e _ i n t e r n e = regul_PID ; / ∗ R e g u l a t e u r 1 ∗ /
mode_boucle_interne = 1 ; / ∗ mode r e g u l a t i o n ∗ /
/ ∗ D e f i n i t i o n de l a f o n c t i o n e f f e c t u a n t l a r e g u l a t i o n de l a b o u c l e no2 ∗ /
regulation_boucle_externe = regul_rien ; /∗ R e g u l a t e u r 2∗/
mode_boucle_externe = 0 ; / ∗ mode r e g u l a t i o n ∗ /
/ ∗ I n i t i a l i s a t i o n d e s p a r a m e t r e s de l a r e g u l a t i o n ∗ /
Kp = 0 . 0 ;
Gi = 0 . 0 ;
Td = 0 . 0 ;
a = 0.01;
AW = 0 ;
offset_out0 = 0 . 0 ;
offset_out1 = 0 . 0 ;
offset_in0 = 0.0;
offset_in1 = 0.0;
offset_in2 = 0.0;
offset_in3 = 0.0;
w = 0.0;
umax = 1 0 . 0 ;
}
On voit que la dérivée de e(t) est approximé par la pente de la droite liant
l'échantillon présent e[k] au précédent e[k − 1].
La résolution de l'intégrale passe par le calcul de l'aire comprise entre l'axe t
et le signal e(t). Une approximation de cette aire peut être faite par la méthode
des rectangles :
e ( k - 1 ) ( k - 1 ) i è m e
r e c t a n g l e
e ( t )
e ( k )
e ( 1 )
e ( k + 1 )
e ( 0 )
t ,
0 h ( k - 1 ) h k h ( k + 1 ) h
k
f _ 0 1 _ 1 . e p s
e[0]
e[1]
e[2]
...
e[k − 1]
On a :
Z k·h k−1
X
e (τ ) · dτ ≈ e [l] · h
0 l=0
et nalement :
u [k] − u [k − 1] = b0 · e [k] + b1 · e [k − 1] + b2 · e [k − 2]
La loi de commande du régulateur PID numérique s'écrit donc :
u [k] = u [k − 1] + b0 · e [k] + b1 · e [k − 1] + b2 · e [k − 2]
avec :
Td
b 0 = K p · 1 + h
2·Td
b1 = Kp · −1 + Thi − h
b2 = Kp · Thd
C'est cette forme que l'on propose d'implanter ici dans le code C.
Chapitre 4
Régulation de température
s o n d e d e
t e m p é r a t u r e
o u v e r t u r e
d e l 'a r r i v é e
d 'a i r
Y a f f i c h a g e d e l a
t e m p é r a t u r e
m e s u r é e
c o m m u t a t e u r p o t e n t i o m è t r e
p o t e n t i o m è t r e
f _ f o e h n _ z n _ 0 1 _ 4 . e p s
" 0 - 2 0 0 % "
" s e t v a l u e "
Figure 4.1 Vue du foehn : le signal d'entrée est à appliquer au point A, celui
de sortie est à mesurer au point B (chier source).
4.1 Introduction
Cette manipulation a pour but d'illustrer de manière complète l'utilisation des
méthodes de régulation automatique en les appliquant à un système thermique
(foehn, gure 4.1). Ce travail permet aux étudiants de travailler sur un système
réel, bruité et légèrement non linéaire.
Avant d'eectuer des mesures, placez le commutateur 1 (gure 4.1 page précé-
dente) en position haute et xez le potentiomètre en position maximum (200%).
Puis, à l'aide du potentiomètre de Set Value, variez la température de sortie
(Measured Value) entre 20 et 60 [◦ C]. Si cela n'est pas possible, informez un res-
ponsable.
Modélisation temporelle
1. Ouvrez l'amenée d'air à 30 [◦ ] et à l'aide du potentiomètre Set Value, xez
le point de fonctionnement à 35 [◦ C]. Laissez fonctionner le foehn pendant
5 minutes environ.
Modélisation fréquentielle
1. A l'aide du programme d'identication, mesurez la réponse fréquentielle du
foehn. Pour ce faire, ajustez la température à 40 [◦ C] et la sortie à 0 [V].
Dans le programme d'identication, choisissez une SBPA ou une somme de
sinus à phase aléatoire d'amplitude 2 [V], de longueur 1024 et une période
d'échantillonnage de 0.1 [s]. N'oubliez pas le ltre anti-repliement spectral.
2. Modélisez la réponse fréquentielle. Les modèles temporel et fréquentiel sont-
ils comparables ? Sinon, en quoi et pourquoi dièrent-ils ?
3. Quittez le programme d'identication avec Retour/Quitter. Enlevez le ltre
et câblez le système comme indiqué plus haut.
y = u Y
z o n e l i n é a i r e a u t o u r d e Q
D y
y Q
Q D u
u = u
u Q
A
f _ f o e h n _ z n _ 0 1 _ 0 2 . e p s
d é c a l a g e d u s i g n a l d 'e n t r é e d é c a l a g e d u
( i m p o s i t i o n d u p o i n t d e s i g n a l d e s o r t i e
f o n c t i o n n e m e n t p a r u n e ( a m p l i f i c a t e u r
a l i m e n t a t i o n e x t e r n e ) d 'a c q u i s i t i o n )
u Q
y Q
v a r i a t i o n d u s i g n a l
v a r i a t i o n d u s i g n a l s y s t è m e -
d e s o r t i e
d 'e n t r é e
( c r é é e p a r l e P C ,
D u ( t ) S G ( s ) S D y ( t ) ( c r é é e p a r l e D u ( t ) ,
a
m e s u r é e p a r l e
s o r t i e O U T 0 )
P C p a r I N 0 )
f _ f o e h n _ z n _ 0 1 _ 0 3 . e p s
% reponse i n d i c i e l l e du foehn
tt = 0:0.01:5;
figure ; s t e p ( Gfoehn , t t ) ;
% regulateur PI
Kp = 1 . 0 ; % ajuster Kp pour avoir la marge de phase souhaitee
Ti = 1 ; % choisir Ti selon l e s méthodes usuelles
numReg = Kp ∗ [ Ti 1 ] ;
denReg = [ Ti 0 ] ;
Greg = t f ( numReg , denReg ) ;
% f t en bo
Gbo = Gfoehn ∗ Greg ;
figure ;
[ numBo denBo ] = t f d a t a (Gbo , ' v a l u e ' ) ;
phim = 45 ;
BodePhim (numBo , denBo , phim ) ;
% sortie en bf due a la consigne
Gbf = f e e d b a c k ( Greg ∗ Gfoehn , 1 , − 1);
yt = s t e p ( Gbf , t t ) ;
figure ; subplot ( 2 , 1 , 1 ) ; plot ( t t , yt ) ; grid ;
% signal de commande
Gbfu = f e e d b a c k ( Greg , Gfoehn , − 1);
ut = s t e p ( Gbfu , t t ) ;
ut ( 1 ) = 0 . 0 ;
subplot ( 2 , 1 , 2 ) ; plot ( t t , ut ) ; grid ;
% sortie en bf due a la perturbation
Gbfv= f e e d b a c k ( Gfoehn , Greg , − 1);
yt = s t e p ( Gbfv , t t ) ;
figure ;
subplot ( 2 , 1 , 1 ) ; plot ( t t , yt ) ; grid ;
% signal de commande
Gbfu = f e e d b a c k ( Gfoehn ∗ Greg , 1 , − 1);
ut = s t e p ( Gbfu , t t ) ;
ut ( 1 ) = 0 . 0 ;
subplot ( 2 , 1 , 2 ) ; plot ( t t , ut ) ; grid ;
Chapitre 5
C a p t e u r d e
p o s i t i o n à
u l t r a s o n s
R a
L a
u a
( t )
f _ t u i b e _ 0 1 . e p s
5.1 Introduction
Ce travail pratique ore la possibilité de voir comment l'on peut contrôler e-
cacement un système simple dicile à régler manuellement : il s'agit de maintenir
une balle à une hauteur donnée en variant le ux d'air soué par un ventilateur.
A m p l i f i c a t e u r
d e p u i s s a n c e ,
B a l l e
m o t e u r e t
d a n s l e
R é g u l a t e u r v e n t i l a t e u r C a p t e u r
t u b e
e ( t ) u ( t ) q ( t ) x ( t )
S G ( s ) G ( s ) G ( s ) G ( s ) y ( t )
w ( t ) c v e b m
c o n s i g n e e r r e u r c o m m a n d e d é b i t d 'a i r h a u t e u r g r a n d e u r
- r é g l é e
y ( t ) f _ t u b e _ 0 2 . e p s
5.3 Modélisation
An de représenter complètement le système à régler, on doit modéliser, sé-
parément si possible, chaque bloc :
le ventilateur ;
l'eet du ux d'air sur la balle ;
le capteur.
5.3.1 Le ventilateur
A défaut d'informations plus précises, celui-ci peut être raisonnablement re-
présenté par un système passe-bas d'ordre 1 pour lequel le signal d'entrée est la
tension u(t) appliquée au ventilateur via l'amplicateur de puissance alors que le
signal de sortie est le débit d'air q(t) fourni par le ventilateur :
Q(s) Kve
Gve (s) = =
U (s) 1 + s · Tve
Grosso modo, le débit d'air créé par le ventilateur est proportionnel à la vitesse de
rotation de l'hélice, laquelle est imposée par la tension d'alimentation de l'induit
du moteur. Tve est donc une constante de temps correspondant à la constante de
temps mécanique du moteur et de sa charge.
On sait que la vitesse de l'air vair (t) est liée au débit q(t) et à la section A du
tube par l'équation :
q(t) = vair (t) · A
q(t) = q0 + ∆q(t)
x(t) = x0 + ∆x(t)
On a alors :
q0 ∆q(t)
vair (t) = +
A A
En portant ce résultat dans l'équation de Newton, il vient :
d2
q0 ∆q(t) d
m · 2 (x0 + ∆x(t)) = λ · + − (x0 + ∆x(t)) − m · g
dt A A dt
En remarquant
m que le débit md'air
servant à maintenir la balle à une hauteur xe
(i.e. ẍ = 0 s2 et ẋ = 0 s ) doit être constant, on voit que c'est justement
le terme λ · qA0 qui joue ce rôle. Le point de fonctionnement que l'on choisit est
donc celui correspondant au cas où le débit q0 compense le poids de la balle. On
a ainsi :
q0
λ· =m·g
A
L'équation de la dynamique se réduit alors à :
d2 ∆x d∆x λ
m· 2
+λ· = · ∆q(t)
dt dt A
En eectuant la transformée de Laplace des 2 membres de cette équation, il vient :
λ
(m · s2 + λ · s) · ∆X(s) = · ∆Q(s)
A
Y (s) Km
Gm (s) = =
X(s) 1 + s · Tm
Il faut noter que le capteur de position sature au-delà de 1.7 [m].
Y (s)
Ga (s) = = Gve (s) · Gb (s) · Gm (s)
U (s)
Kve · Kb · Km
=
(1 + s · Tve ) · s · (1 + s · Tb ) · (1 + s · Tm )
Ka 1
= ·
s (1 + s · Tve ) · (1 + s · Tb ) · (1 + s · Tm )
Le gain total (gain permanent) du système Ka est égal au produit des 3 gains
Ka = Kve · Kb · Km
5.4 Identication
Dans les fonctions de transfert décrites ci-dessus, il reste à trouver la valeur
des paramètres qui s'y trouvent. C'est le but de l'identication.
Capteur de distance
5.5
4.5
4
Uy(t) [V]
3.5
2.5
1.5
0 0.05 0.1 0.15 0.2 0.25
f_tube_balle_2.eps
0.18
0.16
0.14
0.12
i(t) [A]
0.1
0.08
0.06
0.04
0.02
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
temps [sec]
f_tube_balle_3.eps
D t
y ( t )
G ( s ) = K / s
a a
G a
( s ) = K a
/ ( s ( 1 + s T v e
) ( 1 + s T b
) ( 1 + s T m
) )
u ( t )
t [ s ]
0 f _ t u b e _ 0 3 . e p s
2. Choisir l'amplitude du signal u(t) : par défaut, elle est de 1 [V], comme
indiqué dans la zone Amplitude. Pour la modier, introduire la nouvelle
valeur et quittancer avec le bouton OK. On peut aussi utiliser les curseurs
pour l'incrémentation ou la décrémentation rapides. Concernant l'amplitude
du signal u(t), il faut rappeler que le capteur sature vers 1.7 [m] ;
3. Sélectionner le signal souhaité (ici un saut unité) ;
4. A la question "Faut-il xer le facteur de sous-échantillonnage à 1", répondre
Oui ;
5. L'apparence de l'écran devrait être la suivante :
Identication
En reprenant les mesures précédemment eectuées et en les traitant avec un
logiciel tel que MATLAB, on peut obtenir les paramètres Ka et Tb du modèle qui
manquent encore. L'ébauche de programme suivante y aide :
%I n i t i a l i s a t i o n
close a l l
clear
%Chargement du f i c h i e r de mesures
load ' nom_de_fichier . dat ' ;
mesures = ' nom_de_fichier ' ;
%Extraction du temps et de la reponse i n d i c i e l l e
t = mesures ( : , 1 ) ;
y = mesures ( : , 5 ) ;
%Tracage
figure ( 1 )
plot ( t , y ) ;
grid
xlabel ( ' t [ s ] ' )
ylabel ( ' y ( t ) ' )
Réponse indicielle
6
4
y(t)
0
0 0.5 1 1.5 2 2.5
t [s]
f_id_rep_ind_Ka_1.wmf
5.5.1 Régulateur P
Est-il possible avec ce régulateur d'avoir une erreur statique nulle ? Justiez
votre réponse. Utilisant la méthode Bode, recherchez un gain Kp tel que ϕm ≈
60 [◦ ]. Enregistrez les réponses indicielles simulées par rapport à la consigne et à
la perturbation.
5.5.2 Régulateur PI
Dans ce cas, peu simple car il possède 2 intégrations (type α = 2), on com-
mence par choisir Ti , par exemple selon le critère de l'optimum symétrique. Puis
il reste donc à rechercher Kp pour que la marge de phase atteigne environ 60 [◦ ].
Enregistrez les réponses indicielles simulées par rapport à la consigne et à la
perturbation.
5.5.4 Conclusions
Comparez les erreurs statiques et les durées de réglage obtenus avec les 3
régulateurs. Concluez.
Bibliographie