Vous êtes sur la page 1sur 7

GIND5439

Gabriel Cormier
Utilisation de la logique floue: contrleur en Simulink

Le dveloppement d'un contrleur en logique floue pour intgration dans Simulink est
trs simple si on possde la bote outils Fuzzy Logic de Matlab. Cette bote outils
ajoute les composantes ncessaires dans Simulink.

Ce guide sert seulement pour l'intgration de la logique floue dans Simulink; ce n'est
pas un guide sur le design de contrleurs PID.

Pour commencer Simulink, il suffit de taper la commande simulink la ligne de
commandes de Matlab. Le contrleur logique floue est situ sous les options Fuzzy
Logic Toolbox, comme montr la figure ci-dessous:



La composante Fuzzy Logic Controller est celle utilise. La composante Fuzzy Logic
Controller with Ruleviewer est presque la mme chose, sauf que l'diteur qui permet
de voir l'infrence et la dfuzzification s'ouvre lors d'une simulation.
GIND5439
Gabriel Cormier
Pour mieux illustrer le concept d'un contrleur flou, on comparera la performance d'un
contrleur PID classique avec le contrleur flou. Le systme sous tude est le suivant:
) 3 )( 2 )( 1 (
3
) (
+ + +
=
s s s
s G
En utilisant les mthodes classiques, on trouve que le contrleur PID idal a les
valeurs suivantes:
K
P
12
K
I
12
K
D
3
On utilisera la rponse une entre chelon du systme avec PID pour comparer la
performance.

Le systme avec contrleur flou et contrleur PID devrait tre le suivant:



Le design du contrleur flou se fait de la mme faon que tous les systmes flous avec
Matlab. On commence en tapant fuzzy la ligne de commande. On obtient alors le
FIS Editor de Matlab, montr la figure suivante.

Pour le systme simple sous tude, on utilise que l'erreur comme variable de contrle.
On a donc un systme trs simple, avec une entre, une sortie. Dans plusieurs
systmes flous, on utilise aussi la drive de l'erreur, et on obtient alors un systme
deux entres, une sortie.
GIND5439
Gabriel Cormier


Il faut utiliser un peu de jugement dans le design du contrleur flou. Il ne faut pas
simplement crer des fonctions d'appartenance de toute faon. Il faut quand mme
tudier le systme en dtail.

Une chose importante remarquer est la valeur finale du systme en boucle ouverte.
Ceci dterminera la sortie du contrleur quand l'erreur est nulle. Pour le systme sous
tude, la valeur finale due une entre chelon unitaire est:
2
1
) 3 )( 2 )( 1 (
3 1
lim ) ( ) ( lim ) (
0
0
0
=
+ + +
= =

s s s s
s s G s sR y
s
s

La valeur finale est donc 0.5. Le contrleur devra donc avoir un gain de
2
) (
1
=

=
y
K
c

C'est--dire que le gain du contrleur flou lorsque l'erreur (l'entre) est 0 est 2.

Il faut aussi bien choisir les limites du systme (limites de l'entre et de la sortie).
Dans ce cas-ci, l'entre utilise est une entre chelon unitaire. On choisit donc de
dvelopper les fonctions d'appartenance du contrleur flou pour l'entre entre -1 et
+1.

On a choisit que 3 valeurs linguistiques possibles, soit Negative, Zero et Positive. Il est
gnralement plus facile de commencer avec un nombre restreint de valeurs
GIND5439
Gabriel Cormier
linguistiques possibles, pour simplifier le design initial. Par aprs, si la prcision
demande est plus grande, on peut ajouter des valeurs linguistiques.



On choisit aussi 3 valeurs linguistiques pour la sortie, soit Negative, Zero et Positive.

GIND5439
Gabriel Cormier
Remarquez que l'intervalle de la sortie est de -7.5 +10. Le signal de sortie peut tre
bien plus grand que le signal d'entre afin de rapidement corriger l'erreur. Cependant,
si le signal de contrle est trop lev, il y aura un plus grand dpassement.

Les rgles utilises sont:
1. IF error is Negative THEN control is Negative
2. IF error is Zero THEN control is Zero
3. IF error is Positive THEN control is Positive

On peut vrifier que le signal de contrle est +2 lorsque l'erreur est 0:


Il faut sauvegarder le systme flou dans l'espace de travail afin de pouvoir l'utiliser
dans Simulink.

On choisit l'option File Save to workspace, ou CTRL+T.

GIND5439
Gabriel Cormier


On peut maintenant utiliser le contrleur flou dans Simulink. Aller sur l'icne Fuzzy
Logic Controller dans la fentre Simulink, et double-cliquez dessus. Vous devriez
avoir:

Entrez le nom du fichier (dans ce cas-ci, FuzzyPIDc).

Il ne reste qu' simuler le systme et comparer avec le PID.

GIND5439
Gabriel Cormier


La courbe en violet reprsente le PID, et la courbe en jaune le contrleur flou. Les
deux contrleurs ont le mme temps de stabilisation, mais le contrleur flou a un plus
petit dpassement maximal.

On pourrait encore modifier les fonctions d'appartenance du contrleur flou pour
obtenir une meilleur performance.

Vous aimerez peut-être aussi