MATLAB: Simulink takes a long time to start a model with a Embedded Matlab block

compilerembedded matlab functionsimulinkslow

I have an embedded matlab block that contains a decent amount of code. When I start the Simulink model, the status bar shows that it is compiling the embedded matlab block and it takes a really long time (like 30 minutes). Is there a way to debug why it takes the compiler so long and where it would be getting hung up or any optimizations I could do?

Best Answer

Hi Thomas, 
I understand that an Embedded MATLAB block in your model is taking a long time (30 minutes) to compile every time you simulate your model, and you would like to debug this issue and find possible optimizations.
For debugging this issue, you can use the 'sldiagnostics' command to investigate which parts of the process are taking a long time. Since you are interested in debugging long compilation times, I suggest that you use this command with the 'CompileStats' option, as follows:  
>> sldiagnostics('myModel','CompileStats')
See the 'sldiagnostics' function documentation at the link below for more information:
If your Embedded MATLAB block is not changing between runs of your simulation, you could place your Embedded MATLAB block into a model reference to speed up compilation. By default, referenced models will only be re-compiled if a change is detected. Here are some documentation links to get you started with model referencing: