How are math operations of constants in simulink models performed?

Are the results calculated at every simulation step or are they calculated only once at the beginning of the simulation?
example:
If I have two constants a and b. In Simulink I call them through constant blocks and add them using an add block. Does the solver calculate this sum at each calculation step or does it calculate the sum only once?

 Respuesta aceptada

Thomas Ayres
Thomas Ayres el 2 de Mayo de 2019
Hi Michael,
It depends how you have configured the sample time for your Simulink constant blocks and maths blocks. If they have a sample time of inf then they will only be calculated once. If not they will be calcuated at the sample time assigned.
Regards
Tom

1 comentario

Hi Tom,
thanks for the fast response. The answer has helped me a lot!
Regards Michael

Iniciar sesión para comentar.

Más respuestas (1)

Raj
Raj el 2 de Mayo de 2019
The computation is done at each simulation step time. So if you are adding two constant blocks, from t=start of simulation to t=end of simulation, Simulink computes the sum at each sampling time step.

4 comentarios

This is not always true, as described in my original answer if you have a constant sample time for the 2 constants then the sum block will inherit this sample time and thus only compute the sum at the begining of the simulation. This can be observed by looking at a simulation profile report and changing between a constant and non-constant sample time.
I am not quite convinced. I still think Simulink computes output throughout the simulation. Consider this case for example:
Capture.JPG
Basically I am adding two constants but I am changing the value of second constant in the middle of simulation using a switch condition. If the sum was computed only in the beginning as you say then the summer output should have been a constant value. But that is not the case. The output is changing as you can see below:
Capture.JPG
Can you explain where I am going wrong here?
In this case you are correct, the answer is not constant and is computed throughout, but this isn't the case asked by Michael. In your example you don't have 2 constants being added. The sample time of the signal coming from the switch will be driven by your signal builder block creating a varying signal. If you had Michaels example described above you could configure it to computer once or multiple times.
If you compute this example setting the sample time of the add block to t_s > 5s the scope will show constant two.

Iniciar sesión para comentar.

Categorías

Más información sobre Simulink en Centro de ayuda y File Exchange.

Productos

Versión

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by