How do I get the transfer function from this step response?

I have the following step response of a closed loop system. Using the calculations below, I tried to calculate the transfer function. I am trying to get the same response in Matlab. However, I seem not get it right. Can someone please tell me what I am doing wrong? My result in Matlab as well is given below.

• Envelope calcs: $\alpha=\frac12\cdot 1.993=0.9965$, $\omega_{_0}=\sqrt{28.41}\approx 5.33\:\frac{\text{rad}}{\text{s}}$, $\zeta=\frac{\alpha}{\omega_{_0}}\approx 0.187$. So, I get a very low damping factor; which would appear to explain your matlab results. The value of $\omega_{_0}$ also appears to match, at least by eye. – jonk Mar 21 at 21:40
• It's because the system is nonlinear, so you can't estimate it with 2nd order linear system. You can see the difference: yours (linear) VS. scope (non-linear). – Marko Buršič Mar 21 at 22:29
• Further it has a dead time, a closed loop would have also a numerator part with laplace operators. Could be a kind of controller with limiters that introduce the non-linearity. – Marko Buršič Mar 21 at 22:34

You should not do T = feedback(H,1), just do step(H).
The output you have is already the result of the whole system (the whole closed-loop system, not the plant that will then have a feedback), so you should just do step(H) and you will get something similar to the oscilloscope measurement. In order to further break down the identification into what is the behavior of the controller and what is the behavior of the plant you would need more measurements.