Simulink: To Workspace block, collects only one or two data points (Running in External mode)
Show older comments
I am running a simulink model in external mode, and I get only one data point after the run from "To workspace block". I have tinkered with the settings a lot to get this to work, but I am not able to get more than two data points.
I am using Matlab R2015b, model is running on Arduino Mega 2560. The following are the screenshots of the settings I am using: Model:

To Worksoace block setting:

Solver settings:

Data Import/Export:

Accepted Answer
More Answers (5)
Vidya Viswanathan
on 1 Apr 2016
1 vote
Hi,
I notice that in your model, the sample rate used is 6ms. Typically, the gap in output data is observed when the sample rate is less than 10ms because the target tries to upload the data to the host every few seconds.
To resolve the issue,
1) Please increase the duration further in your model and see if it satisfies your requirements. Ideally, it is not recommended to run external mode on Arduino targets at very high rates (such as 1 ms).
2) If your requirement is to have data archiving at very high speeds, it is recommended to use a serial block for data upload. You would then use an ICT receive block on the Host to log data into MATLAB.
I hope this addresses your query.
Regards,
Vidya Viswanathan
1 Comment
I am encountering the same issues with the MinSeg.
The dynamic data goes to scope without issue, but only the final value goes to the workspace.
I have tried an (inherited) simulation step of 0.1 [s], and also set the decimation to 10. This did not have any effect; only the final value appears.
[r2015b]
Auralius Manurung
on 26 Feb 2016
0 votes
I am having the same problem in R2015b. Any update on this issue will be very much appreciated.
Giorgio Concu
on 6 Dec 2017
0 votes
I had the same problem and I fix it just upgrading to R2016b.
Number seven
on 10 Mar 2022
0 votes
I was having a similar issue where no data was being output to the workspace. I fixed it by going to tab Code > External mode control panel > Data Archiving. Then here I enabled Data Archiving, selected a directory and typed my desired file name. Now I have my variable in the To Workspace block being written to workspace, although I also get a file in the same directory with the name I set in Data Archiving.
Categories
Find more on Arduino Hardware 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!