sdynpy.signal_processing.sdynpy_srs.sdof_free_decay_peak_response

sdof_free_decay_peak_response(responses, times_at_responses, frequency, damping)[source]

Calculates peak response of a freely-decaying sdof system.

The residual response is the peak response of the sdof system as it decays after the input has ended, i.e., the input is zero. The first two peaks in the decaying response will be the largest. One peak will be negative and one positive. We don’t know before the calculation if the first and largest peak in amplitude will be positive or negative.

Parameters
  • responses (np.array) – A (…,2) shape array giving the response at two time steps

  • times_at_responses (np.array) – A length-2 array giving the time values that the responses occur at

  • frequency (float) – The frequency at which the computation is performed

  • damping (float) – The fraction of critical damping for the system (e.g. 0.03, not 3 for 3%)

Returns

response_peaks – A shape (…,2) array giving the amplitude at the two peaks after the response has decayed

Return type

np.ndarray

Notes

The response has the form a(t) = exp(-zeta wn t)[z[0]sin(wd t) + z[1]cos(wd t)]. If I know a(t) at two values of time, t, I can calculate the constants z[0] and z[1]. The general form of the response can then be solved for the maximum by finding the time of the first maximum by setting the derivative to zero. Then substituting the time of the maximum response back into the general equation to find the maximum response. The second peak will occur half a cycle later.