elements finis sur MatLab
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

elements finis sur MatLab



  1. #1
    ABN84

    Arrow elements finis sur MatLab


    ------

    bonsoir tout le monde,
    l'un de vous saurait-il ou je pourrais trouver comment faire des calculs structurels par elements finis avec matlab? ou y aurai-t-il des bouts de code source dont je pourrais m'inspirer?
    merci

    -----
    "Engineering is the art of making what you want from what you get"

  2. #2
    invitec2b75671

    Re : elements finis sur MatLab

    Pour faire des éléments finis... un bon calculateur élément fini ca marche pas mal
    En libre, je connais code aster, développé chez EDF, mais il y en a d'autres plus spécifiques à des calculs thermiques ou de méca sol...

  3. #3
    ABN84

    Re : elements finis sur MatLab

    merci pour l'info, mais le probleme c'est que ce que je dois faire est vraiment specifique, je dois donc programmer le truc moi meme. mais si l'un de vous connait des codes sources dont je pourrais m'inspirer, je ne suis pas contre. de me pour le maillage.
    merci
    "Engineering is the art of making what you want from what you get"

  4. #4
    invite0b9729a8

    Re : elements finis sur MatLab

    iH,

    J'avais codé en SCILAB ( très proche de MATLAB) un programme qui permettait de faire un maillage en triangle:
    http://www.arbredeslemuriens.com/Cat...ab&IDTitre=200

    ça pourra peut être t'aider au niveau de la matrice de connectivité, des noeuds etc...

    Bon courage

    +

  5. A voir en vidéo sur Futura
  6. #5
    invite6e229087

    Re : elements finis sur MatLab

    que vous connaissez des forums ou des websites (avec les cours) qui discuter sur methode des éléments finis ? merci beaucoup

  7. #6
    Jaunin
    Animateur Technologies et Bricolage

    Re : elements finis sur MatLab

    Bonjour, TrEcOn,
    Et bienvenu sur le Forum de Futura-Sciences.
    Tout d'abord si vous voulez que des personnes s'intéressent à votre discussion, il va falloir respecter les civilités.
    Ne sachant pas exactement ce qui vous intéresse sur la méthode des éléments finis, je vous joins un premier lien.
    À mon humble avis vous auriez dû ouvrir une nouvelle discussion plus précise, là vous restez sous MatLab, qui est très spécifique.
    Cordialement.
    Jaunin__

    http://www.librecours.org/documents/33/3348.pdf

  8. #7
    invite6e229087

    Re : elements finis sur MatLab

    Bonjour Jaunin,
    Je vous remercie beaucoup de vos opinions. Ce sont des expériences très utiles (en fait, le Francais n'est pas ma langue maternelle).

    Encore, merci de votre document.
    Cordialement,
    Nam

  9. #8
    invite3f1914f7

    GUI urgent sur matlab

    Je m'excuse d'avoir utilisé cette discussion pour mon problème.
    je n'ai pas vu l'onglet nouvelle discussion sur la page.

    Bonjour,
    mon prof, bossant sur un article m'a demandé de vérifier
    par programme une de ses théories et de lui remettre le résultat sous forme d'interface graphique.
    J'ai écrit le programme sur matlab, mais je n'ai pas de connaissances sur le GUI.
    J'aimerais que vous puissiez prendre mon programme et me retourner un code GUi, qui me permettra d'avoir l'interface.
    L'interface (sous forme de tableau dynamique) devra prendre en entrée les variables "input" suivantes:
    - la longueur totale du site: entre 800 et 1500
    - la largeur totale du site: entre 800 et 1500
    -le nombre d'atelier: <5 (pour votre test), déffini la taille du tableau
    -densité de courant: 2
    -abscisse et ordonnée: à entrer au hasard entre 800 et 1500
    -abscisse et ordonnée avant étude:0
    AFFICHAGE SUR L'INTERFACE DE TOUS LES RESULTATS OBTENUS EN SORTIE (selon le modèle de votre choix
    espérance mathématique et puissance moyenne: au hasard (juste pour voir comment tourne le programme)
    Sur la graphe, l'ensemble des points en pointillés doit former une surface elliptique.
    J'aimerais qu'après entrée des donnée, on puisse appuyer sur un bouton OK et observer les résultats et le graphe final.
    Merci voici le code matlab:
    Code:
    longueur=input('Entrer la longueur du site (abscisse totale) en m: ');
    largeur=input('Entrerla largeur du site (ordonnée totale)en m: ');
    nombre=input('Entrer le nombre de charges ou d ateliers que comptent le site: ');
    m=input('Entrer l''échelle choisie pour le cartogramme de charges en kW/m^2: ');
    Jd=input('Entrer la densité de courant utilisée en A/m^2: ');
    rhoAlMgSi=3.0e8;
    temps='entrer  l''abscisse de la charge n° ';
    temp='entrer l''ordonnée de la charge n° ';
    for i=1:1:nombre
       fprintf('%s %d',temps,i);
        abscisse(i)=input(': ');
    end
    
    for i=1:1:nombre
       fprintf('%s %d',temp,i);
        ordonnee(i)=input(': ');
    end
    
       for i=1:1:nombre
       fprintf('entrer la puissance active de la charge n° %d en kW',i);
        puissactive(i)=input(': ');
       end
    
       for i=1:1:nombre
       fprintf('Entrer le facteur de puissance de la charge n° %d',i);
        cosphi(i)=input(': ');
       end
      
       for i=1:1:nombre
       fprintf('Entrer la tension d alimentation de la charge n° %d en V',i);
       tension(i)=input(': ');
       end
      
       for i=1:1:nombre
           courant(i)=puissactive(i)*1000/(sqrt(3)*tension(i)*cosphi(i));
       end
      
        for i=1:1:nombre
            section(i)=puissactive(i)*1000/(sqrt(3)*tension(i)*Jd*cosphi(i))*1e6;
        end
       
        for i=1:1:nombre
            rayon(i)=sqrt(puissactive(i)/(pi*m));
        end
       
        xo=input('Entrer l''abscisse de la source avant étude: ');
        yo=input('Entrer l''ordonne de la source avant étude:');
        fprintf('*******CALCUL DES COORDONNEES DU BARYCENTRE******\n');
        fprintf('\n');
       
        alpha=0;
        sommeX=0;
        sommeY=0;
       
          for i=1:1:nombre
                alpha=alpha+puissactive(i);
                sommeX=sommeX+puissactive(i)*abscisse(i);
                sommeY=sommeY+puissactive(i)*ordonnee(i);
          end
               
                XG=sommeX/alpha;
                YG=sommeY/alpha;
                fprintf('Les coordonnées du barycentre sont:   XG=%8.6f m  et  YG=%8.6f m',XG,YG);
                fprintf('\n');
               
                 for i=1:1:nombre
                      Lo(i)=sqrt((abscisse(i)-xo)*(abscisse(i)-xo)+(ordonnee(i)-yo)*(ordonnee(i)-yo));
                      L1(i)=sqrt((abscisse(i)-XG)*(abscisse(i)-XG)+(ordonnee(i)-YG)*(ordonnee(i)-YG));
                 end
                
                     fprintf('La longueur de cable de chaque atelier  par rapport à la source avant etude est:\n');
                    
                for i=1:1:nombre
                      fprintf('Lo[%d]= %f m\n',i,Lo(i));
                end
               
            fprintf('*CALCUL DE LA LONGUEUR DES CABLES PAR RAPPORT A LA SOURCE APRES ETUDE*');
                      fprintf('\n');
                      fprintf('La longueur de cable de chaque atelier par rapport à la source apres etude  est:\n');
              
                      for i=1:1:nombre
                     fprintf('L1[%d]= %f m\n',i,L1(i));
                 end
                    
                 fprintf('*CALCUL DU GAIN EN LONGUEUR DE CABLE*\n');
                 fprintf('\n');
                 fprintf('Pour chaque atelier, le gain en longueur de cable est:\n');
               
                 for i=1:1:nombre         
                 deltaL(i)=Lo(i)-L1(i);
                 fprintf('deltaL[%d]=%f m,\n ',i,deltaL(i));
                 end
                
                for i=1:1:nombre
                pertesavant(i)=sqrt(3)*rhoAlMgSi*Lo(i)*Jd*puissactive(i)/(tension(i)*cosphi(i));
                pertesapres(i)=sqrt(3)*rhoAlMgSi*L1(i)*Jd*puissactive(i)/(tension(i)*cosphi(i));
                end
               
                 totalpertesAV=0;
                 totalpertesAP=0;
                
                 for i=1:1:nombre
                     totalpertesAV=totalpertesAV+pertesavant(i);
                     totalpertesAP=totalpertesAP+pertesapres(i);
                 end
                
                 deltap=100*(totalpertesAV- totalpertesAP)/ totalpertesAV;
                
                 fprintf('**AFFICHAGE DES RESULTATS FINAUX**\n');
                 fprintf('\n');
                 fprintf('**Tableau 1:GAIN EN LONGUEUR DE CABLE***\n');
                 fprintf('\n');
                 fprintf('**numero**Puissactive**distance AVE**distance APE****gain**\n');
                 fprintf('\n');
                
                 for i=1:1:nombre
                 fprintf('   %d      %f    %f     %f     %f   \n',i,puissactive(i),Lo(i),L1(i),deltaL(i));
                 end
                
                 fprintf('**Tableau2:Pertes de puissances**\n');
                 fprintf('\n');
                 fprintf('**numero***section*********cosphi***pertesavant***pertesapres\n');
                 fprintf('\n');
               
                 for i=1:1:nombre
                 fprintf('   %d    %f    %f   %f    %f    \n',i,section(i),cosphi(i),pertesavant(i),pertesapres(i));                         
                 end
                
                    fprintf('Le total des pertes avant etude est: PertesAV= %f\n',totalpertesAV);
                    fprintf('Le total des pertes apres etude est: PertesAPE= %f\n',totalpertesAP);
                    fprintf('La reduction des pertes est: REDUCTION= %f (en pour cent)\n',deltap);
                   
        axis([0 longueur 0 largeur]);
        t=0:0.002:2*pi;
        hold on;
        plot(xo,yo);
        plot(XG,YG,'r');
       
    for i=1:nombre
        X=abscisse(i)+rayon(i) *cos(t);
        Y=ordonnee(i)+rayon(i) *sin(t);
        plot(X,Y);
       
    end
    sommemoy=0;
    for j=1:1:nombre
        sommemoy=sommemoy+puissactive(j);
    end
     esperence=sommemoy/nombre;
       
    ecartype=input('Entrer l''écart type des puissances donné par la feuille excel: ');
    %esperence=input('Entrer la moyenne de puissance donnée par la feuille excel: ' );
    puissancehasard=random('normal',esperence,ecartype,1,1500);
    for j=1:1500
       for i=1:nombre
        puissancehasard=random('normal',esperence,ecartype,1,1500);
        npuissance(i)=puissancehasard(1,j);
        end
        alpha=0;
        sommeX=0;
        sommeY=0;
       
          for i=1:1:nombre
                alpha=alpha+npuissance(i);
                sommeX=sommeX+npuissance(i)*abscisse(i);
                sommeY=sommeY+npuissance(i)*ordonnee(i);
          end
               
                XG=sommeX/alpha;
                YG=sommeY/alpha;
                plot(XG,YG,'r');
       
    end
    
    hold off;
    fprintf('AUREVOIR\n');
                
                              
                                                                  
    MERCI

Discussions similaires

  1. Volumes vs Eléments Finis
    Par invite58549cb8 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 09/01/2010, 11h57
  2. Méthode de modélisation en éléments finis
    Par invite872de53a dans le forum Physique
    Réponses: 4
    Dernier message: 26/02/2009, 09h21
  3. elements finis
    Par ABN84 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 17/03/2007, 21h46
  4. maillage pour elements finis?
    Par ABN84 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 03/03/2007, 12h20
  5. Problème variationnel, Eléments finis, Matlab
    Par invite8b10a928 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 29/04/2004, 16h03