Why does my Simulink model take so long to run?

65 visualizzazioni (ultimi 30 giorni)
Jeremy
Jeremy il 19 Set 2018
Risposto: Kazem il 10 Gen 2024
I am working with a large but new-to-me Simulink model in MatLab 2017A. This model takes over 26 minutes to run, which makes it very difficult to work with. I turned on the model profiler (set_param( model_name, 'Profile', 'on') before running it, and got a profile report starting with...
It is telling me that virtually all of the time is in the "compileAndLinkPhase", which makes sense with the text I see on the status bar as it runs, but it doesn't break it down any farther. Is there any setting or tool I could use to determine why this phase takes so long? Perhaps getting a specific part of the model takes too much time to compile, or a specific link takes too much time to process? Anything that tells me what it is about the model which takes so long to compile and/or link may be helpful.

Risposte (2)

Sara Nadeau
Sara Nadeau il 19 Set 2018
Modificato: Sara Nadeau il 19 Set 2018
Hi Jeremy!
Sounds like accelerator mode could help you. You can find details about Accelerator mode in the documentation.
This is the landing page for learning about Acceleration: https://www.mathworks.com/help/simulink/acceleration.html
And here's a topic to get you started: https://www.mathworks.com/help/simulink/ug/what-is-acceleration.html
I hope this helps!
  1 Commento
Sara Nadeau
Sara Nadeau il 19 Set 2018
Additionally, more to the point of your question, I hope this list of factors that affect performance can help you identify model changes that might decrease the simulation time: https://www.mathworks.com/help/simulink/ug/speed-up-simulation.html
And there's also Fast Restart which only performs the compile stage on the first simulation you run! https://www.mathworks.com/help/simulink/ug/fast-restart-workflow.html

Accedi per commentare.


Kazem
Kazem il 10 Gen 2024
You can use excludedModels option to exclude some reference blocks for big project.
testObj.modelRefSettings.excludedModels = ["A","B","C","D" .."Z"];

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by