LinearBeam¶
State space member
Define class for linear state-space realisation of GEBM flexible-body equations from SHARPy
timestep_infoclass 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:
modal_projection={True,False}: determines whether to project the statesonto 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
modesis selected, theKinandKoutgain matrices are generated to transform nodal to modal dofs
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=xxwithxx<<1.0for full-states descriptions (
modal_projection=False) and modal projection over the undamped structural modes (modal_projection=Trueandproj_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_projectionboolUse modal projection Trueinout_coordsstrBeam state space input/output coordinates nodesnodes,modesnum_modesintNumber of modes to retain 10discrete_timeboolAssemble beam in discrete time TruedtfloatDiscrete time system integration time step 0.001proj_modesstrUse undampedordampedmodesundampeddamped,undampeddiscr_methodstrDiscrete time assembly system method: newmarknewmark,zoh,bilinearnewmark_dampfloatNewmark damping value. For systems assembled using newmark0.0001use_eulerboolUse euler angles for rigid body parametrisation Falseprint_infoboolDisplay information on screen TruegravityboolLinearise gravitational forces Falseremove_dofslist(str)Remove desired degrees of freedom []eta,V,W,orientremove_sym_modesboolRemove symmetric modes if wing is clamped FalseAssemble the beam state-space system.
Parameters: t_ref (float) – Scaling factor to non-dimensionalise the beam’s time step. Returns:
Removes symmetric modes when the wing is clamped at the midpoint.
It will force the wing tip displacements in
zto be postive for all modes.Updates the mode shapes matrix, the natural frequencies and the number of modes.
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