FreeCad FEM exploitation des résultats

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Alors Alex j’ai repris comme tu me l’avais proposé, la modélisation 2D de la plaque avec son plots fixé au centre et les 15 autres en déplacements.
miroir_coque_16_appuis.FCStd
(23.19 KiB) Downloaded 34 times
Les forces équivalentes sont données …
Deplacements.txt
(2.13 KiB) Downloaded 33 times
Conception Barillet.ods
(16.27 KiB) Downloaded 35 times
En remplaçant chaque déplacement par sa force équivalente et tout en conservant le plot central fixe, voici le résultat FEM à la même échelle:
Deplacements-Force.png
Deplacements-Force.png (329.86 KiB) Viewed 1277 times
Donc Deplacements : flèche de 28 nm vers le bas
et flèche Forces : 598 nm vers le bas (soit 21x supérieure).
Perso, je ne vois pas où il y a équivalence …

Alex, Bernd a posté sur le post en anglais. Pour moi c’est trop compliqué. Veux-tu bien lui faire part du problème ?
User avatar
FaDa3D
Posts: 874
Joined: Tue Aug 08, 2017 8:21 am
Location: Savoie France

Re: FreeCad FEM exploitation des résultats

Post by FaDa3D »

Bonjour,
Je peux enfin participer à ce post trés intéressant. Merci Bernd. Il me manquait un module python. Voir : https://forum.freecadweb.org/viewtopic.php?f=18&t=46912.
Voilà ma reflexion :

J'ai repris le pb théorique de la plaque carrée 100x100x1 centrée sur l'origine, sans chanfrein, sous son propre poids, avec les 4 coins de la face inférieure, noeuds 2,6,8,4, immobilisés en z. Modèle PlaqFEM1.fcstd

Par chance le maillage donne un noeud exactement au centre de la face supérieure : le noeud 658(0,0,1). J'immobilise le noeud 8 en x et y mais en éditant le fichier inp je déplace cette immobilisation au noeud 658 au centre de la face supérieure.. La fenêtre graphique ne change pas le point d'immobilisation. Donc la plaque est immobilisée en x et y.
Pas de pb pour calculer les réactions aux quatre coins et la flèche maximale -9.841360 µm au noeud 321 situé au plus prés du centre de la face inférieure (presque en dessous du noeud 658).

Je libére les noeuds 2,6,8,4 et leurs applique les réactions trouvées. Je bloque en z le noeud 658 en éditant le fichier inp. Modèle PlaqFEM2.fcstd. Aprés calcul, je constate que la plaque tourne autour de Z et bascule et que les déplacement affichés par ccx sont aux noeuds se déplaçant le plus.
Rotation et déplacement de la plaque.
Rotation et déplacement de la plaque.
Capture du 2020-05-29 14-22-02.png (90.42 KiB) Viewed 1250 times
. La moyenne algébrique des déplacements z vaut la flèche trouvée dans le calcul de détermination des réactions. La moyenne des déplacements z des noeuds se déplaçant le moins vaut aussi cette flèche.

La rotation et le basculement de la plaque ne sont pas identiques d'un calcul à l'autre. Vous ne retrouvez peut-être pas les mêmes valeurs de déplacement que moi. Je souhaite que vous puissiez reproduire la méthode pour confirmer.

Ca signifie que la déformée est bien identique entre les deux calculs. C'est confirmé par les valeurs identiques des déformations et de contraintes mécaniques aux noeuds dans les deux calculs.

Ma conclusion c'est que freeCADFEM calcul bien, mais qu'il nous présente mal les résultats nous obligeant à une analyse poussée pour dégager la vérité, analyse d'autant plus difficile que le modèle est complexe.
Attachments
PlaqFEM1.FCStd
Modèle 4 appuis.
(375.83 KiB) Downloaded 34 times
PlaqFEM2.FCStd
Modèle 4 réactions.
(414.14 KiB) Downloaded 28 times
Fada de 3D.
Linux Mint
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

FaDA3D bien vu et bravo d'avoir trouver une explication.
De mon coté avec 0.19 c'est un peu différent
PlaqFEM1.PNG
PlaqFEM1.PNG (86.14 KiB) Viewed 1228 times
PlaqFEM2.PNG
PlaqFEM2.PNG (83.93 KiB) Viewed 1228 times
ou
PlaqFEM2-a.PNG
PlaqFEM2-a.PNG (71.17 KiB) Viewed 1228 times
Et dans l'exemple du miroir_coque_16appuis d'Alex ci-avant, le centre étant fixe, je ne vois pas comment non seulement par une application localement différente, pouvoir retrouver la même flèche :?
Dans ton exemple les applications sont très localisées donc les différences entre déplacements et forces sont limitées.

Veux-tu bien essayer avec
miroir_coque_16_appuis.FCStd
(23.19 KiB) Downloaded 32 times
User avatar
FaDa3D
Posts: 874
Joined: Tue Aug 08, 2017 8:21 am
Location: Savoie France

Re: FreeCad FEM exploitation des résultats

Post by FaDa3D »

Bonjour,
46Cpi wrote: Sat May 30, 2020 5:26 am Veux-tu bien essayer avec
Je vais essayer.
Si je comprends bien tu n'es pas persuadé qu'il y a réciprocité entre appliquer des appuis et appliquer des réactions adéquates aux endroits de ces appuis. Outre la démonstration ponctuelle sur un cas théorique que j 'ai faite, je pense que si entre les deux méthodes de calcul, les déformations et les contraintes mécanique sont identiques, dans les deux cas la déformée est la même où que soit situé le modèle dans l'espace.
A suivre.
Fada de 3D.
Linux Mint
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

46Cpi wrote: Thu May 28, 2020 5:35 pm Alex, j’espère que ta liaison internet a pu être rétablie
Oui depuis quelques jours, mais le manque de temps ne m'a pas permis de revenir sur ce poste plus tôt.
Je vois que vous n'avez pas chômé ;)
Je ne reviens pas sur les posts précédents, je t'avoue que j'ai ma propre conviction sur tout cela, à savoir que les forces appliquées sur un modèle ne sont pas l'équivalent des forces de réaction aux appuis, sauf dans certains cas particuliers, comme celui de la plaque 100x100x1, c'est ce que je me propose d'illustrer ci-dessous.


J'ai donc repris la plaque 2D 100x100x1mm, soumise à son poids propre et sur 4 appuis aux coins. 4 appuis bloqués uniquement en Z et libres en rotation. C'est important, libres en rotation, donc sans moments (couple) aux nœuds bloqués. Et c'est bien parce qu'il n'y a pas de moment aux nœuds en appui que dans ce type de cas précis on va pourvoir mesurer les forces de réaction et les réutiliser de façon réaliste dans le second modèle (celui en équilibre entre forces de réactions récupérées et poids propre):

1er cas: - Plaque acier 100x100x1mm sous poids propre, sur 4 appuis aux coins en Z uniquement, plus quelques blocages de stabilisation du modèle, maillage 3mm Max:
test_plaque_coque_100x100x1_acier_poidspropre_4appuis_gmsh3mm.png
test_plaque_coque_100x100x1_acier_poidspropre_4appuis_gmsh3mm.png (103.08 KiB) Viewed 1178 times

Le fichier .dat donnent les forces de réaction suivantes:

Code: Select all

total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT1 and time  0.1000000E+01

        4.835287E-15 -6.819805E-14  1.939437E-01

 total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT2 and time  0.1000000E+01

        5.060754E-14  8.246637E-15  1.939463E-01

 total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT3 and time  0.1000000E+01

       -2.748008E-14  5.056823E-14  1.939437E-01

 total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT4 and time  0.1000000E+01

       -5.247730E-14 -3.534004E-14  1.939463E-01
Pour ce modèle le déplacement en Z = -10.3383µm min et 0mm Max, la contrainte von Mises = 0.480702 Pa min et 1027.01 kPa Max

2nd cas - Plaque acier 100x100x1mm sous poids propre, soumise aux 4 efforts de réaction précédents, chaque force placée aux même sommet que celui où l’effort de réaction a été récupéré sur le modèle précédent. Plus quelques blocages de stabilisation du modèle, judicieusement choisis pour ne pas induire d'efforts de réaction parasites. Maillage 3mm Max:
test_plaque_coque_100x100x1_acier_poidspropre_4forces_similaires-reactions_gmsh3mm.png
test_plaque_coque_100x100x1_acier_poidspropre_4forces_similaires-reactions_gmsh3mm.png (103.93 KiB) Viewed 1178 times

Pour ce modèle le déplacement en Z = -0mm min et 10.3332 µm Max, la contrainte von Mises = 0.422313 Pa min et 1038.37 kPa Max

On peu constater des résultats très proches, montrant que les 2 modèles sont similaires (la superposition des images permet également de s'en faire une idée).
Mais de mon point de vu, si ces modèles sont proches, ils ne sont pas pour autant vraiment équivalents. En fait ils ne sont proche que parce qu'aucun moment de flexion n'est présent aux appuis du 1er cas.
C'est bien parce que seule des forces sans moment de flexion sont présentes aux appuis comme efforts de réaction que l'on peut les reproduire assez fidèlement par des forces dans le 2nd cas.

Ma conclusion: si dans un modèle les efforts de réaction sont équivalents à des forces sans moment de flexion (et c'est rare, mais dans le cas de ton miroir ça va être possible je pense car les appuis multiples mais simples ne sont pas bloquants) alors on peut modéliser une analyse relativement équivalente en remplaçant les appuis par des forces simulant les efforts de réaction. Je dis relativement équivalente car il faudrait connaître dans le détail le comportement des charges de type CLOAD (concentrated load) comme celles présentes dans ce modèle de plaque 100x100 (notamment en terme de direction au cours de l'analyse).

Enfin, par pure hypothèse, et malgré ce que je vient d'écrire sur ce modèle particulier (avec charges aux nœuds de type CLOAD) et le fait qu'il semble bien fonctionner, je dirais qu'après tout rien ne dit que dans le cas d'un modèle avec charge appliquées sur des faces, donc distribuées sur plusieurs nœuds (DLOAD) par face, rien ne dit que pour un tel modèle la dite répartition soit juste. Personnellement je pense qu'elle l'est, je veux dire que je fais confiance à FreeCAD et Ccx pour cela, mais à vrai dire je ne l'ai pas personnellement vérifié. Quoi qu'il en soit je pense que je n'investiguerai pas plus loin à ce sujet, je n'en ai pas les compétences d'une part (étude approfondie de Ccx ou du code) et je considère que les développeurs ont traités le sujet d'assez près (https://forum.freecadweb.org/viewtopic.php?f=18&t=10692).
Et d'autre part, pour faire le même type de comparaison que celle que j'ai fait sur le modèle ci-joint, mais cette fois sur un modèle avec des appuis bloquants des faces (ou des arrêtes), il faudrait pouvoir récupérer les forces de réaction mais aussi les moments de réaction aux appuis. Puis dans le second modèle il faudrait pouvoir introduire ces même moments de réaction. A ma connaissance FreeCAD ne le permet pas. C'était un peu le sens de la remarque de @Fandal sur le forum FEM https://forum.freecadweb.org/viewtopic. ... 49#p401468.
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

Maintenant la même plaque test avec appui circulaire central, pour simuler un appui simple sur plot cylindrique:
Les cartes NODE PRINT du fichier .inp:

Code: Select all

*NODE PRINT, NSET=ConstraintDisplacement_circu_Z, TOTALS=ONLY
RF
*NODE PRINT, NSET=ConstraintDisplacement_stab_x, TOTALS=ONLY
RF
*NODE PRINT, NSET=ConstraintDisplacement_stab_y, TOTALS=ONLY
RF

Le résultat:
test_plaque_100x100x1_acier_poidspropre_appui_circu_depZ.gif
test_plaque_100x100x1_acier_poidspropre_appui_circu_depZ.gif (201.08 KiB) Viewed 1149 times

Code: Select all

total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT_CIRCU_Z and time  0.1000000E+01

        4.596068E-14 -4.496907E-14  7.757800E-01

 total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT_STAB_X and time  0.1000000E+01

        8.043696E-13  1.987863E-13  8.436068E-13

 total force (fx,fy,fz) for set CONSTRAINTDISPLACEMENT_STAB_Y and time  0.1000000E+01

       -2.600589E-14 -9.472043E-12  1.975468E-12
On constate que le poids sur l'appui circulaire central de 0.77578N est exactement le poids théorique de la plaque (7.9x0.01x9.82=0.77578N)
Déplacement en Z: -3.9840400 µm min et 354.0130000 nm Max
On constate également que la plaque peut se soulever à l'intérieur de la zone d'appui, ce qui est réaliste.
De mon point de vue cette modélisation peut être généralisée pour le cas d'étude de ton miroir sur appuis multiples. En maillant assez fin (3 à 5mm) le modèle 2D restera léger et il ne sera pas nécessaire de créer de région de maillage.
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Alex merci de ton retour et du temps passé sur ce post.
De mon coté j’ai mis du temps pour intégrer certaines choses. Entre appui et force équivalent il y a bien des écarts maintenant expliqués, et dont toute la problématique est bien présenter dans le lien que tu as gracieusement communiqué.
https://forum.freecadweb.org/viewtopic.php?f=18&t=10692
Pour faire très court, type de maille et répartition sur les nœuds, bref toute la problématique des éléments finis …

Ton dernier post présente aussi une meilleure solution avec des appuis circulaires en tous les cas plus réaliste qu’une simple immobilisation en Z.

Cependant il va bien falloir que je remplace les appuis par des efforts variables pour évaluer les écarts de fabrication du barillet.
Déplacement et force sont intimement liés et dans un cylindre d’une certaine longueur c’est propre un peu comme un ressort (c’était une idée de départ de Paul 18 utiliser des ressorts). Alors je me demandais si en ajoutant des cylindres de même matière aux appuis et en utilisant le déplacement de la face extérieure au lieu d'appliquer une force ou pression, cela fonctionnerait. Qu’en penses-tu ou que me conseilles-tu ?
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Par contre je suis bloqué car on ne peut pas rentrer des petites valeurs soit en pression soit en déplacement.
La pression est limité au Pa nombre entier et le déplacement au 0.01mm.
Où peut t'on modifier ces paramètres bloquants (nombre de décimales ...) ?

Et où se trouve la constante de gravitation 9.81 et peut-on aussi la modifier en cas de besoin ?

Merci d'avance
46Cpi
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

46Cpi wrote: Mon Jun 01, 2020 5:48 pm Cependant il va bien falloir que je remplace les appuis par des efforts variables pour évaluer les écarts de fabrication du barillet.
Désolé ce n'est pas assez claire pour moi, que veux tu faire exactement?
Déterminer quel est l'impact des défauts d'usinage du barillet sur la planéité du miroir? Déterminer un défaut maximum autorisé?
Et si oui, pourquoi vouloir utiliser des efforts variables?
Déplacement et force sont intimement liés et dans un cylindre d’une certaine longueur c’est propre un peu comme un ressort (c’était une idée de départ de Paul 18 utiliser des ressorts). Alors je me demandais si en ajoutant des cylindres de même matière aux appuis et en utilisant le déplacement de la face extérieure au lieu d'appliquer une force ou pression, cela fonctionnerait. Qu’en penses-tu ou que me conseilles-tu ?
Oui, utiliser les déplacements c'est ce que je te conseillerai, mais pas comme tu l'entend j'ai l'impression. Là aussi, ton but n'est pas assez claire pour moi. Dis moi pourquoi tu veux tant utiliser des forces pour évaluer l'impact des défauts géométriques sur ton projet?

Je vais te donner mon point de vue, tu me dira si ça correspond à ton projet.
Si tu veux déterminer l'impact d'un défaut de planéité des appuis de ton châssis "barillet", il me semble qu'il te suffit d'imposer un certain déplacement (égale au défaut de planéité que tu veux simuler) sur une (ou plusieurs) arrête circulaire de ton modèle (suivant l'étendue que tu veux donner à ton défaut).
Donc en réalisant un modèle dans l'esprit de l’exemple de mon poste précédent, au lieu de bloquer les arrêtes circulaire en Z il te suffit de donner à certaines d'entre elles une valeur de déplacement.
Pour le problème de décimale de la valeur je n'ai pas de solution désolé, à part retoucher la valeur dans le fichier .inp:

Code: Select all

** ConstraintDisplacement
*BOUNDARY
ConstraintDisplacement,3,3,0.000001
De mon point de vue il est inutile de modéliser les plots, tu peux rester en 2D.
Ceci étant dit, tu l'as compris il ne s'agit pas ici d'un modèle à contacts, mais d'un simple modèle 2D avec conditions aux limites de type déplacement.
Dans ces conditions il est claire que si tu déplaces un appui pour le surélever par rapport aux autres appuis environnants, la force de réaction va augmenter sur celui ci et diminuer jusqu'à atteindre 0 sur certains des appuis environnants. Et si tu continues de surélève trop l'appui, alors il y aura inversion des forces de réaction aux appuis environnants, la où un modèle à contacts aurait laissé les réactions environnantes à 0 et fait apparaître un décollement, donc du jeu.
Idem si tu abaisses trop un appui, l'arrête va tirer le miroir, la force de réaction de l'appui va passer par 0 puis changer de sens.
Dans un tel modèle aucun jeu n’apparaîtra jamais, il te faut donc toujours rester dans des valeurs de déplacements compatibles avec la rigidité de ton système (ici le miroir et ses appuis). Par contre il devrait être facile de vérifier si tu es dans les limites, il suffit de vérifier dans le fichier .dat si une force de réaction à changée de sens.
Je ne sais pas si pour toi c'est un problème, mais c'est une limite du modèle ça c'est certain, il faut juste en avoir conscience ;)
46Cpi wrote: Tue Jun 02, 2020 11:06 am Et où se trouve la constante de gravitation 9.81 et peut-on aussi la modifier en cas de besoin ?
elle est écrite en dur dans le ficher .inp, à 9.82.

Code: Select all

*DLOAD
Eall,GRAV,9820,0.0,0.0,-1.0
Tu peux la modifier dedans. Sinon tu as accès à ses 3 composantes x,y et z via la propriété "gravité" de l'objet FEM_ConstraintSelfWeight/fr.
Par défaut z=1 et x,y =0
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Alex heureux de te lire.
Et si oui, pourquoi vouloir utiliser des efforts variables?
Alex je pensais que tu avais compris qu’un barillet était 3 points de bases transposés en un nuage de points d’appuis (plots sur rotules), via des bascules et triangles articulés dont toutes les articulations sont aussi des rotules. Donc tous les appuis sont en contact et exercent une réaction locale fonction de la géométrie du barillet et fonction du poids local du verre au-dessus aux appuis du même module. Donc je ne veux pas utiliser d’efforts variables, mais cependant une différence de géométrie du barillet par rapport à son théorique donnera une déformée différente.

Exemple 2D dans le plan vertical, un verre simulé par 2 longues droites parallèles dont la distance entre ces 2 droites matérialise l’épaisseur du verre, et 2 appuis localisés par une balance (bascule) classique à 2 plateaux (les 2 appuis) et l'axe pivot (le point de base), la déformée minimale sera obtenue lorsque l’axe pivot est placé au milieu des 2 appuis (répartition équivalentes au 2 appuis).
Mais si l’axe pivot est décalé par rapport au milieu des 2 appuis, l’un appuiera moins et l’autre plus et la déformée du verre sera plus importante.
Si maintenant les 2 droites ne sont pas parallèles (épaisseur variable du verre, verre concave), la déformée minimale du verre ne correspondra pas à la position du pivot au milieu des 2 appuis. Et un écart par rapport à sa position optimale ou une différence de la distance entre les appuis génèrera une déformée plus grande et différente que dans le cas précédant.

On peut dire que tu l’à dit autrement ici :
Dans ces conditions il est claire que si tu déplaces un appui pour le surélever par rapport aux autres appuis environnants, la force de réaction va augmenter sur celui ci et diminuer jusqu'à atteindre 0 sur certains des appuis environnants. Et si tu continues de surélève trop l'appui, alors il y aura inversion des forces de réaction aux appuis environnants, la où un modèle à contacts aurait laissé les réactions environnantes à 0 et fait apparaître un décollement, donc du jeu.
Idem si tu abaisses trop un appui, l'arrête va tirer le miroir, la force de réaction de l'appui va passer par 0 puis changer de sens.
Dans un tel modèle aucun jeu n’apparaîtra jamais, il te faut donc toujours rester dans des valeurs de déplacements compatibles avec la rigidité de ton système (ici le miroir et ses appuis). Par contre il devrait être facile de vérifier si tu es dans les limites, il suffit de vérifier dans le fichier .dat si une force de réaction à changée de sens.
Je ne sais pas si pour toi c'est un problème, mais c'est une limite du modèle ça c'est certain, il faut juste en avoir conscience
Une simulation 3D du verre par un modèle 2D dans l’espace, n’est pas représentative d’un miroir. Tout au plus elle peut représenter la face arrière du verre mais ne correspondra pas à la déformée de la face avant, la face optique du verre. Et encore si les 2 faces étaient parallèles, hors un miroir est concave donc avec une épaisseur en coupe dissymétrique. Dans mon cas en plus d’être concave, le verre est épais, alvéolé, et donc la répartition des masses est spécifique. Il faut donc une simulation 3D représentative.

Pour revenir à l’exemple de la balance bascule supportant un verre, certains diront qu’une balance est équilibrée si les 2 poids (forces) dans les plateaux sont identiques. Je dirais plutôt qu’elle est en équilibre fonction du rapport des masses (rapport des forces) et en fonction de sa géométrie la longueur de ses bras et la position de l’axe pivot (loi du barycentre ou loi des moments). Voilà pourquoi j’ai tant besoin des liaisons déplacement/force équivalente et force/déplacement équivalent, pour calculer la géométrie du barillet optimal et quantifier les répercutions sur la face optique des incertitudes de fabrication du barillet.

Un déplacement appliqué directement sur une zone de la face arrière (périmètre cercle ou disque surface) est-ce mieux qu’un cylindre de même diamètre (un piston ressort) et de même matière, répartissant les efforts aux nœuds de la zone concernée de la face arrière …
D’une certaine longueur par exemple 40mm on pourrait par une simulation indépendante obtenir la courbe donnant sa relation précise déplacement/force appliquée.

Mais les déplacements doivent pouvoir être très petit (des nm), la solution serait si j’ai bien compris par l’édition du fichier.inp. Super ce fichier.inp on peut tout y faire, merci Alex je vais testé.

Par défaut z=1 et x,y =0
Oui c’est cela que j’utilise en modifiant ces valeurs pour incliner le miroir en changeant la direction de la gravité (très pratique et en plus on reste dans le repère du miroir pour l'exploitation des résultats). Et encore par le fichier.inp on peut changer la constante de la Gravitation.
Merci Alex
Post Reply