• Aucun résultat trouvé

Optimisation locale de l’empilement

1.1.2 Etat de l’art sur l’optimisation du composite

1.1.2.1 Optimisation locale de l’empilement

L’optimisation de la séquence d’empilement a d’abord été abordée avec des algorithmes dits « à base de gradients » [1]. Ces algorithmes ont depuis longtemps fait leurs preuves pour des problèmes structuraux. Néanmoins, les méthodes déterministes à gradients fournissent des résultats continus qui doivent être arrondis. On peut donc trouver des résultats arrondis qui ne sont pas optimaux et qui, de plus, violent certaines contraintes.

Néanmoins, pour palier le problème de l’arrondi de la solution mais en travaillant tout de même avec un algorithme à base de gradient, des auteurs proposent de travailler à variables continues mais de pénaliser la fonction objectif (cf annexe 1) pour tendre vers une solution discrète [2]. La lacune principale de cette méthodologie est le fait qu’il faut gérer efficacement le coefficient de pénalisation pour ne pas converger prématurément vers un optimum local.

En effet, la caractéristique principale de ces algorithmes à base de gradients est de se faire piéger par des optimums locaux (dans les espaces non-convexes). L’application de ces méthodes d’optimisation au problème de la définition du séquencement n’est donc pas adaptée car ce sont des problèmes largement non-convexes.

Pour pallier ce problème, il existe toute une gamme d’algorithmes dite « Integer Programming ». Ces algorithmes travaillent directement avec les valeurs discrètes des variables. [3] propose un balayage des différentes méthodes suivantes : « Branch-and- Bound » et « Integer linear programing », approche probabiliste (Tirage aléatoire, plan d’expérience et Algorithme Génétique). Un des inconvénients majeur de ce type d’algorithme est le coût important en nombre de calculs. Dans les publications [4], [5] et [6] on trouve une illustration de résolution du problème du séquencement en utilisant la méthode du « branch and bound » associée à la formulation « integer linear programming ». L’inconvénient principal de cette méthodologie est sa difficulté à trouver l’optimum global (cf publication [6]).

Pour éviter ce genre de problème, la solution couramment mise en place est l’utilisation d’algorithmes stochastiques comme les Algorithmes Génétiques (AGs) (voir l’annexe 1) qui travaillent en variables discrètes et explorent de façon plus ou moins aléatoire tout l’espace des solutions. On retrouve dans la littérature de nombreuses recherches dans cette voie. La

de critères comme la résistance, la déformation ou la stabilité d’un panneau [7], [8], [9], [10], [11].

Les Algorithmes Génétiques (AGs)

Ces algorithmes sont basés sur la théorie de l’évolution établie par Darwin. On peut résumer ce principe de la manière suivante :

Une population est amenée à évoluer au cours des différentes générations selon un principe simple : les individus les plus adaptés à leur environnement sont ceux qui vivent le plus longtemps (sont les plus forts) et donc, sont plus aptes à se reproduire transmettant ainsi leurs gènes à la prochaine génération. Un point important est le côté aléatoire de la reproduction : Chaque enfant est le fruit de ses parents mais aussi le fruit du hasard.

D’un point de vue pratique, il s’agit d’une méthode itérative enchaînant des opérateurs numériques qui « copient » le principe de la reproduction naturelle (Figure 1-14).

Figure 1-14 : Structure générale d’un AG

Le principe en est le suivant :

A partir d’une population initiale qui est classiquement générée de manière aléatoire (phase de genèse), on sélectionne les meilleurs individus (phase de sélection) qui sont utilisés pour créer une nouvelle population. Les nouveaux individus sont le fruit du croisement des individus sélectionnés (phase de croisement) mais aussi le fruit du pur hasard (phase de mutation).

Pour plus de détails, on peut se référer à l’annexe sur les algorithmes génétiques (annexe 1).

Pour estimer la pertinence d’un individu, un AG ne voit que la valeur de la fonction objectif (c’est la phase d’évaluation). Il n’y a pas besoin de calculer la sensibilité de la fonction objectif et des contraintes vis à vis des variables.

Dans le cas de la définition d’une séquence d’empilement, la fonction objectif (F) peut être basée sur un Facteur de Réserve (noté RF pour Reserv Factor), une masse, une rigidité,… .

Remarque : un RF traduit la marge prise lors du dimensionnement. Par exemple en flambement, le RF se calcule en divisant la charge critique d’effondrement par la charge appliquée. En général, le dimensionnement le « plus optimisé » revient à chercher la solution avec un RF supérieur mais aussi le plus proche de une fois les charges extrêmes (les charges extrêmes sont définies comme 1,5 fois les charges limites qui sont statistiquement vues une fois dans la vie de l’avion).

La formulation du problème est donc très simple :

Maximiser ou minimiser F Avec F=f(masse, RF,rigidité,…)

Une des lacunes des AGs est le nombre important d’évaluations de la fonction objectif à réaliser pour converger vers une solution (ou une population). On trouve donc souvent dans la littérature des simplifications du problème pour accélérer cette convergence.

Ainsi pour satisfaire la règle de symétrie miroir du stratifié par rapport au plan neutre, il est usuel de ne travailler que sur la moitié de la séquence d’empilement afin de réduire le codage. D’une manière générale, si l’on peut satisfaire des contraintes par le codage, il est toujours intéressant de le faire car cela réduit le domaine des solutions et donc facilite la convergence de l’optimisation.

Le second moyen permettant de réduire la taille du problème est de limiter les valeurs que peut prendre chaque variable. Pour le séquencement, il s’agit par exemple de limiter les orientations angulaires (ex : θpli = 0°, 30°, 45°, 60°, ou 90°).

Un autre moyen de réduire le domaine des solutions est de simplifier le problème en réduisant les variables. Dans la publication [7] notamment, le codage suivant est imposé ; il divise par deux le nombre de variables :

Variables 1 2 3 B B B Plis/Empilement 02 +/ -45 902

configuration de plis évite donc qu’un moment de flexion normal génère un déformation de torsion.

Néanmoins, il faut noter que ce codage réduit de manière conséquente le domaine de conception. En effet, ce codage impose une optimisation à 2 plis près. Si l’on rajoute la règle de symétrie, le dimensionnement se fait alors à 4 plis près. Ce qui est très défavorable pour trouver la solution la plus optimale d’un point de vu mécanique.

Pour réduire le temps de calcul, on trouve aussi couramment des méthodes de dimensionnement qui limitent considérablement le nombre d’évaluations de la fonction objectif :

Dans la publication [12], une décomposition en deux niveaux du problème est réalisée. Cette approche est intéressante dans le cas d’un modèle éléments finis puisqu’elle permet de réduire le nombre d’appels à ce modèle dans le cas d’une optimisation par AG (Les AGs demandent un grand nombre d’appel au modèle EF). En fait, le premier niveau se résume à une optimisation d’un panneau avec comme variables les dimensions géométriques (exemple : épaisseurs du panneau, hauteurs d’un raidisseur,…) mais aussi, les paramètres de stratifié (cf [28]) qui sont pris comme variables. Durant ce premier niveau d’optimisation, on utilise un algorithme à base de gradients et l’on appelle directement le modèle EF. Ainsi, le nombre d’appels à ce modèle n’est pas prohibitif en temps de calcul. La seconde étape fait appel à un algorithme génétique pour trouver le séquencement qui satisfait à masse constante les paramètres de stratifiés trouvés au premier niveau d’optimisation (on peut utiliser un AG car on ne fait plus appel au modèle EF mais seulement à des formules analytiques traduisant les paramètres de stratifiés à cibler).

Une autre approche pour réduire le nombre de calculs, est d’adapter ou d’améliorer l’AG pour résoudre au mieux le problème.

En référence [13], on propose de modifier les opérateurs de reproduction (croisement et mutation) par des opérateurs de reproduction par permutation. En effet, si le nombre de plis par orientation est connu, le problème à résoudre devient un problème de permutation de l’orientation des plis. Il est donc plus efficace de mettre en place ce type d’opérateur plutôt que d’utiliser les opérateurs standards (croisement et mutation) qui « détruisent » les proportions souhaitées à chaque phase de reproduction.

En référence [14], des investigations sur les méthodes de sélection sont abordées. Ils proposent d’utiliser différentes méthodes de sélection avec élitisme pour accélérer la convergence et mieux explorer le domaine de conception. La sélection avec élitisme consiste à garder le ou les meilleurs individus d’une population pour créer une partie de la nouvelle population. Avec cette méthodologie, on évite la possibilité de « perdre » les

meilleurs individus lors des phases de croisement et mutation (phase de « contre-évolution de la population ». Par contre, cette stratégie de sélection peut entraîner une convergence prématurée de la population vers un optimum local (mauvaise exploration du domaine) et c’est pourquoi, les hauteurs explorent des stratégies de sélection avec élitisme « avancé » (élitisme multiple et élitisme variable).