Vous êtes sur la page 1sur 52

Haute Ecole d'Ingéniérie et de Gestion du

canton de Vaud (HEIG-VD)

Département des technologies industrielles

( 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

Prof. Michel ETIQUE, novembre 2008,

Yverdon-les-Bains
HEIG-VD Laboratoire de régulation numérique

v.1.4 2 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Table des matières

I Généralités sur le laboratoire de régulation numérique


5
1 Programme du laboratoire 7
1.1 Programme du laboratoire de régulation numérique . . . . . . . . 8
1.1.1 Remarques générales . . . . . . . . . . . . . . . . . . . . . 8

2 Rédaction des rapports et compte-rendus 9


2.1 Comment écrire un rapport d'expérience ? . . . . . . . . . . . . . 10
2.1.1 Remarques concernant la notation des rapports . . . . . . 11
2.1.2 Remarques diverses concernant la méthode de travail et la
rédaction des rapports . . . . . . . . . . . . . . . . . . . . 13
2.2 Indications concernant la rédaction d'un compte rendu de laboratoire 14

II Descriptifs des travaux de laboratoire 15


3 Régulateur PID numérique 17
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Réalisation d'un régulateur PID numérique . . . . . . . . . . . . . 18
3.2.1 But et cahier des charges du travail . . . . . . . . . . . . . 18
3.2.2 Environnements matériel et logiciel à disposition . . . . . . 19
3.A Canevas du chier regul.c . . . . . . . . . . . . . . . . . . . . . . . 22
3.B Régulateur PID numérique . . . . . . . . . . . . . . . . . . . . . . 23
3.B.1 Loi de commande . . . . . . . . . . . . . . . . . . . . . . . 23
3.B.2 Algorithme selon "textbook" . . . . . . . . . . . . . . . . . 24
3.B.3 Algorithme modié . . . . . . . . . . . . . . . . . . . . . . 25

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

v.1.4 3 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

4.4 Synthèse et essai du régulateur PI . . . . . . . . . . . . . . . . . . 30


4.4.1 Synthèse du régulateur . . . . . . . . . . . . . . . . . . . . 30
4.4.2 Essai du régulateur . . . . . . . . . . . . . . . . . . . . . . 30
4.5 Imposition d'un point de fonctionnement . . . . . . . . . . . . . . 32
4.A Exemple de programme MATLAB . . . . . . . . . . . . . . . . . . 34

5 Régulation de la hauteur d'une balle dans un tube 37


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 Description du système . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.1 Le ventilateur . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2 La balle dans le tube . . . . . . . . . . . . . . . . . . . . . 39
5.3.3 Le capteur à ultrasons . . . . . . . . . . . . . . . . . . . . 41
5.3.4 Fonction de transfert du système complet . . . . . . . . . . 41
5.4 Identication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4.1 Caractéristique dynamique du capteur . . . . . . . . . . . 41
5.4.2 Caractéristique dynamique du ventilateur . . . . . . . . . . 42
5.4.3 Fonction de transfert du système complet . . . . . . . . . . 42
5.5 Choix et synthèse d'un régulateur . . . . . . . . . . . . . . . . . . 45
5.5.1 Régulateur P . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.2 Régulateur PI . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.3 Régulateur PID . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.6 Essais de régulation de la hauteur de la balle . . . . . . . . . . . . 46

v.1.4 4 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Première partie

Généralités sur le laboratoire de

régulation numérique

v.1.4 5 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Chapitre 1

Programme du laboratoire

v.1.4 7 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

1.1 Programme du laboratoire de régulation nu-


mérique
Date Séance Sujet
1
Régulateur PID numérique
2
3
Régulation numérique de température
4
5 Régulation numérique de la position d'une
6 balle dans un tube

1.1.1 Remarques générales


 Les étudiants travaillent par groupes de deux ;
 Un rapport ou un compte-rendu, selon les instructions, est demandé sur
chaque travail. Il doit être remis avant de commencer un nouveau travail ;
 Le laboratoire a lieu le vendredi matin, de 8h30 à 12h00 ;
 Il est nécessaire de lire le protocole de la manipulation à eectuer avant la
séance de laboratoire.
 Diverses informations telles que photos, mesures, courbes, etc concernant
les manipulations se trouvent sur le site Web du laboratoire
http://www.iai.heig-vd.ch/~mee//Laboratoires_regulation_aut.htm.

Il est recommandé de se munir de documents tels que les notes de


cours et exercices de régulation automatique et numérique.

v.1.4 8 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Chapitre 2

Rédaction des rapports et

compte-rendus

v.1.4 9 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

2.1 Comment écrire un rapport d'expérience ?


An que les résultats d'une expérience ne soient pas perdus, il est nécessaire
de terminer celle-ci par la rédaction d'un rapport. Ce rapport doit être écrit de
manière telle qu'il puisse être compris même par une personne non-informée.
Dans ce but, il est nécessaire de bien décrire l'expérience et d'expliquer quelles
sont les grandeurs que l'on désire déterminer. A la suite de quoi, il faut établir
les équations liant les grandeurs que l'on peut mesurer avec celles que l'on désire
connaître. Quand ces grandeurs sont enn chirées, il faut encore analyser ces
résultats et justier leur validité.
Pour remplir ces objectifs, un rapport doit contenir au moins les cinq para-
graphes suivants (chacun d'eux pouvant être subdivisé en sous-paragraphes an
de permettre une meilleure vision de l'ensemble de l'expérience) :
1. Introduction
2. Description et théorie
3. Résultats expérimentaux
4. Analyse des résultats
5. Conclusions
Voyons à présent ce que chacun de ces paragraphes doit contenir :
Introduction Dans ce paragraphe, le problème à résoudre est placé dans son
contexte. On précisera brièvement les grandeurs mesurées, les méthodes
utilisées.
Description et théorie Ce paragraphe contient un bref rappel de la théorie
donnée dans le protocole d'expérience et fait mention de toutes les équations
nécessaires pour la suite du rapport. A partir de ces relations fondamentales,
il faut développer tous les calculs nécessaires à l'obtention des résultats
recherchés ou éventuellement donner la référence du document où l'on peut
les retrouver.
Résultats expérimentaux Ici seront décrites les diérentes mesure faites :
comment, avec quels instruments, etc. On précisera en particulier : le schéma
de câblage, la technique de mesure, les appareils utilisés, la fréquence, l'am-
plitude et la forme des signaux, etc.
Les résultats de ces mesures seront donnés sous forme de graphiques conte-
nant toutes les indications nécessaires à la compréhension immédiate de
son contenu : titres, échelles, unités, domaines d'erreurs. Si les résultats ne
peuvent être donnés sous forme de graphiques, il faut les présenter dans
un tableau comportant un titre, les unités des grandeurs mesurées et les
domaines d'erreurs.
Même si les moyens à disposition permettent d'obtenir un grand nombre
de graphiques, veillez à n'en présenter qu'un minimum en sélectionnant
uniquement ceux qui sont représentatifs ou instructifs.

v.1.4 10 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Analyse des résultats Ce dernier paragraphe constitue une analyse critique


et objective des résultats obtenus plus haut. En particulier, on mettra en
évidence des eets inattendus ou intéressants. On mentionnera les erreurs
commises, les manières de les corriger ou les compenser ; enn, on précisera
la conance que l'on peut accorder aux méthodes employées.
De plus, ce paragraphe est celui où l'on doit laisser libre cours à son ima-
gination. Il contiendra des propositions d'amélioration, de correction ainsi
que des questions concernant des points peu clairs.
Conclusions La conclusion doit être brève, précise et ne pas répéter ce qui a
été dit précédemment. Dites en une ou deux phrases ce qui caractérise
l'expérience, justiez votre appréciation. Précisez l'intérêt et les extensions
possibles.
L'élaboration d'un rapport n'est jamais une tâche facile. Elle requiert tou-
jours un minimum de réexion, le tri des informations disponibles et leur
classement selon une séquence bien dénie ; ce n'est qu'ensuite que la rédac-
tion elle-même peut commencer. Il faut faire preuve de bon sens, de logique
mais aussi d'imagination.
La mise au point d'un rapport est une occasion qui vous est oerte de
manifester votre personnalité et de faire savoir que vous avez quelque chose
à dire. Un rapport préparé avec une motivation positive est une expérience
passionnante.

2.1.1 Remarques concernant la notation des rapports


La notation d'un rapport est particulièrement dicile et subjective car elle
dépend essentiellement du sentiment que laisse la première lecture de celui-ci
et assez peu du travail qui a été réellement fourni au laboratoire ou pour sa
rédaction. C'est pourquoi il peut parfois y avoir un sentiment d'injustice. Il ne
faut cependant pas oublier que dans la profession de l'ingénieur, une grande partie
de la communication se fait au travers de rapports et que par conséquent, le soin
apporté à la rédaction de ceux-ci est important.
Tenant compte de ces remarques, les points attribués lors de la correction
d'un rapport sont répartis de la manière suivante :
 travail minimum demandé 3.5
 présentation et structure 0.3
 description et théorie 0.5
 travail expérimental 0.6
 analyse détaillée et soignée 0.6
 apport personnel 0.5
Il est évident que cette répartition n'est qu'un guide pour la correction et qu'elle
peut parfois être modiée.

v.1.4 11 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Appréciation du travail eectué


Quantité de travail Essentiellement : travail au laboratoire et contenu du rap-
port.
Qualité des résultats Essentiellement : résultats expérimentaux corrects, in-
dépendamment de la qualité de la présentation.

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.

v.1.4 12 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Grille d'évaluation des rapports

1 Appréciation du travail ef- Note


fectué
Quantité de travail
Qualité des résultats
2 Rapport
Structure, présentation
Analyses, explications
Transfert de connaissances, documen-
tation
3 Généralités
Connaissance, maîtrise du sujet
Note moyenne
4 Apport personnel
Note nale

2.1.2 Remarques diverses concernant la méthode de travail


et la rédaction des rapports
Quelques conseils d'ordre pratique :
 évitez le style télégraphique ;
 protez d'apprendre à travailler avec des moyens modernes de documenta-
tion (traitement de texte, logiciels de dessin et de calcul, de présentation,
etc). Cet exercice vous permettra de gagner du temps au moment de la
rédaction des rapports des travaux de semestre et de diplôme et bien dans
le cadre de votre vie professionnelle. Ceci est un conseil, mais nullement une
obligation ;
 évitez à tout prix de copier la structure du protocole ;
 introduisez convenablement le sujet, faites référence au cours, à d'autres
laboratoires, à des cas pratiques ;
 montrez au lecteur que vous comprenez ce que vous faites, que vous avez
appris quelque chose, que vous en voyez l'utilité ou l'inutilité . . .
 demandez conseil aux profs. ;
 placez en annexe certains graphiques et des informations telles que numéro
de maquette, etc ;
 protez de l'infrastructure informatique de laboratoire.

v.1.4 13 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

2.2 Indications concernant la rédaction d'un compte


rendu de laboratoire
On donne ci-après quelques indications concernant la manière de rédiger un
compte-rendu d'expérience du laboratoire de régulation automatique. La forme
de ces comptes-rendu est très semblable à ceux déjà demandés dans le cadre du
laboratoire de robotique.
Le but est de pouvoir fournir, directement à la n de la manipulation, un
mini-rapport de 1-2 pages au maximum (complété par d'éventuelles annexes)
présentant :
 le sujet, le contexte et les objectifs du travail ;
 les essais et mesures réalisés ;
 les conclusions, incluant d'éventuelles propositions, critiques, etc.
Des annexes peuvent êtres produites, contenant le cas échéant des calculs, des
tableaux de mesures, des graphiques, des copies d'écran, des listings, etc.
Dans le compte-rendu doivent gurer la date, la classe, les noms et les signa-
tures des expérimentateurs, ainsi que la liste des annexes.
Bien que les informations y apparaissent sous forme condensée, les quelques
pages du compte-rendu doivent être proprement et clairement présentées, de façon
qu'une tierce personne puisse les lire et se faire rapidement une idée du travail
eectué, des résultats obtenus (en qualité) et peut-être de nouveaux essais à
entreprendre. Des décisions devraient pouvoir être prises sur la base de ce rapport.
Cette forme de rapport écrit a pour avantage de diminuer la quantité de travail
à eectuer à domicile. En contre-partie, les étudiants doivent eectuer un certain
travail préparatoire et faire preuve, pendant la manipulation, d'ecacité, d'esprit
de synthèse et montrer une certaine aptitude à repérer les problèmes essentiels.
C'est ce type d'exercice qui correspond le mieux à ce qui est exigé en milieu
industriel.

v.1.4 14 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Deuxième partie

Descriptifs des travaux de

laboratoire

v.1.4 15 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Chapitre 3

Régulateur PID numérique

Régulateur PID numérique 17 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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()

Le code devra se trouver dans le chier

regul.c

L'annexe 3.B page 23 fournit un rappel théorique le régulateur PID numé-


rique.

3.2 Réalisation d'un régulateur PID numérique


3.2.1 But et cahier des charges du travail
On propose dans le cadre de cette manipulation de laboratoire d'écrire le
programme C implantant l'algorithme du régulateur PID numérique présenté en
annexe 3.B. Ce programme sera utilisé ultérieurement dans le cadre du laboratoire
de régulation numérique.
Le programme à écrire doit orir les fonctionnalités suivantes :
 régulateur PID comprenant les trois actions P, I et D ;
 limitation logicielle de la grandeur de commande calculée par le régulateur.
Le code du régulateur PID devra être testé et validé de façon à ce que l'utilisateur
ait l'assurance que les gains Kp , Ti et Td ainsi que la période d'échantillonnage
h qu'il applique sont bel et bien ceux pris en compte par la fonction implantant
l'algorithme du régulateur. Il est nécessaire de dénir la procédure de test, qui
fait partie intégrante de ce travail.
Le programme devra être soigneusement documenté et l'on fera usage notam-
ment de variables de type tableau pour la mémorisation des données nécessaires
au fonctionnement du régulateur.
La fonction programmée sera codée dans le chier regul.c dont le canevas
est à disposition (chier regul.txt, voir annexe). Il s'agit du seul chier à éditer !

Régulateur PID numérique, v.1.6 18 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

3.2.2 Environnements matériel et logiciel à disposition


Il faut commencer par télécharger et décompresser le chier

pid_num.zip

à partir du site http://www.iai.heig-vd.ch/~mee//Laboratoires_regulation_aut.htm


dans votre propre répertoire (qui devrait être d:\users ou un de ses sous-
répertoires que vous pouvez créer).

Edition du chier regul.c, programmation du régulateur


La seule unique fonction que l'on demande de programmer devra se trouver
dans le chier regul.c.
Pour éditer le code, l'éditeur "PFE" est installé et son utilisation est recom-
mandée. On peut l'appeler par son icône à partir du bureau.
Le canevas de ce chier est fourni. Il montre que les signaux provenant de la
carte d'acquisition sont disponibles dans les variables globales in0, in1, in2 et
in3.
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 ;

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
};

Régulateur PID numérique, v.1.6 19 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.

Compilation du chier regul.c

Vous pouvez compiler votre programme en lançant un compilateur C/C++ à

Régulateur PID numérique, v.1.6 20 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.

Régulateur PID numérique, v.1.6 21 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

3.A Canevas du chier regul.c


/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
REGUL. C
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/

/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
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 = . . . ;

Régulateur PID numérique, v.1.6 22 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

/∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
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 ;
}

3.B Régulateur PID numérique


3.B.1 Loi de commande
La loi de commande du régulateur PID numérique peut être obtenue par
discrétisation de celle d'un régulateur PID analogique
 
Zt
1 de
u (t) = Kp · e (t) + · e (τ ) · dτ + Td · 
Ti dt
0

où e(t) est le signal d'erreur.


Cette loi est discrétisée en l'évaluant à l'instant d'échantillonnage k · h (noté k
par la suite an alléger la notation, h étant constante). Pour ce faire, on eectue
les substitutions
u (t) −→ u [k]
e (t) −→ e [k]
de e [k] − e [k − 1]
−→
dt h

Régulateur PID numérique, v.1.6 23 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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

L'intégrale de e(t) à l'instant t = k · h est donc approximée par une somme de


rectangles de largeur h et de hauteur

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

La loi de commande discrète du régulateur PID numérique devient :


k−1
!
1 X e [k] − e [k − 1]
u [k] = Kp · e [k] + · e [l] · h + Td ·
Ti l=0
h

3.B.2 Algorithme selon "textbook"


La forme de la loi de commande obtenue ci-dessus se prête mal à la program-
mation, puisqu'elle nécessite la mémorisation de toutes les valeurs passées e[0],
e[1], e[2],. . ., e[k − 1] du signal d'erreur numérique e[k]. An de contourner cette

Régulateur PID numérique, v.1.6 24 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

diculté, écrivons les lois de commande aux instants présent k et et précédent


[k − 1] et soustrayons membre à membre :
k−1
!
1 X e [k] − e [k − 1]
u [k) = Kp · e [k] + · e [l] · h + Td ·
Ti l=0 h
k−2
!
1 X e [k − 1] − e [k − 2]
u [k − 1] = Kp · e [k − 1] + · e [l] · h + Td ·
Ti l=0
h
On obtient tout d'abord
u [k] − u [k − 1] = Kp · [e [k] − e [k − 1])
k−1 k−2
!
Kp X X
+ · e [l] · h − e [l] · h
Ti l=0 l=0
| {z }
e[k−1]·h
 
e [k] − e [k − 1] e [k − 1] − e [k − 2]
+ Kp · Td · −
h h
puis
u [k] − u [k − 1]
   
Td h 2 · Td Kp · Td
= Kp · 1 + ·e [k] + Kp · −1 + − ·e [k − 1] + ·e [k − 2]
h Ti h | h }
{z
| {z } | {z }
b0 b1 b2

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

3.B.3 Algorithme modié


Pour des raisons pratiques, liées notamment à des problèmes de limitation,
on a souvent intérêt à calculer les contributions intégrale et dérivée séparément,
i.e. à programmer :
i_e [ k ] = i_e [ k − 1] + e [ k − 1] ∗ h ;
d_e [ k ] = ( e [ k ] − e [ k −1])∗ f e ;

C'est cette forme que l'on propose d'implanter ici dans le code C.

Régulateur PID numérique, v.1.6 25 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Version du docu- Date Notes


ment
v1.1 12 mars 2002 Traduction à partir de Word, adapta-
tion à RTPWatch et à la carte National
v1.2 11 mars 2003
v1.3 9 mars 2004
v1.4 3 janvier 2005
v1.5 10 mars 2005
v1.6 1er octobre 2007
v1.7 3 octobre 2007

Table 3.1  Versions publiées

Régulateur PID numérique, v.1.6 26 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Chapitre 4

Régulation de température

Régulation de température 27 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.

4.2 Conditions générales des mesures


Toutes les mesures se font sur le même foehn (relevez son numéro( 1..10) ou
son numéro d'inventaire) dans les conditions suivantes : se référant à la gure 4.1,
le signal d'entrée du système à régler (tension aux bornes du corps de chaue) est
la tension au point A, i.e. u(t) = uA (t), alors que le signal de sortie (température
de l'air) est la tension au point Y, i.e. y(t) = uY (t).
On veillera à ce que :
1. La sonde de température soit en position centrale ;
2. L'ouverture d'amenée d'air soit α = 30 [◦ ] ;
3. Le commutateur "heater-heater/wattmeter", placé latéralement, soit sur la
position "heater".

Régulation de température 28 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.

4.3 Identication du foehn


4.3.1 Relevé de la caractéristique statique
En variant la tension UA , relevez la caractéristique statique du foehn UY =
f (UA ) et UY = f (T ) où T est la température achée en [◦ C]. Le programme RTP-
Watch avec l'outil Enregistreur pour Windows NT peut vous servir de voltmètre.
Veillez à parcourir toute la caractéristique : une première fois en augmentant
progressivement la température depuis son minimum ; une deuxième fois en la
diminuant depuis son maximum. Portez directement les points mesurés dans un
chier MATLAB.
Tracez la caractéristique obtenue ; justiez sa forme. Marquez-y le domaine
de fonctionnement compris en principe entre 35 et 45 [◦ C]. Que vaut le gain
statique ?

4.3.2 Recherche du modèle dynamique du foehn


Câblage
L'identication du modèle du comportement dynamique peut se faire avec
l'aide de RTPWatch, outil Enregistreur pour Windows NT et du programme d'iden-
tication identication.m pour MATLAB. Comme le programme d'identication
travaille autour de 0 [V], il est nécessaire de ramener la tension UY vers zéro
à l'aide d'une tension externe (voir Ÿ 4.5 page 32). L'inverseur est utilisé pour
compenser l'inversion du premier sommateur de la maquette.
Pour l'inverseur et la tension de décalage, utilisez un amplicateur d'acqui-
sition du laboratoire. Le commutateur de gain doit être sur la position 3 (elle
correspond au gain unité). Reliez le système à la carte A/D-D/A, out0 étant la
sortie générée par le PC et in0 l'entrée lue par le PC et achée par l'Enregistreur
pour Windows NT.

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.

Régulation de température 29 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

2. D'après la caractéristique statique, quel saut de tension devez-vous appli-


quer au foehn pour que la température varie de 35 à 45 [◦ C] ?
3. A l'aide d'une tension de décalage (Ÿ 4.5 page 32), ramenez la tension de
sortie à 0 [V] puis, enregistrez la réponse indicielle entre 35 et 45 [◦ C]. Iden-
tiez le modèle correspondant à la réponse temporelle.
4. Doublez l'amplitude du saut de tension ; quels changements observez-vous
dans le modèle ? Justiez-les.

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.

4.4 Synthèse et essai du régulateur PI


4.4.1 Synthèse du régulateur
Calculez les paramètres du régulateur en recherchant une marge de phase ϕm
de 45 [◦ ]. Quel est alors le dépassement attendu ? L'utilisation de MATLAB facilite
la synthèse du régulateur (voir programme Ÿ 4.A page 34 : attention, les valeurs
proposées sont ctives).
Comme MATLAB ne permet pas de travailler avec un retard pur, il faut le
remplacer par une approximation de Padé d'ordre n (généralement, 5 ≤ n ≤ 20).
Pour trouver le régulateur conduisant à la marge de phase souhaitée, vous
pouvez utiliser la fonction margin de MATLAB.
Tracez les réponses indicielles théoriques consécutives à un saut de consigne
et à un saut de perturbation.

4.4.2 Essai du régulateur


Lancez l'outil RTPWatch Identication sous Windows NT. Puis :
1. Si vous souhaitez tester votre propre régulateur numérique, avec Charger
routine temps réel, chargez la DLL correspondante ;
2. Avec Set Value, xez le point de fonctionnement aux environs de 35 [◦ C] ;

Régulation de température 30 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

3. Avec la tension de décalage, annulez le signal de sortie in0 ;


4. Ouvrir l'outil RTPWatch VarList et portez les paramètres calculés dans le
régulateur (N.B. : Gi = 1/Ti).
Maintenant, vous pouvez vérier les résultats de votre synthèse. Pour ce faire :
1. Générez un saut de consigne correspondant à 10 [◦ C] ; choisissez h = Te =
0.01 [s].
2. Enregistrez les signaux u(t) et y(t) du système asservi.
3. Mesurez les temps de montée Tm et de réglage Treg , ainsi que le dépassement
D
4. Enregistrez l'eet d'une perturbation en fermant l'arrivée d'air. Pour ce
faire, vous choisirez une consigne nulle, Tmax = 10 [s] et après 5 [s] vous
fermerez l'arrivée d'air.
5. Comparez les résultats obtenus avec les résultats théoriques.
Si vous avez ou prenez le temps, vous pouvez encore eectuer la synthèse d'un
régulateur PID et la comparer aux résultats précédents.

Régulation de température 31 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

4.5 Imposition d'un point de fonctionnement


Comme la caractéristique statique liant la tension de commande du corps
de chaue u(t) à la température mesurée y(t) est légèrement non-linéaire, il est
nécessaire d'eectuer tous les travaux autour d'un point de fonctionnement Q
tel que la température achée soit de l'ordre de 40 − 45 [◦ C] (gure 4.2). De ce
fait, les mesures et essais s'eectuent en régime de variations ∆u(t) −→ ∆y(t)
autour du point de fonctionnement Q. Cela se fait pratiquement en intercalant
une source de tension uQ entre la variation du signal d'entrée ∆u(t) et la tension
d'entrée u(t) = uA (t). Une telle source de tension peut être trouvée dans les
armoires du fond du laboratoire (2ème armoire côté fenêtre).

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

Figure 4.2  Imposition du point de fonctionnement Q par la source de tension


externe uQ (chier source).

De façon à ce que du point du vue des mesures, on ne prenne en compte que


la partie due à la variation ∆u(t), on intercale une seconde source de tension
(boîtier "amplifcateur d'acquisition") en aval du système, de façon à n'obtenir
que la partie ∆y(t) de y(t) = uY (t) due à ∆u(t) (gure 4.3 page ci-contre). Cette
source de tension est ainsi ajustée de façon à ce que lorsque ∆u(t) = 0 [V], i.e.
lorsque le système est en son point de fonctionnement Q, ∆y(t) = 0 [V].

Régulation de température 32 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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

Figure 4.3  A l'aide de l'amplicateur d'acquisition, on retranche yQ de façon


à mettre en évidence ∆y(t), du à ∆u(t) seul (chier source).

Régulation de température 33 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

4.A Exemple de programme MATLAB

% Noms: Date : No. du foehn :


% Manip : reglage de temperature
clear a l l ; close a l l ;
% caracteristique statique du foehn
Udm = − [2 0 −2 −4 −6 − 8] ; % valeurs f i c t i v e s
Uym = +[0 2 4 6 8 1 0 ] ;
Tm = +[20 22 25 27 30 3 5 ] ;
Udd = −[−7 −5 −3 −1 1 3 ] ;
Uyd = +[10 8 6 4 2 0 ] ;
Td = +[37 33 30 27 25 2 2 ] ;
% regression l i n . sur l ' ensemble des points
Ud = [Udm Udd ] ; T = [Tm Td ] ;
Uy = [Uym Uyd ] ;
c o e f f = p o l y f i t (Ud , Uy , 1 ) ;
Udf = −2 : 1 0 ;
Uyf = polyval ( c o e f f , Udf ) ;
subplot ( 2 , 1 , 1 ) ; plot (Udm, Uym, '+ ' , Udd , Uyd , ' o ' , Udf , Uyf ) ;
text ( − 1 , 8 , [ ' p e n t e = ' num2str ( c o e f f ( 1 ) , 3 ) ' [V/V] ' ] ) ;
t i t l e ( ' C a r a c t e r i s t i q u e s t a t i q u e du f o e h n No . ' ) ;
xlabel ( 'Ud [V] ' ) ; ylabel ( 'Uy [V] ' ) ;
subplot ( 2 , 1 , 2 ) ; plot (Ud , T, ' o ' ) ;
xlabel ( 'Ud [V] ' ) ; ylabel ( ' Temperature [C ] ' ) ;
% fonction de transfert du foehn
Ksys = 1 ; T1 = 1 ; T2 = 1 ; Tr = 1 ; % valeurs f i c t i v e s
[ numTr denTr ] = pade ( Tr , 5 ) ;
Gtr = t f (numTr , denTr ) ;
numG1= Ksys ;
denG1= [ T1 ∗ T2 T1+T2 1 ] ;
G1 = t f (numG1, denG1 ) ;
Gfoehn = G1 ∗ Gtr ;

% 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 ) ;

Régulation de température 34 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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 ;

Régulation de température 35 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Régulation de température 36 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Chapitre 5

Régulation de la hauteur d'une

balle dans un tube

Régulation de hauteur 37 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.

5.2 Description du système


Le système est composé d'une balle creuse en polyéthylène placée dans un
tube en plexiglas d'une hauteur de 2 [m]. Le ux d'air est créé par un ventilateur
placé au bas du tube, entraîné par un moteur à courant continu à excitation
séparée alors que la position de la balle est mesurée par un capteur à ultrasons
situé au sommet du tube.
Le système complet peut être représenté par le schéma fonctionnel suivant :

Régulation de hauteur 38 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.

5.3.2 La balle dans le tube


Dans ce cas, on peut décrire le mouvement de la balle à l'aide des équations
de la dynamique. Deux forces agissent sur la balle : il s'agit de son propre poids
m · g et de la force de frottement Ff r due à la diérence de vitesses entre la balle
et le ux d'air. On peut donc écrire l'équation de la dynamique de Newton :

m · ẍ = Ff r (t) − m · g avec Ff r (t) = λ · (vair (t) − ẋ)

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

Régulation de hauteur 39 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

De façon à se placer autour d'un point de fonctionnement (q0 , x0 ) pour tout


calculer en régime d'accroissements (∆q(t), ∆q(t)), décomposons d'une part le
débit q(t) en une valeur constante q0 et une variation ∆q(t) :

q(t) = q0 + ∆q(t)

et d'autre part la position x(t) telle que

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

On en tire la fonction de transfert liant la variation de débit ∆q(t) à la variation


position ∆x(t) de la balle :
1
∆X(s) A Kb
Gb (s) = = m =
∆Q(s) s · (1 + s · λ
) s · (1 + s · Tb )

On remarquera que dans cette fonction de transfert, seule la constante de temps


Tb doit être déterminée car la section A du tube xe le gain Kb = A1 . Celui-ci se
calcule à partir du diamètre intérieur du tube qui vaut environ 52 [mm].

Régulation de hauteur 40 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

5.3.3 Le capteur à ultrasons


Comme le ventilateur, on peut raisonnablement admettre que c'est un système
passe-bas d'ordre un pour lequel le signal d'entrée est la position x(t) de la balle
alors que le signal de sortie est la tension y(t) fournie par le capteur :

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].

5.3.4 Fonction de transfert du système complet


En regroupant les 3 fonctions de transfert, on obtient la représentation com-
plète du système à régler liant la tension u(t) commandant l'amplicateur à la
tension y(t) fournie par le capteur :

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.

5.4.1 Caractéristique dynamique du capteur


La caractéristique dynamique du capteur de position se mesure généralement
au travers de sa réponse indicielle. Pour le faire, il faudrait cependant pouvoir
varier brusquement la distance du capteur à un obstacle. Comme ceci n'est pas
possible sur la maquette, on l'a fait avant la réalisation de celle-ci et la réponse
indicielle obtenue est représentée sur la gure 5.1 page suivante. En observant
cette réponse, on constate que le capteur émet régulièrement un paquet d'onde
et mesure le temps correspondant à la distance avec l'obstacle. Quelle est la
fréquence des mesures ? Que vaut la constante de temps approximative de ce
capteur ?

Régulation de hauteur 41 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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

Figure 5.1  Caractéristique dynamique du capteur (chier source).

5.4.2 Caractéristique dynamique du ventilateur


Ici également, il est dicile de mesurer précisément la relation entre tension
appliquée et débit d'air fourni par le ventilateur. On peut cependant estimer
grossièrement que le débit d'air est proportionnel à la vitesse de rotation du
ventilateur. La manière dont cette vitesse évolue est directement liée au courant
consommé par le ventilateur ; c'est cette propriété qui a été utilisée. La mesure
du courant à l'enclenchement du ventilateur a donné le résultat présenté sur la
gure 5.2 page ci-contre. Estimez la constante de temps du ventilateur.

5.4.3 Fonction de transfert du système complet


Avec les mesures eectuées ci-dessus, on n'est pas encore en position de chirer
chacun des paramètres de la fonction de transfert Ga (s) :
Kve ·Km
Y (s) A 1
Ga (s) = = ·
U (s) s (1 + s · Tve ) · (1 + s · Tb ) · (1 + s · Tm )
En eet, le gain Kve du ventilateur et la constante de temps Tb de la balle ne
peuvent pas être mesurés individuellement. Il faut donc essayer de mesurer la
réponse indicielle de ce système, lequel possède une intégration. Cela n'est pas
simple car l'eet de l'intégration se traduit par une rampe vers laquelle tend y(t)
avec un décalage ∆t dépendant des trois constantes de temps. Par contre, la pente
de la rampe ne dépend que du gain Ka du système et de la tension (ici constante)

Régulation de hauteur 42 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Courant consommé par le ventilateur


0.2

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

Figure 5.2  Caractéristique dynamique du ventilateur (chier source).

appliquée u(t). An de trouver le gain Ka et la constante de temps Tb , à l'aide


du programme d'identication,une première mesure consiste à faire l'acquisition
de la réponse indicielle, suivie de l'identication de celle-ci.

Acquisition de la réponse indicielle


Pour acquérir la réponse indicielle, il faut tout d'abord lancer ée logiciel RTP-
Watch et choisir l'outil Tube. Lorsque cela est fait, on doit :
1. Passer en mode Identication ;

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

Régulation de hauteur 43 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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 :

6. Sauvegarder les mesures dans un chier (bouton ->Fichier).

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égulation de hauteur 44 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

t i t l e ( ' Réponse i n d i c i e l l e ' )


%Impression de la fenetre graphique dans un f i c h i e r PostScript
print rep_ind_01 . eps −deps − t i f f

Il convient alors d'imprimer ce graphe et de mesurer la pente asymptotique ; on


peut alors en extraire le gain Ka du système.

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

Pour déterminer l'inconnue restante, à savoir la constante de temps Tb de la


balle, il faut lancer un autre programme MATLAB, par exemple identication.m. Il
sut allors d'introduire le gain du système, les constantes de temps connues puis
d'ajuster Tb pour que la réponse du modèle coïncide au mieux avec celle mesurée.
Avant de quitter le programme d'identication, il est conseillé de sauvegarder le
modèle et les mesures (menu "Sauver graphiques et paramètres").
Que valent alors les gains Kve , Kb , Km et Tve , Tb , Tm les constantes de temps
de chaque bloc ?

5.5 Choix et synthèse d'un régulateur


Le but de ce paragraphe est d'observer les résultats obtenus avec les régula-
teurs P, PI et PID conduisant à une réponse optimum en boucle fermée, régulation
de correspondance. Celle-ci devrait, si possible, avoir une erreur statique nulle par
rapport à la consigne et à la perturbation. La synthèse se fait avantageusement
à l'aide de MATLAB.

Régulation de hauteur 45 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

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.3 Régulateur PID


On commence par choisir Td égal à la plus grande constante de temps. Puis,
classiquement, Ti est pris 4 à 5 fois plus grand que Td . Il vous 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.

5.6 Essais de régulation de la hauteur de la balle


Enregistrez et observez le comportement du système réglé. Pour créer des
sauts de perturbations. Faites les essais qui vous paraissent judicieux par rapport
aux résultats théoriques et concluez.
Pour acquérir les signaux en boucle fermée, on doit :
1. Passer en mode Régulation ;
2. Fixer les valeurs des paramètres du régulateur dans la zone Régulateur PID ;
3. Choisir l'amplitude du signal de consigne w(t) 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émenta-
tion rapides. Concernant l'amplitude du signal w(t), il faut rappeler que le
capteur sature vers 1.7 [m] ;

Régulation de hauteur 46 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

4. Sélectionner le signal souhaité. Pour des signaux périodiques (carré, sinus,


etc), un paramètre supplémentaire est la période exprimée en nombre en-
tier de périodes d'échatillonnage de valeur Te . On recommande 1000
pour commencer ;
5. L'apparence de l'écran devrait être la suivante :

6. On peut sauvegarder les mesures dans un chier (bouton ->Fichier).

Régulation de hauteur 47 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Version du docu- Date Notes


ment
v1.1 décembre 2001 (de tube.doc, F.Mudry)
v1.2 janvier 2002
v1.3 26 mars 2002 de tube_tele.tex
v1.4 15 décembre 2002 Kb
v1.5 janvier 2003 PD → PI
v1.6 9 mars 2004
v1.7 10 mars 2005
v1.8 29 janvier 2007 gure 5.1 page 42 et 5.2 page 43

Table 5.1  Versions publiées

Régulation de hauteur 48 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Bibliographie

[1] F. Mudry : Modélisation d'une Sustentation Magnétique , HEIG-VD-iAi, avril


2001
[2] Computer controlled systems, K. Åstrom, B.Wittenmark, 1990, Prentice-
Hall, bibliothèque HEIG-VD 40.122-03
[3] System Identication, Theory for the User, Lennart Ljung, Prentice-Hall
information and system sciences series, Thomas Kailath Editor, 1987, bi-
bliothèque HEIG-VD 40.162-27/02
[4] Modeling of Dynamic Systems, Lennart Ljung & Torkel Glad, Prentice-Hall
information and system sciences series, Thomas Kailath Editor, 1994, biblio-
thèque HEIG-VD 40.162-32
[5] Identikation dynamischer Systeme, Rolf Iserman, Band I & II, Springer-
Verlag, 1988, bibliothèque HEIG-VD 40.162-25/01 et 40.162-26/01
[6] Régulation numérique, Michel Etique, cours polycopié de
l'école d'ingénieurs du canton de Vaud (HEIG-VD), 2006,
http://www.iai.heig-vd.ch/~mee//Regulation_numerique_REN.htm

v.1.4 49 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

v.1.4 50 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

Version du docu- Date Notes


ment
v1.0 16 juin 2004 à partir de dsp_exercice.pdf
v1.1 3 janvier 2005
v1.2 10 mars 2005
v1.3 10 octobre 2005
v1.4 5 novembre 2008

Table 5.2  Versions publiées

v.1.4 51 MEE \labo_rn.tex


6 novembre 2008
HEIG-VD Laboratoire de régulation numérique

v.1.4 52 MEE \labo_rn.tex


6 novembre 2008