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_eigvalsshould 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_plotto 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 folderstrOutput folder ./outputprint_infoboolPrint information and table of eigenvalues Falsereference_velocityfloatReference velocity at which to compute eigenvalues for scaled systems 1.0frequency_cutofffloatTruncate higher frequency modes. If zero none are truncated 0export_eigenvaluesboolSave eigenvalues and eigenvectors to file. Falsedisplay_root_locusboolShow plot with eigenvalues on Argand diagram Falsevelocity_analysislist(float)List containing min, max and number of velocities to analyse the system []iterative_eigvalsboolCalculate the first num_evalsusing an iterative solver.Falsenum_evalsintNumber of eigenvalues to retain. 200modes_to_plotlist(int)List of mode numbers to simulate and plot []postprocessorslist(str)To be used with modes_to_plot. Under development.[]postprocessors_settingsdictTo be used with modes_to_plot. Under development.{}Displays root locus diagrams.
Returns the
figandaxhandles for further editing.Returns: ax: Return type: fig
Saves a
num_evalsnumber 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/sReferences
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: