How can I convert a transfer function object into a symbolic object for use with the Symbolic Math Toolbox in MATLAB R2023a?
44 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 27 de Jun. de 2009
Editada: MathWorks Support Team
el 13 de Jul. de 2023
I have two transfer function objects in MATLAB R2023a. The first one, "sysd", was created using the System Identification Toolbox with the following code:
x = rand(100, 1);
y = 10*rand(100, 1) + 5;
np = 4; % number of poles
nz = 2; % number of zeros
Ts = 0.01; % time step
sysd = tfest(x, y, np, nz, 'Ts', Ts); % Get transfer function
The second transfer function object, "t", was created using the code:
t = tf(1:3,4:6)
Transfer function:
s^2 + 2 s + 3
---------------
4 s^2 + 5 s + 6
I want to convert both transfer function objects into symbolic objects for use with the Symbolic Math Toolbox. This will allow me to use functions like CCODE, FORTRAN, or LATEX on the transfer functions. How can I achieve this?
Please provide the necessary code for converting both "sysd" and "t" into symbolic objects and demonstrate how to use the CCODE, FORTRAN, or LATEX functions on the resulting symbolic expressions.
Respuesta aceptada
MathWorks Support Team
el 26 de Jun. de 2023
Editada: MathWorks Support Team
el 13 de Jul. de 2023
To convert the transfer function objects "sysd" and "t" into symbolic objects and use the CCODE, FORTRAN, or LATEX functions, you can follow the steps provided below:
For converting "sysd":
syms s
[num, denom] = tfdata(sysd); % extract numerator and denominator
sys_sym = poly2sym(cell2mat(num), s) / poly2sym(cell2mat(denom), s); % convert to sym
% Using CCODE, FORTRAN, and LATEX functions
c = ccode(sys_sym);
f = fortran(sys_sym);
l = latex(sys_sym);
For converting "t":
[num,den] = tfdata(t);
syms s
t_sym = poly2sym(cell2mat(num), s) / poly2sym(cell2mat(den), s);
% Using CCODE, FORTRAN, and LATEX functions
c = ccode(t_sym);
f = fortran(t_sym);
l = latex(t_sym);
0 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!