Constant block only outputs a single data point

48 visualizzazioni (ultimi 30 giorni)
John Smith
John Smith il 23 Dic 2020
Risposto: sregmi il 24 Lug 2024
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 Commenti
John Smith
John Smith il 24 Dic 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 il 24 Dic 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.

Accedi per commentare.

Risposte (2)

Mark McBroom
Mark McBroom il 25 Dic 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 Commenti
John Smith
John Smith il 26 Dic 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 il 26 Dic 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?

Accedi per commentare.


sregmi
sregmi il 24 Lug 2024
I have the same issue. I am on R2024a.
The output on the scope is a single datapoint while the same output on Simulink data inspector is datapoints across the time (which is what we expect).

Categorie

Scopri di più su Simulink Functions in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by