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
-----
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
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...
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
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
+
que vous connaissez des forums ou des websites (avec les cours) qui discuter sur methode des éléments finis ? merci beaucoup
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
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
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