Borrar filtros
Borrar filtros

How do I get the minor time in a MATLAB s-function?

4 visualizaciones (últimos 30 días)
manav .
manav . el 26 de Mayo de 2011
Respondida: tianyuan wang el 9 de Mzo. de 2023
Inside a Level-2 Matlab S-function, block.CurrentTime gives the value of the major time. How can we get the value of the minor time?

Respuesta aceptada

Kaustubha Govind
Kaustubha Govind el 26 de Mayo de 2011
Actually, block.CurrentTime gives the value of the current time-step in the simulation (could be either major or minor). The block outputs and derivatives (and potentially, zero-crossings) methods are run in minor time-steps. So if you are querying block.CurrentTime in one of these functions, you should simply have to check block.IsMajorTimeStep to verify if you're in a major/minor time-step.
  1 comentario
Rik
Rik el 13 de Ag. de 2020
Comment posted as flag by Abbott Von:
Simulink level-2 S_function获取当前仿真时间

Iniciar sesión para comentar.

Más respuestas (2)

Guy Rouleau
Guy Rouleau el 27 de Mayo de 2011
I recommend looking at this submission:
It contains a level-2 MATLAB s-function which reads and separate values from major and minor steps.
I use the files in this submission often to better understand continuous solver behavior. Just for my curiosity, can you provide more details on why you want to access minor time steps data?
  2 comentarios
manav .
manav . el 30 de Mayo de 2011
My model has an S-function block containing transient FEM code, which requires time step between two consecutive calls to determine its output. But as the system output becomes unstable after sometime (before unstability it gives proper output), time step seemed to be culprit to me, though incorrectly as I know now.
But thanks as I have better understanding of major and minor time step now.
trantoan
trantoan el 20 de Abr. de 2018
Hi manav, I wonder if you could share your solution strategy. At the present, I have a similar issue. Hope to hear your recommendation. Best, Toan

Iniciar sesión para comentar.


tianyuan wang
tianyuan wang el 9 de Mzo. de 2023
I encountered a similar problem.
If I choose the ode4 solver, does the model loop four times in one time step?
Another question is, if I use S-function in my model and call S-function once in a time step, how does ode4 extrapolate the results of S-functions? Does the result of the S-function have to be a function of time t? Or Simulink automatically extrapolate based on the value of S-function?

Categorías

Más información sobre Block and Blockset Authoring en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by