I saw in this forum a way to determine a transfer function from a step graph. I wanted to know how it is done when the initial condition is non-zero, like the following step response below.

enter image description here

How can I estimate the transfer function of the system from this data?

  • \$\begingroup\$ Which forum did you see it? \$\endgroup\$
    – Andy aka
    Jan 8 '21 at 11:24
  • \$\begingroup\$ From this: electronics.stackexchange.com/questions/117124/… Sorry, I am new in this forum. \$\endgroup\$ Jan 8 '21 at 12:03
  • \$\begingroup\$ This isn't a forum or talking shop; it's a question and answer site where chit-chat is discouraged (sorry). Having an output offset is of no consequence to the method. \$\endgroup\$
    – Andy aka
    Jan 8 '21 at 12:28

Estimating transfer functions is called system identification. The order of the transfer function needs to be known or guessed (there are also tools for that, but it's better if you know what the order of the physical system is before fitting. (the above system looks 2nd order).

If you don't want to learn a bunch of matrix algebra and coding, then find a tool to do the solving for you. Matlab has the system identification toolbox which could apply an estimation to this easily. There are other options that I haven't tried.

The last thing is this may be difficult to give you the answer you want since it looks like the initial condition could be around 1, but this may not be a complete picture. The best way to estimate the whole system is to start from a known state where the system states are zero, then apply a step input. Another way is to do a frequency sweep on the input (you have to know the inputs and the outputs to know how the controller is transforming them and then estimate the controller).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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