Hello, I've a problem with the use of the tf function. Basically i try to build a tf function using ( s = tf('s') ) and then writing my function. It works only with few poles and zeros (it seems just a total of 4), but when i try to write a function with more poles and zeros, and then i try to run it, it just keeps running. Any solution to this problem?

6 Kommentare

Sam Chak
Sam Chak am 10 Apr. 2022
Can you show the code for troubleshooting purposes?
Alessandro Romeo
Alessandro Romeo am 10 Apr. 2022
s=tf('s')
g=100*(s+10)*(s-5)/(s*(s+8)*(s^2+s+1)*(s-5))
Here it is.
Sam Chak
Sam Chak am 10 Apr. 2022
Is this result expected?
g =
100 s^2 + 500 s - 5000
------------------------------------
s^5 + 4 s^4 - 36 s^3 - 37 s^2 - 40 s
Continuous-time transfer function.
Alessandro Romeo
Alessandro Romeo am 10 Apr. 2022
Yes, but I don't know why my code keeps running, so it doesn't show me the result.
Sam Chak
Sam Chak am 10 Apr. 2022
Try clear everything and see if the problem persists.
clear all
Alessandro Romeo
Alessandro Romeo am 10 Apr. 2022
Oh WOW, finally it runs correctly! Thank you very much!

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Sam Chak
Sam Chak am 10 Apr. 2022

1 Stimme

I'm glad that the proposed solution works. Just keep in mind that you don't have to clear all every time. You can first check if there is another variable named 's' in the Workspace.
clear all
s = tf('s')
g = 100*(s+10)*(s-5)/(s*(s+8)*(s^2+s+1)*(s-5))

1 Kommentar

Alessandro Romeo
Alessandro Romeo am 10 Apr. 2022
Oh, I didn't think about that. I will pay attention to this one. Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Produkte

Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by