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?

 Réponse acceptée

David Sanchez
David Sanchez le 15 Oct 2013

1 vote

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 commentaire

Wook Hong
Wook Hong le 15 Oct 2013
thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks

Connectez-vous pour commenter.

Plus de réponses (1)

David Sanchez
David Sanchez le 15 Oct 2013

0 votes

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

1 commentaire

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by