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"
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...
27/02/2007 - 21h35
ABN84
Date d'inscription
juillet 2004
Localisation
IDF
Messages
4 894
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"
ça pourra peut être t'aider au niveau de la matrice de connectivité, des noeuds etc...
Bon courage
+
http://www.arbredeslemuriens.com/
19/08/2008 - 17h39
trEcOn
Date d'inscription
août 2008
Âge
26
Messages
2
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
19/08/2008 - 23h13
Jaunin
Date d'inscription
novembre 2006
Localisation
Le Muids, Vaud, Suisse
Âge
67
Messages
5 542
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__
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
18/04/2010 - 11h15
emerynho
Date d'inscription
novembre 2008
Messages
15
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