How to convert symbolic expressions to transfer functions

282 vues (au cours des 30 derniers jours)
Qian Feng
Qian Feng le 31 Oct 2016
Commenté : Walter Roberson le 7 Août 2023
I am encountering the problem of converting a symbolic expression to become a transfer function. Specifically, the linear system I am dealing with contains a non-constant distributed delay term which requires performing an integration to obtain the corresponding transfer function. However, it seems that the integration operator int cannot be applied with tf variables directly.
On the other hand, if there is a way to convert symbolic expressions to transfer functions, then this problem can be easily handled in symbolic setting first.
Thanks a lot
  3 commentaires
Star Strider
Star Strider le 1 Nov 2016
I suggested a similar approach yesterday. It’s apparently not a polynomial.
Qian Feng
Qian Feng le 2 Nov 2016
Modifié(e) : Walter Roberson le 2 Nov 2016
Here is the code,
r = 1;
s = tf('s');
syms x
A4 = [-1 x; -1-x^3 -1];
Ap = int(A4*exp(x*s),x, -r, 0);
The reason why we have an integration there is because I am dealing with a distributed delay term in the time domain.
The problem is that it seems we cannot mix a tf variable with a symbolic variable here.
However, the aforementioned integration can be easily handle if s is a symbolic variable, which is the reason why I asked about how to transfer a symbolic entity into a tf one.

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 2 Nov 2016
  12 commentaires
Paul
Paul le 27 Fév 2021
Cool code. Siight mod to also handle the case when symExp is a constant.
syms s
symExp(s) = 5;
ExpFun = matlabFunction(symExp);
ExpFun = str2func(regexprep(func2str(ExpFun), '\.([/^\\*])', '$1'));
TF = tf(ExpFun(tf('s')));
TF
TF =
5
Static gain.
Sanjeet Kumar
Sanjeet Kumar le 2 Mar 2023
Great, works well, Thanks!

Connectez-vous pour commenter.

Plus de réponses (2)

HyunSang Park
HyunSang Park le 28 Mai 2018
If you're just trying to find the peak value of the bode magnitude plot, might I suggest avoid using tf altogether? the peak value is when d(G(jw))/dw = 0. You can easily find the derivative with syms, and the plug in the w to the original tf.

Murugan venkatesan
Murugan venkatesan le 7 Août 2023
In order to analyze the bifurcation, the input impedance expression how to plot the bode graph..
  1 commentaire
Walter Roberson
Walter Roberson le 7 Août 2023
I do not understand how people can use your answer to convert symbolic expressions to transfer functions? Could you show how your solution could be used for the example symExp = (s+2)/(s^2+5*s+9); ?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by