How to store data while simulating a model?

4 views (last 30 days)
roro6992
roro6992 on 11 Jun 2014
Commented: roro6992 on 14 Jun 2014
Hi everyone, i have written a s function in which i want to store the data generated during one simulation loop and use that data in the next simulation loop. How can i do this? Is there any way of storing the data in a matrix and retrieving that data matrix in the next simulation step?? Please help. Thanks!

Answers (3)

Abhishek M
Abhishek M on 11 Jun 2014

David Sanchez
David Sanchez on 11 Jun 2014
You need to add two blocks to your model.
1) to save data, ad "To Workspace" block. This will send and save data into the workspace
2) to get data, add "From Workspace" block.This will read data stored in the workspace.
Properly done, you can link data from one simulation to the next.
Read the documentation for examples on deeper detail
  1 Comment
roro6992
roro6992 on 11 Jun 2014
Actually I have written a matlab level 1 S function and i wonder how can i store the various data generated in the update stage of the S function and use it in the next time step of the simulation of the model containing the s function. Is there any way? Please suggest.

Sign in to comment.


Kaustubha Govind
Kaustubha Govind on 13 Jun 2014
You can use states in an S-function to store data from previous time step(s). Note that Level-1 S-functions are no longer supported, and only exist for backwards compatibility reasons. Please convert it to a Level-2 MATLAB S-function of possible. Type sfcndemo_sfundsc2 at the MATLAB prompt to open a Level-1 S-function example that uses a state to store the value of the previous input (thus acting as a Unit Delay). Type msfcndemo_sfundsc2 to see the Level-2 S-function version of the same algorithm.
  1 Comment
roro6992
roro6992 on 14 Jun 2014
Thanks. I have converted it to a level 2 matlab s function and used the Dwork vector to store the variable data. I needed seven dwork vectors. But while i am simulating the model including the s func block...the simulation is taking too long to respond and its showing the word 'Initializing' in the bottom left corner and after sometime matlab stops responding. Why is this happening? Would u please check my code? and tell whats wrong? The code is attached.

Sign in to comment.

Categories

Find more on Block and Blockset Authoring in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!