Download - 09 jus 20101123_optimisation_salomeaster
Optimisation structurelle à l’aide de
Python, Salomé et Code-Aster
Optimisation d’un rouet pour banc de
calibration de capteurs inductifs
NRCTech SA, Lausanne, Suisse, www.nrctech.ch
30.01.2011 1NRCTech SA www.nrctech.ch
30.01.2011 2
Problématique:
optimisation statique d’un rouet
Problématique:
- Un banc d’essai est développé pour la
calibration de capteurs inductifs utilisés
pour le contrôle de turbo-pompes
- Très haute vitesse requise
(supersonique), fréquence de passage
d’aube ≃ 20kHz
Le banc d'essai pour capteurs de
proximité est constitué des éléments
suivants
• un rouet (disque) tournant à haute
vitesse sur un arbre
• des paliers
• deux capteurs de déplacement
• un bâti
bâti
- positionnement
- étanchéité
- protection
échangeur thermique
arbre
boîtier avant
- palier
boîtier arrière
- palier
- précharge palier
Rv
capteurs
rouet
NRCTech SA www.nrctech.ch
30.01.2011NRCTech SA www.nrctech.ch 3
Cahier des charges, objectifs et contraintes
vitesse
• fréquence de passage ~20khz, temps de passage ~3.5 ms
zone de lecture
• longueur rectiligne >10 mm
• largeur des bras 2.1 mm
• épaisseur fixe > 10 mm
matériau : Ti6Al4V
• données fournisseur
• Sigma02 = 828MPa, Rm=895MPa
objectifs:
• minimiser contraintes
• minimiser masse
contraintes
• dimensionnelles (réutiliser bâti)
• temps alloué court
30.01.2011NRCTech SA www.nrctech.ch 4
Optimisation statique du rouet: la démarche
Choix de développement:
• Logiciels Open-Source uniquement
• Capitaliser sur le savoir-faire, développements doivent pouvoir être réutilisés
• Utiliser Salomé comme modeleur géométrique et mailleur
• Avantage: scripts python, opérations booléennes, maillage intégré, gestion
des groupes
• Utiliser Code-Aster comme solveur:
• Avantage: puissant et versatile, scriptable en python si nécessaire
• Utiliser Python et la librairie Scipy.Optimize
• Avantage: multi-plateforme, simple, efficace, compatible directement avec
Salomé & Aster
• Execution: utiliser CAELinux 2010 comme plateforme logicielle
• tous les prérequis sont déjà installés prêts à l’emploi
Deux approches:
• Étude de sensibilité et optimisation « manuelle »
• Développer et mettre en œuvre un optimiseur paramétrique
30.01.2011 5
Logiciel d’optimisation paramétrique
Optim.py
•Librairie scipy.optimize
•Fonction Objectif
•Contraintes / pénalisation
•Out: paramètres
Paramsolve.py
•Templates => fichiersd’entrées
•Execution de Salomé, Aster & Post-pro
• In: paramètres, out: résultats post-traités
Model.py
•Script Salomé
•Génère géométrie et maillage paramétrique
• In: paramètres, Out: mesh.med
Model.comm
•Fichier commande Aster
•Résoud problèmemécanique
• In: paramètres, mesh.med , Out: resu.med
Postpro.sh
•Extraire les résultats utiles
• In: Resu, Out: postpro.resu
NRCTech SA www.nrctech.ch
Modèle 1
30.01.2011 6
Modélisation d’un secteur (1/20)
NRCTech SA www.nrctech.ch
Modèle 1 : paramétrisation
30.01.2011 7NRCTech SA www.nrctech.ch
Construction géométrique modèle 1
30.01.2011 8NRCTech SA www.nrctech.ch
Model1.py
30.01.2011 9
…
F2f=geompy.MakeFillet2D(F2b,R6,[4,5,7,9])
F3=geompy.MakeFace(poly1,1)
V1=geompy.MakePrismVecH2Ways(F1,vz,thick)
V2=geompy.MakePrismVecH2Ways(F2f,vz,2*thick)
# boolean ops
V3=geompy.MakeCut(V1,V2)
V4=geompy.MakeRevolution2Ways(F3,vz,aa1r)
V5=geompy.MakeCommon(V3,V4)
…
# compute the mesh
msh=smesh.Mesh(V5,"mesh1")
…
msh.Compute()
# and convert it to quadratic
msh.ConvertToQuadratic(1)
# generate groups on geometry
mshgrp1=msh.GroupOnGeom(botsymg,"botsym")
…
msh.ExportMED( outmesh, 0, SMESH.MED_V2_2 )
NRCTech SA www.nrctech.ch
Optimisation 1
• Vecteur x : 11 paramètres géométrique
Paramètres à optimiser
• Bornes sur les paramètres
• Forcer certains paramètres pour maintenir une géométrie valide
Contraintes
• Minimiser f(x) avec f(x) = || ( SMax(x)/Rm ; Masse(x)/MasseRef )||²
Objectif
• Minimisation quasi-Newton L-BFGS de Scipy.Optimize
• Calcul du Jacobien par différences finies
• Bornes des paramètres respectées exactement
Algorithme
30.01.2011 10NRCTech SA www.nrctech.ch
Optimisation 1: résultat
Résultats
Design initial:
• Contrainte max 1400 MPa
• Masse: 1.51 kg
Design optimisé
• Contrainte max 670 MPa
• Masse: 1.05 kg
30.01.2011 11
Execution:
Modèle EF: ~ 50-70k DDL, résolution
paramétrique (Salomé+Aster) ~1 min
Optimisation: ~80 résolutions EF ~
1h30
NRCTech SA www.nrctech.ch
Modèle 2
30.01.2011 12
But:
Améliorer aérodynamique (super sonique)
Couronne externe à rayon constant
Découpe pour alléger au maximum
NRCTech SA www.nrctech.ch
Modèle 2 : construction
30.01.2011 13NRCTech SA www.nrctech.ch
Optimisation 2: résultat
Résultats
Design initial:
• Contrainte max 1280 MPa
• Masse: 1.3 kg
Design optimisé
• Contrainte max 890 Mpa !!
• Masse: 1.25 kg
30.01.2011 14
Execution:
Modèle EF: ~ 120 DDL, résolution
paramétrique (Salomé+Aster) ~2 min
Optimisation: ~80 résolutions EF ~ 3h
NRCTech SA www.nrctech.ch
Vérification design 2 avec plasticité
30.01.2011 15NRCTech SA www.nrctech.ch
Bilan
Comparaison des approches
Optimiseur paramétrique:
• Dévelopement modèles paramétriques ~1.5 jours
• Dévelopement optimiseur, tests & validation ~2 jours
• Optimisation paramétrique, plusieurs essais & objectifs ~1.5 jours
• Temps total ~5 jours de travail (dont 2 jours de dével. réutilisable)
• Résultats optimaux p.r aux critères, compréhension limitée du problème
Optimisation manuelle:
• Durée totale ~5 jours, résultats pas optimaux mais meilleure compréhension
Logiciels utilisés:
La plateforme Salome-Meca est idéale pour la réalisation d’études
paramétriques
Scipy fonctionne bien, mais passage à Dakota dans le futur
Pas de frais de licences => possibilités d’extensions “illimitées” sur Cluster
Amazon EC2 (voir CAELinux in the Cloud), p.ex avec Dakota / OpenTurns
30.01.2011 16NRCTech SA www.nrctech.ch
Remerciements
Merci de votre attention !
Cet exemple vous a été présenté par
NRCTech SA, Lausanne
www.nrctech.ch
30.01.2011 17NRCTech SA www.nrctech.ch