How to display a tf function in the command window frm simulink??

229 views (last 30 days)
I have a tf of a plant which i need the be pulled from the simulink for my matlab function. Is there any function/command which can help me automatically obtain the transfer function so that i can obtain the Characteristic equation for in my further program?
Lets say for my simulink transfer, i want the generator tf automatically being obtained during my online autotuning. See image below.
Any suggestion?? Thnk you for reading my query.
Nitesh

Accepted Answer

Nitesh
Nitesh on 20 Sep 2015
Ny help guys??
  1 Comment
@Johannes
@Johannes on 25 Sep 2015
Hello Nitesh,
you have to change the date type of the variable in which get_param writes the num or den. For example
a = get_param('test_tf/TF', 'Numerator');
a =
[5 2]
num = str2num(a)
num =
5 2
H=tf(num,den);
H =
5 s + 2
-------------
2 s^2 + s + 1
Continuous-time transfer function.
Regards, John

Sign in to comment.

More Answers (1)

Nobel Mondal
Nobel Mondal on 19 Sep 2015
If your model is loaded, you can access the parameter values for a block using "get_param" api.
Say, you have a model "myModel.slx" and you would like to get the coefficients of a "Transfer Fcn" block named "myTFBlock"
>> load_system('myModel') % If your model is already loaded, skip this
>> numeratorVal = get_param('myModel/myTFBlock', 'Numerator');
>> denomVal = get_param('myModel/myTFBlock', 'Denominator');
Hope this helps. Thanks.
  1 Comment
Nitesh
Nitesh on 20 Sep 2015
Thank you Nobel Mondal.
This solved half of my problem im having with. I would like to have a equation on the command window lets say in the s-domain. the get _param is fine i suppose bt not as expected output when i want it in S-domain.
s=fotf('s');
numeratorVal = get_param('online_sim2/TF', 'Numerator')
denomVal = get_param('online_sim2/TF', 'Denominator')
using the plant lets say the equation i want back from the simulink is 1/(s^2+2s+1)
bt when i use fraction order transfer function call as fotf, den i have some compution. using tf as in tf([numeratorVal],[denomVal]) doesnt work.
the code is given below.
plant=fotf([numeratorVal],[denomVal])
i want like this when i use the above command.
1
------------
s^2+2s+1
the total output is given below:
how can i get the equation in s-domain like a normal tf similar like in the simulink??? please help...
this is my simulink block.

Sign in to comment.

Categories

Find more on Programmatic Model Editing in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!