Clear Filters
Clear Filters

How do I get the transfer function from experimental step response data?

48 views (last 30 days)
I have two step response data sets, displayed visually below, and I would like to fit a model to those and ultimately find a transfer function for each so that I can properly model the physical system.
My issue is that I don't know which MATLAB functions I should use - I feel like I'm trying to find a needle in a haystack looking for the right thing.
How do I get a transfer function from my experimental step response data?
Mathieu NOE
Mathieu NOE on 29 Nov 2021
hello Kristina
I am a bit surprised by the way the step response plot look like. Dos the vertical transients really belong to the system under investigation or could it be we have a problem with the experiment ?
In the physical world we are more or less expecting smooth outputs - and this is not falling in that category...
all the best,

Sign in to comment.

Answers (1)

Star Strider
Star Strider on 30 Nov 2021
It is necessary to have the System Identification Toolbox for this.
The appropriate procedure for estimating a state-space model from the data (assuming one is the input and one is the output) is described in the documentation page for ssest.
An alternative using the Signal Processing Toolbox is to take the Fourier transforms (fft) of the input and output signals and then use invfreqz.
I would not filter them first, because the complete original signal likely contains useful information that the estimation functions can use to provide a more accurate estimate of the system properties.


Find more on Linear Model Identification in Help Center and File Exchange


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!