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).
かわいらしいフォーマットは欲しくない。伝達関数に直接アクセスしたい。
f = tf( 1 , [1 1 1])
f に TF オブジェクトを返します。
printsys.m
コントロール ツールボックスでファイルを変更します。行を削除disp([' ','-'*ones(1,len)])
して行を削除し、単一のdisp
コマンドを使用してノミネーターとドミネーターを出力します。
私は同じ問題に遭遇し、満足のいく解決策を見つけることができなかったので、私は自分自身を書いた.
非常にシンプルで、お好きな方法で自由に使用できます。
次の関数を 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');
-ヴィットリオ