How to extract the Mode Shape Matrix from the results of the MotionView?

Mohit Singhal
Mohit Singhal Altair Community Member
edited April 2021 in Community Q&A

I have performed a Modal Analysis on Rigid Bodies in MotionView. Now I want to extract the mode shape matrix (the numerical values) from the results of the simulation. How can I do that?

Answers

  • AnanthK
    AnanthK
    Altair Employee
    edited April 2021

    Hello Mohit - By mode shape matrix do you mean the eigenvalues? Please take a look at the following tutorials available with your install (hit F1 in any motionview screen): 

    MV-2050: Linear Analysis for Stability and Vibration Analysis

    MV-2051: Frequency Response Analysis using MotionSolve and Compose

  • Mohit Singhal
    Mohit Singhal Altair Community Member
    edited April 2021

    Hello Mohit - By mode shape matrix do you mean the eigenvalues? Please take a look at the following tutorials available with your install (hit F1 in any motionview screen): 

    MV-2050: Linear Analysis for Stability and Vibration Analysis

    MV-2051: Frequency Response Analysis using MotionSolve and Compose

    Hi, 

     

    Eigenvalues are the natural frequencies of the system. By mode shape matrix I mean the Eigen vectors of the system. I have already checked the tutorials MV-2050 and MV-2051 but they tell how to get the numerical values of the mode shape matrix. 

  • Patrick Goulding_21563
    Patrick Goulding_21563 New Altair Community Member
    edited April 2021

    Hello Mohit,

     

    To help me understand the steps you've taken so far, did you run a Linear Analysis Simulation in MotionView and receive an *.oml output file which contains the system's ABCD matrices?  If this is the case, I can give you the steps to calculate and plot the Mode Shapes in Compose.

     

    Thank you,

    Patrick

  • Patrick Goulding_21563
    Patrick Goulding_21563 New Altair Community Member
    edited April 2021

    Mohit,

     

    If you have the State Matrix (A) of your system, please try the following simple code in Compose to plot the Mode Shapes:

     

    %% example where size(A) = 2x2

    clear all, close all, clc;

    [v,d]=eig(A); % v=eigenvector matrix, d=eigenvalues vector

    N=size(A,1);

    plot(v',':');
    xlabel('Elements'); ylabel('Mode amplitude');
    title('Mode shapes');
    axis([0.5 N*1.5 -1 1]);
    set(gca,'xtickmethod', 'increment', 'xtick', 0.5);
    legend('Mode 1', 'Mode 2'); %% # of Modes depends on size(A)
    hold on
    stem(v'(:,1), 'b');
    stem(v'(:,2), 'g');  %% # of stem plots depends on size(A)
    hold off

     

    Take care,

    Patrick

  • Nikhil Eldurkar_21140
    Nikhil Eldurkar_21140 New Altair Community Member
    edited April 2021

    Hi Ananth and Patrick,

    Thank you for your answers.  I just had a call with Mohit and posted what he is looking for on mtech.  Reproducing it here, if anyone else knows the answer:

    @Mohit Singhal  was previously using Ansys to perform a linear analysis on a rigid body to identify the frequency and amplitude information for each model.  The .eig file has the frequency information.  Would anyone know how to plot the amplitudes for each frequency? 

    Regards,

    Nikhil

  • Nikhil Eldurkar_21140
    Nikhil Eldurkar_21140 New Altair Community Member
    edited April 2021

    Mohit,

     

    If you have the State Matrix (A) of your system, please try the following simple code in Compose to plot the Mode Shapes:

     

    %% example where size(A) = 2x2

    clear all, close all, clc;

    [v,d]=eig(A); % v=eigenvector matrix, d=eigenvalues vector

    N=size(A,1);

    plot(v',':');
    xlabel('Elements'); ylabel('Mode amplitude');
    title('Mode shapes');
    axis([0.5 N*1.5 -1 1]);
    set(gca,'xtickmethod', 'increment', 'xtick', 0.5);
    legend('Mode 1', 'Mode 2'); %% # of Modes depends on size(A)
    hold on
    stem(v'(:,1), 'b');
    stem(v'(:,2), 'g');  %% # of stem plots depends on size(A)
    hold off

     

    Take care,

    Patrick

    Hi Mohit,

    As suggested by Patrick, I created a simple model and generated the state space matrix for it.

    I have attached the model and the state space matrix with the mode shapes.  Is this what you were looking for?

    Regards,

    Nikhil 

  • Mohit Singhal
    Mohit Singhal Altair Community Member
    edited April 2021

    Mohit,

     

    If you have the State Matrix (A) of your system, please try the following simple code in Compose to plot the Mode Shapes:

     

    %% example where size(A) = 2x2

    clear all, close all, clc;

    [v,d]=eig(A); % v=eigenvector matrix, d=eigenvalues vector

    N=size(A,1);

    plot(v',':');
    xlabel('Elements'); ylabel('Mode amplitude');
    title('Mode shapes');
    axis([0.5 N*1.5 -1 1]);
    set(gca,'xtickmethod', 'increment', 'xtick', 0.5);
    legend('Mode 1', 'Mode 2'); %% # of Modes depends on size(A)
    hold on
    stem(v'(:,1), 'b');
    stem(v'(:,2), 'g');  %% # of stem plots depends on size(A)
    hold off

     

    Take care,

    Patrick

    Hi Patrick, 

     

    Thank you very much for the answer. I have not exported the state space matrices from the MotionSolve. I will try this and get back to you. 

     

    Mohit

  • Mohit Singhal
    Mohit Singhal Altair Community Member
    edited April 2021

    Hi Mohit,

    As suggested by Patrick, I created a simple model and generated the state space matrix for it.

    I have attached the model and the state space matrix with the mode shapes.  Is this what you were looking for?

    Regards,

    Nikhil 

    Hi Nikhil and Patrick, 

     

    I have exported the A,B,C and D matrices for the system. The system is a 6-DOF system but the A matrix is a 12X12 matrix. Is this correct? Also, when I extracted the eigen vectors from the A matrix, i got a 12X12 matrix, but I was expecting a 6X6 matrix for a 6-DOf system. Can you let me know if I am missing something here? I have attached the A matrix for the system.  

  • Patrick Goulding_21563
    Patrick Goulding_21563 New Altair Community Member
    edited April 2021

    Hi Nikhil and Patrick, 

     

    I have exported the A,B,C and D matrices for the system. The system is a 6-DOF system but the A matrix is a 12X12 matrix. Is this correct? Also, when I extracted the eigen vectors from the A matrix, i got a 12X12 matrix, but I was expecting a 6X6 matrix for a 6-DOf system. Can you let me know if I am missing something here? I have attached the A matrix for the system.  

    Hi Mohit,

     

    I believe this is correct.  Your system has 6 DOF, which means that to fully define your system at any point in time you would need 2 states for every DOF (pos & vel, pos & acc, etc.).  Without knowing what your model was, this seems right to me: your state matrix should consist of 12 states (6DOF * 2 states each).

     

    Patrick

  • Mohit Singhal
    Mohit Singhal Altair Community Member
    edited April 2021

    Hi Mohit,

     

    I believe this is correct.  Your system has 6 DOF, which means that to fully define your system at any point in time you would need 2 states for every DOF (pos & vel, pos & acc, etc.).  Without knowing what your model was, this seems right to me: your state matrix should consist of 12 states (6DOF * 2 states each).

     

    Patrick

    Hi Patrick, 

     

    Thank you for the clarification. One more question, how should I know which row in the A matrix corresponds to which DOF? Currently during the solution, the following is printed out about the selection of the DOF's: image#

    So, shall I assume that the DOF of each row is in the same order as that the way the independent variables were selected? Or, they are like, X, Y, Z, thetaX, thetaY and thetaZ?

     

    Mohit