Find Eigenvalues of ODE45 Solution MATLAB
Show older comments
I have the following non-linear ODE:

I have the following ODE45 solution:
fun = @(t,X)odefun(X,K,C,M,F(t),resSize);
[t_ode,X_answer] = ode45(fun,tspan,X_0);
The input matrices are stiffness K(X), damping C, mass M, and force F. resSize is the total number of masses in the system.
I would like to find the system's eigenvalues using either the Jacobian matrix, transfer function, or any other viable method.
I have tried using:
[vector,lambda,condition_number] = polyeig(K(X_answer),C,M);
This is tricky since my K matrix is a function handle of X. In other words, K=@(X). X represents a displacement vector of each mass in the system (x_1(t),x_2(t),...x_resSize(t)), where resSize is the total number of masses. My X_answer matrix is a double with dimensions of t_ode by resSize, where each row is the displacement vector of each mass in double form. Is there some way to substitute X_answer into my function handle for K so I can use polyeig()? If not, how would I go about finding my system's transfer function or Jacobian matrix so that I can find it's eigenvalues?
7 Comments
Sam Chak
on 9 Apr 2024
Is
a state-dependent matrix, as illustrated below?
If the system is not in equilibrium, the ode45 solver will provide a solution array 'X_answer' that corresponds to the values returned in the time vector 't_ode'. In this case, the stiffness matrix
should vary over time.
Would you like to compute the eigenvalues at each time step from tspan(1) to tspan(end)?
Jonathan Frutschy
on 9 Apr 2024
Jonathan Frutschy
on 2 May 2024
Sam Chak
on 2 May 2024
@Jonathan Frutschy, while the syntax "polyeig(K, C, M)" appears correct, I never compute eigenvalues at each time step as eigenvalues are meaningful only for Linear Time-Invariant (LTI) systems. However, ensure that you perform the linearization correctly as described in @Torsten's answer.
What do you want to analyze from the array of eigenvalues?
Jonathan Frutschy
on 2 May 2024
Sam Chak
on 2 May 2024
The input force consists of the sum of a slower wave and a faster wave.

I'm curious about the scientific basis or any journal paper that describes the method of determining the system's resonance by computing the state-dependent eigenvalues at each time step. Is this related to the design of a Tuned Mass Damper for a high-rise building?

Jonathan Frutschy
on 3 May 2024
Accepted Answer
More Answers (0)
Categories
Find more on State-Space Control Design in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!