Bonjour,
Je ne comprends pas très bien comment Matlab restitue les valeur propre dans un calcul utilisant la fonction 'eig'.
Introduction au probleme, j'effectue la recherche de frequence propre d'un systeme à 3ddl
Je cherche ensuite à ordonner les frequences propres, soit à ordonner les valeurs propres suivant ma matrice K.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 M(1,1) = m ; M(1,2) = d1*Mm ; M(1,3) = 0; M(2,1) = Mm*d1 ; M(2,2) = I ; M(2,3) = d2*Mm ; M(3,1) = 0 ; M(3,2) = Mm*d2 ; M(3,3) = m ; K(1,1) = Kp ; K(1,2) = 0 ; K(1,3) = 0 ; K(2,1) = 0 ; K(2,2) = Kt ; K(2,3) = 0 ; K(3,1) = 0 ; K(3,2) = 0 ; K(3,3) = Kc; [V,D] = eig(K/M,'nobalance'); f = sqrt(D)/(2*pi) ; % Frequences propres
Première valeur propre correspondant à Kp
Deuxième valeur propre correspondant à Kt
Troisième valeur propre correspondant à Kc
Cependant Matlab me donne restitue toujours dans un ordre différent selon les valeurs des K. J'ai essayé de faire plusieurs choses, des tests sur les vecteurs propres (matrice V) pour identifier à partir du vecteur propre la valeur propre correspondant au mode lié au K.
Cette méthode marche bien tant que mes vecteurs propres sont différents, dès que j'ai 2 K similaires les vecteurs propres se ressemblent et le test devient inefficace.
En espérant avoir été clair, je vous remercie pour votre aide.
Cdlt,
Kax.
Partager