Constant block only outputs a single data point

38 visualizaciones (últimos 30 días)
John Smith
John Smith el 23 de Dic. de 2020
Comentada: Mark McBroom el 26 de Dic. de 2020
Hi everyone,
Constant blocks in Simulink have started behaving strangely for me very suddenly. As in the title - the constant block only outputs a single data point at t=0, otherwise it does not output a value. I have tried everything I can think of short of reinstalling MATLAB. The issue occurs across all my models and doesn't seem to be affected by any settings, including the solver settings. To prove this point I have created a model containing only a constant block, scope, and workspace output. Please see the screenshots below.
I have tried replacing the constant with a step, and this doesn't produce much better results.
I am fairly sure this is a bug, since it came on so suddenly and without any real change in any of my models or settings. I'm just wondering if anybody else has had this issue or knows of a workaround. I am highly dependent on Simulink for my university course, and since this renders it basically useless I am really keen to get it sorted.
Many thanks.
  7 comentarios
John Smith
John Smith el 24 de Dic. de 2020
The first case simulation is running for the full 10 seconds. out.tout contains time values from 0 to 10 at intervals of 0.2, and out.const only contains a single '1' at t=0. Really strange behaviour. I'm running R2020b, by the way.
Paul
Paul el 24 de Dic. de 2020
Maybe send a simple model that illustrates the problem to Tech Support and see what they say? If you do and they solve the problem or identify an issue, please post back here with the results.

Iniciar sesión para comentar.

Respuestas (1)

Mark McBroom
Mark McBroom el 25 de Dic. de 2020
What is the sample time for the constant block? The default is "inf" which indicates constant sample time. Change this to -1 or 0.2 and you will see data plotted each time step. See this description of constant sample time. https://www.mathworks.com/help/simulink/ug/types-of-sample-time.html
  2 comentarios
John Smith
John Smith el 26 de Dic. de 2020
I am using the default sample time of "inf" in the constant block. I have always used this sample time in the past and never had a problem. If I set a sample time of -1, sampling does occur at each time step. However, for some of my models with fast dynamics this doesn't seem to solve the problem. I get a constant output of zero where I used to get the expected output. I am doubtful that it is a problem with any of my model parameters, since the issue came completely out of the blue and without me making any changes.
Mark McBroom
Mark McBroom el 26 de Dic. de 2020
When a constant block has a value of "inf", Simulink only computes its output one time because it never changes during the simulation. What problem are you trying actually trying to solve? Do you have workspace parameters in your constant blocks? Are you trying to tune then during the course of a simulation and not seeing the newly tuned value take effect in your Simulink model?

Iniciar sesión para comentar.

Categorías

Más información sobre General Applications en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by