MATLAB: Does NextTimeHit always return 0 in Matlab S-Functions

s-functionsimulink

I need to compute the step size (i.e. dt) in the discrete update method of a Matlab S-Function whose Sample Time is set to be "Inherited" (i.e. [-1 0]). However, regardless of the Sample Time specification (e.g. Inherited, Continuous, Discrete, Variable), the "block.NextTimeHit" always return "0" even though it is decleared as R/W in its Matlab Documentation.
  1. Why does NextTimeHit always return 0 in Matlab S-Functions?
  2. How can I infer the actual step size in update method of (Discrete) Matlab S-Functions for inherited and variable sample times?

Best Answer

the NextTimeHit is the API used specifically for variable discrete rates. You can read more about it in the page:
To get the actual step size used in the update method, you will have to use Dwork vectors. The link below demonstrates an example for using Dwork vectors: