Borrar filtros
Borrar filtros

impulse response with the commande lsim

10 visualizaciones (últimos 30 días)
babou babi
babou babi el 23 de Abr. de 2022
Respondida: Mathieu NOE el 25 de Abr. de 2022
hello everyone
i try to get the impulse response of first order transfert function with the commande lsim
sys = tf(1,[0.5,1]);
t = [0:0.1:3];
input = zeros(size(t));
input(1)=inf ;% when t=0 the input is inf
output = lsim(sys,input,t);
plot(t,output)
that lines of commandes dont give me same result as
>> sys = tf (1,[0.5 1])
>> impulse(sys)
why????????????

Respuesta aceptada

Mathieu NOE
Mathieu NOE el 25 de Abr. de 2022
hello
your first implementation is a discrete time impulse
For discrete-time systems, the impulse response is the response to a unit area pulse of length Ts and height 1/Ts, where Ts is the sample time of the system.
so the "dirac" area" must remain = 1 , that is the amplitude is not inf but the inverse of the time increment (0.1 s in your code)
further reducing the time increment makes the code getting closer to the "true" impulse response
try with dt = 0.01 like below :
sys = tf(1,[0.5,1]);
dt = 0.01;
t = [0:dt:3];
input = zeros(size(t));
input(1)=1/dt ;% dirac area = 1
output = lsim(sys,input,t);
plot(t,output)

Más respuestas (0)

Categorías

Más información sobre System Identification Toolbox en Help Center y File Exchange.

Productos


Versión

R2007b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by