Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Calcul de frequences propres sous Matlab



  1. #1
    Koranten

    Calcul de frequences propres sous Matlab

    Bonjour,

    Dans un probleme par elements finis, je veux calculer les frequences propres de ma structure.

    Mathematiquement, c'est de la forme

    det(K-w2M)=0, le 2 est un carre.

    Les matrices K et M sont gigantesques, evidemment, pas question de le faire a la main donc je sors Matlab.

    Mais comment faire pour resoudre cette equation en w2?

    Il y a bien la fonction eig qui sur la matrice A fait

    eig(A) > det(A-Lambda*I)=0

    Ca y ressemble donc pas mal, mais ma matrice M n'est pas purement diagonale comme I, ses coefficients valent encore mois 1, bref ce n'est pas du tout la matrice Identite...

    C'est une matrice a bande, mais bon ca n'amene rien au probleme.

    Quelqu'un aurait une idee?

    Merci d'avance!!!

    -----


  2. Publicité
  3. #2
    GrisBleu

    Re : Calcul de frequences propres sous Matlab

    salut

    eig, cest pour eigenvalues: les valeurs propres.
    Ton probleme (a moins que M soit inversible) est plutot dans la categorie generalized eigenvalues. regarde eig(K,M). la page d information sur eig (toujours regarde ce site en cas de probleme sur matlab) est la:
    eig

    En esperant t'avoir aide. A+

  4. #3
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Merci de ton aide. En effet, M n'est pas inversible. K non plus d'ailleurs.

    Generalized eigenvalues...? De quoi s'agit-il?

    J'ai regarde eig(K,M). Mais, de ce que j'en ai vu, c'est la meme chose que eig(K), sauf que Matlab renvoie en plus des valeurs propres, les vecteurs propres associes, dans M.

    A moins que si M existe deja, Matlab "comprenne" ?

    C'est etrange que j'ai autant de mal avec cette histoire, parce que resoudre det(K-w2M)=0 c'est un probleme archi-classique et generalement Matlab est code de sorte qu'il possede des fonctions pour les problemes classiques...

    Alors?

    Encore merci de ton aide!

  5. #4
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Bon je remonte mon propre probleme...

    Apres verification en "generalized eigenvalue" il y a bien une fonction "eigs" qui pourrait s'appliquer a mes deux matrices K et M... mais, probleme!

    > Matlab me dit que M doit etre symetrique, positive... Or, elle n'est pas symetrique. Enfin, elle l'est dans la facon dont elle est concue, c'est une matrice a bande provenant d'une methode elements finis, mais les valeurs numeriques ne se refletent pas... Matlab me suggere de mettre le facteur de Cholesky de M a la place de M, je ne comprends pas trop pourquoi et je trouve ca dangereux de lancer un calcul sans le comprendre, voire completement stupide. De toutes facons, je recupere toujours le meme message d'erreur...

    HELP!!

  6. #5
    ChromoMaxwell

    Re : Calcul de frequences propres sous Matlab

    Pourquoi ne pas multiplier par la transposée de M à gauche ? Si M est inversible, le produit de M par sa transposée sera une matrice symétrique définie positive.

    Tu perdras en précision (en particulier si M est mal conditionnée), mais au moins l'algorithme fonctionnera.

    Quelque chose comme eigs(M'*K,M'*M,6,'sm') devrait convenir. Car dans une méthode aux éléments finis, ce sont les plus petites valeurs propres qui sont correctement approchées. Les plus grandes n'ont plus grand sens.
    Dernière modification par ChromoMaxwell ; 29/03/2007 à 18h11.

  7. A voir en vidéo sur Futura
  8. #6
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Merci, mais M n'est justement *pas* inversible... C'est une matrice de masse, et tant qu'elle n'est modifiee par aucune conditions aux limites, elle est singuliere. Quelle galere. Ou alors je dois la modifier? Mais ca n'a pas de sens, je cherche les frequences propres, qui ne sont fonction que de la structure elle-meme, et pas de son environnement. C'est une tuyere de moteur fusee. Je dois l'encastrer? Moi ca me parait bizarre...

  9. Publicité
  10. #7
    ChromoMaxwell

    Re : Calcul de frequences propres sous Matlab

    Dans ce cas-là, K est-elle inversible ? Tu peux obtenir l'inverse des valeurs propres souhaitées (à un signe près), en regardant l'autre problème aux valeurs propres généralisé obtenu en interchangeant K et M.

    Peut-on avoir la structure de tes matrices K et M par ailleurs ?

  11. #8
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Non, K n'est pas inversible non plus, helas! La structure de K et M? Ben... ce sont des matrices carrees, a bande, issues d'un assemblage de matrices elementaires carrees elles aussi et symetriques. Je ne sais pas trop quoi dire d'autre. Je ne suis pas un specialiste ni du calcul matriciel ni des applications lineaires. Je suis juste un utilisateur dans ce domaine avec des connaissances generales. Merci!

  12. #9
    ChromoMaxwell

    Re : Calcul de frequences propres sous Matlab

    J'ai reconsulté le peu que j'avais sur les méthodes d'éléments finis.

    La matrice K dite de rigidité, et la matrice M dite de masse sont calculés à partir d'une base d'un espace de dimension finie, sur lequel tu cherches les solutions.

    Notons cette base. Alors normalement, la matrice M a pour coefficients . La matrice K dépend d'une forme bilinéaire , qui reflète l'équation que tu souhaites résoudre. En général, elle est symétrique et coercive et les coefficients de K sont les . Ces matrices sont donc définies positives, en particulier inversibles.


    La référence est le poly de Grégoire Allaire en optimisation (pages 229 et suivantes) :
    http://catalogue.polytechnique.fr/Files/p_Allaire5.pdf


    Bref, tu as sans doute fait une erreur dans ta méthode ou alors tu utilises d'autres moyens pour arriver à ton équation aux valeurs propres.

  13. #10
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Je ne sais pas ce que veut dire "coercive". Ce dont je suis sur, cours de computationnal engineering a l'appuis, livres sur la methode des elements finis en pratique, et meme experience personnelle, c'est que ces matrices sont *toujours* singulieres donc non-inversibles. Il y a d'ailleurs une raison tout a fait physique a ca, et meme mathematique d'ailleurs. Ces systemes matriciels representent des equations *differentielles*. Il y a donc une infinite de solutions tant que l'on n'a pas fixe de conditions aux limites. Lorsque celles-ci sont fixees, les matrices de rigidite K, de masse M (et autres) sont modifiees en consequence et ce n'est qu'alors qu'elles deviennent inversibles et offrent une solution unique. De ce cote la, je suis sur de moi. Merci pour le lien, il est interessant, mais il ne m'aide pas. Et merci pour ton aide en tous les cas.

  14. #11
    plath

    Re : Calcul de frequences propres sous Matlab

    Bonjour à tous,

    Effectivement tant que tes conditions aux limites ne sont pas appliquées ta matrice raideur est symétrique semi definie positive. Tu ne peux pas l'inverser car il te manque l'application des conditions aux limites pour virer les valeurs singulières.
    Dans le code que je réalise le problème est en statique et pour traiter par exemple les encastrements il suffit de supprimer les lignes et les colonnes de K qui sont liées aux degres de liberté bloqué.
    Par conséquente pourquoi ne pas faire pareil en analyse modale. Tu supprimes les lignes des ddl (degré de liberté) bloqué et ainsi tu fait sauter les valeurs singulières de tes matrices.
    L'autre solution serait de regarder dans Matlab du côté de la fonction PINV qui te calcule la pseudo inverse de la matrice c'est à dire très grosso modo la matrice inverse sans les singularités.
    Voila j'espère t'avoir un peu aiguillé.
    PLATH

  15. #12
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Oui, merci, j'allais effectivement me resigner a appliquer les conditions aux limites, apres verification dans la litterature "sciences et techniques de l'ingenieur".

    J'applique tjrs ces conditions habituellement, autrement on ne peut rien faire, mais pour les frequences propres je pensais qu'on pouvait traiter le systeme tout seul car justement on parle de frequences *propres*.

    Mais apres reflexion physique, c'est stupide.

    En fait j'ai un autre probleme. Je voulais passer par les valeurs propres parce que mon integration temporelle de md2x/dt2... explose completement. Pourtant ca marche tres bien quand j'integre dans le temps cette meme structure pour la partie thermique. Bizarre. Je ne trouve pas mon erreur.

    Tu fais aussi un code elements finis? Quel genre? Moi c'est de la thermomecanique 3d axisymetrique, tuyere de moteur fusee, en temporel et non lineaire. Plutot velu. J'en chie pas mal mais la partie statique marche pas trop mal. Il me reste juste quelques problemes de contraintes.

    PINV... Une fonction qui inverse une matrice, meme singuliere? C'est possible, ca? C'est quoi l'astuce de Matlab derriere tout ca?

    Merci!

  16. Publicité
  17. #13
    plath

    Re : Calcul de frequences propres sous Matlab

    Re-

    Pour ton intégration temporelle quel schéma utilise tu?
    As tu verifier sa consistance mais surtout sa stabilité?
    Es tu en implicite ou explicite?
    A plus
    PLATH

  18. #14
    Koranten

    Re : Calcul de frequences propres sous Matlab

    Salut

    Pour l'integration temporelle, oui oui t'inquietes j'ai bien verifie, j'utilise une methode INconditionnellement stable (newton avec facteur 1/2 ou crank-nicholson je me souviens jamais des noms desole).

    Mes matrices sont consistantes pour le moment, je n'ai pas fait de lumping (condensation), du coup je ne suis pas purement diagonal... Donc mon systeme n'est pas decouple et est EXplicite.

    Interessant tout ca dis-donc tu a l'air de t'y connaitre!

Sur le même thème :

Discussions similaires

  1. TPE sur les ponts : fréquences de résonance et modes propres du tablier
    Par Tropicana dans le forum TPE / TIPE et autres travaux
    Réponses: 15
    Dernier message: 31/08/2007, 19h06
  2. Algèbre : recherche de sous espaces propres.
    Par Gpadide dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 11/02/2006, 15h13
  3. sous espaces propres orthogonaux
    Par pepinou dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 06/07/2005, 18h29
  4. Probleme de Calcul sous Matlab
    Par jmimi_fr87 dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 20/12/2004, 12h29
  5. sous-espaces propres
    Par pepinou dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 16/05/2004, 13h51