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

35 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Star Strider
Star Strider el 2 de Jul. de 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 comentarios
Justin Burzachiello
Justin Burzachiello el 4 de Jul. de 2021
Also, do you by any chance know what to do if sparse A,B,C,D,E matrices are so large that I recieve a "unable to convert the model to a transfer function because of overflow" error when using this method?
This is a bit off-topic, so I asked this in a new question, but I thought that I might as well ask here.
Star Strider
Star Strider el 4 de Jul. de 2021
As always, my pleasure!
Not off-topic at all. I’ve never encountered a similar situation, so I have no idea.

Iniciar sesión para comentar.

Más respuestas (1)

Jesús Zambrano
Jesús Zambrano el 2 de Jul. de 2021
Editada: Jesús Zambrano el 2 de Jul. de 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!
  3 comentarios
Jesús Zambrano
Jesús Zambrano el 2 de Jul. de 2021
Oh!, my mistake. I didn’t read the E matrix, sorry. Please see answer below that seems to answer your question.
Justin Burzachiello
Justin Burzachiello el 4 de Jul. de 2021
It's okay, Jesús. Thank you for answering.

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by