具有不同结果的离散传递函数的仿真
Simulations of discrete transfer functions with different results
我在两种不同的模式下创建了 'same' 离散传递函数。然后我针对相同的输入模拟它们。
为什么结果不同?两者有什么区别?
代码:
close all;clear;clc;
Ts=0.001;
t = 0:Ts:10;
%input
u=rand(length(t),1);
%1st TF
test_tf=c2d( tf([8 18 32],[1 6 14 24]),Ts );
y=lsim(test_tf,u,t);
%2nd TF
test_d_tf=tf([0.007985 -0.01595 0.007967],[1 -2.994 2.988 -0.994],Ts);
y_d=lsim(test_d_tf,u,t);
%plotting
plot(t,u,'k:',t,y,'b-',t,y_d,'r--');
他们的结果是:
整个模拟区间:
和缩放:
我的猜测是因为 tfs 实际上并不相同,它们看起来只是因为格式:
>>format long
>>test_d_tf.Numerator{1}
ans =
0 0.007985000000000 -0.015950000000000 0.007967000000000
>> test_tf.Numerator{1}
ans =
0 0.007985016651180 -0.015952055311304 0.007967070564278
我在两种不同的模式下创建了 'same' 离散传递函数。然后我针对相同的输入模拟它们。
为什么结果不同?两者有什么区别?
代码:
close all;clear;clc;
Ts=0.001;
t = 0:Ts:10;
%input
u=rand(length(t),1);
%1st TF
test_tf=c2d( tf([8 18 32],[1 6 14 24]),Ts );
y=lsim(test_tf,u,t);
%2nd TF
test_d_tf=tf([0.007985 -0.01595 0.007967],[1 -2.994 2.988 -0.994],Ts);
y_d=lsim(test_d_tf,u,t);
%plotting
plot(t,u,'k:',t,y,'b-',t,y_d,'r--');
他们的结果是:
整个模拟区间:
和缩放:
我的猜测是因为 tfs 实际上并不相同,它们看起来只是因为格式:
>>format long
>>test_d_tf.Numerator{1}
ans =
0 0.007985000000000 -0.015950000000000 0.007967000000000
>> test_tf.Numerator{1}
ans =
0 0.007985016651180 -0.015952055311304 0.007967070564278