Flutter Analysis of a Goland Wing using the SHARPy Linear Solver¶
This is an example using SHARPy to find the flutter speed of a Goland wing by:
- Calculating aerodynamic forces and deflections using a nonlinear solver
- Linearising about this reference condition
- Creating a reduced order model of the linearised aerodynamics
- Evaluate the stability of the linearised aeroelastic system at different velocities
References¶
Maraniello, S., & Palacios, R. (2019). State-Space Realizations and Internal Balancing in Potential-Flow Aerodynamics with Arbitrary Kinematics. AIAA Journal, 57(6), 1–14. https://doi.org/10.2514/1.J058153
Required Packages¶
[1]:
import numpy as np
import matplotlib.pyplot as plt
import os
import sys
import cases.templates.flying_wings as wings # See this package for the Goland wing structural and aerodynamic definition
import sharpy.sharpy_main # used to run SHARPy from Jupyter
Problem Set-up¶
Velocity¶
The UVLM is assembled in normalised time at a velocity of \(1 m/s\). The only matrices that need updating then with free stream velocity are the structural matrices, which is significantly cheaper to do than to update the UVLM.
[2]:
u_inf = 1.
alpha_deg = 0.
rho = 1.02
num_modes = 4
Discretisation¶
Note: To achieve convergence of the flutter results with the ones found in the literature, a significant discretisation may be required. If you are running this notebook for the first time, set M = 4
initially to verify that your system can perform!
[3]:
M = 16
N = 32
M_star_fact = 10
ROM¶
A moment-matching (Krylov subspace) model order reduction technique is employed. This ROM method offers the ability to interpolate the transfer functions at a desired point in the complex plane. See the ROM documentation pages for more info.
Note: this ROM method matches the transfer function but does not guarantee stability. Therefore the resulting system may be unstable. These unstable modes may appear far in the right hand plane but will not affect the flutter speed calculations.
[4]:
c_ref = 1.8288 # Goland wing reference chord. Used for frequency normalisation
rom_settings = dict()
rom_settings['algorithm'] = 'mimo_rational_arnoldi' # reduction algorithm
rom_settings['r'] = 6 # Krylov subspace order
frequency_continuous_k = np.array([0.]) # Interpolation point in the complex plane with reduced frequency units
frequency_continuous_w = 2 * u_inf * frequency_continuous_k / c_ref
rom_settings['frequency'] = frequency_continuous_w
Case Admin¶
[5]:
case_name = 'goland_cs'
case_nlin_info = 'M%dN%dMs%d_nmodes%d' % (M, N, M_star_fact, num_modes)
case_rom_info = 'rom_MIMORA_r%d_sig%04d_%04dj' % (rom_settings['r'], frequency_continuous_k[-1].real * 100,
frequency_continuous_k[-1].imag * 100)
case_name += case_nlin_info + case_rom_info
route_test_dir = os.path.abspath('')
print('The case to run will be: %s' % case_name)
print('Case files will be saved in ./cases/%s' %case_name)
print('Output files will be saved in ./output/%s/' %case_name)
The case to run will be: goland_csM16N32Ms10_nmodes4rom_MIMORA_r6_sig0000_0000j
Case files will be saved in ./cases/goland_csM16N32Ms10_nmodes4rom_MIMORA_r6_sig0000_0000j
Output files will be saved in ./output/goland_csM16N32Ms10_nmodes4rom_MIMORA_r6_sig0000_0000j/
Simulation Set-Up¶
Goland Wing¶
ws
is an instance of a Goland wing with a control surface. Reference the template file cases.templates.flying_wings.GolandControlSurface
for more info on the geometrical, structural and aerodynamic definition of the Goland wing here used.
[6]:
ws = wings.GolandControlSurface(M=M,
N=N,
Mstar_fact=M_star_fact,
u_inf=u_inf,
alpha=alpha_deg,
cs_deflection=[0, 0],
rho=rho,
sweep=0,
physical_time=2,
n_surfaces=2,
route=route_test_dir + '/cases',
case_name=case_name)
ws.clean_test_files()
ws.update_derived_params()
ws.set_default_config_dict()
ws.generate_aero_file()
ws.generate_fem_file()
Surface0
Surface1
Simulation Settings¶
The settings for each of the solvers are now set. For a detailed description on them please reference their respective documentation pages
SHARPy Settings¶
The most important setting is the flow
list. It tells SHARPy which solvers to run and in which order.
[7]:
ws.config['SHARPy'] = {
'flow':
['BeamLoader', 'AerogridLoader',
'StaticCoupled',
'AerogridPlot',
'BeamPlot',
'Modal',
'LinearAssembler',
'FrequencyResponse',
'AsymptoticStability',
],
'case': ws.case_name, 'route': ws.route,
'write_screen': 'on', 'write_log': 'on',
'log_folder': route_test_dir + '/output/' + ws.case_name + '/',
'log_file': ws.case_name + '.log'}
Beam Loader Settings¶
[8]:
ws.config['BeamLoader'] = {
'unsteady': 'off',
'orientation': ws.quat}
Aerogrid Loader Settings¶
[9]:
ws.config['AerogridLoader'] = {
'unsteady': 'off',
'aligned_grid': 'on',
'mstar': ws.Mstar_fact * ws.M,
'freestream_dir': ws.u_inf_direction
}
Static Coupled Solver¶
[10]:
ws.config['StaticCoupled'] = {
'print_info': 'on',
'max_iter': 200,
'n_load_steps': 1,
'tolerance': 1e-10,
'relaxation_factor': 0.,
'aero_solver': 'StaticUvlm',
'aero_solver_settings': {
'rho': ws.rho,
'print_info': 'off',
'horseshoe': 'off',
'num_cores': 4,
'n_rollup': 0,
'rollup_dt': ws.dt,
'rollup_aic_refresh': 1,
'rollup_tolerance': 1e-4,
'velocity_field_generator': 'SteadyVelocityField',
'velocity_field_input': {
'u_inf': ws.u_inf,
'u_inf_direction': ws.u_inf_direction}},
'structural_solver': 'NonLinearStatic',
'structural_solver_settings': {'print_info': 'off',
'max_iterations': 150,
'num_load_steps': 4,
'delta_curved': 1e-1,
'min_delta': 1e-10,
'gravity_on': 'on',
'gravity': 9.81}}
AerogridPlot Settings¶
[11]:
ws.config['AerogridPlot'] = {'folder': route_test_dir + '/output/',
'include_rbm': 'off',
'include_applied_forces': 'on',
'minus_m_star': 0}
BeamPlot Settings¶
[12]:
ws.config['BeamPlot'] = {'folder': route_test_dir + '/output/',
'include_rbm': 'off',
'include_applied_forces': 'on'}
Modal Solver Settings¶
[13]:
ws.config['Modal'] = {'folder': route_test_dir + '/output/',
'NumLambda': 20,
'rigid_body_modes': 'off',
'print_matrices': 'on',
'keep_linear_matrices': 'on',
'write_dat': 'off',
'rigid_modes_cg': 'off',
'continuous_eigenvalues': 'off',
'dt': 0,
'plot_eigenvalues': False,
'max_rotation_deg': 15.,
'max_displacement': 0.15,
'write_modes_vtk': True,
'use_undamped_modes': True}
Linear System Assembly Settings¶
[14]:
ws.config['LinearAssembler'] = {'linear_system': 'LinearAeroelastic',
'linear_system_settings': {
'beam_settings': {'modal_projection': 'on',
'inout_coords': 'modes',
'discrete_time': 'on',
'newmark_damp': 0.5e-4,
'discr_method': 'newmark',
'dt': ws.dt,
'proj_modes': 'undamped',
'use_euler': 'off',
'num_modes': num_modes,
'print_info': 'on',
'gravity': 'on',
'remove_sym_modes': 'on',
'remove_dofs': []},
'aero_settings': {'dt': ws.dt,
'ScalingDict': {'length': 0.5 * ws.c_ref,
'speed': u_inf,
'density': rho},
'integr_order': 2,
'density': ws.rho,
'remove_predictor': 'on',
'use_sparse': 'on',
'rigid_body_motion': 'off',
'use_euler': 'off',
'remove_inputs': ['u_gust'],
'rom_method': ['Krylov'],
'rom_method_settings': {'Krylov': rom_settings}},
'rigid_body_motion': False}}
Asymptotic Stability Analysis Settings¶
[15]:
ws.config['AsymptoticStability'] = {'print_info': True,
'folder': route_test_dir + '/output/',
'velocity_analysis': [100, 180, 81],
'modes_to_plot': []}
[16]:
ws.config.write()
Run SHARPy¶
[17]:
sharpy.sharpy_main.main(['', ws.route + ws.case_name + '.sharpy'])
--------------------------------------------------------------------------------
###### ## ## ### ######## ######## ## ##
## ## ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ####
###### ######### ## ## ######## ######## ##
## ## ## ######### ## ## ## ##
## ## ## ## ## ## ## ## ## ##
###### ## ## ## ## ## ## ## ##
--------------------------------------------------------------------------------
Aeroelastics Lab, Aeronautics Department.
Copyright (c), Imperial College London.
All rights reserved.
License available at https://github.com/imperialcollegelondon/sharpy
Running SHARPy from /home/ng213/code/sharpy/docs/source/content/example_notebooks
SHARPy being run is in /home/ng213/code/sharpy
The branch being run is dev_examples
The version and commit hash are: v0.1-1539-gd3ef7dd-d3ef7dd
The available solvers on this session are:
PreSharpy
_BaseStructural
AerogridLoader
BeamLoader
DynamicCoupled
DynamicUVLM
LinDynamicSim
LinearAssembler
Modal
NoAero
NonLinearDynamic
NonLinearDynamicCoupledStep
NonLinearDynamicMultibody
NonLinearDynamicPrescribedStep
NonLinearStatic
NonLinearStaticMultibody
PrescribedUvlm
RigidDynamicPrescribedStep
SHWUvlm
StaticCoupled
StaticCoupledRBM
StaticTrim
StaticUvlm
StepLinearUVLM
StepUvlm
Trim
Cleanup
PickleData
SaveData
CreateSnapshot
PlotFlowField
StabilityDerivatives
AeroForcesCalculator
WriteVariablesTime
AerogridPlot
LiftDistribution
StallCheck
FrequencyResponse
AsymptoticStability
BeamPlot
BeamLoads
Generating an instance of BeamLoader
Generating an instance of AerogridLoader
Variable control_surface_deflection has no assigned value in the settings file.
will default to the value: []
Variable control_surface_deflection_generator_settings has no assigned value in the settings file.
will default to the value: []
The aerodynamic grid contains 2 surfaces
Surface 0, M=16, N=16
Wake 0, M=160, N=16
Surface 1, M=16, N=16
Wake 1, M=160, N=16
In total: 512 bound panels
In total: 5120 wake panels
Total number of panels = 5632
Generating an instance of StaticCoupled
Generating an instance of NonLinearStatic
Variable newmark_damp has no assigned value in the settings file.
will default to the value: c_double(0.0001)
Variable relaxation_factor has no assigned value in the settings file.
will default to the value: c_double(0.3)
Variable dt has no assigned value in the settings file.
will default to the value: c_double(0.01)
Variable num_steps has no assigned value in the settings file.
will default to the value: c_int(500)
Variable initial_position has no assigned value in the settings file.
will default to the value: [0. 0. 0.]
Generating an instance of StaticUvlm
Variable iterative_solver has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable iterative_tol has no assigned value in the settings file.
will default to the value: c_double(0.0001)
Variable iterative_precond has no assigned value in the settings file.
will default to the value: c_bool(False)
|=====|=====|============|==========|==========|==========|==========|==========|==========|
|iter |step | log10(res) | Fx | Fy | Fz | Mx | My | Mz |
|=====|=====|============|==========|==========|==========|==========|==========|==========|
| 0 | 0 | 0.00000 | -0.0000 | 0.0000 |-4271.0417| 0.0000 | 781.0842 | -0.0000 |
| 1 | 0 | -11.88931 | 0.0000 | -0.0000 |-4271.0039| 0.0000 | 781.0906 | -0.0000 |
Generating an instance of AerogridPlot
Variable include_forward_motion has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable include_unsteady_applied_forces has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable name_prefix has no assigned value in the settings file.
will default to the value:
Variable u_inf has no assigned value in the settings file.
will default to the value: c_double(0.0)
Variable dt has no assigned value in the settings file.
will default to the value: c_double(0.0)
Variable include_velocities has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable num_cores has no assigned value in the settings file.
will default to the value: c_int(1)
...Finished
Generating an instance of BeamPlot
Variable include_FoR has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable include_applied_moments has no assigned value in the settings file.
will default to the value: c_bool(True)
Variable name_prefix has no assigned value in the settings file.
will default to the value:
Variable output_rbm has no assigned value in the settings file.
will default to the value: c_bool(True)
...Finished
Generating an instance of Modal
Variable print_info has no assigned value in the settings file.
will default to the value: c_bool(True)
Variable delta_curved has no assigned value in the settings file.
will default to the value: c_double(0.01)
Variable use_custom_timestep has no assigned value in the settings file.
will default to the value: c_int(-1)
Structural eigenvalues
|==============|==============|==============|==============|==============|==============|==============|
| mode | eval_real | eval_imag | freq_n (Hz) | freq_d (Hz) | damping | period (s) |
|==============|==============|==============|==============|==============|==============|==============|
| 0 | 0.000000 | 48.067396 | 7.650164 | 7.650164 | -0.000000 | 0.130716 |
| 1 | 0.000000 | 48.067398 | 7.650164 | 7.650164 | -0.000000 | 0.130716 |
| 2 | 0.000000 | 95.685736 | 15.228858 | 15.228858 | -0.000000 | 0.065665 |
| 3 | 0.000000 | 95.685754 | 15.228861 | 15.228861 | -0.000000 | 0.065665 |
| 4 | 0.000000 | 243.144471 | 38.697644 | 38.697644 | -0.000000 | 0.025841 |
| 5 | 0.000000 | 243.144477 | 38.697645 | 38.697645 | -0.000000 | 0.025841 |
| 6 | 0.000000 | 343.801136 | 54.717650 | 54.717650 | -0.000000 | 0.018276 |
| 7 | 0.000000 | 343.801137 | 54.717650 | 54.717650 | -0.000000 | 0.018276 |
| 8 | 0.000000 | 443.324608 | 70.557303 | 70.557303 | -0.000000 | 0.014173 |
| 9 | 0.000000 | 443.324619 | 70.557304 | 70.557304 | -0.000000 | 0.014173 |
| 10 | 0.000000 | 461.992869 | 73.528449 | 73.528449 | -0.000000 | 0.013600 |
| 11 | 0.000000 | 461.992869 | 73.528449 | 73.528449 | -0.000000 | 0.013600 |
| 12 | 0.000000 | 601.126871 | 95.672313 | 95.672313 | -0.000000 | 0.010452 |
| 13 | 0.000000 | 601.126873 | 95.672313 | 95.672313 | -0.000000 | 0.010452 |
| 14 | 0.000000 | 782.997645 | 124.617946 | 124.617946 | -0.000000 | 0.008025 |
| 15 | 0.000000 | 782.997649 | 124.617946 | 124.617946 | -0.000000 | 0.008025 |
| 16 | 0.000000 | 917.191257 | 145.975522 | 145.975522 | -0.000000 | 0.006850 |
| 17 | 0.000000 | 917.191259 | 145.975523 | 145.975523 | -0.000000 | 0.006850 |
| 18 | 0.000000 | 975.005694 | 155.176976 | 155.176976 | -0.000000 | 0.006444 |
| 19 | 0.000000 | 975.005699 | 155.176977 | 155.176977 | -0.000000 | 0.006444 |
Generating an instance of LinearAssembler
Variable linearisation_tstep has no assigned value in the settings file.
will default to the value: c_int(-1)
Generating an instance of LinearAeroelastic
Variable uvlm_filename has no assigned value in the settings file.
will default to the value:
Variable track_body has no assigned value in the settings file.
will default to the value: c_bool(True)
Variable use_euler has no assigned value in the settings file.
will default to the value: c_bool(False)
Generating an instance of LinearUVLM
Variable gust_assembler has no assigned value in the settings file.
will default to the value:
Initialising Static linear UVLM solver class...
/home/ng213/code/sharpy/sharpy/solvers/linearassembler.py:79: UserWarning: LinearAssembler solver under development
warnings.warn('LinearAssembler solver under development')
...done in 1.41 sec
Generating an instance of Krylov
Variable print_info has no assigned value in the settings file.
will default to the value: c_bool(True)
Variable tangent_input_file has no assigned value in the settings file.
will default to the value:
Variable restart_arnoldi has no assigned value in the settings file.
will default to the value: c_bool(False)
Initialising Krylov Model Order Reduction
State-space realisation of UVLM equations started...
/home/ng213/code/sharpy/sharpy/linear/src/assembly.py:1256: SparseEfficiencyWarning: Changing the sparsity structure of a csc_matrix is expensive. lil_matrix is more efficient.
C[iivec, N * (M - 1) + iivec] = 1.0
/home/ng213/code/sharpy/sharpy/linear/src/assembly.py:1259: SparseEfficiencyWarning: Changing the sparsity structure of a csc_matrix is expensive. lil_matrix is more efficient.
C_star[mm * N + iivec, (mm - 1) * N + iivec] = 1.0
state-space model produced in form:
h_{n+1} = A h_{n} + B u_{n}
with:
x_n = h_n + Bp u_n
...done in 19.06 sec
Scaling UVLM system with reference time 0.914400s
Non-dimensional time step set (0.125000)
System scaled in 31.559722s
Generating an instance of LinearBeam
Warning, projecting system with damping onto undamped modes
Linearising gravity terms...
M = 7.26 kg
X_CG A -> 0.00 -0.00 -0.00
Node 1 -> B -0.000 -0.116 0.000
-> A 0.116 0.381 -0.000
-> G 0.116 0.381 -0.000
Node mass:
Matrix: 14.5125
Node 2 -> B -0.000 -0.116 0.000
-> A 0.116 0.762 -0.000
-> G 0.116 0.762 -0.000
Node mass:
Matrix: 7.2563
Node 3 -> B -0.000 -0.116 0.000
-> A 0.116 1.143 -0.000
-> G 0.116 1.143 -0.000
Node mass:
Matrix: 14.5125
Node 4 -> B -0.000 -0.116 0.000
-> A 0.116 1.524 -0.001
-> G 0.116 1.524 -0.001
Node mass:
Matrix: 7.2563
Node 5 -> B -0.000 -0.116 0.000
-> A 0.116 1.905 -0.001
-> G 0.116 1.905 -0.001
Node mass:
Matrix: 14.5125
Node 6 -> B -0.000 -0.116 0.000
-> A 0.116 2.286 -0.001
-> G 0.116 2.286 -0.001
Node mass:
Matrix: 7.2563
Node 7 -> B -0.000 -0.116 0.000
-> A 0.116 2.667 -0.002
-> G 0.116 2.667 -0.002
Node mass:
Matrix: 14.5125
Node 8 -> B -0.000 -0.116 0.000
-> A 0.116 3.048 -0.002
-> G 0.116 3.048 -0.002
Node mass:
Matrix: 7.2563
Node 9 -> B -0.000 -0.116 0.000
-> A 0.116 3.429 -0.003
-> G 0.116 3.429 -0.003
Node mass:
Matrix: 14.5125
Node 10 -> B -0.000 -0.116 0.000
-> A 0.116 3.810 -0.003
-> G 0.116 3.810 -0.003
Node mass:
Matrix: 7.2563
Node 11 -> B -0.000 -0.116 0.000
-> A 0.116 4.191 -0.004
-> G 0.116 4.191 -0.004
Node mass:
Matrix: 14.5125
Node 12 -> B -0.000 -0.116 0.000
-> A 0.116 4.572 -0.004
-> G 0.116 4.572 -0.004
Node mass:
Matrix: 7.2563
Node 13 -> B -0.000 -0.116 0.000
-> A 0.116 4.953 -0.005
-> G 0.116 4.953 -0.005
Node mass:
Matrix: 14.5125
Node 14 -> B -0.000 -0.116 0.000
-> A 0.116 5.334 -0.005
-> G 0.116 5.334 -0.005
Node mass:
Matrix: 7.2563
Node 15 -> B -0.000 -0.116 0.000
-> A 0.116 5.715 -0.006
-> G 0.116 5.715 -0.006
Node mass:
Matrix: 14.5125
Node 16 -> B -0.000 -0.116 0.000
-> A 0.116 6.096 -0.006
-> G 0.116 6.096 -0.006
Node mass:
Matrix: 3.6281
Node 17 -> B -0.000 -0.116 -0.000
-> A 0.116 -6.096 -0.006
-> G 0.116 -6.096 -0.006
Node mass:
Matrix: 3.6281
Node 18 -> B -0.000 -0.116 -0.000
-> A 0.116 -5.715 -0.006
-> G 0.116 -5.715 -0.006
Node mass:
Matrix: 14.5125
Node 19 -> B -0.000 -0.116 -0.000
-> A 0.116 -5.334 -0.005
-> G 0.116 -5.334 -0.005
Node mass:
Matrix: 7.2563
Node 20 -> B -0.000 -0.116 -0.000
-> A 0.116 -4.953 -0.005
-> G 0.116 -4.953 -0.005
Node mass:
Matrix: 14.5125
Node 21 -> B -0.000 -0.116 -0.000
-> A 0.116 -4.572 -0.004
-> G 0.116 -4.572 -0.004
Node mass:
Matrix: 7.2563
Node 22 -> B -0.000 -0.116 -0.000
-> A 0.116 -4.191 -0.004
-> G 0.116 -4.191 -0.004
Node mass:
Matrix: 14.5125
Node 23 -> B -0.000 -0.116 -0.000
-> A 0.116 -3.810 -0.003
-> G 0.116 -3.810 -0.003
Node mass:
Matrix: 7.2563
Node 24 -> B -0.000 -0.116 -0.000
-> A 0.116 -3.429 -0.003
-> G 0.116 -3.429 -0.003
Node mass:
Matrix: 14.5125
Node 25 -> B -0.000 -0.116 -0.000
-> A 0.116 -3.048 -0.002
-> G 0.116 -3.048 -0.002
Node mass:
Matrix: 7.2563
Node 26 -> B -0.000 -0.116 -0.000
-> A 0.116 -2.667 -0.002
-> G 0.116 -2.667 -0.002
Node mass:
Matrix: 14.5125
Node 27 -> B -0.000 -0.116 -0.000
-> A 0.116 -2.286 -0.002
-> G 0.116 -2.286 -0.002
Node mass:
Matrix: 7.2563
Node 28 -> B -0.000 -0.116 -0.000
-> A 0.116 -1.905 -0.001
-> G 0.116 -1.905 -0.001
Node mass:
Matrix: 14.5125
Node 29 -> B -0.000 -0.116 -0.000
-> A 0.116 -1.524 -0.001
-> G 0.116 -1.524 -0.001
Node mass:
Matrix: 7.2563
Node 30 -> B -0.000 -0.116 -0.000
-> A 0.116 -1.143 -0.000
-> G 0.116 -1.143 -0.000
Node mass:
Matrix: 14.5125
Node 31 -> B -0.000 -0.116 -0.000
-> A 0.116 -0.762 -0.000
-> G 0.116 -0.762 -0.000
Node mass:
Matrix: 7.2563
Node 32 -> B -0.000 -0.116 -0.000
-> A 0.116 -0.381 -0.000
-> G 0.116 -0.381 -0.000
Node mass:
Matrix: 14.5125
Updated the beam C, modal C and K matrices with the terms from the
gravity linearisation
Scaling beam according to reduced time...
Setting the beam time step to (0.1250)
Updating C and K matrices and natural frequencies with new normalised time...
Model Order Reduction in progress...
Moment Matching Krylov Model Reduction
Construction Algorithm:
mimo_rational_arnoldi
Interpolation points:
Krylov order:
r = 6
Unstable ROM - 2 Eigenvalues with |r| > 1
mu = -3.202177 + 0.000000j
mu = 1.062204 + 0.000000j
System reduced from order 6656 to
n = 36 states
...Completed Model Order Reduction in 2.51 s
Aeroelastic system assembled:
Aerodynamic states: 36
Structural states: 4
Total states: 40
Inputs: 8
Outputs: 6
Generating an instance of FrequencyResponse
Variable load_fom has no assigned value in the settings file.
will default to the value:
Variable num_freqs has no assigned value in the settings file.
will default to the value: c_int(50)
Computing frequency response...
Full order system:
/home/ng213/anaconda3/envs/sharpy_env/lib/python3.7/site-packages/scipy/sparse/compressed.py:708: SparseEfficiencyWarning: Changing the sparsity structure of a csc_matrix is expensive. lil_matrix is more efficient.
self[i, j] = values
Computed the frequency response of the full order system in 26.673870 s
Reduced order system:
Computed the frequency response of the reduced order system in 0.002653 s
Computing error in frequency response
m = 0, p = 0
Error Magnitude -real-: log10(error) = -4.85 (-0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.80 (-0.00 pct) at 1.07 rad/s
m = 0, p = 1
Error Magnitude -real-: log10(error) = -4.93 (-0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -5.17 (0.00 pct) at 1.09 rad/s
m = 1, p = 0
Error Magnitude -real-: log10(error) = -3.98 (0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -3.94 (0.00 pct) at 1.07 rad/s
m = 1, p = 1
Error Magnitude -real-: log10(error) = -4.06 (0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.30 (-0.00 pct) at 1.09 rad/s
m = 2, p = 0
Error Magnitude -real-: log10(error) = -4.28 (-0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.23 (-0.00 pct) at 1.07 rad/s
m = 2, p = 1
Error Magnitude -real-: log10(error) = -4.35 (-0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.61 (0.00 pct) at 1.09 rad/s
m = 3, p = 0
Error Magnitude -real-: log10(error) = -4.16 (0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.12 (0.01 pct) at 1.07 rad/s
m = 3, p = 1
Error Magnitude -real-: log10(error) = -4.24 (-0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.48 (-0.00 pct) at 1.09 rad/s
m = 4, p = 0
Error Magnitude -real-: log10(error) = -3.67 (0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -3.59 (0.00 pct) at 1.07 rad/s
m = 4, p = 1
Error Magnitude -real-: log10(error) = -3.71 (0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.00 (-0.00 pct) at 0.98 rad/s
m = 5, p = 0
Error Magnitude -real-: log10(error) = -3.83 (0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -3.75 (0.00 pct) at 1.07 rad/s
m = 5, p = 1
Error Magnitude -real-: log10(error) = -3.87 (-0.00 pct) at 1.09 rad/s
Error Magnitude -imag-: log10(error) = -4.16 (-0.00 pct) at 0.98 rad/s
Creating Quick plots of the frequency response
Plots saved to ./output//goland_csM16N32Ms10_nmodes4rom_MIMORA_r6_sig0000_0000j/frequencyresponse/
Generating an instance of AsymptoticStability
Variable reference_velocity has no assigned value in the settings file.
will default to the value: c_double(1.0)
Variable frequency_cutoff has no assigned value in the settings file.
will default to the value: c_double(0.0)
Variable export_eigenvalues has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable display_root_locus has no assigned value in the settings file.
will default to the value: c_bool(False)
Variable num_evals has no assigned value in the settings file.
will default to the value: c_int(200)
Variable postprocessors has no assigned value in the settings file.
will default to the value: []
Variable postprocessors_settings has no assigned value in the settings file.
will default to the value: {}
Dynamical System Eigenvalues
|==============|==============|==============|==============|==============|==============|==============|
| mode | eval_real | eval_imag | freq_n (Hz) | freq_d (Hz) | damping | period (s) |
|==============|==============|==============|==============|==============|==============|==============|
| 0 | 10.182550 | -27.485500 | 4.664997 | 4.374453 | -0.347396 | 0.228600 |
| 1 | 0.527963 | -0.000000 | 0.084028 | 0.000000 | 1.000000 | inf |
| 2 | -0.021585 | -24.315459 | 3.869927 | 3.869926 | 0.000888 | 0.258403 |
| 3 | -0.021585 | 24.315459 | 3.869927 | 3.869926 | 0.000888 | 0.258403 |
| 4 | -0.105973 | -21.319801 | 3.393194 | 3.393152 | 0.004971 | 0.294711 |
| 5 | -0.105973 | 21.319801 | 3.393194 | 3.393152 | 0.004971 | 0.294711 |
| 6 | -0.253786 | 0.000000 | 0.040391 | 0.000000 | 1.000000 | inf |
| 7 | -0.372465 | -0.355725 | 0.081972 | 0.056615 | 0.723172 | 17.663059 |
| 8 | -0.372465 | 0.355725 | 0.081972 | 0.056615 | 0.723172 | 17.663059 |
| 9 | -0.405420 | 0.870139 | 0.152781 | 0.138487 | 0.422334 | 7.220896 |
| 10 | -0.405420 | -0.870139 | 0.152781 | 0.138487 | 0.422334 | 7.220896 |
| 11 | -0.414445 | 0.000000 | 0.065961 | 0.000000 | 1.000000 | inf |
| 12 | -0.433769 | -0.705316 | 0.131784 | 0.112255 | 0.523860 | 8.908329 |
| 13 | -0.433769 | 0.705316 | 0.131784 | 0.112255 | 0.523860 | 8.908329 |
| 14 | -0.584818 | 0.000000 | 0.093077 | 0.000000 | 1.000000 | inf |
| 15 | -0.652779 | -0.945278 | 0.182832 | 0.150446 | 0.568242 | 6.646916 |
| 16 | -0.652779 | 0.945278 | 0.182832 | 0.150446 | 0.568242 | 6.646916 |
| 17 | -0.662253 | -0.344794 | 0.118830 | 0.054876 | 0.886985 | 18.223008 |
| 18 | -0.662253 | 0.344794 | 0.118830 | 0.054876 | 0.886985 | 18.223008 |
| 19 | -0.689479 | -0.611472 | 0.146671 | 0.097319 | 0.748162 | 10.275501 |
| 20 | -0.689479 | 0.611472 | 0.146671 | 0.097319 | 0.748162 | 10.275501 |
| 21 | -0.733120 | -0.423757 | 0.134769 | 0.067443 | 0.865775 | 14.827328 |
| 22 | -0.733120 | 0.423757 | 0.134769 | 0.067443 | 0.865775 | 14.827328 |
| 23 | -0.755676 | 0.287185 | 0.128662 | 0.045707 | 0.934772 | 21.878536 |
| 24 | -0.755676 | -0.287185 | 0.128662 | 0.045707 | 0.934772 | 21.878536 |
| 25 | -0.765019 | 0.043949 | 0.121957 | 0.006995 | 0.998354 | 142.964071 |
| 26 | -0.765019 | -0.043949 | 0.121957 | 0.006995 | 0.998354 | 142.964071 |
| 27 | -0.768680 | 0.696822 | 0.165125 | 0.110903 | 0.740889 | 9.016920 |
| 28 | -0.768680 | -0.696822 | 0.165125 | 0.110903 | 0.740889 | 9.016920 |
| 29 | -0.847888 | -0.177523 | 0.137872 | 0.028254 | 0.978777 | 35.393580 |
| 30 | -0.847888 | 0.177523 | 0.137872 | 0.028254 | 0.978777 | 35.393580 |
| 31 | -2.191875 | -0.000000 | 0.348848 | 0.000000 | 1.000000 | inf |
| 32 | -3.035678 | 1.135842 | 0.515855 | 0.180775 | 0.936586 | 5.531743 |
| 33 | -3.035678 | -1.135842 | 0.515855 | 0.180775 | 0.936586 | 5.531743 |
| 34 | -4.223460 | 0.000000 | 0.672185 | 0.000000 | 1.000000 | inf |
| 35 | -9.070692 | -0.000000 | 1.443645 | 0.000000 | 1.000000 | inf |
| 36 | -26.578730 | 27.485500 | 6.085219 | 4.374453 | 0.695149 | 0.228600 |
| 37 | -28.711479 | -0.000000 | 4.569574 | 0.000000 | 1.000000 | inf |
| 38 | -35.859976 | 27.485500 | 7.190899 | 4.374453 | 0.793683 | 0.228600 |
| 39 | -36.744614 | 0.000000 | 5.848087 | 0.000000 | 1.000000 | inf |
Velocity Asymptotic Stability Analysis
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 100.00 m/2 max. CT eig. real: 1018.304110
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 52.80 49.09
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 101.00 m/2 max. CT eig. real: 1028.487151
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 53.32 49.15
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 102.00 m/2 max. CT eig. real: 1038.670193
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 53.85 49.21
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 103.00 m/2 max. CT eig. real: 1048.853234
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 54.38 49.27
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 104.00 m/2 max. CT eig. real: 1059.036275
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 54.91 49.34
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 105.00 m/2 max. CT eig. real: 1069.219316
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 55.44 49.40
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 106.00 m/2 max. CT eig. real: 1079.402357
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 55.96 49.47
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 107.00 m/2 max. CT eig. real: 1089.585399
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 56.49 49.54
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 108.00 m/2 max. CT eig. real: 1099.768440
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 57.02 49.60
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 109.00 m/2 max. CT eig. real: 1109.951481
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 57.55 49.68
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 110.00 m/2 max. CT eig. real: 1120.134522
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 58.08 49.75
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 111.00 m/2 max. CT eig. real: 1130.317564
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 58.60 49.82
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 112.00 m/2 max. CT eig. real: 1140.500605
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 59.13 49.90
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 113.00 m/2 max. CT eig. real: 1150.683646
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 59.66 49.97
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 114.00 m/2 max. CT eig. real: 1160.866687
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 60.19 50.05
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 115.00 m/2 max. CT eig. real: 1171.049728
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 60.72 50.13
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 116.00 m/2 max. CT eig. real: 1181.232770
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 61.24 50.22
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 117.00 m/2 max. CT eig. real: 1191.415811
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 61.77 50.30
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 118.00 m/2 max. CT eig. real: 1201.598852
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 62.30 50.39
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 119.00 m/2 max. CT eig. real: 1211.781893
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 62.83 83.07
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 120.00 m/2 max. CT eig. real: 1221.964934
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 63.36 82.86
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 121.00 m/2 max. CT eig. real: 1232.147976
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 63.88 82.64
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 122.00 m/2 max. CT eig. real: 1242.331017
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 64.41 82.42
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 123.00 m/2 max. CT eig. real: 1252.514058
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 64.94 82.19
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 124.00 m/2 max. CT eig. real: 1262.697099
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 65.47 81.96
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 125.00 m/2 max. CT eig. real: 1272.880140
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 66.00 81.73
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 126.00 m/2 max. CT eig. real: 1283.063182
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 66.52 81.50
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 127.00 m/2 max. CT eig. real: 1293.246223
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 67.05 81.26
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 128.00 m/2 max. CT eig. real: 1303.429264
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 67.58 81.01
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 129.00 m/2 max. CT eig. real: 1313.612305
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 68.11 80.77
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 130.00 m/2 max. CT eig. real: 1323.795346
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 68.64 80.51
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 131.00 m/2 max. CT eig. real: 1333.978388
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 69.16 80.26
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 132.00 m/2 max. CT eig. real: 1344.161429
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 69.69 80.00
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 133.00 m/2 max. CT eig. real: 1354.344470
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 70.22 79.74
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 134.00 m/2 max. CT eig. real: 1364.527511
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 70.75 79.47
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 135.00 m/2 max. CT eig. real: 1374.710552
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 71.28 79.20
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 136.00 m/2 max. CT eig. real: 1384.893594
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 71.80 78.92
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 137.00 m/2 max. CT eig. real: 1395.076635
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 72.33 78.64
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 138.00 m/2 max. CT eig. real: 1405.259676
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 72.86 78.36
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 139.00 m/2 max. CT eig. real: 1415.442717
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 73.39 78.07
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 140.00 m/2 max. CT eig. real: 1425.625758
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 73.91 77.77
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 141.00 m/2 max. CT eig. real: 1435.808799
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 74.44 77.48
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 142.00 m/2 max. CT eig. real: 1445.991841
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 74.97 77.18
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 143.00 m/2 max. CT eig. real: 1456.174882
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 75.50 76.87
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 144.00 m/2 max. CT eig. real: 1466.357923
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 76.03 76.57
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 145.00 m/2 max. CT eig. real: 1476.540964
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 76.55 76.25
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 146.00 m/2 max. CT eig. real: 1486.724005
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 77.08 75.94
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 147.00 m/2 max. CT eig. real: 1496.907047
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 77.61 75.62
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 148.00 m/2 max. CT eig. real: 1507.090088
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 78.14 75.31
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 149.00 m/2 max. CT eig. real: 1517.273129
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 78.67 74.99
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 150.00 m/2 max. CT eig. real: 1527.456170
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 79.19 74.67
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 151.00 m/2 max. CT eig. real: 1537.639211
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 79.72 74.35
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 152.00 m/2 max. CT eig. real: 1547.822253
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 80.25 74.03
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 153.00 m/2 max. CT eig. real: 1558.005294
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 80.78 73.71
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 154.00 m/2 max. CT eig. real: 1568.188335
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 81.31 73.40
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 155.00 m/2 max. CT eig. real: 1578.371376
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 81.83 73.09
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 156.00 m/2 max. CT eig. real: 1588.554417
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 82.36 72.78
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 157.00 m/2 max. CT eig. real: 1598.737458
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 82.89 72.49
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 158.00 m/2 max. CT eig. real: 1608.920500
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 83.42 72.19
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 159.00 m/2 max. CT eig. real: 1619.103541
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 83.95 71.91
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 160.00 m/2 max. CT eig. real: 1629.286582
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 84.47 71.64
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 161.00 m/2 max. CT eig. real: 1639.469623
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 85.00 71.37
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 162.00 m/2 max. CT eig. real: 1649.652664
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 85.53 71.12
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 163.00 m/2 max. CT eig. real: 1659.835706
N unstab.: 002
Unstable aeroelastic natural frequency CT(rad/s): 86.06 70.87
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 164.00 m/2 max. CT eig. real: 1670.018747
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 86.59 70.64 70.64 56.53
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 165.00 m/2 max. CT eig. real: 1680.201788
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 87.11 70.41 70.41 56.63
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 166.00 m/2 max. CT eig. real: 1690.384829
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 87.64 70.20 70.20 56.73
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 167.00 m/2 max. CT eig. real: 1700.567870
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 88.17 69.99 69.99 56.82
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 168.00 m/2 max. CT eig. real: 1710.750911
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 88.70 69.79 69.79 56.90
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 169.00 m/2 max. CT eig. real: 1720.933953
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 89.23 69.61 69.61 56.97
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 170.00 m/2 max. CT eig. real: 1731.116994
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 89.75 69.43 69.43 57.04
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 171.00 m/2 max. CT eig. real: 1741.300035
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 90.28 69.26 69.26 57.10
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 172.00 m/2 max. CT eig. real: 1751.483076
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 90.81 69.10 69.10 57.16
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 173.00 m/2 max. CT eig. real: 1761.666117
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 91.34 68.94 68.94 57.21
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 174.00 m/2 max. CT eig. real: 1771.849159
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 91.87 68.79 68.79 57.25
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 175.00 m/2 max. CT eig. real: 1782.032200
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 92.39 68.65 68.65 57.29
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 176.00 m/2 max. CT eig. real: 1792.215241
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 92.92 68.51 68.51 57.33
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 177.00 m/2 max. CT eig. real: 1802.398282
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 93.45 68.38 68.38 57.36
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 178.00 m/2 max. CT eig. real: 1812.581323
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 93.98 68.25 68.25 57.39
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 179.00 m/2 max. CT eig. real: 1822.764364
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 94.51 68.13 68.13 57.41
Updating C and K matrices and natural frequencies with new normalised time...
LTI u: 180.00 m/2 max. CT eig. real: 1832.947406
N unstab.: 004
Unstable aeroelastic natural frequency CT(rad/s): 95.03 68.01 68.01 57.43
Saving velocity analysis results...
Successful
FINISHED - Elapsed time = 87.4548716 seconds
FINISHED - CPU process time = 158.0786466 seconds
/home/ng213/code/sharpy/sharpy/postproc/asymptoticstability.py:171: UserWarning: Plotting modes is under development
warn.warn('Plotting modes is under development')
[17]:
<sharpy.presharpy.presharpy.PreSharpy at 0x7f94ae37cf28>
Analysis¶
Nonlinear equilibrium¶
The nonlinear equilibrium condition can be visualised and analysed by opening, with Paraview, the files in the /output/<case_name>/aero
and /output/<case_name>/beam
folders to see the deflection and aerodynamic forces acting
Stability¶
The stability of the Goland wing is now analysed under changing free stream velocity. The aeroelastic system is projected onto 2 structural modes (1st bending and 1st torsion). The two modes are seen quite separated at 100 m/s. As speed is increased, the damping of the torsion mode decreases until it crosses the imaginary axis onto the right hand plane and flutter begins. This flutter mode is a bending-torsion mode, as seen from the natural frequency plot where the frequencies of each coalesce into this mode.
[18]:
file_name = './output/%s/stability/velocity_analysis_min1000_max1800_nvel0081.dat' % case_name
velocity_analysis = np.loadtxt(file_name)
u_inf = velocity_analysis[:, 0]
eigs_r = velocity_analysis[:, 1]
eigs_i = velocity_analysis[:, 2]
[19]:
fig = plt.figure()
plt.scatter(eigs_r, eigs_i, c=u_inf, cmap='Blues')
cbar = plt.colorbar()
cbar.set_label('Free Stream Velocity, $u_\infty$ [m/s]')
plt.grid()
plt.xlim(-10, 10)
plt.ylim(-150, 150)
plt.xlabel('Real Part, $\lambda$ [rad/s]')
plt.ylabel('Imag Part, $\lambda$ [rad/s]');
[20]:
fig = plt.figure()
natural_frequency = np.sqrt(eigs_r ** 2 + eigs_i ** 2)
damping_ratio = eigs_r / natural_frequency
cond = (eigs_r>-25) * (eigs_r<10) * (natural_frequency<100) # filter unwanted eigenvalues for this plot (mostly aero modes)
plt.scatter(u_inf[cond], damping_ratio[cond], color='k', marker='s', s=9)
plt.grid()
plt.ylim(-0.25, 0.25)
plt.xlabel('Free Stream Velocity, $u_\infty$ [m/s]')
plt.ylabel('Damping Ratio, $\zeta$ [-]');
[21]:
fig = plt.figure()
cond = (eigs_r>-25) * (eigs_r<10) # filter unwanted eigenvalues for this plot (mostly aero modes)
plt.scatter(u_inf[cond], natural_frequency[cond], color='k', marker='s', s=9)
plt.grid()
plt.ylim(40, 100)
plt.xlabel('Free Stream Velocity, $u_\infty$ [m/s]')
plt.ylabel('Natural Frequency, $\omega_n$ [rad/s]');