I am looking at data from a mechanical system under an unsteady load. I'm trying to find the simplest way to identify the portion of the signal once the system reaches its new equilibrium. Here's a simple example.

enter image description here

Any suggestions for a simple and robust approach would be most welcome!

  • $\begingroup$ so is equilibrium at 80500, 81000, or 82500? it might look simple and what does complicated look like? Is this a passive mechanical system or an active one? $\endgroup$
    – user28715
    Sep 30, 2018 at 18:11
  • $\begingroup$ @StanleyPawlukiewicz The system is at rest around 75K and then actuation is applied. The actuation is high frequency, relative to the natural frequency of the system, so there is a long transient. The transient should decay exponentially, so there is no 'exact' time of equilibrium, and I'm looking for a test to indicate when its small enough to ignore. $\endgroup$
    – weymouth
    Oct 1, 2018 at 8:21

1 Answer 1


It is difficult to think about robustness without knowing anything about the noise characteristics.

For example, it might be enough to obtain a number of these waveforms (20-50), obtain a box plot of the amplitude at each time instance and use that information to derive a very simple threshold below which the signal enters a region that can be safely characterised as equilibrium.

If there is enough noise to cause the signal to "jump" above the threshold, then you might want to try introducing some form of hysteresis in the Thresholding process. In other words, you might consider "equilibrium" the point when the waveform has dropped below a certain threshold and has stayed there for at least a $u$ amount of time.

If the noise characteristics are such that it is impossible to "tune" such a threshold then a simple 3-5 tap one-dimensional median filter or a very simple low pass filter might be enough, to smooth out the waveform sufficiently and enable you to apply a threshold more reliably.

If the process is such that the waveform is "floating" and a fixed threshold is impossible, then you would be looking at the point when the rate of decay is sufficiently flat. Since you already know that you have an exponentially decaying waveform, you should use this to your advantage. In this case, you can still apply some sort of smoothing pre-processing (e.g. filtering, if required) and then fit the data to an exponentially decaying model. You can then obtain the first order finite difference and set a threshold on that variable for when it drops sufficiently close to zero denoting that the curve is flattening out.

But in your case, you seem to have some sort of undershoot as well (some sort of inertia effect (?)). In extreme cases, the exponential decay model might not be a good assumption in terms of fitting the exact waveform. In that case, it might be better to do a DFT on the settling segment and try to quantify the settling time by known results from automatic control system theory.

Hope this helps.

  • $\begingroup$ Thanks for the nice answer. I'll take a look at these ideas. $\endgroup$
    – weymouth
    Oct 1, 2018 at 13:46
  • $\begingroup$ @weymouth Thanks for letting me know. I am glad to hear that you found this helpful. You can upvote or accept this answer from the buttons on the left of the answer box. Accepting the answer will also stop it from circulating the board as unanswered. $\endgroup$
    – A_A
    Oct 1, 2018 at 14:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.