TP Ai

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 11

Travaux pratiques

Intelligence artificielle

Présenté par : AIT SALAH Massinissa

Le 26/01/2015

Responsable
Mr : Zhongliang li

Master énergie électrique EEI


Université de Franche-Comté (UFR-STGI)
UFR STGI - Département des Sciences Louis Néel.
TP1 : Logique Floue
1)-le but de ce TP
Réaliser la régulation de vitesse d’une machine synchrone a aimant permanents au moyen d’un
contrôleur flou de type proportionnel -intégral (PI).pour ce faire, la boite à outils « Fuzzy
logique »de Matlab sera utilisée. Le contrôleur flou ainsi développé sera ensuite implanté sous
Simulink pour réaliser la régulation de vitesse proposée.

2)-Introduction de la logique floue


L’intérêt de la logique floue réside dans sa capacité à traiter, l’imprécis, l’incertitude et le vague.
Elle est issue de la capacité de l’homme à décider et agir de façon pertinente malgré le flou des
connaissances disponibles et a été introduite dans le but d’approcher le raisonnement humain à
l’aide d’une représentation adéquate des connaissances. Aussi, le succès de la commande floue
trouve en grande partie son origine dans sa capacité à traduire une stratégie de contrôle d’un
opérateur qualifié en un ensemble de règles linguistiques « si … alors » facilement
interprétables.
L’utilisation de la commande floue est particulièrement intéressante lorsqu’on ne dispose pas
de modèle mathématique précis du processus à commander ou lorsque ce dernier présente de
trop fortes non linéarités ou imprécisions.

3)-les concepts
 S’appuie sur le degré d’appartenance d'un élément à un sous-ensemble flou. Tandis que
les ensembles traditionnels sont caractérisés par une fonction d'appartenance. Pour
notre cas il est entre -1 et +1(pour avoir un comportement identique dans les deux sens
de rotation du moteur).
 Le contrôleur floue retenu est de type PI et de type sugeno. on choisira deux entrées(e
(erreur entre la vitesse de consigne et la vitesse mesurée, de (variation de cette erreur
entre 2 instants d’échantillonnage).
 Pour chacun des entrées et sortie, on utilisera 7 fonctions d’appartenance triangulaire
(pour les entrées et singletons (pour la sortie), il y aura donc 49 règles floues à définir.

4)-Création du contrôleur flou


 Le type de contrôleur (sugeno) avec 2 entrées ajouté au contrôleur et les 7 fonctions
d’appartenance choisie pour chaque entrée.

1
 les fonctions d’appartenances pour les entries et les le nombre de singleton de sortie

 les 49 regles floues ajouter au contolleur floue


Sont mentionné par ce tableau suivant

e
NB NS NVS Z PVS PS PB
de
NB NB NB NB NB NS NVS Z

NS NB NB NB NS NVS Z PVS

NVS NB NB NS NVS Z PVS PS


Z
NB NS NVS Z PVS PS PB
PVS NS NVS Z PVS PS PB PB
PS NVS Z PVS PS PB PB PB
PB Z PVS PS PB PB PB PB
Pour ajouter ces règles au contrôleur floue

2
 visualisation la forme de la sortie de contrôleur floue :

 on va intégrer le contrôleur floue to workspace de Matlab, pour réaliser la régulation


de vitesse de la machine synchrone a aimants permanents.

5)-Intégration du contrôleur flou sous Simulink


On va ajouter les facteurs de normalisation et de dénormalisation en sortie et les saturations
pour définir la sortie de de notre contrôleur floue dans la plage -1 et 1.

6)-premier test de contrôleur floue


 la forme de la vitesse obtenue en sortie

3
 la valeur de critère IAE obtenu

4
7)-modification de contrôleur flou

5
On constate d’après les changements effectuer sur les fonctions d’appartenances dans les
figures ci-dessus et les facteurs de normalisation et de de normalisation choisies que le critère
IAE diminue (l’écart entre la vitesse de référence et celle mesurer).
L’action sur Ces facteurs de normalisation est souvent préférée à une action globale sur les
fonctions d’appartenance.

8)-Conclusion
Dans ce TP nous avons peut faire la prise en main avec le contrôleur floue de type
sugeno qui va réguler l’erreur et variation d’erreurs selon les fonctions d’appartenances
Nous avons mais la matrice d’inférence pour définir les sorties selon les règles et
conditions.
Nous avons intégré notre contrôleur flou sous Simulink pour voir la réponse en vitesse
de la machine électrique.
Nous avons constaté que on effectuant des réglages sur le CF cela nous permet
d’améliorer le critère IAE.

6
TP2 : Algorithme génétique
1)-le but de ce TP
Familiariser avec la programmation et l’utilisation des algorithmes génétiques pour
l’optimisation.
Dans notre cas de figure, nous nous intéressons à un cas d’école très simple : à savoir un sinus
cardinal en trois dimensions, évoluant pour x et y entre -5 et+5 et pour l’ordonnée entre -0.5 et
+1.

2)-Introduction sur l’algorithme génétique


Les algorithmes génétiques appartiennent à la famille des algorithmes évolutionnistes. Leur but
est d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il n'existe pas de
méthode exacte (ou que la solution est inconnue) pour le résoudre en un temps raisonnable. Les
algorithmes génétiques utilisent la notion de sélection naturelle et l'appliquent à une population
de solutions potentielles au problème donné. La solution est approchée par « bonds » successifs,
comme dans une procédure de séparation et évaluation, à ceci près que ce sont des formules
qui sont recherchées et non plus directement des valeurs. Les étapes de l’algorithme sont
données par ce schéma récapitulatif.

7
3)-Codage de l’algorithme
3)-1)-écrire la fonction sinc3D.m

La fonction Sinc3D afficher en 3D pour les valeurs X, Y mentionnées ci-dessus.


3)-2)-compilation de programme init.m
%IL FAUT ICI EVALUER LA FONCTION OBJECTIF POUR CHAQUE INDIVIDU DE LA
POPULATION INITIALE
%A CODER
%A CODER
fonction_objectif=sinc(sqrt((param(:,1)*10-5).^2+(param(:,2)*10-5).^2));

best_res=fonction_objectif(1);

%Tournoi post-génération --> génération intermédiaire


%IL FAUT ICI GENERER LA POPULATION INTERMDIAIRE PAR TOURNOI(CELLE
EN MESURE DE SE REPRODUIRE) - NOMMEE pop_inter
%A CODER
%A CODER
[pop_inter]=tournoi(string_param,fonction_objectif,proba_tournoi) ;

3)-3)-Explication de l’extrait ci-dessous du programme init.m


%Initialisation de la population initiale (nb individus) avec 2 gènes
param=rand([nb_individus,2]);

for i=1:nb_individus,
param_string=dec2base(floor(param(i,:)*1024),2,10); %codage sur 10 bits
string_prm='';
for ii=1:2, %boucle jusqu'à nombre de gènes
string_prm=strcat(string_prm,param_string(ii,:));
end
string_param(i,:)=string_prm; %génération de la matrice contenant tous les
chromosomes
end

on va initialiser en premier temps la population de 40 individus avec des genes sont definit
aléatoirement (param=rand([nb_individus,2]));

8
On va faire la boucle de codage de ces individus avec la fonction string avec chaque individus
les deux gènes générer sont arrondir et coder en binaire en 10 bits
On va générer la boucle de gêne pour chaque individu.
Apres cette boucle de gêne sera combiner pour former la matrice comportant tous les
chromosomes.
3)-4)-la fonction de mutation.m
function [ch_mut]=mutation(ch_init,proba)
size_chint = size(ch_init);
matrix_samedim = rand(size_chint);
ch_mut = ch_init;
ch_mut(matrix_samedim<proba) = num2str(not(str2num(ch_mut(matrix_samedim<proba))));

4)-exploitation et paramétrage de l’algorithme


4)-1)-le résultat obtenu

D’après le résultat obtenu l’algorithme converge vers un optimum global mais il n’est pas bien
paramétré, il faut faire quelques réglages.
4)-2)-analyse de l’influence de nombre d’itérations
Le résultat obtenu montre une amélioration de la fonction objective, mais avec un facteur de
temps on plus, le meilleur c’est de faire un compromis entre la qualité de la solution et le temps
de calcul. N=40
4)-3)-analyse de l’influence de temps de mutation
On remarque d’après les résultats obtenu que si on diminue le taux de mutation cela permet de
donner un bon résultat. Tmut=0.005
Elle joue le rôle de bruit et empêche l’algorithme de figer donc ce bruit doit être bien choisit
pour ne pas donner des solutions qui divergents de l’objectif souhaiter.
4)-4)-analyse de la probabilité de gain de tournoi
Plus on augmentant la probabilité de gain de tournoi plus on converge vers global optimum
mais doit être dans un intervalle de 0.5 à 1 cela dû aux générations intermédiaire sélectionner
par tournoi.Ttourn=1
4)-5)-analyse de l’influence du nombre de croisements
C’est le nombre de croisement et supérieur a 2 cella permet de créer plusieurs combinaisons
d’individus donc accélérer la convergence de l’algorithme.ncrois=5

9
4)-6)-on prenant ont considéré les paramètres précédents avec leurs influence on va aboutir à
un résultat plus cohérant.

5)-conclusion
On peut conclure les points suivants :
Dans ce TP en premier temps nous avons simulé Sinc3 sous Matlab.
Apres nous avons compléter l’algorithme génétique en définissons la fonction objective et la
fonction tournoi dans le fichier team de l’AG.

Après nous avons réalisé la fonction mutation on vue que notre algorithme converge vers
l’optimum globale qu’on a défini dans la fonction d’adaptation.

Nous avons testé chaque paramètre de l’algorithme et son influence sur l’objectif globale.

Nous avons adapté tous les paramètres pour converger plus rapidement vers la meilleure
solution.

10