optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par...

16
ENSAM Lille - OPTIS 24/04/2007 Optimisa Implémentation d’o méthodes d’optimis Rapport intermédiaire #02 Thomas VINCEN Université de Sherbrooke ation de structu outils d’aide à la conception b sation topologique NT ures basés sur les

Upload: danghanh

Post on 13-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

ENSAM Lille - OPTIS Université de Sherbrooke

24/04/2007

Optimisation de structures Implémentation d’outils d’aide à la conception

méthodes d’optimisation topologique

Rapport intermédiaire #02

Thomas VINCENT

OPTIS Université de Sherbrooke

Optimisation de structures Implémentation d’outils d’aide à la conception basés sur les

optimisation topologique

Thomas VINCENT

Optimisation de structures basés sur les

Page 2: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

<Table des matières 2

Table des matières

1. Introduction ....................................................................................................................... 3

2. Avancement & objectifs du projet ....................................................................................... 3

2.1. Rappel des objectifs .............................................................................................................. 3

2.2. Etat de validation des jalons ................................................................................................. 3

2.3. Limitations & perspectives .................................................................................................... 4

3. Implémentation sous MATLAB ............................................................................................ 5

3.1. Architecture générale ........................................................................................................... 5

3.2. Objets impliqués en détail .................................................................................................... 5

3.2.1. Données d’entrée .......................................................................................................... 5

3.2.2. Données internes temporaires ..................................................................................... 6

3.2.3. Données de sortie ......................................................................................................... 7

3.3. Objets de la boucle d’optimisation ....................................................................................... 7

3.4. Interface CATIA V5 ................................................................................................................ 7

4. Utilisation du code .............................................................................................................. 8

4.1. Applicabilité ........................................................................................................................... 8

4.2. Application : un carter de réducteur ..................................................................................... 8

4.2.1. Préparation de l’optimisation & définition des paramètres ......................................... 8

4.2.2. Rapport d’optimisation ................................................................................................. 9

4.2.3. Exploitation des résultats ............................................................................................ 11

4.2.4. Validation du design .................................................................................................... 14

4.2.5. Conclusion ................................................................................................................... 15

5. Conclusion ........................................................................................................................ 16

Page 3: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Introduction 3

1. Introduction

Ce rapport rend compte de l’état d’avancement du projet d’expertise, « Optimisation de structure »

que je mène au sein du laboratoire OPTIS de la faculté de génie mécanique de l’université de

Sherbrooke. Il est nécessaire au lecteur d’avoir pris connaissance du rapport intermédiaire n°1 pour

profiter du contenu du présent écrit.

Après deux mois de travaux au sein du laboratoire, une première mouture du code d’optimisation

permet d’ores et déjà d’obtenir des résultats satisfaisant en termes d’aide à la conception. Cet

avancement justifie l’écriture de ce rapport, au cours duquel l’implémentation générale va être

présentée ainsi qu’un cas d’application et les perspectives attendues dans le cadre de ce projet .

2. Avancement & objectifs du projet

2.1. Rappel des objectifs

L’objectif principal de ce projet d’expertise et d’étendre l’utilisation d’algorithmes d’optimisation

de structure existant vers un solveur numérique par éléments finis Code_Aster.

Toute fois, j’introduis des principes connus avec la vision d’un ingénieur, soucieux de l’intérêt qu’ils

représentent au sein du processus de conception mécanique. En d’autres termes, la partie dite

mathématique justifiant l’utilisation et la légitimité des méthodes employées ne sera que présentée

et en aucun cas justifiée. J’invite le lecteur à se tourner vers les écrits des personnes responsables

du développement des méthodes invoquées.

2.2. Etat de validation des jalons

Etapes du projet validées :

� Automatisation complète du processus d’optimisation.

� Optimisation un domaine mécanique défini en trois dimensions, maillé à l’aide d’un

maillage volumique hexaédrique complètement régulier (taille et orientations des mailles

identiques) pour un seul cas de chargement statique aussi complexe soit t’il (contact,

prise en compte de la dilatation thermique etc.).

� Possibilité de désactiver ou forcer à l’état de matière certaine maille de ce maillage.

� Adjonction au domaine d’optimisation d’autre « bout » de maillage provenant d’une pré-

étude permettant de prendre en compte les parties existantes de la pièce à optimiser. Ces

parties de pièce sont maillées par un logiciel de CAO avec des mailles tétraédrique.

� Récupération du résultat d’optimisation directement dans un logiciel de CAO, au sein des

parties résultantes de la pré-étude.

L’ensemble des objectifs fixés en début de projet sont remplis, ils représentent globalement les

trois premiers points de l’énumération précédente. L’interfaçage avec un logiciel de conception

assistée par ordinateur permet de donner tout le sens d’ingénierie de ce code et décuple ses

possibilités d’utilisation et son intérêt. Il simplifie aussi grandement son utilisation pour les cas

complexes.

Page 4: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Avancement & objectifs du projet 4

2.3. Limitations & perspectives

A ce niveau, le code qui va vous être présenté et facile d’accès, permet de mettre en place des cas

très complexe, et apport un réel aide lors de la conception de pièce mécanique. Cependant il reste

extrêmement limité quand on le compare aux critères de développement et de validation

actuellement utilisés pour le développement de pièces mécaniques. En effet dans son état actuel ce

code peut représenter une très bonne première approche basé sur le cas extrême d’utilisation de la

pièce. Pour améliorer ce code plusieurs axes sont à privilégier :

� Simplicité d’utilisation : une très grande partie du temps de l’optimisation d’une pièce est

utilisée pour préparer l’optimisation. (Création du volume d’encombrement, adaptation

des paries existantes pour une compatibilité des maillages etc.). La principale limitation

réside dans l’utilisation d’un maillage hexaédrique complètement régulier pour le domaine

d’optimisation. Il serait très utile de pouvoir modéliser le domaine de design par un

maillage quelconque obtenu directement d’un logiciel de CAO. Cependant la méthode du

critère d’optimalité implémentée ici, nécessite une régulation pour rendre la solution

insensible à la dimension du maillage. Cette régulation se réalise à l’aide de la connaissance

des valeurs des densités des mailles voisines. Or avec un maillage quelconque la difficulté

est de déterminer le voisinage d’un élément pour calculer la régulation du critère.

Cependant d’autres méthodes existent, complètement indépendantes du type et de la

taille du maillage utilisé : la méthode des directions de lamination déjà mise en œuvre en

deux dimensions par Grégoire ALLAIRE. Il pourrait être intéressant de continuer le

développement du code dans ce sens pour décuplé sa simplicité d’utilisation et ses

possibilités.

� Complexité des cas : comme mentionné précédemment la méthode implémentée ici se

base sur le critère d’optimalité. Cette méthode fort simple n’autorise pas la prise en

compte de plusieurs cas de chargement distincts et l’intégration de contraintes

d’optimisation (déplacement limite de certains nœuds, contrainte limite de certaines

mailles tec.). Or il existe, entre autres, une méthode d’optimisation appelée « la méthode

des asymptotes mobiles » qui permet de prendre en compte tous ces paramètres. Il serait

intéressant d’introduire cette méthode au sein du présent code pour pourvoir optimiser

des pièces directement avec les cas de validation et les contraintes de développement

imposées par le cahier des charges.

� Performance : pour l’instant les échanges de donnée et la boucle d’optimisation

représentent à eux deux entre 1 et 5 % du temps globale du processus d’optimisation, or

codé en langage C ou C++ ils pourraient être bien plus rapides. Cependant l’objectif de ce

travail et de développer un outil fonctionnel et non de le rendre extrêmement performant

sur le plan temps de calcul. Je ne m’attacherai donc pas personnellement au

développement et à l’adaptation du code mais il reste une grande marge d’optimisation du

code en termes d’interface et d’échange de données avec Code_Aster.

Page 5: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Implémentation sous MATLAB 5

3. Implémentation sous MATLAB

3.1. Architecture générale

Afin de fixer le déroulement général de l’optimisation, est présenté en figure 1 une représentation

graphique des différentes étapes et fichiers intervenant dans le processus.

3.2. Objets impliqués en détail

3.2.1. Données d’entrée

� Simulation

Les différents paramètres relatifs à l’optimisation et aux chemins d’accès aux fichiers

adjoints sont renseignés dans un fichier de lancement de simulation d’extension « .simu ».

Ce fichier de lancement sera à fournir au code Matlab (entrée de la routine).

� Groupes de nœuds

Ce fichier (facultatif) est un fichier de type maillage Code_Aster « .mail », il contient les

différents groupes de nœuds nécessaires à l’application de conditions aux limites et

chargements. Les noms des nœuds et des groupes doivent être cohérents avec ceux utilisés

dans le fichier de chargement et le maillage du modèle sous peine d’erreurs au lancement

de Code_Aster. Cet extrait de maillage est copié tel quel à l’intérieur du fichier maillage

généré par Matlab à chaque itération et doit donc respecter les conventions d’écriture d’un

tel fichier.

� Chargement

Ce fichier est un fichier de type commande Code_Aster « .comm », il contient les conditions

aux limites et chargements. Il peut utiliser les groupes de nœuds ou non, ou directement

des éléments du maillage adjoint ou du maillage de la zone d’optimisation. Cet extrait de

fichier commande est retranscrit à l’intérieur du fichier de commande généré par Matlab à

chaque itération, et doit donc respecter les conventions d’écriture d’un tel fichier.

Figure 1 : représentation schématique du processus d'optimisation et positionnement des fichiers impliqués

Mise en place du

problème

d’optimisation

Détermination

des critères

d’optimalité

Adaptation de

la sensitivité

(filtres)

Vérification de

la convergence

du processus

Création des

groupes de mailles

et des matériaux

Résolution de

du problème

mécanique

Récupération

et formatage

des résultats

energie.resu

Code_Aster

Matlab resultat.pos

densite.pos

commande.comm

export.export

maillage.mail

resultat.stl

log.mess maillage.mail

- Groupes de nœuds

- Cas de chargement

- Paramètres de

simulation

- Maillage adjoint

- Domaine de design

Page 6: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Implémentation sous MATLAB 6

� Maillage adjoint

Le maillage adjoint provient d’un maillage généré par CATIA V5 exporté au format brut

« .dat ». Pour l’intégré au maillage de design il faut récupérer la liste de points et la liste des

mailles dans deux fichiers distincts. Une partie de ce rapport est réservée à l’explication du

fonctionnement et à l’importation de maillage adjoint à l’optimisation, voir §3.4.

Les chemins d’accès aux fichiers des trois catégories précédentes doivent être mentionnés dans le

fichier de lancement de simulation (chemin relatif par rapport à la position du fichier « .simu »).

� Définition du domaine de design

Pour l’instant l’initialisation se fait par importation d’une matrice Matlab, générée sous

Matlab de manière tout à fait manuelle et donc fastidieuse. Dans l’avenir il serait

intéressant de récupérer une géométrie de type CAO et d’en générer la discrétisation en

hexaèdres réguliers pour définir le domaine de design.

3.2.2. Données internes temporaires

La minimalisation globale de l’énergie interne du domaine de design se fait par itérations

successives. A chaque itération l’intégralité des données de calculs est sauvegardée sur le disque

dur pour permettre à l’utilisateur de suivre l’évolution de la topologie au cours du processus. Avec

toutes ces informations l’utilisateur peut suivre l’évolution de la topologie et ajuster les différents

paramètres de la simulation s’il considère que l’évolution n’est pas satisfaisante. Pour connaître les

ajustements possibles je conseil au lecteur de prendre le temps de comprendre l’origine de la

méthode d’optimisation topologique utilisée ici en lisant les écrit de SIGMUND et BENSOE.

� Maillage « .mail »

Maillage au format Code_Aster utilisé pour le calcul, il contient une partie fixe (nœuds,

mailles) et la liste des groupes de mailles qui charge à chaque itération en fonction de la

répartition des densités dans la pièce.

� Export « .export »

Le fichier export et le fichier de lancement à proprement dit de Code_Aster, il indique

l’emplacement du maillage, du fichier commande et les emplacements des différents

fichiers résultats.

� Commande « .comm »

Le fichier commande contient les informations du calcul par éléments finis : définition et

affectation des matériaux, définition du cas de chargement, des éléments à calculer (en

l’occurrence ici l’énergie interne de chaque élément aux nœuds de Gauss) etc.

� Résultat : énergie « .resu »

Fichier ASCII récapitulant les valeurs de l’énergie interne de chaque élément, ce fichier et lu

par Matlab pour réaliser l’affectation des nouvelles densités.

� Résultat : maillage « .pos »

Ce fichier de maillage permet de visualiser l’affectation des différents groupes de mailles à

l’aide de Gmsh en ajustant la visibilité des différents groupes de mailles.

� Résultat : carte de densités « .pos »

Ce fichier de post traitement Gmsh correspond à la carte des densités, et permet de

réaliser une iso-surface sous Gmsh pour une meilleure représentation et une prise en

compte des gradients de densité dans la structure.

Page 7: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Implémentation sous MATLAB 7

3.2.3. Données de sortie

� Résultat format STL « .stl »

Une fois l’optimisation arrivée à la convergence, les iso-surfaces de niveau de densité 0.3,

0.5 et 0.7 son sauvegardées sous forme de triangulation STL. Ces fichiers sont importables

dans la plupart des logiciels de CAO, ceci pour permettre la conception de la future pièce en

gardant le résultat de la répartition idéale sous les yeux.

� Récapitulatif de la simulation « .mess »

Ce fichier de récapitulation permet de voir le temps nécessaires aux différentes opérations

du processus d’optimisation, l’évolution de l’énergie globale interne etc.

3.3. Objets de la boucle d’optimisation

Au sein de la routine d’optimisation sous Matlab le domaine d’optimisation est représentée par une

matrice tridimensionnelle dont chaque valeur correspond à la densité d’un élément (valeur

comprise entre 0 et 1). Cette matrice est à l’origine de l’affectation des matériaux en fonction de la

loi de pénalisation propre à la méthode d’optimisation topologique utilisée ici (voir rapport n°1).

Elle est actualisée à chaque itération en fonction du résultat du calcul par éléments finis récupéré

par le biais du fichier « energie.resu ». Pour voir les différentes étapes du code d’optimisation je

vous renvoie premier rapport.

3.4. Interface CATIA V5

Dans un souci de simplicité d’utilisation et t’intégration au sein du processus de conception, j’ai

ressentis la nécessité de créer un lien entre le logiciel de CAO et cette routine d’optimisation.

� Récupération de maillages et groupes de nœuds

Un moyen simple d’importer des parties de la pièce à optimiser est de passer par un maillage

d’éléments finis, qui n’est rien de plus qu’une liste de points dans l’espace et une lite de mailles

appelant ces points. Donc sous CATIA V5, des parties de la pièce sont modélisées puis maillées de

telle manières que les éléments en contact avec la zone d’optimisation soient cohérents (les points

du maillage doivent être placés sur un grille régulière de pas égaux aux dimensions des éléments

hexaédriques du domaine d’optimisation). Certaines surfaces peuvent être maillées

indépendamment pour permettre de récupérer les nœuds appartement à ces surfaces, utilisables

ultérieurement pour appliquer des efforts ou des contraintes aux limites.

� Intégration du maillage annexe

Lors de la création du maillage les nœuds provenant des maillages adjoints sont renommés pour

garantir la continuité de matière entre le domaine adjoint et le domaine de design.

� Exportation des résultats

Toujours à des fins d’utilisation dans le domaine de l’ingénierie il est préférable de pouvoir

importer le résultat de l’optimisation (la répartition optimale de matière dans la pièce) dans le

logiciel de CAO qui nous a permis de concevoir les parties prédéfinies. De ce fait on peut continuer

le développement du produit avec le design optimal sous les yeux. Cette exportation se fait via

l’iso-surface du volume de densité au format STL (importable partout).

Page 8: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 8

4. Utilisation du code

4.1. Applicabilité

Dans l’état actuel, le code proposé optimise une structure mécanique en trois dimensions dans le

domaine des petites déformations (domaines élastique) soumise à un seul cas de chargement. La

version utilisée de Code_Aster est la 9, compilé pour Windows. Les calculs sont effectués sur mon

PC portable : AMD Athlon 64 3400+ avec 1Go de Ram, sans utilisation de mémoire virtuelle. La

mémoire maximum physique allouable est de 835 Mo.

4.2. Application : un carter de réducteur

4.2.1. Préparation de l’optimisation & définition des paramètres

Je me propose de concevoir ce carter en aluminium moulé, de type AlSi7Mg de module d’Young

�� � �� �� et un coefficient de Poisson de ��� . Ce cas d’étude correspond parfaitement à un

cas réel et rentre dans le cadre d’applicabilité du code dans son état actuel. Le problème posé n’est

pas trivial, il comporte quatre parties prédéfinies, imposées par l’environnement du carter : une

partie de fixation donc une face complète est supposée fixe (en x = 0), et de trois paliers. Je note F1,

F2 et F3 les efforts respectifs appliqués sur les paliers 1, 2 et 3 du carter du réducteur, le Figure 2

reprend les valeurs des efforts dans le repère global.

��� ���� ���

�� �� ��

�� � ��

�� � �

Figure 2 : récapitulatif des composantes des efforts appliqués sur la structure

Supposons que la connaissance de l’environnement de ce carter soit connue et que nous possédons

des parties imposées (la partie de fixation et les paliers). En Figure 3 est représenté une vue

isométrique du maillage tridimensionnel (19 210 tétraèdres) des parties imposées du carter.

Figure 3 : maillage adjoint généré sous CATIA

x y

z

Palier n°1

Palier n°2

Palier n°3

Fixation

Page 9: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 9

Connaissant ces restrictions géométriques, je définis la zone admissible de design du corps du

carter, elle est représentée en Figure 4. Ce domaine prend en compte les évidements pour : les

axes des arbres traversant les paliers, les zones à laisser libre pour le passage des vis etc. Il fait

210x185x185 mm et est composé de 28 177 hexaèdres.

Figure 4 : la zone d’optimisation & le maillage adjoint visualisé sous Gmsh

Les différents paramètres d’optimisation son fixé à la vue des indications de SIGMUND et BENSOE,

la pénalisation et de 3 (dicté par les caractéristiques du matériau et de la dimension de

modélisation) et le rayon de régulation de 9 mm (dicté par la taille des éléments ici 5x5x5 mm).

La fraction volumique est fixée à 0.1 compte tenu de la masse désirée du carter de 2 Kg. Les

densités sont initialisées en fonction de la fraction volumique et de la taille globale du domaine de

définition. C'est-à-dire que la densité de chaque hexaèdre est recalculer pour qu’il y ait 10% de

matière dans le domaine global qui fait 210x185x185 mm et ceci en tenant compte des zones

évidées et des zones de densité fixée par l’utilisateur si il y en a.

Le nombre de matériaux est fixé à 100 pour discrétiser l’évolution « continue » de la densité. On

peut théoriquement augmenter ce nombre jusqu'à 999 avec le code proposé reste à connaître le

nombre maximum de matériaux différents pris en compte par Code_Aster. Dans la pratique,

l’utilisation de 100 matériaux donne de très bon résultat.

4.2.2. Rapport d’optimisation

L’optimisation converge en 8 itérations, le critère de convergence est fixé à 5% de la moyenne

globale de variation relative de la densité. Le temps total d’optimisation est d’un tout petit peu plus

d’une heure. La mémoire physique nécessaire s’élève à 632 Mo, aucune mémoire virtuelle n’a été

utilisée. En Figure 5 est représentée l’évolution de la compliance (énergie élastique interne totale)

en fonction des itérations successives. On constate sa continuelle diminution et sa convergence

vers 1.15 Joules après les 8 itérations.

Zone

d’optimisation Maillage

adjoint

z

y

x

Page 10: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 10

Figure 5 : évolution de l'énergie interne totale (Compliance)

Afin de justifier la non nécessité d’intégrer la boucle d’optimisation au solveur Code_Aster, est

représenté en Figure 6 l’évolution des différents temps de calcul selon l’étape du processus. On

constate la quasi constance des différents temps, ceci est due à la non modification du nombre de

nœuds et de mailles intervenant dans le calcul par éléments finis. On se rend compte que le temps

nécessaire à l’importation des résultats, le calcul de la nouvelle carte de densité par dichotomie et

la création et l’exportation de tous les fichiers nécessaires au lancement du calcul numérique sous

Code_Aster ne représentent pas plus 3% du temps requis à la simulation numérique à proprement

dit. C’est pourquoi aucun effort ne sera mis en œuvre lors de ce projet pour intégrer le présent

code au sein de Code_Aster pour le rendre plus rapide.

Figure 6 : répartition du temps de calcul par itération

Cependant on remarquera qu’au fur et à mesure de l’optimisation un très grand nombre de mailles

(élément) se retrouvent dans le groupe de maille représentant les mailles inactives (densité égal à

1% donc le module d’Young des éléments est multiplié par 10-6

). Si au cours de l’optimisation le

0

5

10

15

20

25

30

1 2 3 4 5 6 7 8

En

erg

ie i

nte

rne

to

tale

en

J

n° de l'itération

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

0

50

100

150

200

250

300

350

400

450

1 2 3 4 5 6 7 8

rati

o e

n %

Te

mp

s e

n s

eco

nd

es

n° de l'itérationCalcul sous Code_Aster

Echange de données & boucle d'optimisation

Ratio temps d'optimisation / temps résoltion du problème statique

Page 11: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 11

code pouvait désactiver complètement ces mailles en ne les déclarant pas pour le calcul par

élément fini un temps considérable pourrait être gagné à chaque itération. A titre d’exemple pour

l’optimisation du carte présenté ici, 17 045 mailles sur 28 177 aurait put être désactivées pour le

calcul de la dernière itération. Cette remarque motivera les prochaines améliorations à apporter au

présent code.

4.2.3. Exploitation des résultats

Le résultat obtenu est sous forme de carte tridimensionnelle de densité de matière au sein de la

structure étudiée. Il convient d’observer ce résultat de différente manière, on peut dans un premier

temps de manière très simple n’afficher que les éléments de densité unitaire, voir Figure 7.

Figure 7 : Résultat de l’optimisation après 8 itérations : représentation sous Gmsh des mailles de densité unitaire

Evidement le résultat obtenu n’est en aucun cas le design final de la pièce, il va falloir maintenant

s’appuyer sur cette répartition de matière pour concevoir le design final.

Page 12: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 12

La représentation brute par segmentation des groupes (telle que représentée en Figure 7) ne

permet pas de prendre en compte l’évolution graduelle des densités du à l’adaptation de

sensibilité. Il est donc plus avantageux de représenter le résultat obtenu sous forme d’iso-surface

de densité. Cette iso-surface est réalisée directement par la méthode du « marching cube » déjà

implémenté dans Matlab, ma seule contribution à été de réécrire cette surface triangulée au

format STL pour pouvoir l’importer dans des logiciels de CAO.

Figure 8 : iso-surface du volume de densité importé dans CATIA avec les parties prédéfinies du carter

Une fois cette surface résultat importée dans un logiciel de CAO comme en Figure 8, on peut

concevoir la pièce en fonction de ce résultat et des contraintes technologique que l’on se fixe. Ici le

carter est une pièce moulée étanche (pas de trous), donc l’épaisseur des parois est comprise en 2

et 5 mm (contraintes de fonderie). Grace au résultat de l’optimisation on va pouvoir placer les

nervures et renfort du carter en connaissance de cause et sans aucun a priori. Evidement pour

inclure les contraintes technologique et les contraintes liées à la CAO (simplicité des forme de

pièce) le design final va différer de la solution optimale. Cependant en suivant les indications

apportées par le résultat de l’optimisation topologique on va voir qu’à la première itération de

design (première version de la pièce) les résultats de vérification sont déjà très satisfaisants.

Lors de l’étape de reconstruction de la pièce en fonction du résultat sous forme STL la qualité du

concepteur et son habilité à concevoir de pièces complexe sous un logiciel de CAO vont être

primordiale pour obtenir un résultat cohérent et performant. Dans mon cas la reconstruction de ce

carter à quasiment pris une journée entière pour arriver à concevoir une pièce technologiquement

admissible.

Page 13: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 13

Figure 9 : conception proposée (en vert la surface résultante de l'optimisation)

En Figure 9, est représenté la conception proposée, j’ai décidé de réaliser un carter de 2 mm

d‘épaisseur avec des renforts intérieur de 5 mm d’épaisseur. La forme globale du carter est

obtenue directement à partir du résultat de l’optimisation (sorte d’octogone extrudé en dépouille).

Les nervures extérieurs sont elles aussi placées en fonction des indications de l’optimisation.

Figure 10 : 2 coupes de la pièce (gris) et du résultat de l’optimisation (vert)

En Figure 10, sont représentées deux coupes du carter final avec une superposition la surface

résultat de l’optimisation (en vert), ceci pour montrer la correspondance des zones plus épaisses

avec les zones de forte densité de matériau préconisées par l’optimisation. A ce stade on s’éloigne

vraiment de la forme optimale mais on doit composer avec l’ensemble des solutions admissibles.

Un concepteur plus compétant ou une durée de modélisation beaucoup plus longue aurait pu

permettre de réaliser une conception de bien meilleure qualité vis-à-vis de la solution optimale.

Page 14: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 14

Mais dans une première application on se contentera de cette modélisation. Le carter obtenu

rempli le principale critère qui est de peser environ 2 Kg (2 072 g exactement).

4.2.4. Validation du design

La réalisation du design final du carter tel que présenté en Figure 9 et Figure 10 à représenté plus

de 50% du temps globale de la conception du carter. Les formes utilisées, la répartition de matière

etc. ne sont ni simples, ni évidentes ; il reste à vérifier que l’effort de conception réalisé apporte des

résultats tangibles et représente un moyen efficace de concevoir des pièces performante

rapidement. Pour illustrer ces propos le modèle numérique de la pièce a été maillé finement sous

CATIA V5 et une étude statique par éléments finis comparable à celle utilisé pour l’optimisation à

été réalisée. Le maillage utilisé est représenté en Figure 11.

Figure 11 : Représentation du maillage, vue de dessus et intérieur (maillage tétraédrique taille 2 mm)

La vérification du modèle n’est pas chose facile, en effet ne possédant pas de design initial de la

pièce je ne dispose pas d’élément de comparaison pour pouvoir affirmer un gain de performance

apporter par l’utilisation de l’optimisation topologique en tant que préprocesseur de conception.

Cependant lors du design d’une pièce, on recherche à limiter au maximum les zones de

concentration de contraintes. En s’étant appuyé sur le résultat de l’optimisation topologique qui

tend à rendre homogène l’énergique interne à l’intérieure de la structure, on s’attend à retrouver

une certaine constance dans la valeur de la contrainte équivalente de Von Mises, qui elle aussi est

basée sur un critère de type énergétique.

En réalisant la simulation statique on s’aperçoit que la variation de la contrainte de Von Mises est

assez faible, moins de 10 MPa pour un alliage qui à une limite élastique à 0.2% de 100 MPa. Ceci

voulant principalement dire que la masse visée aurait pu être revue à la baisse. Cependant en

prenant connaissance des résultats du calcul numérique, on se rend bien compte que la répartition

de contrainte au sein de la structure « optimisée » (excluant la zone de fixation) est étonnamment

uniforme pour le résultat d’un premier design de pièce. Evidement il reste des zones à améliorer,

comme la jonction du domaine d’optimisation et la zone de fixation, les zones de nervures

Page 15: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Utilisation du code 15

extérieures (s’éloignant trop de la solution optimale), ou encore des erreurs grossières de

conception mais globalement le résultat est très satisfaisant.

Figure 12 : contrainte selon le critère de Von Mise dans le carter

En Figure 12, sont représentées les contraintes calculées selon le critère de Von Mises dans le

carter soumis exactement au cas de chargement présenté en début de ce chapitre. L’échelle de

variation des valeurs est volontairement bornée par 0.3 MPa et 3 MPa pour montrer qu’a l’intérieur

de la structure la valeur de la contrainte présentée varie extrêmement peu. Seuls deux principaux

endroits de la structure « sature » du fait de l’introduction de ces bornes, tous deux situés dans la

partie de fixation. Au marqueur n°1 l’élément de contrainte maximum (9.98 MPa) et au marqueur

n°2 une zone de contrainte très faible (environ 0.01

MPa). Hormis ses deux places aucun élément du

maillage ne sort de l’intervalle [0.3 MPa, 3 MPa], ce qui

représente une belle performance pour un « premier

jet » en terme de modélisation.

En ce qui concerne les defaults grossiers de la

modélisation proposée, on pourrait rapidement

corriger les nervures de renfort qui ne s’appuie que sur

des zones minces du carter, favorisant l’apparition de

fortes contraintes comme montré en Figure 13. A titre

indicatif le résultat de l’optimisation topologique

proposait une tout autre répartition de matière, il

serait de bonne augure de la respecter.

4.2.5. Conclusion

La méthode utilisée dans cet exemple est assez simple à mettre en œuvre et apporte une très

grande quantité d’informations avant même la modélisation d’une pièce lors de la phase de

conception. A partir des résultats de l’optimisation topologique, la pièce modélisée se comporte

3 MPa

0.3 MPA

1 2

Erreur de conception

Figure 13 : détail des zones à améliorer faisant

l'objet d'erreurs de conception

Page 16: Optimisation de structures - vrince.free.fr · de structure existant vers un solveur numérique par éléments finis Code_Aster. ... Implémentation sous MATLAB 5 3. Implémentation

Thomas VINCENT Optimisation de structures 24/04/2007

ENSAM – OPTIS Université de Sherbrooke

Conclusion 16

très bien vis-à-vis du chargement auquel elle est soumise, seules quelques adaptations restent à

faire localement pour finaliser le design de la pièce.

5. Conclusion

Pour démontrer la force de cette méthode il serait préférable de réétudier une pièce déjà en

fonction ; alors le gain de raideur et le gain de masse potentiellement obtenus pourraient être

comparés avec le design initial donnant des résultats plus tangibles. C’est pourquoi au fur et à

mesure de l’avancement de ce projet, je vais m’efforcer de me rapprocher de personnes

spécialisées dans la conception de pièce mécanique, pour essayer de récupérer des designs et des

cas de vérification plus concrets.

Dans ce deuxième rapport on a pu constater qu’un code implémenté en deux mois permet de très

bons résultats et peut, avec quelques considérations, devenir un outil performant d’aide à la

conception. De plus il s’appui sur un solveur numérique complètement accessible et gratuit

(licence GNU) de très grande qualité.

Cependant le code dans son état actuel possède un grand nombre de limites, certaines sont déjà

résolues comme la prise en compte de multi-chargement, ou la diversification des maillages

utilisable comme support d’optimisation. Dans l’état actuel des choses le présent code peut être

utilisé comme préprocesseur dans un très grand nombre de cas industriels réels qui reste simple

d’un point de vu critère de validation. Le modèle de résolution utilisé précédemment était tout

simplement un calcul de cas statique pour des raisons de simplicité de mise en œuvre sous

Code_Aster.

J’aimerais faire remarquer que sans aucune modification sur le code utilisé ici on peut imaginer un

modèle beaucoup plus complexe introduisant de la non-linéarité (contact etc.), des forces

volumiques dépendant de la densité ou non (pesanteur, champs électromagnétique etc.), les

gradients de température dans la pièce ou encore le résulta d’une étude modale. Il faut

« seulement » créer un cas d’étude complexe (fichier commande et chargement à revoir) la seule

contrainte étant de fournir en résultat de la simulation la carte des énergies interne des éléments

du domaine d’optimisation sous forme d’un ficher « energie.resu ». Je laisse cette tache aux

personnes maitrisant Code_Aster bien mieux que moi.