How to estimate the parameter in a customized transfer function

9 views (last 30 days)
Hey guys
Currently I'm using system identification toolbox to estimte the transfer function of a set of data. However, I want my transfer function in a particular form:
where and are fitting parameters. Both and are known polynomials (unfortunately I cannot provide any details about them). In this case, this transfer function model cannot be written in a standard form as shown below:
The system identification toolbox seems to require my model to be written in the standard form. Therefore, I'm wondering if there's anyway I can find estimation for and ? Thank you

Answers (2)

Robert U
Robert U on 24 Jul 2020
Hi Lihao Zheng,
first of all you can convert the two forms from one to another. Second it is possible to define transfer functions in different forms:
s = tf('s');
K0 = 5;
a0 = 10;
p = 2*s+1;
q = 3*s^2+2*s+1;
G = K0 / (p/q+a0)
As you can see, Matlab returns G in the polynomial form.
If you convert the transfer functions to one another you will see that
Finding the common devider in the numerator of a(s) leads direktly to K_0 and with that you can calculate {\tilde a_0}.
Kind regards,
  1 Comment
Lihao Zheng
Lihao Zheng on 24 Jul 2020
Hi, thank you for your response!
Yes, I can indeed convert my G(s) in the form of . If we assume:
where p_i and q_i are known coefficient. Since a_o is unknown, the aforementioned b(s) will have the form of:
This form of coefficient is problematic since System identification toolbox does not have model like that.

Sign in to comment.

Rajiv Singh
Rajiv Singh on 24 Jul 2020
Grey-box identification is an option. You will need to write a function that takes K0 and a0 as inputs, and returns state-space matrices correspinding to your system. See IDGREY, GREYEST, SSDATA. Some examples:

Community Treasure Hunt

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

Start Hunting!

Translated by