change order called function in the block s-function

1 view (last 30 days)
Can be possible to change the way that the block s-function calls mdlInitializeSizes mdlUpdates mdlOutputs? I known that first the block is initialized, and after that comes mdlOutputs and Finally mdlupdates, but it produce a unit delay in my signal. Could I changed it, so that the sequence will be initialized, then mdlupdate and finally mdlOutputs. Without a unit delay?¿

Answers (2)

Kaustubha Govind
Kaustubha Govind on 19 Sep 2013
No, it is not possible to change the order in which the Simulink Engine calls S-function methods. I'm not sure if I understand your question correctly, but if you don't need a delay, then why implement an mdlUpdate method at all? It looks like you can combine all your calculations in mdlOutputs itself. If this answer doesn't make sense, it might help us understand your question better if you can provide more details about your algorithm.
  1 Comment
Johanna Carolina Salazar
Johanna Carolina Salazar on 19 Sep 2013
It could be possible combine all my calculations in mdlOutputs itself. The main problem with that is that I have inside a fmincon. So when i call this function, it starts to compute the optimal solution, once the solution is founded, instead of continuos, start again to compute the optimal.

Sign in to comment.


Johanna Carolina Salazar
Johanna Carolina Salazar on 19 Sep 2013
It could be possible combine all my calculations in mdlOutputs itself. The main problem with that is that I have inside a fmincon. So when i call this function, it starts to compute the optimal solution, once the solution is founded, instead of continuos, start again to compute the optimal.

Categories

Find more on Block and Blockset Authoring in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!