The following sequence produces inconsistent results when using evalfr, dcgain and freqresp:
s = tf('s');% define a 2x1 G(s) with a pole in the origin in the (1,1) element
% and the (2,1) element equal to zero
G = [1/s; 0];sys = ss(G); % the realization is minimal
evalfr(G,0) % the results is [inf;0], which is correct
evalfr(sys,0) % the result is [inf;inf], which is incorrect
evalfr(sys(2,1),0) % the result is inf, which is incorrect (it should be 0)
evalfr(tf(sys),0) % the result is [inf;0], which is correct
dcgain(sys) % the result is [inf;0], which is correctgain=freqresp(sys,0) % the result is gain = [inf;inf], which is incorrect
The response to the transfer function zero should ideally be zero, as reflected correctly by the output of "dcgain". Why does "evalfr" and "freqresp" output Inf?
Best Answer