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

4 views (last 30 days)
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!

Accepted Answer

Kaustubha Govind
Kaustubha Govind on 19 Feb 2013
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?
  1 Comment
Dani Tormo
Dani Tormo on 20 Feb 2013
The M-Function is the one which I want to execute at a certain frequency. I finally get this working using a pulse generator and reading this value before execute the subroutine.
Interesting this link about the solvers.
Many thanks Kaustubha!

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!