AsymptoticStability¶
Calculates the asymptotic stability properties of the linearised aeroelastic system by computing the corresponding eigenvalues.
To use an iterative eigenvalue solver, the setting
iterative_eigvals
should be set toon
. This will be beneficial when deailing with very large systems. However, the direct method is preferred and more efficient when the system is of a relatively small size (typically around 5000 states).Warning
The setting
modes_to_plot
to plot the eigenvectors in Paraview is currently under development.The settings that this solver accepts are given by a dictionary, with the following key-value pairs:
Name
Type
Description
Default
print_info
bool
Print information and table of eigenvalues
False
reference_velocity
float
Reference velocity at which to compute eigenvalues for scaled systems
1.0
frequency_cutoff
float
Truncate higher frequency modes. If zero none are truncated
0
export_eigenvalues
bool
Save eigenvalues and eigenvectors to file.
False
display_root_locus
bool
Show plot with eigenvalues on Argand diagram
False
velocity_analysis
list(float)
List containing min, max and number of velocities to analyse the system
[]
iterative_eigvals
bool
Calculate the first
num_evals
using an iterative solver.False
num_evals
int
Number of eigenvalues to retain.
200
modes_to_plot
list(int)
List of mode numbers to simulate and plot
[]
postprocessors
list(str)
To be used with
modes_to_plot
. Under development.[]
postprocessors_settings
dict
To be used with
modes_to_plot
. Under development.{}
Displays root locus diagrams.
Returns the
fig
andax
handles for further editing.- Returns
ax:
- Return type
fig
Saves a
num_evals
number of eigenvalues and eigenvectors to file. The files are saved in the output directoy and include:eigenvectors.dat
:(num_dof, num_evals)
array of eigenvectorseigenvalues_r.dat
:(num_evals, 1)
array of the real part of the eigenvalueseigenvalues_i.dat
:(num_evals, 1)
array of the imaginary part of the eigenvalues.
The units of the eigenvalues are
rad/s
References
Loading and saving complex arrays: https://stackoverflow.com/questions/6494102/how-to-save-and-load-an-array-of-complex-numbers-using-numpy-savetxt/6522396
- Parameters
num_evals – Number of eigenvalues to save
Returns a single, scaled mode shape in time domain.
- Parameters
fact – Structural deformation scaling
fact_rbm – Rigid body motion scaling
mode_num – Number of mode to plot
cycles – Number of periods/cycles to plot
- Returns
Time domain array and scaled eigenvector in time.
- Return type
tuple
Warning
Under development
Plot the aeroelastic mode shapes for the first
n_modes_to_plot
Prints the eigenvalues to a table with the corresponding natural frequency, period and damping ratios
Computes the eigenvalues and eigenvectors
- Returns
Eigenvalues sorted and frequency truncated eigenvectors (np.ndarray): Corresponding mode shapes
- Return type
eigenvalues (np.ndarray)
Sort continuous-time eigenvalues by order of magnitude.
The conjugate of complex eigenvalues is removed, then if specified, high frequency modes are truncated. Finally, the eigenvalues are sorted by largest to smallest real part.
- Parameters
eigenvalues (np.ndarray) – Continuous-time eigenvalues
eigenvectors (np.ndarray) – Corresponding right eigenvectors
frequency_cutoff (float) – Cutoff frequency for truncation
[rad/s]
Returns: