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})