Matlab, настроить вывод TF (передаточные функции)

При использовании функции tf в Matlab я не получаю именно тот результат, который мне нужен.

Например:

tf( 1 , [1 1 1])

Производит:

ans =

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

Непрерывная передаточная функция.

Чего я желаю, так это:

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

Мне не нужен красивый формат. Я хочу получить прямой доступ к функции передачи.


person Luter Ferraz    schedule 01.02.2013    source источник


Ответы (3)


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

вернет объект TF в f.

person Bitwise    schedule 01.02.2013
comment
Нет, ты не понимаешь. Делать то, что ты сказал, мне не к добру. Даже с f = tf(1 , [1 1 1]), все, что я получаю, это f = 1 ----------- s^2 + s + 1 Мне нужно f = 1/(s^2 + с + 1) - person Luter Ferraz; 02.02.2013
comment
@ user2033840 вам нужен доступ к фактической функции передачи или вы хотите, чтобы она просто отображалась как 1/(s^2+s+1)? - person Bitwise; 02.02.2013
comment
Просто отображается как. Мне нужна функция или скрипт, который при применении к указанной переменной f = tf(1, [1 1 1]) дает мне вывод 1/(s^2 + s + 1). Что-то подобное существует? Или что-то подобное? - person Luter Ferraz; 02.02.2013

Измените файл printsys.m в панели инструментов управления. Удалить строку disp([' ','-'*ones(1,len)]), чтобы удалить строку и вывести числитель и доминатор с помощью одной команды disp.

person Szymon Bęczkowski    schedule 03.02.2013

Я столкнулся с той же проблемой и не смог найти удовлетворительного решения, поэтому написал свое собственное.

Это очень просто, не стесняйтесь использовать его так, как хотите.

Следующая функция должна быть помещена в 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');

-Витторио

person vittorio88    schedule 24.02.2013