LinearBeam

class sharpy.linear.assembler.linearbeam.LinearBeam[source]

State space member

Define class for linear state-space realisation of GEBM flexible-body equations from SHARPy timestep_info class and with the nonlinear structural information.

State-space models can be defined in continuous or discrete time (dt required). Modal projection, either on the damped or undamped modal shapes, is also avaiable.

Notes on the settings:

  1. modal_projection={True,False}: determines whether to project the states

    onto modal coordinates. Projection over damped or undamped modal shapes can be obtained selecting:

    • proj_modes = {'damped','undamped'}

    while

    • inout_coords={'modes','nodal'}

    determines whether the modal state-space inputs/outputs are modal coords or nodal degrees-of-freedom. If modes is selected, the Kin and Kout gain matrices are generated to transform nodal to modal dofs

  2. dlti={True,False}: if true, generates discrete-time system.

    The continuous to discrete transformation method is determined by:

    discr_method={ 'newmark',  # Newmark-beta
                        'zoh',              # Zero-order hold
                        'bilinear'} # Bilinear (Tustin) transformation
    

    DLTIs can be obtained directly using the Newmark-\(\beta\) method

    discr_method='newmark' newmark_damp=xx with xx<<1.0

    for full-states descriptions (modal_projection=False) and modal projection over the undamped structural modes (modal_projection=True and proj_modes). The Zero-order holder and bilinear methods, instead, work in all descriptions, but require the continuous state-space equations.

The settings that this solver accepts are given by a dictionary, with the following key-value pairs:

Name Type Description Default Options
modal_projection bool Use modal projection True  
inout_coords str Beam state space input/output coordinates nodes nodes, modes
num_modes int Number of modes to retain 10  
discrete_time bool Assemble beam in discrete time True  
dt float Discrete time system integration time step 0.001  
proj_modes str Use undamped or damped modes undamped damped, undamped
discr_method str Discrete time assembly system method: newmark newmark, zoh, bilinear
newmark_damp float Newmark damping value. For systems assembled using newmark 0.0001  
use_euler bool Use euler angles for rigid body parametrisation False  
print_info bool Display information on screen True  
gravity bool Linearise gravitational forces False  
remove_dofs list(str) Remove desired degrees of freedom [] eta, V, W, orient
remove_sym_modes bool Remove symmetric modes if wing is clamped False  
assemble(t_ref=None)[source]

Assemble the beam state-space system.

Parameters:t_ref (float) – Scaling factor to non-dimensionalise the beam’s time step.

Returns:

remove_symmetric_modes()[source]

Removes symmetric modes when the wing is clamped at the midpoint.

It will force the wing tip displacements in z to be postive for all modes.

Updates the mode shapes matrix, the natural frequencies and the number of modes.

unpack_ss_vector(x_n, u_n, struct_tstep)[source]

Warning

Under development. Missing:
  • Accelerations
  • Double check the cartesian rotation vector
  • Tangential operator for the moments

Takes the state \(x = [\eta, \dot{\eta}]\) and input vectors \(u = N\) of a linearised beam and returns a SHARPy timestep instance, including the reference values.

Parameters:
  • x_n (np.ndarray) – Structural beam state vector in nodal space
  • y_n (np.ndarray) – Beam input vector (nodal forces)
  • struct_tstep (utils.datastructures.StructTimeStepInfo) – Reference timestep used for linearisation
Returns:

new timestep with linearised values added to the reference value

Return type:

utils.datastructures.StructTimeStepInfo