A viscous Rayleigh damping model in which the damping matrix D is a linear combination of mass and stiffness matrices, as, D = αM + βK where α and β are nonnegative.
The damping ratio ζ for a given natural frequency ωₙ of a mode of vibration can be calculated as ζ = (α/ωₙ + βωₙ)/2. Notice the contribution of the stiffness term βK to the damping matrix D causes ζ to be proportional to a mode's natural frequency ωₙ whereas the contribution of the mass term αM to the damping matrix D causes ζ to be inversely proportional to a mode's natural frequency ωₙ. In the context of rigid body motion (ωₙ = 0), only the αM term contributes to the damping matrix D, hence if rigid body motion (or low value of ωₙ) is expected, α should be kept small. One way to determine numerical values for α and β is to somehow obtain reasonable estimates of the range of ωₙ, and then choose numerical values for ζ (e.g 0 ≤ ζ < 0.05). Thereafter calculate the associated numerical values of α and β.
T | The scalar type, which must be one of the default nonsymbolic scalars. |
#include <drake/multibody/fem/damping_model.h>
Public Member Functions | |
DampingModel (const T &mass_coeff_alpha, const T &stiffness_coeff_beta) | |
Constructs a Rayleigh damping model by storing the mass coefficient α and the stiffness coefficient β that appears in the damping matrix D = αM + βK. More... | |
const T & | mass_coeff_alpha () const |
const T & | stiffness_coeff_beta () const |
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable | |
DampingModel (const DampingModel &)=default | |
DampingModel & | operator= (const DampingModel &)=default |
DampingModel (DampingModel &&)=default | |
DampingModel & | operator= (DampingModel &&)=default |
|
default |
|
default |
DampingModel | ( | const T & | mass_coeff_alpha, |
const T & | stiffness_coeff_beta | ||
) |
Constructs a Rayleigh damping model by storing the mass coefficient α and the stiffness coefficient β that appears in the damping matrix D = αM + βK.
std::exception | if either mass_coeff_alpha or stiffness_coeff_beta is negative. |
const T& mass_coeff_alpha | ( | ) | const |
|
default |
|
default |
const T& stiffness_coeff_beta | ( | ) | const |