MATLAB: How to set a fixed execution period of an M-Function in simulink

fixed step timem-functionMATLABsimulinkstep timevariable step time

Hi,
I'm using an M-function in simulink and checking the execution period of it I realized that is variable. It can vary from 100 us to 10 us more or less.
Is this because it's synchronized with the simulink step time? I am using a variable step time.
Is there any way to control this execution time without setting a fixed one in the simulink model? I want to execute a routine in the M-function with a fixed step time.
Thanks!

Best Answer

No, AFAIK, the only way to ensure a fixed-step time for your model is to pick a Fixed-Step Solver and specify the desired step-time. Please read the documentation section Choose a Solver to understand how the variable-step solver chooses the next time step based on the dynamics of your model.
However, if you need a certain block only to run at the specific rate, you should be able to get that to work by specifying the block sample time. Not all blocks have this option though - which ones are you using?