Plots via s-function
3 views (last 30 days)
Show older comments
Hello,
I've written a Level2 S-Function, that plots space vector diagramms during my Simulink simulations. This is working so far, but the problem is that the execution time of the s-function slows down my simulation due to the matlab interpreter.
So my question is, is there any way to create and modify matlab-figures with a mex S-Function? After a lot of searching, I could not find any commands for doing that.
Thank you for your help
Tobias Gemaßmer
0 Comments
Accepted Answer
Titus Edelhofer
on 24 Nov 2011
Hi Tobias,
hmm, then there is indeed not much more that can be done ... writing the S-function in C will not make much of a difference in this case I guess. You might profile your S-function (just call
profile on
before running the simulation and
profile report
afterwards. The report should show up the time spent in your S-Function. I don't expect much interesting there, but just to be sure ...
Titus
0 Comments
More Answers (3)
Titus Edelhofer
on 24 Nov 2011
Hi Tobias,
not really. What I would suggest is to reduce the sample time of the output so that the S-function (plotting) is not done every time step but e.g. every 10th step only ...
Second: how does the plotting work, do you redraw the entire plot every time step (plot(x,y)), or (preferably) do you store the handle of the plot in some work vector and do only update the line, something like
set(h, 'xdata', newXData, 'ydata', newYData);
This is usually significantly faster.
Titus
0 Comments
See Also
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!