MATLAB Answers

In Simulink, is it possible to send data to workspace in real-time using the 'ToWorkspace' block?

42 views (last 30 days)
Rafael Cordero
Rafael Cordero on 25 Oct 2020
Edited: Paul on 27 Oct 2020
Hello everyone,
I have a large simulink model. In this model I calculate certain variables that are essentially [1x1] constants. For example, I analyze an electrocardiogram recording to count the number of heart cycles: num_cycles.
I would then like to use such constants like num_cycles in various other blocks like selectors and Matlab function blocks to fix the size of various variable size signals.
Now, if such constants would be defined in the workspace, I could just type num_cycles or whatever in the Simulink selector block, or in the output size of the Matlab Function's explorer. I have tried using the block "ToWorkspace" to do this. However, this block only sends data to workspace once the simulation in stopped or paused.
My question is: is there any way to send variables to the workspace immediately so that they can be accessed by future blocks as if they were workspace variables?
Thank you,
Rafael
  1 Comment
Paul
Paul on 25 Oct 2020
I don’t think you can do this. Please post here if you find a solution.
However, the answer may be in your question. Did you read the doc on “variable size signals”?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 25 Oct 2020
  9 Comments

Sign in to comment.

More Answers (1)

Ameer Hamza
Ameer Hamza on 25 Oct 2020
  2 Comments
Ameer Hamza
Ameer Hamza on 26 Oct 2020
I think that changing the parameters of a compiled model using values from the base workspace is not possible. You can read these values using extrensic(), but using them to changing the signal dimensions might require the re-compilation of the model.

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!