How can I make Simulink work with complex transfer functions?

Hi all,
I'm new to this site, so please bear with me. I know I can just put in a discrete function block and that ought to work, but it has some strange behavior when I try to linearize the model in the matlab main command. Say my model were named 'x' and had a complex transfer function (i.e. 1/z+i, nothing fancy). I type the following code into the command line:
[A, B, C, D] = dlinmod('x')
[num1, den1] = ss2tf(A, B, C, D)
bode(num1, den1)
Now, normally, this works perfectly well and gives me a bode plot I expect, but the first command simply outputs zero matrices for A, B, C, and D! The problem disappears when you switch the transfer function to 1/z+1 (i.e. A, B, C, and D are non-zero), and reappears whenever you try to add i anywhere in the transfer function block! Does anybody know how to fix this and/or how to obtain a linear model for a complex transfer function (in simulink, specifically)?
Thanks!
P.S. I know I can just do everything in matlab and it'll work, but I really, really want to be able to do it in simulink, and it seems kind of absurd that I can't.

 Akzeptierte Antwort

Andreas Goser
Andreas Goser am 3 Jul. 2012

1 Stimme

According to my resaerch of a MathWorks internal database, this is an existing, but very infrequent enhancement request. If you can describe your use case (here or in an email to me), I will make sure it gets added to the enhancement request.

1 Kommentar

Hi!
Thank you for your answer. I was afraid of that. I'll e-mail you more about my use case.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Simulink finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by