how to simulate an impusles response of a transfer function?

146 次查看(过去 30 天)
how to simulate an impulse response of transfer function?
which is T(s)= 15/(s^2+8s+15)
simulink should be used to find the impulse response

回答(4 个)

Aquatris
Aquatris 2018-11-25
An impulse signal is a signal that has a certain magnitude that is applied for a small time. So you can use transfer function block to model your T(s) and use sum of 2 step functions to create impulse signal input. Use scope or toWorkspace block to obtain the response.
Impulse magnitude = x
Impulse time = t
Step function 1: step time 1, initial value 0, final value x
Step function 2: step time 1+t, initial value x, final value 0

Aryan Ritwajeet Jha
Aryan Ritwajeet Jha 2019-10-14
If you are looking for a time domain response, then MATLAB has some easy to use functions:
%construction of transfer function
numerator=15;
denominator=[1,8,15];%(s^2+8*s+15)
transferFunction=tf(numerator,denominator);
impulseplot(transferFunction);
If you are looking for a Fourier Spectrum of the impulse response of a transfer function:
%construction of transfer function
numerator=15;
denominator=[1,8,15];%(s^2+8*s+15)
transferFunction=tf(numerator,denominator);
%construction of impulse signal
dt=1e-3;
t = -1:dt:1;
impulse= t==0;
%computing fourier spectrum of impulse response
impulseResponse=fftshift(fft(lsim(transferFunction,impulse,t)));
len=length(impulseResponse); %to take the frequency axis of the harmonics.
q=-(len-1)/2:(len-1)/2; %divide the frequency components
fimpulseResponse=sqrt(impulseResponse.*conj(impulseResponse));
plot(q,[fimpulseResponse]);
title(['Fourier Spectrum Plot']);
axis([-10 10 0 1]);
xlabel('Frequency');
ylabel('Amplitude');

Ahmad Alkadri
Ahmad Alkadri 2020-10-8
Just run a stepplot, but multiply the numerator of your transfer function by s to turn the step function into a dirac delta function (recall that that the integral of the step function is the dirac delta).
This corresponds to adding another entry of '0' in your numerator. So instead of
% unit step response
sys = tf([15],[1,8,15])
stepplot(sys)
You can write:
% unit impulse response
sys = tf([15,0],[1,8,15])
stepplot(sys)

babou babi
babou babi 2022-4-23
hi,
try this two lines
>> sys = tf (15,[1 8 15])
>> impulse(sys)
best regards,

产品


版本

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by