Vous êtes sur la page 1sur 7

GIND5439

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.

Gabriel Cormier

GIND5439
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:

G ( s) =

3
( s + 1)( s + 2)( s + 3)

En utilisant les mthodes classiques, on trouve que le contrleur PID idal a les
valeurs suivantes:
12
KP
KI
12
KD
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.

Gabriel Cormier

GIND5439

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:

1
3
1
y () = lim sR( s )G0 ( s ) = lim s
=
s

0
s ( s + 1)( s + 2)( s + 3) 2
s 0
La valeur finale est donc 0.5. Le contrleur devra donc avoir un gain de

Kc =

1
=2
y ( )

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

Gabriel Cormier

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

Gabriel Cormier

GIND5439
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
1.
2.
3.

utilises sont:
IF error is Negative THEN control is Negative
IF error is Zero THEN control is Zero
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.

Gabriel Cormier

GIND5439

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.

Gabriel Cormier

GIND5439

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.

Gabriel Cormier

Vous aimerez peut-être aussi