Bonjour à tous,
Dans le cadre de mon travail de fin d'étude, je suis amené à simuler les réponses temporelles d'éléments non linéaires (comme des ressorts cubiques ou des matériaux hyperélastiques) au moyen du logiciel Nastran.
Pour décrire les lois de comportement de ces non-linéarités, Nastran demande des tables dans lesquelles on entre la coordonnée d'un certain nombre de points de la courbe Contrainte/Déformation.
Cette table prend la forme suivante :
Pour ceux qui ne connaitrait pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3$--01--><--02--><--03--><--04--><--05--><--06--><--07--><--08--><--09--><--10--> TABLES1 NTABLE x1 y1 x2 y2 ... ... ENDT
- "$" : Symbole de commentaire ;
- TABLES1 : Nom de la fonction Nastran pour la création d'une table ;
- NTABLE : Numéro de la table créée ;
- x1 : Abscisse du premier point ;
- y1 : Coordonnée du premier point ;
- x2 : Abscisse du second point ;
- y2 : Coordonnée du second point ;
- etc...
- ENDT : Commande signalant la fin du tableau.
Ma question ici est : comment demander à Matlab, à partir de données calculées dans un vecteur ou une matrice, d'écrire celles-ci sous cette forme pour qu'elles puissent être utilisées par Nastran sans post-traitement par un utilisateur ?
Je vois comment écrire un fichier ou même des données dans un fichier. Ce que je ne sais pas comment faire, par contre, c'est imposer la structure des fichiers Nastran.
En effet, Nastran découpe chaque ligne d'un fichier de lecture en 10 cases de 8 caractères :
Il faut donc qu'à chaque fois que Matlab écrit une donnée, par exemple une abscisse, il saute automatiquement au "champs" suivant avant d'écrire la seconde.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $--01--><--02--><--03--><--04--><--05--><--06--><--07--><--08--><--09--><--10-->
Je voulais donc savoir s'il était possible de faire cela automatiquement ou si cela doit se faire de manière détournée (par exemple en utilisant le fait que le nombre d'espaces entre 2 champs étant donné par : "8 - Nbre de caractères écrits pour la donnée").
Je suis donc un peu perdu dans tout ça, surtout que je n'ai jamais vraiment utilisé Matlab écrire des fichiers .txt.
J'espère avoir été clair dans mes explications. Si ce n'était pas le cas, n'hésitez pas à me le faire savoir.
Merci d'avance si vous savez me donner un petit coup de pouce !
Cédric
Partager