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'}

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]');
../../_images/content_example_notebooks_linear_goland_flutter_43_0.png
[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$ [-]');
../../_images/content_example_notebooks_linear_goland_flutter_44_0.png
[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]');
../../_images/content_example_notebooks_linear_goland_flutter_45_0.png