4-1/Contrôle du niveau d'eau

Comment implémenter ce régulateur dans le demos sltankrule

On peut construire ce régulateur à l’aide des interfaces graphiques proposées par la Fuzzy Logic Toolbox ; pour y accéder on tapera fuzzy à partir de l’environnement MATLAB; Le Fis Editor apparaît et nous permet alors d’accéder aux autres interfaces, on procède alors comme suit :

Avec le Fis Editor On a définit les entrées; Le niveau Level et sa dérivé rate; On définit ensuite la sortie commande de la valve: valve, en choisissant les options add input et add output du menu Edit.

 

Le menu view permet de passer d’une interface graphique à une autre. On définit ensuite les ensembles flous et les fonctions d’appartenances de l’entrée level en utilisant l’option add mfs du menu édit. On précisera alors le type de ces fonctions : gaussiènnes et l’intervalle sur le quel varie cette entrée.

 

On fait de même pour l’entrée variation de niveau: rate et on s’intéressera au petites variations.

 

On définit ensuite les fonctions d’appartenances de la sortie valve selon la commande qu’on désire.

 

Sur le Rule Editor on définit les règles d’inférences liants les entrées et la sortie du régulateur. On définit à chaque fois la relation logique entre les deux entrées, ensuite on choisit la sortie qu’on va appliquer et on clique sur add rule.

 

Une fois les entrées sont définies, ainsi que la sortie et les règles, on enregistre notre système d’inférence (le régulateur flou crée) dans le workspace sous le nom tank.fis. Lors de la construction du modèle du système sur SIMULINK on utilisera le bloc Fuzzy Controller pour modéliser le régulateur flou. Et en cliquant sur ce bloc, on nous invite à préciser quel système d'inférences on va utiliser, On choisira alors le tank.fis. Une fois la simulation est lancée on peut voir la réponse du système sur le scope1. Les interfaces Rule Viewer et Surface Viewer s’activent avec la simulation.

Le rule viewer qui s’active pendant la simulation nous permet de voir la participation de chaque règle dans la commande ; il fera ensuite la moyenne pour déduire la commande valve.

 

Le graphique de la fonction : Valve = f(level, rate) est donné par le Surface Viewer, si on remarque bien il y a une asymétrie sur ce graphe ; elle est dûe à l’asymétrie de la sortie valve.