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