How to set slower time sample for a subsystem inside of another periodic atomic subsystem

2 visualizaciones (últimos 30 días)
How can I set a time sample of 1ms for a subsystem 'A' inside of another periodic atomic subsystem 'B' running at 1us?
I do have a Simulink Coder generated S-function that runs at sample rate of 1ms and I cannot edit it. That S-function have to be inside of a subsystem that runs at sample rate of 100us and cannot remove the S-function from that subsystem or modify its time sample. It is not a problem to have the s-function running slower than the parent subsystem, but I cannot make it work. Can sameone help?

Respuestas (1)

Fangjun Jiang
Fangjun Jiang el 18 de Nov. de 2019
Put the S-function inside a Triggered Subsystem, which is set to be triggered by Function Call. Use a Function Call Generator to generate the call at every 1ms.
  2 comentarios
CLEBER ALBERT
CLEBER ALBERT el 18 de Nov. de 2019
It gives the following error:
'block1ms' has sample time 0.001. Only constant (inf) or inherited (-1) sample times are allowed in triggered subsystem 'block100us'.
Component:Simulink | Category:Blockerror
Fangjun Jiang
Fangjun Jiang el 19 de Nov. de 2019
Editada: Fangjun Jiang el 19 de Nov. de 2019
If the sample time of the S-function is fixed in its source code (not a good practice though), then you don't need to put it inside a subsystem that is triggered every 1ms. You can put it anywhere. It will run every 1ms. You just need to resolve all the rate transition issues.
Any block inside a triggered subsystem can not have a specified sample time. The sample time can either be -1 (which means to inherit from the trigger) or inf (means constant).

Iniciar sesión para comentar.

Categorías

Más información sobre Schedule Model Components en Help Center y File Exchange.

Productos


Versión

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by