sdof_funcs module¶
- np_vmd.sdof_funcs.M(r, zeta)¶
Magnification factor
- np_vmd.sdof_funcs.M_peak(zeta)¶
Peak Magnification factor
- class np_vmd.sdof_funcs.SDOF_system(m: float, k: float, c: float = 0)¶
Bases:
object- property alpha¶
attenuation factor alpha
The envelope of oscillation decays proportional to $e^{-alpha t}$ or $e^{−t/τ}$, where and τ can be expressed as:
$$alpha = zetacdot w_n$$
https://en.wikipedia.org/wiki/Q_factor
- Returns:
_description_
- Return type:
_type_
- amplitude(x0, v0)¶
amplitude for free under-damped vibrations
representing the solution $X0*np.exo(-zeta*wn*t)*np.sin(wd*t + phi)$
From RAO eq. 2.73, eq.2.74 return np.sqrt((x0*self.wn)**2 + (v0)**2 + 2*x0*v0*self.zeta*self.wn)/self.wd
- c_crit()¶
returns the critical value
- Returns:
_description_
- Return type:
_type_
- forced_cos_response_at_t_funcs(x0: float, v0: float, F0: float, w: float) dict¶
returns the forced response function (currently only the partail part todo add total and homoegeneous)
- Parameters:
t (float) – time in s
x0 (float) – position at t=0
v0 (float) – velocity at t=0
F0 (float) – Force magnitude [N]
w (float) – excitation frequency [rad/s]
theta_exc (#TODO add)
- Returns:
[description]
- Return type:
dict
- free_response_at_t(t: array, x0: float, v0: float) dict¶
returns the free response at a specific time.
- Parameters:
t (float) – time in s
x0 (float) – position at t=0
v0 (float) – velocity at t=0
- Returns:
[description]
- Return type:
dict
- free_response_at_t_funcs(x0: float, v0: float) dict¶
returns the free response function using a cos function
- Parameters:
t (float) – time in s
x0 (float) – position at t=0
v0 (float) – velocity at t=0
- Returns:
[description]
- Return type:
dict
- classmethod from_wn_kc(wn: float, k: float, c: float)¶
- classmethod from_wn_kz(wn: float, k: float, zeta: float)¶
- classmethod from_wn_mc(wn: float, m: float, c: float)¶
- classmethod from_wn_mz(wn: float, m: float, zeta: float)¶
- classmethod from_z_mk(zeta: float, m, k)¶
- classmethod from_zeta(zeta: float, m, k)¶
- phase_cos(x0, v0)¶
Phase $phi$ for free under-damped vibrations
representing the solution $X0*np.exo(-zeta*wn*t)*np.cos(wd*t - phi)$
From RAO eq. 2.73, eq.2.74
- phase_sin(x0, v0)¶
Phase $phi$ for free under-damped vibrations for sin
representing the solution $X0*np.exp(-zeta*wn*t)*np.sin(wd*t + phi)$
From RAO eq. 2.73, eq.2.74
- response_params(x0: float, v0: float, F0: float, w: float)¶
Returns the parameters of the total solution for excitation F0*cos(wt).
- Parameters:
x0 (float) – Initial displacement.
v0 (float) – Initial velocity.
F0 (float) – Force amplitude.
w (float) – Excitation frequency.
- Returns:
- A dictionary containing the following parameters:
”Xss” (float): Steady-state amplitude of the response.
”phi_ss” (float): Steady-state phase angle of the response.
”X_tra” (float): Transient amplitude of the response.
”phi_tra” (float): Transient phase angle of the response.
”form” (str): String representation of the response equation.
- Return type:
dict
- property tau¶
exponential time constant
The envelope of oscillation decays proportional to $e^{-alpha t}$ or $e^{−t/τ}$, where and τ can be expressed as:
$$tau = 1/(zetacdot w_n)$$
https://en.wikipedia.org/wiki/Q_factor
- Returns:
_description_
- Return type:
_type_
- np_vmd.sdof_funcs.log_decrement(zeta: float)¶
Calculation of log decrement from Zeta
- Parameters:
zeta (_type_) – damping ratio needs to be between 0 and 1
- Returns:
log decrement i.e. $delta = log(X_{i+1}/X_{i})$
- Return type:
floadt
- np_vmd.sdof_funcs.phi_angle(r: float, zeta: float)¶
phase angle calculation
- Parameters:
r (float) – frequency ratio
( (zeta) – float): damping ratio
- Returns:
phase angle in rad
- Return type:
float
- np_vmd.sdof_funcs.r_Mpeak(zeta)¶
r where maximum Magnification factor occurs
- np_vmd.sdof_funcs.trans_ratio(r, zeta)¶
Transmissability ratio
- np_vmd.sdof_funcs.zeta_from_log_decrement(delta)¶
Calculation of zeta based on logarithmic decrement
require delta in log(X_{i+1}/X_{i})