I have a question about matlab bodeplot. I want to draw bodeplot this function .
(1-s/fref) / s * exp (-s/fref);
I made script as follow .
syms s;
fref = 1e6;
num = sym2poly(1-s/fref);
den = sym2poly(s);
ACC1 = tf(num,den);
num = sym2poly(exp(-s/fref));
den = sym2poly(s);
ACC2 = tf(num,den);
ACC3 = ACC1*ACC2;
bode(ACC3,{0.00001,10e13});
but, script have a error. matlap indicate this sentence as a error. ( ??? Error using ==> sym.sym2poly at 31 Not a polynomial. )
In this way, how i should solve the error?

 Akzeptierte Antwort

David Sanchez
David Sanchez am 15 Okt. 2013

1 Stimme

I forgot to add the solution to your question. Here it is:
% G(s) = (1-s/fref) / s*exp (-s/fref);
G = tf( [-1/fref 1],[1 0],'InputDelay', 1/fref);
bode(G,{0.00001,10e13});
or just
bode(G)
for a more general plot

1 Kommentar

Wook Hong
Wook Hong am 15 Okt. 2013
thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

David Sanchez
David Sanchez am 15 Okt. 2013

0 Stimmen

exp(-s/fref)
is not a polynomial, you can not use sym2pol in that case
num = sym2poly(exp(-s/fref)); % -> not valid

1 Kommentar

Wook Hong
Wook Hong am 15 Okt. 2013
how to make transfer function of exp(-s/fref). impossible?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements 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