Matlab,配置TF输出(传递函数)

时间:2013-02-01 20:31:34

标签: matlab output transfer-function

在matlab中使用tf函数时,我没有得到我需要的输出。

例如:

tf( 1 , [1 1 1])

产地:

ans =

       1
 -----------
  s^2 + s + 1

连续时间传递功能。

我想要的是:

 ans = 
    1/(s^2 + s + 1).

我不想要漂亮的格式。我想直接访问传输函数。

3 个答案:

答案 0 :(得分:1)

f = tf( 1 , [1 1 1])

将返回f。

中的TF对象

答案 1 :(得分:1)

修改控件工具箱中的printsys.m文件。删除disp([' ','-'*ones(1,len)])行以删除该行并使用单disp命令打印指针和支配者。

答案 2 :(得分:0)

我遇到了同样的问题而无法找到满意的解决方案,所以我自己写了。

随时随地使用它非常简单。

以下函数应放在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