在 matlab 中使用该tf
函数时,我没有得到我需要的输出。
例如:
tf( 1 , [1 1 1])
产生:
ans =
1
-----------
s^2 + s + 1
连续时间传递函数。
我想要的是这样的:
ans =
1/(s^2 + s + 1).
我不想要漂亮的格式。我想直接访问传输功能。
在 matlab 中使用该tf
函数时,我没有得到我需要的输出。
例如:
tf( 1 , [1 1 1])
产生:
ans =
1
-----------
s^2 + s + 1
连续时间传递函数。
我想要的是这样的:
ans =
1/(s^2 + s + 1).
我不想要漂亮的格式。我想直接访问传输功能。
修改printsys.m
控制工具箱中的文件。删除disp([' ','-'*ones(1,len)])
行以删除行并使用单个disp
命令打印提名者和支配者。
f = tf( 1 , [1 1 1])
将在 f 中返回一个 TF 对象。
I ran into the same problem and could not find a satisfactory solution, so I wrote my own.
It's very simple feel free to use it anyway you wish.
The following function should be placed in tf2string.m
% name: tf2string.m
% author: vittorio alfieri
% example:
% W1_out=tf2string(W1)
%
% W1_out =
% (s + 37.0)/(1.646*s)
function output_string = tf2string(input_tf)
syms s
sym_num=poly2sym(input_tf.num{:},s);
sym_num=vpa(sym_num, 4);
char_num=char(sym_num);
sym_den=poly2sym(input_tf.den{:},s);
sym_den=vpa(sym_den, 4);
char_den=char(sym_den);
output_string = ['(', char_num, ')/(', char_den, ')'];
s=tf('s');
-Vittorio