You are on page 1of 36

Ralisation dun T.P.

de rgulation thermique
(niveau BAC + 2)
en utilisant
lenvironnement MATLAB
pour la partie commande

Patrick BRUNET
Emile FERRERE

LTEG Henri BRISSON


25 Avenue Henri BRISSON
18108 VIERZON
 02 48 52 74 00
Sommaire
A. PRSENTATION DU SYSTME RGULER ..................................3
A.1. SCHMA DE PRINCIPE ............................................................................3
A.2. DONNES POUR LA MODLISATION DU SYSTME ...................................4
B. MODLISATION DU PROBLME AVEC MATLAB ........................5
B.1. PRSENTATION DE MATLAB................................................................5
B.2. CONSTRUCTION DU MODLE AVEC MATLAB.......................................6
B.2.1. Modlisation de la cuve....................................................................6
B.2.2. Modlisation du gradateur de puissance ..........................................7
B.2.3. vectorisation du contrleur.........................................................7
B.2.4. Prise en compte dune perturbation..................................................7
B.3. CONSTRUCTION DU CORRECTEUR FLOU .................................................8
B.3.1. Introduction la logique floue .........................................................8
B.3.2. Notion densemble flou.....................................................................8
B.3.3. Structure dun contrleur flou ........................................................ 10
B.3.3.1. Opration de fuzzification ......................................................... 10
B.3.3.2. Base de rgles dinfrence ................................................... 11
B.3.3.3. Mise en oeuvre de la base de rgles ........................................... 11
B.3.3.4. Dfuzzification .......................................................................... 12
B.3.3.5. Conclusion ................................................................................ 13
B.3.4. Utilisation de la boite outils Fuzzy logic ................................ 14
B.3.4.1. Oprations de fuzzification........................................................ 14
B.3.4.2. Sauvegarde du contrleur dans lespace de travail matlab ......... 15
B.4. RSULTATS DE SIMULATION ................................................................ 16
B.4.1. Rponse une consigne de temprature ......................................... 16
B.4.2. Rponse une perturbation en rgime tabli.................................. 17
C. RGULATION TEMPS REL DU SYSTME .................................. 18
C.1. PR-REQUIS LOGICIELS ........................................................................ 18
C.2. CARACTRISTIQUES DE LA CARTE DENTRES / SORTIES ..................... 19
C.3. MODIFICATION DU MODLE................................................................. 20
C.3.1. Insertion et paramtrage du bloc Analog Input .............................. 21
C.3.2. Insertion et paramtrage du bloc Analog Output............................ 22
C.3.3. Paramtrage des proprits des oscilloscopes................................ 23
C.4. GNRATION DU CODE ........................................................................ 24
C.5. EXCUTION DU CODE........................................................................... 28
Patrick BRUNET-Emile FERRERE Anne 2000-2001
1
Rgulation thermique sous Matlab

C.6. RSULTATS TEMPS REL ...................................................................... 32


C.6.1. Rponse une consigne de temprature ......................................... 32
C.6.2. Rponse une perturbation en rgime tabli.................................. 33
C.6.3. Rponse une modification de la consigne en cours de rgulation 34
D. CONCLUSION....................................................................................... 35

Patrick BRUNET-Emile FERRERE Anne 2000-2001


2
Rgulation thermique sous Matlab

A. Prsentation du systme rguler


A.1. Schma de principe

Cuve dont la
temprature est
rguler

sonde PT 100

220V/50Hz

Thermoplongeur
Bloc de puissance
gradipack

Le schma de principe ci-dessus reprsente le synoptique de la rgulation de temprature raliser

Fonctions gres
par lordinateur

*
+ E* uc Bloc de systme :
consigne Rgulateur puissance : cuve
C.N.A. GRADIPACK

-
*

chantillonnage Capteur :
sonde PT 100

et dont le schma fonctionnel est prcis ci-dessous :


Il sagit de rguler la temprature de leau dune cuve (seau dune contenance de quelques litres)
quipe dun thermoplongeur apportant lnergie calorifique. Une sonde de temprature (PT100)
permet de mesurer la temprature relle de leau. Il est bon de prvoir un brassage de leau dans la cuve
afin dhomogniser sa temprature.
La puissance nominale du thermoplongeur (1 kW) est module grce un bloc de puissance
GRADIPACK (dnomination commerciale). Il sagit dun ensemble de 2 thyristors monts tte-
bche (gradateur) permettant de faire varier la puissance lectrique dissipe par variation de langle de
retard lamorage des thyristors. Celle-ci est contrle par une tension de commande 0 -10V
continue (Ucom ) qui permet de faire varier la tension efficace (Ueff ) applique au thermoplongeur.
Le rle du micro-ordinateur sera de faire la mesure de la temprature de la cuve partir du signal
dlivr par la sonde PT100 et sa mise lchelle, de comparer cette valeur avec la temprature de
consigne, de traiter lcart entre ces 2 valeurs et de fournir une tension de commande utile pour le
GRADIPACK . Tout cela ncessite la mise en oeuvre dune carte dentres-sorties analogiques.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


3
Rgulation thermique sous Matlab

A.2. Donnes pour la modlisation du systme


Cuve chauffer :
On supposera que la capacit calorifique de la cuve chauffer se rduit leau quelle contient. En
prenant un volume de 3 litres, on obtient :
C = m.c = 3 * 4.18 E 3 1.25 E 4 JK 1
Contrle du thermoplongeur :
Ueff

230 V

Ucom
0.5 V 8.5 V

La figure ci-dessus donne la modlisation du fonctionnement du GRADIPACK . La tension


efficace applique au thermoplongeur passe de 0 230V si la tension de commande volue de 0.5V
8.5V. On pourra donc crire :
230
U eff = .(U com 0.5)
8
(U )
eff
2

La puissance de chauffe sera donne par : P = PN . , soit en tenant compte de lexpression


(U N )2
prcdente :
PN
P= 2
(U com 0.5)2 = 15.6(U com 0.5) (en Watts).
2

8
Evaluation des pertes thermiques :

Les pertes thermiques peuvent se mettre sous la forme Pth = K .( ext ) (Loi de FOURIER).
Lexprience montre quelles sont faibles. On les estimera 50 W pour un = 25C. Do
1
K = 2WK
Bilan de puissance sur la cuve :
La puissance fournie par le thermoplongeur : PT, sert lever la temprature de leau et participe
aux pertes soit :
d ( ini )
PT = C. + K .( ext )
dt
avec : temprature de leau
ini : temprature initiale de leau
ext : temprature extrieure la cuve

Patrick BRUNET-Emile FERRERE Anne 2000-2001


4
Rgulation thermique sous Matlab

B. Modlisation du problme avec MATLAB


B.1. Prsentation de MATLAB
MATLAB est le noyau dur dun logiciel de mathmatiques spcialement tudi pour traiter
des matrices. Un langage de programmation spcifique permet de faire des manipulations sur des matrices
et toutes sortes de calculs et de prsentation graphique de ces calculs.
Diffrentes boites outils peuvent y tre adjointes pour simuler le comportement de systmes
linaires ou non. Dans ce cas, il nest pas ncessaire dutiliser le langage de programmation car une
interface graphique permet davoir accs de faon intuitive des schmas ralisant une fonction
particulire.
Plusieurs dentre elles sont ddies ltude de lautomatique. La plus importante est
SIMULINK. Ce module permet de construire des schmas fonctionnels partir dlments contenus dans
des bibliothques quil suffit de draguer avec la souris pour les dposer sur la feuille de travail et
construire son systme :
 la bibliothque source fournit des chelons, des GBF, etc
 les bibliothques continu et discret proposent des drivateurs, des intgrateurs, des
fonctions de transfert pour construire des systmes temps continu ou chantillonn (discret),
 la bibliothque math fournit des gains, des multiplicateurs, des sommateurs,
 on trouve galement des multiplexeurs pour vectoriser des signaux ainsi que des
oscilloscopes pour visualiser les rsultats de modlisation.
Le module CONTROL SYSTEM TOOLBOX fournit des outils danalyse des sytmes (Bode, etc )
Le module FUZZY LOGIC TOOLBOX permet de gnrer des blocs utilisant la logique floue.
On dveloppera particulirement dans la suite de cet article la mthode permettant
dlaborer un correcteur flou aprs avoir donn les lments ncessaires la comprhension.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


5
Rgulation thermique sous Matlab

B.2. Construction du modle avec MATLAB


Le schma fonctionnel ci dessous prsente la modlisation du systme tudier partir des
lments de base dcrits plus haut. On peut y reconnatre :
 des chelons,
 des sommateurs,
 un produit,
 des oscilloscopes,
 un intgrateur,
 des multiplexeurs,

B.2.1. Modlisation de la cuve


En reprenant le bilan de puissance sur la cuve, il vient en utilisant la notation de Laplace :
PT = C. p( ini )+ K ( ext ) PT K ( ext ) = C. p( ini )
( ini )= [PT K ( ext )] 1 = ini +
1
[PT K ( ext )]
C. p C. p
Ce qui se traduit par le schma simulink ci dessous :

Patrick BRUNET-Emile FERRERE Anne 2000-2001


6
Rgulation thermique sous Matlab

B.2.2. Modlisation du gradateur de puissance


Rappelons la relation donnant la puissance de chauffe en fonction de la tension de commande
P
P = N2 (U com 0.5) = 15.6(U com 0.5)
2 2

La saturation permet de limiter la tension de commande la plage 0.5V-8.5V et le bloc produit


permet de faire llvation au carr.
B.2.3. vectorisation du contrleur

1
Loprateur retard est un oprateur chantillonn, sa sortie est mise jour toutes les 5
z
secondes. Il permet de mmoriser la valeur de lerreur linstant t-1 . Ainsi, le circuit de diffrence
permet dobtenir la variation de lerreur entre 2 instants dchantillonnage. Le contrleur sera donc
sensible lerreur de temprature et sa variation.
B.2.4. Prise en compte dune perturbation
La perturbation pourra tre simule par un crneau de puissance ngatif limit dans le temps (et
dcal par rapport au dbut de la simulation) traduisant un apport deau froide par exemple.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


7
Rgulation thermique sous Matlab

B.3. Construction du correcteur flou


B.3.1. Introduction la logique floue
Si les processus commands sont linaires, (cest--dire lorsque les grandeurs de sortie sont relies
aux grandeurs dentre par des quations diffrentielles linaires) ils peuvent tre alors modliss par un
modle mathmatique (fonction de transfert en p pour les systmes temps continu ou en z pour
les systmes temps chantillonns). Le concepteur devra alors calculer les valeurs des paramtres de
rglage du rgulateur (gain, dures dintgration et de drivation) pour satisfaire aux exigences dun
cahier des charges (temps de monte, dpassement). Le systme rgul sera correct sil est peu sensible
aux perturbations (on dira alors quil est robuste).
Certains processus sont par nature difficilement modlisables (thermique, chimique), variables
dans le temps ou encore ne peuvent tre correctement reprsents par un modle linaire. Dans ce cas, les
paramtres de rglage du rgulateur ne seront pas optimaux et le systme pourra ne pas tre correctement
contrl.
Dans une approche logique floue , on ne se proccupe pas dune modlisation mathmatique
du processus mais, par contre, on suppose le processus non rgul bien connu par un oprateur humain,
lobjectif est toutefois de lautomatiser. On parle alors de connaissance par un expert qui sait ce quil
faut faire pour que a marche dans tous les cas de figure. Par exemple : si la temprature est trs basse,
je chauffe "plein pot" jusqu telle valeur, ensuite je rduis de 50 % si le four est plein ou de 75% si le
four est moiti plein car jai remarqu que cest un bon choix : cest lexpertise .
On se propose dans la suite de dtailler les tapes permettant, partir des donnes fournies par
un ou plusieurs capteurs, dlaborer un signal de commande comprhensible par une interface de
puissance (0-10V par exemple).
B.3.2. Notion densemble flou
Un problme de vocabulaire se pose pour le mot flou (fuzzy en anglais qui signifie vague, confus).
Cela ne doit pas tre interprt comme on va le voir par un ptet ben quoui, ptet ben qunon ! En
aucun cas il ne sagit dun manque dinformation pour une dcision prendre, mais dune reprsentation
qui prend en compte lincertitude que lon a du modle.
La notion densemble flou a t introduite par L.A. ZADEH en 1965. Une thorie des ensembles
flous permet de dfinir toutes les oprations classiques (conjonction, disjonction, etc.). Elle englobe la
thorie des ensembles classiques.
La figure ci-dessous reprsente la plage de variation dun capteur (de temprature par exemple).
Le signal de sortie peut varier de 0 10V, mais on constate qu partir de 9 V se produit une saturation.
On va dcider de partitionner la plage de variation utile (0-9V) en 3 zones qui seront dnommes : petite
(0-3V), moyenne (3V 6V), et grande (6V 9V).
: degr dappartenance

petite moyenne grande


1

tension issue du capteur


0
3V 6V 9V

Patrick BRUNET-Emile FERRERE Anne 2000-2001


8
Rgulation thermique sous Matlab

Si la tension est de 2V, elle est alors dans la classe petite et bien sr ni moyenne ni
grande . Le degr dappartenance de la valeur 2V la classe petite est de 1 et 0 pour les 2 autres.
On retrouve l une logique binaire o ltat dun comparateur ne peut tre que 0 ou 1 .
linconvnient de cette reprsentation est que la valeur 2.95V appartient la classe petite alors que la
valeur 3.05V appartient la classe moyenne et pourtant les valeurs sont proches. Ceci est d la
dfinition des 3 sous-ensembles classiques petite , moyenne e t grande qui ont une
frontire nette do cette discontinuit. Si le rsultat de la mesure est lgrement bruit (cas trs
frquent videmment), on pourra basculer dun cot lautre de la frontire .
La notion de sous-ensemble flou permet dviter cette discontinuit brutale. Cette opration
sappelle la fuzzification . La sortie du capteur est appele variable linguistique puisquelle
pourra prendre les valeurs linguistiques petite , moyenne ou grande , mais on va modifier
comme indiqu ci-dessous les frontires entre ces valeurs linguistiques, cest--dire les formes des
fonctions dappartenance.
: degr dappartenance

petite moyenne grande


1
0.8

0.2 tension issue du capteur


0
1.5V 3V 4.5V 6V 7.5V 9V

Reprsentation des degrs dappartenance avec 3 ensembles flous

Dans cette reprsentation la valeur de tension 2V sera la fois petite et moyenne ; de plus,
on va prciser de combien. On dfinit alors un degr dappartenance chacune de ces classes :
petite = 0.8 et moyenne = 0.2
On peut dire que lordre de grandeur de la tension issue du capteur est pris en compte par les
valeurs linguistiques, puis la valeur prcise est contenue dans les degrs dappartenance (on parle aussi de
mesure dappartenance ou de degr de certitude).
Remarques :
 Les profils des frontires peuvent tre varis : triangle, trapze, sigmode, courbe de Gauss, etc.
 Il ny a rien de flou dans cette reprsentation, une mme mesure peut appartenir plusieurs
classes avec un degr dappartenance prcis dans chaque classe.
 La valeur de la tension issue du capteur est ici considre comme prcise comme en
automatique classique (on lappelle singleton).
 Cest le rle de lexpert que de dfinir les valeurs linguistiques de la variable.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


9
Rgulation thermique sous Matlab

B.3.3. Structure dun contrleur flou


B.3.3.1. Opration de fuzzification
La grandeur dentre du contrleur doit dabord tre fuzzifie, cest--dire que lon va fixer les
valeurs linguistiques ainsi que la forme des fonctions dappartenance. Cette opration doit tre faite
galement sur la variable de sortie. Bien sr cette sortie fuzzifie nest pas exploitable pour attaquer
linterface de puissance. Il faudra donc avoir en tte de faire une opration de dfuzzification pour
rsoudre ce problme.
On va prendre un exemple o lon va fuzzifier lerreur (note e), entre du rgulateur, mais aussi
la variation de lerreur (note e) et la sortie (note s). Les valeurs de e de e sont mises jour chaque
priode dchantillonnage. On passe pour cela par un convertisseur analogique numrique.

erreur : e : degr dappartenance

grande - moyenne - petite moyenne + grande +

0.8

variable : e
0.2

-9 -7.5 -4.5 -1.5 0 1.5 4.5 7.5 9

2V

variation de
lerreur : e : degr dappartenance

grande - moyenne - petite moyenne + grande +

0.6

variable : e
0.4

-9 -7.5 -4.5 -1.5 0 1.5 4.5 7.5 9

2.2V

: degr dappartenance
sortie : s
petite moyenne grande
1

varaible : s

0
1.5V 3V 4.5V 6V 7.5V 9V

Fuzzification des 2 variables dentre et de la variable de sortie

Lentre e a t partitionne en 5 valeurs linguistiques ainsi que e. Elles peuvent tre positives
ou ngatives.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


10
Rgulation thermique sous Matlab

La sortie s a t partitionne en 3 valeurs linguistiques ; elle pourra ntre que positive (cas de la
figure) dans le cas o la partie puissance est commande par une tension (0, 10V) par exemple.
On a gradu les axes donnant la variation des variables en Volt pour faciliter la comprhension,
mais en pratique les tests seront faits sur les valeurs chantillonnes des entres (on passe par un C.A.N.)
B.3.3.2. Base de rgles dinfrence
Le rle de lexpert est ici prsent car cest lui qui va fixer les rgles de la commande qui vont
porter uniquement sur les valeurs linguistiques des variables.
Soit par exemple la liste de rgles suivantes (qui rsultent de la connaissance de lexpert) :
-R1 : SI (e) est petite ET (e) est petite ALORS (s) est petite
-R2 : SI (e) est petite ET (e) est moyenne + ALORS (s) est petite
-R3 : SI (e) est moyenne + ET (e) est petite ALORS (s) est petite
-R4 : SI (e) est moyenne + ET (e) est moyenne + ALORS (s) est moyenne
-R5 : SI (e) est grande + ET (e) est moyenne + ALORS (s) est moyenne
- ....
Le tableau ci-dessous reprsente la base de rgles en donnant les valeurs de la sortie pour les
diffrentes valeurs linguistiques de e et e :

e e grande - moyenne - petite moyenne + grande +


grande - ... ... ...
moyenne - ... ... ...
petite ... ... (R1) s : petite (R3) s : petite ...
moyenne + ... ... (R2) s : petite (R4) s:moyenne (R5) s:moyenne
grande + ... ... ...
Remarques :
 SI (e) est petite : constitue une prmisse de la rgle
 ET : est appel oprateur de conjonction
 ALORS (s) est petite : est appel implication (conclusion) de la rgle
 La liste des rgles est appele base dinfrence (infrence : opration logique par laquelle on
admet une proposition en vertu de sa liaison avec dautres propositions tenues pour vraies :
Nouveau Petit Robert). On parle aussi de moteur dinfrence. Il nest pas ncessaire que toutes
les cases du tableau soient remplies.
 On peut trouver les rgles nonces critiquables, elles ne sont donnes qu titre dexemples et
doivent tre adaptes en fonction de chaque processus.
B.3.3.3. Mise en oeuvre de la base de rgles
Supposons qu un instant t on ait : e = 2 V et e = 2.2 V
Ces valeurs vont constituer des faits et ce titre activer la base de rgles. Il est facile de voir
partir de la figure donnant la fuzzification de e et e que les rgles R 1, R2 , R3 , R4 vont tre actives
puisque e et e sont la fois petite et moyenne + (partie la plus grise du tableau). Il sagit ici des
valeurs linguistiques des variables.
Mais lexamen des figures montre aussi que lon peut en dduire les degrs dappartenance
chacune de ces classes.
Pour e on a petite = 0.8 et moyenne + = 0.2
Pour e on a petite = 0.6 et moyenne + = 0.4
Patrick BRUNET-Emile FERRERE Anne 2000-2001
11
Rgulation thermique sous Matlab

On va donc tudier maintenant le rle de chaque rgle active et voir concrtement comment on
traduit les oprations de conjonction (ET) et dimplication (ALORS).
Pour traduire le ET (cest--dire la conjonction des prmisses), on peut utiliser la fonction MIN :
on prendra la valeur minimale des 2 degrs dappartenance des prmisses. La signification
physique de ce choix est de conserver linformation la plus sre.
Le rsultat est un nouveau degr dappartenance au sous ensemble flou de la sortie.
Ainsi pour R1, on a :
le MIN de 0.8 et 0.6 est 0.6, donc pour (s) : petite = 0.6
On fait ensuite la mme chose pour toutes les rgles actives et on obtient les rsultats suivants
pour la variable linguistique de sortie (s) :
Pour R1 : petite = 0.6
Pour R2 : petite = 0.4
Pour R3 : petite = 0.2
Pour R 4 : moyenne =
0.2
Lopration nest pas termine car les 4 rgles tant actives en mme temps, il faut faire ce que
lon appelle lagrgation des rgles (lassemblage)
Les rgles R1, R2 et R3 concernent la mme valeur linguistique petite de la variable de sortie
alors que R 4 porte sur la valeur moyenne . On utilise ici loprateur MAX, cest--dire que pour
chaque valeur linguistique de sortie concerne on va prendre la valeur maximum des degrs
dappartenance.
Le rsultat de lagrgation des rgles donne donc la variable s petite avec un degr
dappartenance de 0.6 en mme temps que moyenne avec un degr dappartenance de 0.2.
A ce stade, on a donc la sortie dfinie sous forme linguistique avec des degrs dappartenance
prcis. Il faut maintenant passer une grandeur qui, elle, sera interprtable par linterface de commande.
B.3.3.4. Dfuzzification
: degr dappartenance
sortie : s
petite moyenne grande
valeur de la 1
commande

0.6

0.2 variable : s
0
1.5V 3V 4.5V 6V 7.5V 9V

La figure ci-dessus indique comment on interprte lagrgation des rgles. Le sous ensemble
petite est limit par le degr dappartenance 0.6 et le sous ensemble moyenne par 0.2 (on prend
le MIN entre la fonction dappartenance de la valeur linguistique de la sortie concerne et le trouv par
lagrgation des rgles). On obtient ainsi toute la surface grise. Pour obtenir le signal de commande
envoyer linterface, on utilise le plus souvent la rgle du centre de masse cest--dire que lon
calcule le barycentre de la surface pour obtenir la valeur de la commande.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


12
Rgulation thermique sous Matlab

B.3.3.5. Conclusion
CAN
consigne ajustement des chelles Base de rg-
les en ROM

+
e
CAN
Fuzzification
CAN sortie
d/dt Moteur
retour - dinfrence Dfuzzification
e
en RAM
Fuzzification

Les grandeurs relles consigne et retour sont numrises avec ces convertisseurs AN puis
lerreur (ventuellement la variation de lerreur) est fuzzifie. La base de rgles qui sera stocke en
ROM sera active et le moteur dinfrence permettra dlaborer une sortie qui sera ensuite dfuzzifie et
convertie en signal analogique.
On peut constater que dans son principe mme le contrleur logique floue nest pas
linaire.
En effet lactivation des rgles dinfrence nest pas un processus linaire pas plus que la
traduction mathmatique que lon en donne (algorithme MAX MIN).
On a utilis ici lalgorithme MIN MAX (MIN pour la conjonction des prmisses et limplication
des rgles, MAX pour lagrgation des rgles). Mais, il existe dautres possibilits : on peut par exemple
utiliser lalgorithme PROD MAX (PROD pour la conjonction des prmisses et limplication des rgles,
MAX pour lagrgation des rgles) cest--dire que lon fait le produit des degrs dappartenance obtenu
avec chaque rgle pour dfinir le degr dappartenance pour la sortie.
Il existe un autre type de contrleur flou dit de type SUGENO. Les prmisses des rgles sont aussi
linguistiques mais les conclusions sont labores directement sous une forme polynomiale avec des
coefficients dfinis lavance. Lavantage de ce type de rgulateur est quil est possible dintroduire des
algorithmes dapprentissage pour adapter les coefficients. Cest ainsi quil existe des contrleurs flous
adaptatifs. La technologie des rseaux de neurones peut tre utilise pour lapprentissage.

Bibliographie : Universit dt du 8 au 12 Juillet 1996 organise par lIUP du littoral Calais


(Universit du littoral)
La logique floue de Jean-Raphael Tong Tong (Editions HERMES)
La logique floue de B Bouchon-Meunier (Que sais-je)
Le contrle flou de Bhler (ditions E.P.R.)
Fuzzylogic toolbox (documentation du logiciel MATLAB)

Patrick BRUNET-Emile FERRERE Anne 2000-2001


13
Rgulation thermique sous Matlab

B.3.4. Utilisation de la boite outils Fuzzy logic


On commence par taper fuzzy linvite de la fentre de commande de MATLAB : >> ce qui
lance lditeur de contrleur flou : Fis Editor
B.3.4.1. Oprations de fuzzification

tape 1
La commande Edit permettra de choisir le nombre dentres-sorties (2 entres et 1 sortie dans
notre application). On pourra renommer loisir ces diffrentes variables.
tape 2
Double-cliquer sur chaque variable dentre ou de sortie pour dfinir les valeurs linguistiques et la
forme des fonctions dappartenance. Pour cela utiliser dans le nouveau menu Edit la commande
Add MFs, ce qui signifie ajouter des fonctions dappartenance. On pourra choisir des fonctions
triangulaires [trimf], trapzodales [trapmf], etc

Patrick BRUNET-Emile FERRERE Anne 2000-2001


14
Rgulation thermique sous Matlab

tape 3
Double-cliquer sur le bloc central (mandani) pour entrer les rgles dinfrences choisies.

tape 4
Pour visualiser le comportement du contrleur ainsi cr, on pourra utiliser dans le menu View, la
commande View rules. Il est alors possible de fixer les valeurs des variables dentres, de voir quelles
sont les rgles dinfrences actives et de lire la valeur de la tension de commande correspondante.
B.3.4.2. Sauvegarde du contrleur dans lespace de travail matlab
Pour que le contrleur ainsi cr soit disponible dans un modle simulink, il faut quil soit
sauvegard dans lespace de travail. Pour cela dans le menu File, utiliser loption Save to workspace.
Ainsi, son contenu sera mis dans un fichier de type *.fis (chauff3.fis dans lexemple ci-dessus) auquel
il sera fait appel dans simulink.
Pour incorporer le correcteur flou dans son propre modle simulink, le plus simple est den copier
un partir dune dmo de MATLAB. Ensuite, on double-cliquera sur le modle en entrant dans la fentre
le nom du fichier (chauff3 comme indiqu prcdemment)

Le modle dfinitif est (enfin !) prt fonctionner.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


15
Rgulation thermique sous Matlab

B.4. Rsultats de simulation


B.4.1. Rponse une consigne de temprature
La consigne de temprature est rgle 30C alors que la temprature initiale est de 15C. Les
oscillogrammes ci-dessous donnent les volutions de la temprature, de la tension de commande du
gradipack, de lerreur et de la variation de lerreur.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


16
Rgulation thermique sous Matlab

B.4.2. Rponse une perturbation en rgime tabli


La consigne de temprature reste rgle 30C. Les oscillogrammes ci-dessous donnent les
volutions de la temprature, de la tension de commande du gradipack, de lerreur et de la variation de
lerreur lorsque lon perturbe le systme t = 500s.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


17
Rgulation thermique sous Matlab

C. Rgulation temps rel du systme


C.1. Pr-requis logiciels
Pour mener bien la rgulation de temprature en temps rel sous MATLAB, les botes outils et
le compilateur suivants doivent tre installs sur le micro-ordinateur :
 Matlab 6 (release 12)
 Simulink 4.0 (release 12)
 Real-Time Workshop 4.0
 Real-Time Windows Target 2.0
 Compilateur Watcom 11.0
De plus, diffrents fichiers sont ncessaires la cration du modle et sont tlchargeables sur le
site http://www.iufmrese.cict.fr/ dans larchive regul.zip :
Liste des fichiers inclus dans larchive :
 doslib.mdl
 fstlabad.c, fstlabad.h, fstlabad.tlc (sources du driver de la carte)
 fstlabda.c, fstlabda.h, fstlabda.tlc (sources du driver de la carte)
 drt_comp.h
 win_watc.tmf
 chauff3.fis (source du contrleur flou)
 regul_rt.mdl (modle simulink temps rel du systme)
Avant de modifier le modle prcdemment dcrit, plusieurs manipulations doivent tre
effectues, une fois tous les fichiers tlchargs :
 Extraire tous les fichiers de larchive dans un rpertoire temporaire
 Sauvegarder le fichier doslib.mdl original du rpertoire \matlabR12\toolbox\rtw\rtw sous un autre
nom ce qui permettra den garder une image en cas de fausse manuvre.
 Copier le fichier doslib.mdl tlcharg dans le rpertoire \matlabR12\toolbox\rtw\rtw
 Sauvegarder le fichier win_watc.tmf original du rpertoire :
matlabR12\toolbox\rtw\targets\rtwin\rtwin sous un autre nom
 Copier le fichier win_watc.tmf tlcharg dans le rpertoire :
\matlabR12\toolbox\rtw\targets\rtwin\rtwin
 Remplacer le fichier drt_comp.h du rpertoire \matlabR12\rtw\c\dos\devices par le fichier
tlcharg de mme nom
 Crer un rpertoire nomm fastlab dans le rpertoire \matlabR12\rtw\c\dos\devices
 Copier tous les sources du driver dans le rpertoire fastlab
 Copier le fichier fis.c qui se trouve dans le rpertoire \matlabR12\toolbox\fuzzy\fuzzy dans le
rpertoire \matlabR12\toolbox\fuzzy\fuzzy\src
 Copier les fichiers regul_rt.mdl et chauff3.fis dans le rpertoire de travail de Matlab
\matlabr12\work

Patrick BRUNET-Emile FERRERE Anne 2000-2001


18
Rgulation thermique sous Matlab

C.2. Caractristiques de la carte dentres / sorties


Pour laborer la tension de commande du gradateur de puissance et pour rcuprer la temprature
mesure par la sonde PT100, il nous a fallu installer une carte dentres / sorties analogiques dans le
micro-ordinateur. La carte retenue pour le systme est une FASTLAB sur bus ISA du fabricant Eurosmart.
Cette carte possde de nombreuses fonctionnalits fort intressantes, mais dans ce document nous
ne verrons plus prcisment que les caractristiques techniques concernant les conversions
analogique / numrique et numrique / analogique.
Interface Analogique / Numrique :
 Voies dentre 8 simples ou 4 diffrentielles
 Rsolution 12 bits (4096 pts)
 Echelle dentre bipolaire 10 V max. gain 1
programmable
 Temps de conversion 1,25 s (800 kHz)
 Codage numrique Binaire naturel
 16 gains programmables 1, 2, 4, 8, 10, 20, 40, 80, 100, 200, 400, 800, 1000,
2000, 4000, 8000 V/V
Interface Numrique / Analogique :
 Voies de sortie bipolaire 2 indpendantes
 Rsolution 12 bits (4096 pts)
 Echelle de sortie bipolaire 10 V
 Temps de conversion 5 s max
 Codage numrique Binaire naturel

Patrick BRUNET-Emile FERRERE Anne 2000-2001


19
Rgulation thermique sous Matlab

C.3. Modification du modle


Pour la rgulation temps rel du systme, il faut modifier le modle simulink dcrit prcdemment
au paragraphe B.2 :
 en supprimant toute la partie modlisation du gradateur de puissance, de la cuve et de la
perturbation

 en rajoutant 2 blocs Sfunction permettant de piloter la carte FASTLAB, le gain du transmetteur


de la sonde PT100 (G=38.485)

Patrick BRUNET-Emile FERRERE Anne 2000-2001


20
Rgulation thermique sous Matlab

Les deux blocs Sfunction (Analog Input, Analog Output) correspondent au driver Matlab de la
carte FASTLAB, permettant de gnrer la tension de commande du Gradipack et de rcuprer la tension
dlivre par le transmetteur (image de la temprature de leau du bac).
Ce driver a t ralis en se basant sur lexemple du driver de la carte Keithley fourni avec les
botes outils de MATLAB (cf. Creating Device Drivers doc. Real-Time Workshop). Le driver nest
pas complet, tant donnes toutes les fonctionnalits de la carte (E/S logiques, Timer), mais la partie qui
concerne notre systme fonctionne.
Remarque : Le driver fonctionne sous Dos, Windows 9x, mais pas sous WinNT.
C.3.1. Insertion et paramtrage du bloc Analog Input
Dans le navigateur de simulink,
 Dvelopper larborescence Real-Time Workshop
 Dvelopper la sous-arborescence Eurosmart FASTLAB
 Slectionner le bloc Sfuntion Analog Input
Faire glisser le bloc slectionn dans le modle simulink regul_rt.mdl


Double-Cliquer sur le bloc Analog Input du modle regul_rt.mdl

Patrick BRUNET-Emile FERRERE Anne 2000-2001


21
Rgulation thermique sous Matlab

Configurer le driver en se rfrant limage suivante :

Adresse de base
de la carte E/S

Etendue de la plage
dentre en Volts

Gain en entre
(1.0 - 8000.0)

Numro de la voie
dentre (0 - 7)
Priode
dchantillonnage
Accs la carte
dentres / sorties

Valider par la touche OK


C.3.2. Insertion et paramtrage du bloc Analog Output
 Procder de mme pour linsertion du bloc Sfunction Analog Output
 Double-Cliquer sur le bloc Analog Output du modle regul_rt.mdl
 Configurer le driver en se rfrant limage suivante

Adresse de bas
de la carte E/S

Etendue de la plage
de sortie en Volts
Valeur de sorti
avant simulatio
en Volts
Valeur de sortie
aprs simulation
en Volts Numro de la vo
(channel 1 / chann

Priode
dchantillonna
Accs la carte
dentres / sorties

Valider par la touche OK

Patrick BRUNET-Emile FERRERE Anne 2000-2001


22
Rgulation thermique sous Matlab

C.3.3. Paramtrage des proprits des oscilloscopes


 Double-Cliquer un des blocs scope du modle regul_rt.mdl
 Cliquer sur le bouton Properties de la fentre scope

 Cliquer sur longlet General et configuer les paramtres du bloc scope suivant limage ci-dessous

Ne pas cocher
la case
Nombre de
graphes tracs
Echelle des temps
1000 s

Affichage en
continu

Cliquer sur le bouton OK pour confirmer



Recommencer les oprations prcdentes pour chaque bloc scope

Patrick BRUNET-Emile FERRERE Anne 2000-2001


23
Rgulation thermique sous Matlab

C.4. Gnration du code


Pour gnrer le programme excutable relatif au modle simulink regul_rt.mdl comportant le
contrleur flou, il est ncessaire de :
 Dfinir le compilateur par dfaut utilis par Matlab (Watcom 11.0)
 Entrer sur la ligne de commande Matlab : mex setup
 Appuyer sur les touches <y> et <Entre> afin que Matlab localise les diffrents compilateurs
installs sur le poste
 Saisir le numro correspondant au compilateur Watcom 11.0 et valider par la touche <Entre>
 Confirmer le choix du compilateur par les touches <y> et <Entre>

 Ajouter le chemin daccs aux fichiers du driver de la carte Fastlab la liste des
chemins daccs de Matlab
 Slectionner Set Path du menu File de la fentre Matlab
 Cliquer sur le bouton Add Folder

Patrick BRUNET-Emile FERRERE Anne 2000-2001


24
Rgulation thermique sous Matlab

 Dployer larborescence c:\matlabr12\rtw\c\dos\devices


 Slectionner le rpertoire Fastlab

 Valider par le bouton OK


 Sauvegarder la liste en appuyant sur le bouton Save de la bote de dialogue Set Path
 Fermer la bote de dialogue en appuyant sur le bouton Close
 Compiler les fichiers du driver de la carte Fastlab
 Se positionner dans le rpertoire o se trouvent les fichiers du driver de la carte Fastlab, en
tapant la commande cd c:\matlabr12\rtw\c\dos\devices\fastlab dans la fentre Matlab ou en
cliquant sur licne Browse for Folder dans la barre doutils

Patrick BRUNET-Emile FERRERE Anne 2000-2001


25
Rgulation thermique sous Matlab

 Compiler le fichier fstlabad.c en saisissant sur la ligne de commande Matlab : mex fstlabad.c
gnration du fichier fstlabad.dll
 Compiler le fichier fstlabda.c en saisissant sur la ligne de commande Matlab : mex fstlabda.c
gnration du fichier fstlabda.dll
Charger le contrleur flou dans lespace de travail de Matlab
 Se positionner dans le rpertoire o se trouvent les fichiers modles regul_rt.mdl et chauff3.fis,
en tapant la commande cd c:\matlabr12\work ou en utilisant le

 Entrer sur la ligne de commande Matlab : fuzzy chauff3


 Appuyer sur le bouton Close
 Appuyer sur le bouton Save to workspace

 Valider par le bouton OK



Configurer la page du module Real-Time Workshop
 Revenir la fentre simulink du modle, cliquer sur la rubrique Simulation parameters du
menu Simulation
 Cliquer sur longlet Real-Time Workshop
 Cliquer sur le bouton Browse

 Dans le navigateur des fichiers systmes cible, slectionner le fichier rtwin.tlc pour la
gnration de code dans le mode temps rel sous Windows

Patrick BRUNET-Emile FERRERE Anne 2000-2001


26
Rgulation thermique sous Matlab

 Cliquer sur le bouton OK


 Faire drouler la liste Category et slectionner la rubrique Real-Time Windows Target build
options

 Cocher les options External mode et Compiler optimizations


 Cliquer sur le bouton Apply
Configurer la page solver du module simulink
 Cliquer sur longlet Solver afin de dfinir les paramtres de simulation

Dure de simulation
de 1000 s
Echantillonnage
pas fixe
Systme
temps discret

priode
dchantillonnage
de 5 s

 Valider par le bouton OK


Patrick BRUNET-Emile FERRERE Anne 2000-2001
27
Rgulation thermique sous Matlab

Gnrer le code excutable de lapplication temps rel


 Dans le menu Tools de la fentre simulink, slectionner le sous-menu Real-Time Workshop
 Cliquer sur la rubrique Build Model

Real-Time Workshop gnre plusieurs fichiers sources, les compile et gnre le fichier binaire
regul_rt.rwd correspondant lapplication temps rel sous windows.
C.5. Excution du code
 Avant dexcuter lapplication temps rel sous windows, il faut vrifier que le noyau
temps rel de Matlab soit install.
 Entrer sur la ligne de commande Matlab : rtwho
Si le message suivant apparat, cela signifie que le noyau temps rel est install

 Sinon, installer le noyau temps rel en tapant la commande : rtwintgt install


 Redmarrer le micro-ordinateur pour que le noyau soit actif
 Ouvrir nouveau le modle regul_rt.mdl
 Cocher le mode External dans le menu Simulation de la fentre simulink, pour que le module
simulink sexcute dans le mode externe
 Pour visualiser les tracs des courbes en temps rel sur les blocs scope, ajouter les
paramtres de dclenchement
 Dans le menu Tools de la fentre simulink, cliquer sur External mode control panel

Patrick BRUNET-Emile FERRERE Anne 2000-2001


28
Rgulation thermique sous Matlab

La bote de dialogue External Mode Control Panel souvre :

 Cliquer sur le bouton Target interface et vrifier que le fichier rtwinext.dll soit bien entr

 Cliquer sur le bouton OK

Patrick BRUNET-Emile FERRERE Anne 2000-2001


29
Rgulation thermique sous Matlab

 Cliquer sur le bouton Signal & triggering


La bote de dialogue External Signal & Triggering souvre :

 Cocher la case Select all


 Slectionner manual dans la liste Source
 Slectionner normal dans la liste Mode
 Indiquer le nombre de points afficher (dure=1000 s, frquence chantillonnage = 1 Hz => 1000
dans le champ Duration
 Cocher la case Arm when connect to target
 Cliquer sur le bouton Apply pour que les nouveaux paramtres soient pris en compte
 Cliquer sur le bouton Close

Patrick BRUNET-Emile FERRERE Anne 2000-2001


30
Rgulation thermique sous Matlab

 Connecter le modle simulink regul_rt.mdl lapplication temps rel regul_rt.rwd,


en cliquant sur Connect to target du menu Simulation ou sur licne de la barre
doutils

Lapplication temps rel est charg en mmoire et communique avec le modle simulink.
Dmarrer la rgulation du systme en cliquant sur Start real-time code ou sur
licne de la barre doutils

Patrick BRUNET-Emile FERRERE Anne 2000-2001


31
Rgulation thermique sous Matlab

C.6. Rsultats temps rel


C.6.1. Rponse une consigne de temprature
Ces rsultats de mesure seront mis en parallle avec ceux obtenus en simulation (cf. paragraphe
B.4.1). Ils ont t raliss un jour de forte chaleur dans une salle non climatise (temprature ambiante
proche de 30C !).
La priode dchantillonnage a t fixe 5 s dans cet essai.

On peut noter que la dure de mise en temprature est assez proche de celle obtenue en simulation.
On note un lger dpassement de la consigne qui peut sexpliquer par le fait que le thermoplongeur
possde une inertie thermique et que les changes de chaleur ne sont pas instantans. La temprature
mettra donc du temps shomogniser et la sonde thermique ne donnera une information fiable que
lorsque cette homognisation aura eu lieu. Ces aspects nont pas t pris en compte dans la modlisation.
La consigne tant rgle 30C, soit trs proche de la temprature ambiante, aucun
refroidissement naturel ne pourra avoir lieu ce qui explique que la temprature atteinte reste stabilise
autour de 31 C.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


32
Rgulation thermique sous Matlab

C.6.2. Rponse une perturbation en rgime tabli


Ces rsultats seront compars ceux du paragraphe B.4.2. Ils ont t obtenus avec une priode
dchantillonnage de 1s. La perturbation consiste introduire une petite quantit de glace dans le seau ;
On constate la chute de la temprature puis sa remonte grce lapport de puissance thermique
du thermoplongeur comme latteste la tension de commande du Gradipack.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


33
Rgulation thermique sous Matlab

C.6.3. Rponse une modification de la consigne en cours de rgulation


Il est possible de modifier en temps rel la valeur de la consigne de temprature (comme dautres
paramtres du modle).
Cest ce que montre les 4 oscillogrammes ci-dessous.
La consigne est rgle 30 C pendant les 300 premires secondes puis porte 50 C. Enfin une
perturbation est introduite autour de 700 s.
On notera les mises en tempratures avec les volutions de la tension de commande du Gradipack
correspondantes.

Contrairement ce quil se passait avec une consigne de 30 C, lorsque celle celle-ci est porte
50 C, la temprature chute naturellement. En effet le diffrentiel de temprature entre leau et lambiante
(20 C environ) permet cette fois un refroidissement naturel. En consquence, on note la remise en action
du Gradipack qui permet la compensation des pertes.

Patrick BRUNET-Emile FERRERE Anne 2000-2001


34
Rgulation thermique sous Matlab

D. Conclusion
Lobjectif de cette contribution est de montrer la faisabilit dune application temps rel mettant
en uvre les outils de modlisation de MATLAB pour la partie commande . Dans cet article, cest un
contrleur flou qui a t implant, mais on pourrait tout aussi bien mettre en uvre un contrleur PID
plus classique.
On peut penser que les oprations pralables la gnration du code sont un peu lourdes. Un
dveloppement futur permettra de les rendre transparents pour un utilisateur non intress par cette partie.
Enfin dautres cartes dEntres / Sorties pourraient tre prises en compte.
Toutes les remarques propos de cette tude peuvent nous tre adresses :
patbrune@wanadoo.fr (Patrick BRUNET) ou ferrere.emile@wanadoo.fr (Emile FERRERE).

Patrick BRUNET-Emile FERRERE Anne 2000-2001


35