How can I create an impulse (delta) signal in Simulink?

 Réponse acceptée

Mark Lin
Mark Lin le 27 Mar 2019

2 votes

Hi Alessio,
Use a step response block and linked it to a derivative block can create a delta, impulse, signal.
All you need to do is making sure the response time in your system.
Hope it help.

3 commentaires

Wow thanks, It looks great! I Will try
Alessio Conte, what is your purpose of needing a pulse in Simulink?
The derivative of a step signal is the impulse signal. But that is only theoritical. Doing that in Simulink, the outcome depends on the sample time.
I could see several uses for a pulse function in Simulink. For example adding a defined amount of chemical into a mixing tank volume instantaneously, and having delayed mixing in the tank. calculating output concentration is a common chemical enginering task.
I get that takting the derivative of the step function will depend on the sample time, and I wonder why the Dirac function is not available in the Simulink function library?

Connectez-vous pour commenter.

Plus de réponses (6)

Chul-Goo Kang
Chul-Goo Kang le 28 Déc 2019

4 votes

Use step input and multiply s in the transfer function of the next block.

2 commentaires

Can you please explain what you mean by this?
esta derivando

Connectez-vous pour commenter.

Fangjun Jiang
Fangjun Jiang le 4 Mai 2018
Modifié(e) : Fangjun Jiang le 4 Mai 2018

0 votes

From the note of impulse():
Note: In discrete time, impulse computes the response to a unit-area pulse of length Ts and height 1/Ts where Ts is the sample time. This pulse approaches the continuous-time Dirac impulse delta(t) as Ts goes to zero.
So you will construct a pulse of width as Ts and height as 1/Ts.

2 commentaires

Hi, thanks for your answer. Not sure to have understood... do you mean that a rectangular signal whose base is Ts and height is 1/Ts is the equivalent of a delta impulse signal? I attach an image of what i mean
That is correct. When Ts->0, the pulse becomes the theoretical delta (the impulse).

Connectez-vous pour commenter.

Alessio Conte
Alessio Conte le 29 Mar 2019

0 votes

Yes you're right actually...I was just curious of doing what we have seen in classe but actually doesn't make sense.
Thanks!
Hiromasa
Hiromasa le 14 Juin 2024

0 votes

Thank you for your question.
One way to create an impulse signal is to use Hit Crossing block. (https://www.mathworks.com/help/simulink/slref/hitcrossing.html)
As shown below, Hit Crossing outputs an impulse signal of magnitue 1. The gain block after the Hit Crossing amplifies the signal by the factor of 1/t where t is a discrete time step for the system.
Hope this information helps.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by