* fichier : excel2.dgibi ************************************************************************ ************************************************************************ optio echo 0; * excel2.dgibi * * deux methode sont proposees dans l'opérateur exce : * la methode standard ( minimisation convexe) avec t0 = 0.6; * la methode move limite; * analyse de fiabilite. on est deja passe dans l'espace centre reduit * et on cherche le min de la distance a l'origine sur les variables * * la contrainte est que f0-vonmises<0 * * * min de ( (SOMME ( Ui**2) )**0.5) * avec Ui =( Xi - mxi) /sxi et xi = P0 r0 r1 f0 * sachant que f0 -VMISES(p0 ,r0,r1) =<0 * message ' fichier de donnees : excel2.dgibi'; xr0 = 55.; xr1 = 95.; xf0 = 290.; xp0 = 180.; * * donnée des constantes * graph=faux; mr0= 50.; sr0=2.5; mr1=100.; sr1=5.; mf0=300.; sf0=20.; mp0=130.; sp0=8.; * * procedur e de maillage * debproc cunu r0*flottant r1*flottant p0*flottant desine*logique; p1 = r0 0; p2 = r1 0; mo = model su mecanique elastique ; bl = bloquer uz li; ff = pression massif mo lip p0; de = resou ( ri et bl) ff; ss = sigma de mo ma; se = changer noeud mo ss; si desine; trac su vm mo; finsi; finproc sr; * * petite procedur pour calculer les conditions et les derivees * les inconnues r0 r1 f0 p0 sont dans la table tvx0 debproc intmci tmci txv0; desi = faux; si graph;desi=vrai;finsi; tmci . 0 = txv0 . 3 - (cunu txv0.1 tvx0.2 tvx0.4 desi ); tmci . 3 = 1.;desi=faux; tmci . 1 =(( cunu (txv0.1 - 1.) tvx0.2 tvx0.4 desi) - ( cunu (txv0.1 + 1.) tvx0.2 tvx0.4 desi )) / 2.; tmci . 2 =(( cunu txv0.1 (tvx0.2 - 1.) tvx0.4 desi) - ( cunu txv0.1 ( tvx0.2 + 1.) tvx0.4 desi )) / 2.; tmci . 4 =(( cunu txv0.1 tvx0.2( tvx0.4 - 1.) desi) - ( cunu txv0.1 tvx0.2 (tvx0.4 + 1.) desi)) / 2.; finproc; * * procedur pour calculer la fonction et ses derivees * les inconnues X1 et X2 sont dans la table tvx0 * 1=r0 2=r1 3=f0 4=P0 debpro intvf tvf*table tvx0*table; xx = ( tvx0 . 1 - mr0 )*( tvx0 . 1 - mr0 ) /sr0 /sr0 +( ( tvx0 . 2 - mr1 )*( tvx0 . 2 - mr1 ) /sr1 /sr1) +( ( tvx0 . 3 - mf0 )*( tvx0 . 3 - mf0 ) /sf0 /sf0) +( ( tvx0 . 4 - mp0 )*( tvx0 . 4 - mp0 ) /sp0 /sp0); yy = 2. * ( tvx0 . 1 - mr0 )/ Sr0/Sr0; zz = 2. * ( tvx0 . 2 - mr1 )/ Sr1 / sr1; vv = 2. * ( tvx0 . 3 - mf0 )/ Sf0 / sf0; ww = 2. * ( tvx0 . 4 - mp0 )/ Sp0 / sp0; tvf . 0 = xx ** 0.5; tvf . 1 = 0.5 * yy / tvf . 0; tvf. 2 = zz * 0.5 / tvf . 0; tvf. 3 = vv * 0.5 / tvf . 0; tvf. 4 = ww * 0.5 / tvf . 0; finproc; * * debut de l'optimisation * boucle pour les 2 methodes repeter met 2; ta = table; * definition d'un point de depart tvx0 = table vecteur; tvx0.1 = xr0; tvx0 . 2 = xr1; tvx0 . 3 = xf0; tvx0 . 4 = xp0; * * tvf contiendra la valeur de la fonction et les derivees * calculées au point de depart * tvf = table vecteur; * * tmci contient la ieme condition et les derivees calculees * au point de départ * tmc = table ; tmci=table vecteur; tmc . 1 = tmci; * * def de la valeur min des variables dans tvxmin * tvxmin = table vecteur; tvxmin . 1 =1.; tvxmin . 2 = 1.; tvxmin . 3 = 1.; tvxmin . 4 = 1.; * * def de la valeur max des variables dans tvxmax * tvxmax = table vecteur; tvxmax. 1 = 1000.; tvxmax . 2 = 1000.; tvxmax . 3 = 1000.; tvxmax . 4 = 1000.; * * definition des valeurs au second membre des conditions * tvcmax= table vecteur; tvcmax . 1 = 0.; * * choix de la méthode et remplissage de la table argument de exce * ta . mc = tmc; ta.vxmin = tvxmin; ta . vxmax = tvxmax; ta.vcmax = tvcmax; si (ega &met 1) ; ta . methode = sta; ta . t0 = 0.6; sinon; ta.methode = mov; finsi; titre titi ' point de depart'; * calcul de la fonction et de ses derivees intvf tvf tvx0; * calcul des conditions et de leurs dérivées intmci tmci tvx0; * * preparation des listreel pour stocker les résultats * intermediaires de la fonction est des variables * * boucle d'optimisation * repeter bouc 6; * on remplit la partie changeante de ta ta . vx0 = tvx0; ta. vf = tvf; ta . mc . 1 = tmci; * * appel à exce * *opti impi 1799; * * recuperation des variables dans ta.VX0 tvx0 = ta . vx0; * calcul de la fonction et des dérivées intvf tvf tvx0; titre titi ' iteration ' &bouc; * calcul des conditions et de leurs dérivées intmci tmci tvx0; * remplissage des listreels pour visualition des itérations fin bouc; *opti donn 5; * * visualisation des résultats * titre ch; titre ch; titre ch; fin met; * *on ne fait les terst que sur resultat des move limits car * l'autre n'est pas stabilise * si ( ( (aa - 3.1604 ) / 3.1604) > 0.001 ); erreur 5; sinon; mess ' le cas test est correct'; finsi; fin;
© Cast3M 2003 - Tous droits réservés.
Mentions légales