MATLAB Answers

How do I convert descriptor state-space to transfer function?

10 views (last 30 days)
Hello. I have a state-space forumla of the form state-space.
I'd like to have MATLAB convert this into its respective transfer function for me. I plan on encoding
sys = dss(A,B,C,D,E)
However, I looked on the page for transfer functions through tf, and I am unable to find how to convert from this dss to tf. Is there a direct way to encode it? Yes, I know that I can just do it by hand and encode the result myself. I'd just like to know if MATLAB can do it, and if so, how.
  • Thank you

Accepted Answer

Star Strider
Star Strider on 2 Jul 2021
This seems to work:
A = [1 2; 3 4];
B = [5; 6];
C = [7 8; 9 10];
D = 0;
E = [11 12; 13 14];
ss_sys = dss(A,B,C,D,E)
ss_sys = A = x1 x2 x1 1 2 x2 3 4 B = u1 x1 5 x2 6 C = x1 x2 y1 7 8 y2 9 10 D = u1 y1 0 y2 0 E = x1 x2 x1 11 12 x2 13 14 Continuous-time state-space model.
tf_sys = tf(ss_sys)
tf_sys = From input to output... 3 s - 8 1: ------------- s^2 - 2 s + 1 4 s - 9 2: ------------- s^2 - 2 s + 1 Continuous-time transfer function.
.
  3 Comments
Star Strider
Star Strider on 4 Jul 2021
As always, my pleasure!
Not off-topic at all. I’ve never encountered a similar situation, so I have no idea.

Sign in to comment.

More Answers (1)

Jesús Zambrano
Jesús Zambrano on 2 Jul 2021
Edited: Jesús Zambrano on 2 Jul 2021
I think you can just take the A,B,C,D matrices and use ss2tf command to convert it to transfer function.
Please look at this documentation which also shows an example:
Hope it helps!

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by