impulse response with the commande lsim
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
babou babi
am 23 Apr. 2022
Beantwortet: Mathieu NOE
am 25 Apr. 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????????????
0 Kommentare
Akzeptierte Antwort
Mathieu NOE
am 25 Apr. 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)
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu System Identification Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!