Вы находитесь на странице: 1из 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

Вам также может понравиться