• Aucun résultat trouvé

i. Combinaison d'un algorithme génétique et d'une méthode de Levenberg- Marquardt

L'outil d'optimisation final résulte d'une combinaison entre les deux méthodes détaillées précédemment. Le but est de combiner la versatilité de l'algorithme génétique, qui est capable de scanner efficacement l'intégralité de l'espace de définition des paramètres et d'optimiser des solutions de façon non analytique, avec la méthode de Levenberg-Marquardt, qui permet de faire converger des solutions potentielles vers les minima locaux. Cette approche est maintenant détaillée dans le cas de l'optimisation d'une loi de comportement matériau, ce qui est presque toujours le cas dans le cadre de cette thèse. Les données expérimentales servant de base à l'identification peuvent par exemple correspondre à la réponse en contrainte à une sollicitation en déformation. L’outil d’identification ici utilisé correspond à l’algorithme défini par Chemisky et al. [232] qui a été implémenté dans la librairie SMART+. Il a notamment servi à déterminer les paramètres matériau d’un alliage à mémoire de forme en se basant sur des mesures de champs cinématiques. L’implémentation a cependant été revue en détail dans ce travail de thèse afin d’intégrer la possibilité d’identifier des paramètres matériau dans un contexte de modélisation multi-échelles. Une discussion plus étendue sur les avantages de la méthode combinée génétique/gradient par rapport à d'autres approches est donnée par Chemisky et al. [232]. Afin de faciliter la compréhension de la méthode d’identification adoptée et des paramètres de contrôle utilisés, seule cette méthode est ici décrite.

L'implémentation numérique se déroule selon le schéma de la Figure V.3. L'architecture est celle de l'algorithme génétique. Au début, les paramètres à optimiser sont déterminés. Des bornes minimales et maximales sont associées à chacun d'entre eux. Il convient ensuite de définir la population initiale, d'une taille d'individus Nini. Chaque individu se voit attribué un jeu de paramètres dédié. Celui-ci est soit déterminé aléatoirement en fonction des bornes choisies, soit défini par l'utilisateur, soit représentatif d'un maillage complet de l'espace des paramètres (auquel cas le nombre Nini est directement lié au nombre de points de ce maillage).

La capacité de chaque individu à correspondre à l’objectif fixé est ensuite calculée via une fonction coût dédiée. Celle-ci représente l'écart des moindres carrés entre les données de référence et celles simulées pour l'individu concerné. Ces dernières peuvent par exemple être les résultats du solver présenté dans le chapitre IV, ou directement ceux d'une simulation par éléments finis sous Abaqus. Les meilleurs éléments sont ensuite retenus afin d'être soumis à un affinement de leurs paramètres. Ce point constitue l’originalité du travail de Chemisky et al. [232] par rapport à d’autres algorithmes combinant analyse génétique et méthode du Gradient [244], où, l’algorithme du gradient est utilisé à la fin de l’analyse avec l’algorithme génétique.

L’optimisation des paramètres des meilleurs éléments d’une génération peut se faire soit par dichotomie multivariables comme dans l'analyse du modèle rhéologique de la matrice (chapitre III), soit selon la méthode de Levenberg-Marquardt, ce qui sera systématique dans ce chapitre. En général, le nombre Ngold d'individus retenus pour cette optimisation est faible devant celui de la génération concernée.

181 Figure V.3 – Schéma de l'algorithme d'optimisation développé.

En parallèle de ces calculs, des individus sont sélectionnés dans la génération en cours afin de se reproduire. Pour chaque enfant, deux parents sont sélectionnés. Ensuite, pour chaque gène, la probabilité de mutation est testée. S'il y a mutation, le paramètre prend une valeur aléatoire entre les bornes correspondantes. Dans le cas contraire, la nouvelle valeur est une combinaison linéaire de celles de ses parents. Un tel calcul est illustré par l'équation (V-13), dans le cas d'un paramètre xj. Le scalaire a est choisi aléatoirement dans l'intervalle [-0,05; 1,05]. Cela permet de donner une valeur du paramètre le plus souvent comprise entre celles des parents, mais avec 10% de chance de sortir de cet intervalle. Cela supporte notamment la diversité génétique chez les enfants, moyennant une vérification que la nouvelle valeur se trouve bien entre les bornes appropriées. Cette opération est réitérée jusqu'à ce que Npop enfants soient créés.

(V-13)

Les parents, les enfants et les individus améliorés sont ensuite rassemblés au sein d'une même population. L'adaptabilité des enfants, la seule alors manquante, est calculée. Il s'en suit une comparaison entre les adaptabilités de tous ces individus, et seuls les Npop meilleurs survivent et créent la population initiale suivante. L'opération peut alors recommencer, et ce jusqu'à ce qu'un critère de convergence soit atteint. Celui-ci est soit une valeur de la fonction coût suffisamment faible pour le meilleur individu, soit un nombre maximum de générations. Le génome du meilleur individu de la dernière génération est alors la solution du problème d'optimisation.

Si convergence ...

Sélection des paramètres à optimiser

Distribution initial des

jeux de paramètres Calcul de l'adaptabilité de chaque jeu de paramètre

Valeurs aléatoires Maillage spatial Valeurs connues Sélection des meilleurs éléments Création de nouveaux individus Affinement des solutions retenues

Création d'une nouvelle population d'individus

Abaqus Solver dédié

Dichotomie multivariables

Levenberg-Marquardt

Croisement

Mutation

Fin de l'algorithme génétique

Détermination d'une solution optimisée

182 Il y encore un correctif à apporter cette approche. En effet, le Jacobien ne peut souvent pas être calculé analytiquement. Ceci est particulièrement vrai lorsque la fonction coût n'est pas une fonction analytique mais directement le résultat d'une simulation à part entière. Il convient alors de calculer ce que l'on appelle une matrice de sensibilité SLM, qui remplace la matrice jacobienne. En considérant un jeu de paramètre x, cette matrice correspond à la variation des données simulées lorsque l'on modifie légèrement les paramètres xj un à un, conformément à l'équation (V-14) pour un point i donné. C'est donc une matrice avec autant de lignes que de points expérimentaux à comparer et autant de colonnes que de paramètres. En pratique, le coefficient Δ est égal à 1%. Néanmoins, une valeur fixe de Δ peut empêcher la bonne convergence de l'algorithme de Levenberg-Marquardt. C'est pourquoi pour une génération donnée, si la solution trouvée n'est pas meilleure que celle de départ, ce coefficient est divisé par deux de manière successive. Il peut également être redéfini à une valeur aléatoire entre 0,5% et 3% s'il devient inférieur à 0,2%.

(V-14)

Les paramètres caractéristiques de l'algorithme d'optimisation ont été gardés relativement constants d'une identification à l'autre. Ceux-ci peuvent être ajustés en fonction du nombre de paramètres à optimiser. Le nombre maximum de génération est défini à 150. La population initiale

Nini est généralement plus élevée que celle des générations suivantes, et est ici prise à 240. Npop est quant à lui restreint à une cinquantaine d'individus. Ngold n'a pas besoin d'avoir une valeur élevée et est ici égal à 3. En effet, seuls les meilleurs individus sont boostés avec l'algorithme de Levenberg- Marquardt. La probabilité de mutation est quant à elle fixée à 15%, ce qui est assez élevé et ralentit le processus d'évolution naturelle, mais permet de garder une bonne diversité génétique afin de ne pas rater le minimum global. Le coefficient λg est ici assez faible (0,0001) afin de favoriser la méthode du gradient sur les premiers incréments de l'algorithme de Levenberg-Marquardt.

Pour conclure sur l'implémentation de cet outil d'optimisation, il est également possible de mener une identification simultanée sur plusieurs fichiers de référence. Le jeu de paramètres optimisé doit alors par exemple satisfaire les données expérimentales issues d'une part d'un chargement monotone et d'autre part d'une sollicitation cyclique. Il est également possible de donner un poids différent à chaque fichier ainsi identifié.

Par ailleurs, un script dédié a été codé afin de connecter cet algorithme à un cluster de calcul, décuplant sa puissance et sa rapidité d'exécution. C’est d'ailleurs tout l’avantage de cette approche, car elle permet d’effectuer en parallèle le calcul de matrices de sensibilité (pour la méthode déterministe) et le calcul des individus « enfants » de la nouvelle génération. En pratique, les simulations associées à chaque nouvel individu peuvent être lancées en parallèle sur des lames de calcul différentes. Cela permet de calculer toute une génération pendant le temps nécessaire à une unique simulation.

183 ii. Optimisation sous contraintes

Il reste un point de détail qui n'a pas été abordé par le paragraphe précédent. Il s'agit du couplage entre des paramètres bornés et l'utilisation d'un algorithme de Levenberg-Marquardt. En effet, lors de l'optimisation, ce dernier ne vérifie pas s'il dépasse le domaine de définition d'un paramètre donné. Il est alors nécessaire de réaliser une optimisation sous contraintes. Dans le cas présent, ces contraintes se présentent sous la forme d'inégalités (bornes). Seule la résolution de ce cas est ici abordée, bien qu'il existe une méthode similaire pour les contraintes d'égalités.

Dans la version implémentée dans SMART+, la gestion de l’optimisation sous contraintes s'inspire des méthodes de pénalisation lors de la résolution du contact en éléments finis [245]. Soit un problème d'optimisation soumis à un nombre q de contraintes g. Il s'agit ici de minimiser une fonction F(x) tel que la condition gp(x) soit vérifiée pour tout p compris entre 1 et q. Les fonctions gp sont de classe C1 sur l'ensemble de définition. Le problème d'optimisation (V-1) peut alors être défini par l'équation (V-15), avec une nouvelle fonction G à minimiser. Les coefficients λLsont les multiplicateurs de Lagrange. La minimisation de G(x) est alors équivalente à celle de F(x) s'il existe un vecteur de paramètres x* et des coefficients λL tels que le système d'équations (V-16) est vérifié.

(V-15) (V-16)

En pratique, dans le cadre de paramètres xk situés entre deux bornes xkmin et xkmax, le problème est soumis à 2n contraintes telles que définies par le jeu d'équations (V-17). Si une contrainte donnée est vérifiée, le coefficient λL correspondant est défini nul. Dans le cas contraire, il lui est attribué une valeur qui croît de manière exponentielle avec l'écart de la contrainte avec 0. Les fonctions implémentées sont décrites par l'équation (V-18) dans le cas d'une borne minimum et l'équation (V-19) dans le cas d'une borne maximum. D'un point de vue implémentation numérique, ces multiplicateurs de Lagrange pénalisent le gradient de F ainsi que les coefficients diagonaux de sa matrice hessienne (qui nécessite quant à elle la dérivée première des λL). Une illustration de la somme d'un λLkmin et d'un λLkmax, pour un paramètre k donné, est faite sur la Figure V.4. Les bornes minimum et maximum sont arbitrairement fixées à 2 et 2,1. On constate ainsi que la pénalisation est assez agressive lorsque le paramètre concerné sort de son domaine de définition.

(V-17) (V-18) (V-19)

184 Figure V.4 – Illustration des multiplicateurs de Lagrange dans le cadre de la pénalisation du problème

d'optimisation sous contraintes.

2. Identification de la microstructure

La première partie de l'identification du PA66-GF30 concerne sa microstructure. Il s'agit dans un premier temps de bien définir le modèle avec enrobage, et dans un second temps de décrire fidèlement l'orientation des fibres au sein des différentes couches de la structure cœur-peau-surface. Le facteur de forme des fibres a été précédemment fixé à 22, et leur fraction volumique à 18% (cf. chapitre I).