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

3 Ansichten (letzte 30 Tage)
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?

Antworten (1)

Fangjun Jiang
Fangjun Jiang am 18 Nov. 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 Kommentare
CLEBER ALBERT
CLEBER ALBERT am 18 Nov. 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 am 19 Nov. 2019
Bearbeitet: Fangjun Jiang am 19 Nov. 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).

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Schedule Model Components finden Sie in Help Center und File Exchange

Produkte


Version

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by