num = 10 ;
den = [1 2 10] ;
stepsize = 0.00001 ;
g = tf(num,den) ;
t = 0:stepsize:5 ;
y = step(g,t) ;
figure(1) ;
plot(t,y) ;
iter = size(t,2) ;
for i = 1:iter-1
if( y(i+1) < y(i) )
peak = y(i) ;
peaktime = i*stepsize ;
break ;
end
end
fprintf('%20s : %.4f\n','Peak',peak );
fprintf('%20s : %.4f\n','Peaktime',peaktime);
我在我的大学部门实验室运行了这个代码,其中安装了MATLAB r2007我得到Peak
的值为1.3489
但是在我自己的系统上有r2012b,我运行了相同的代码和得到Peak
的值为1.3509
。
有人可以向我介绍为什么会出现这种差异吗?
PS:这个程序只找到给定传递函数的阶跃响应的峰值和峰值时间,在这种情况下是
10
--------------
s^2 + 2*s + 10