Télécharger opti_topo_mma.dgibi
************************************************************************ * Exemple de méthode d'optimisation topologique * * Méthode à densité + pénalisation SIMP * * Algorithme d'optimisation : Method of Moving Asymptotes - Svanberg * * Application à une poutre en flexion * ************************************************************************ ** Paramètres globaux itrac = FAUX ; l = 1. ; h = 0.2 ; yo = 200.E9 ; nu = 0.3 ; ** Maillage (controlé par sa taille de maille) den1 = l / 120. ; p1 = 0. 0. ; p2 = l 0. ; ** Modèle ** Blocages ** Chargement ** Paramètres d'optimisation p = 3. ; fv = 0.4 ; rmin = 1.5 * den1 ; m = 0.1 ; xmin = 0.001 ; xmax = 1. ; ** Initialisation de la topologie (avec la fraction volumique cible) ** Matrice de filtrage ** Volume plein, initial et cible fvx = vx / v0 ; vcib = v0 * fv ; chgx = 0. ; ** Initialisation de la table pour la mma * valeurs initiales de x REPE bx nx ; FIN bx ; * bornes pour les valeurs de x REPE bx nx ; FIN bx ; * fonction objectif et ses sensibilités * fonction contrainte et ses sensibilités tmma . 'MC' . 1 . 0 = vx ; REPE bx nx ; FIN bx ; * bornes pour la fonction contrainte tmma . 'VCMAX' . 1 = vcib ; * paramètres pour la mma tmma . 'METHODE' = 'STA' ; tmma . 'T0' = 0.1 ; ** Boucle d'optimisation topologique REPE b1 100 ; * pénalisation de la rigidité yop = (x ** p) * yo ; * résolution du problème mécanique * fonction objectif : compliance = uT.K.u = Int(sig:eps)dV * sensibilité dpsi = (-1. * p * (x ** (p - 1.)) * ene) ; * filtrage de la sensibilité xdpsi = x * dpsi ; xdpsi1 = kfil * xdpsi0 ; dpsi = xdpsi / x ; * infos sur la topologie courante SI itrac ; FINSI ; * optimisation d'une nouvelle topologie (méthode des asymptotes mobiles) tmma . 'VF' . 0 = psi ; REPE bx nx ; FIN bx ; REPE bx nx ; lxnew = lxnew ET (tmma_new . 'VX0' . &bx) ; FIN bx ; * bilan de l'itération fvx = vxnew / v0 ; SI (chgx < 0.01) ; QUIT b1 ; FINSI ; * préparation de la nouvelle itération x = xnew ; tmma . 'VX0' = tmma_new . 'VX0' ; REPE bx nx ; FIN bx ; FIN b1 ; * Tracé de la dernière itération SI itrac ; FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales