Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

eigenfrequencies sorted by eigen modes

Please login with a confirmed email address before reporting spam

I wonder if there is a way that the table result (solid.freq) can be sorted by eigen modes, not the magnitude of eigenfrequencies.

I did a parametric sweep and calculated the change of lowest 7 eigenfrequencies. (structural mech.) I want to make a graph (1D table graph) of eigenfrequencies of different modes. The problem is, that the magnitudes of eigenfrequencies are not always match with eigen modes. When I create a Global Evaluation - solid.freq and plot the result to table graph, the frequencies in y-axis are always sorted by the magnitude. So when I use legends, the lines are switched when the magnitudes of eigenfrequencies are changed from different eigen modes. Please let me know if there is anyone who knows how to resolve this problem. I think this will be resolved when the table result (solid.freq) can be sorted by eigen modes, not the magnitude of eigenfrequencies.


2 Replies Last Post 13 août 2019, 02:15 UTC−4

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 1 août 2019, 10:49 UTC−4
Updated: 5 years ago 2 août 2019, 13:57 UTC−4

I just found this article "Fundamental Eigenfrequency of a Rotating Blade" and realized it includes the same error I encountered: "Notice the crossing modes, which are misinterpreted because of the sorting of the natural frequencies." So I wonder if there is a way to resolve this misinterpretation. Is there a way to set the result of eigenfrequencies by the order of original matrix or eigen mode indices, not the magnitude of eigenfrequency?

  • I just realized that this is not possible since there is no such mode index, and each mode is defined by displacement field which is not a fixed value.
I just found this article "Fundamental Eigenfrequency of a Rotating Blade" and realized it includes the same error I encountered: "Notice the crossing modes, which are misinterpreted because of the sorting of the natural frequencies." So I wonder if there is a way to resolve this misinterpretation. Is there a way to set the result of eigenfrequencies by the order of original matrix or eigen mode indices, not the magnitude of eigenfrequency? * I just realized that this is not possible since there is no such mode index, and each mode is defined by displacement field which is not a fixed value.


Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 13 août 2019, 02:15 UTC−4
Updated: 5 years ago 13 août 2019, 02:12 UTC−4

Hi,

What you are looking for is often called 'mode tracking'. This is actually far easier for the human eye than for a computer.

The idea is that you form an inner product by integrating two modes against each other. Since modes (for the same parameter) are orthogonal, you can expect that they are 'almost orthogonal' for close parameter values. That is, the inner product of two modes is either rather close to 1 (same mode) or rather close to 0 (not same mode)

The level of difficulty depends on for example the type of parameter you are varying. In the Rotating Blade example you refer to it is rather straight forward. The following expression can be used to form a numbering:

sum(k*round(abs(intop1((withsol('sol3',u,setind(lambda,k,Omega,1))*withsol('sol3',u,setval(lambda,lambda,Omega,Omega))+withsol('sol3',v,setind(lambda,k,Omega,1))*withsol('sol3',v,setval(lambda,lambda,Omega,Omega))+withsol('sol3',w,setind(lambda,k,Omega,1))*withsol('sol3',w,setval(lambda,lambda,Omega,Omega)))*solid.rho))),k,1,6)

Here, intop1() integrates over the whole structure, and mass matrix scalign of the modes is assumed.

The effect can be seen in the attached plot.

Regards,
Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi, What you are looking for is often called 'mode tracking'. This is actually far easier for the human eye than for a computer. The idea is that you form an inner product by integrating two modes against each other. Since modes (for the same parameter) are orthogonal, you can expect that they are 'almost orthogonal' for close parameter values. That is, the inner product of two modes is either rather close to 1 (same mode) or rather close to 0 (not same mode) The level of difficulty depends on for example the type of parameter you are varying. In the Rotating Blade example you refer to it is rather straight forward. The following expression can be used to form a numbering: sum(k\*round(abs(intop1((withsol('sol3',u,setind(lambda,k,Omega,1))\*withsol('sol3',u,setval(lambda,lambda,Omega,Omega))+withsol('sol3',v,setind(lambda,k,Omega,1))\*withsol('sol3',v,setval(lambda,lambda,Omega,Omega))+withsol('sol3',w,setind(lambda,k,Omega,1))\*withsol('sol3',w,setval(lambda,lambda,Omega,Omega)))\*solid.rho))),k,1,6) Here, intop1() integrates over the whole structure, and mass matrix scalign of the modes is assumed. The effect can be seen in the attached plot. Regards, Henrik

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.