Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Solutions Academia Support User Community Company
spacer spacer spacer spacer spacer spacer

Technical Solutions

How do I stop a simulation from within an S-function?


Date Last Modified: Friday, June 26, 2009
Solution ID:   1-18NS3
Product:   Simulink
Reported in Release:   R12
Platform:   All Platforms
Operating System:   All OS
 

Subject:

How do I stop a simulation from within an S-function?

Problem Description:

How do I stop a simulation from within an S-function?

For example, I am attempting to stop a running simulation from within my S-Function, and I do not want to add a stop block. Is there any way I can stop the simulation in the same way as pressing the stop toolbar button but from within my code?

Solution:

There are several ways to stop a simulation from within an S-function:

1) For M-file S-functions you can use the command:


set_param(bdroot, 'SimulationCommand', 'stop');

For Simulink 4.0 (R12) and above you can use the following on C-MEX S-functions:

1) You can do a 'mexCallMatlab' with the SET_PARAM command with the same input arguments mentioned above for M-file S-functions.

2) You can use the macro ssSetStopRequested, which will allow you to stop a simulation from within your S-function (you will have to set the simulation flag in this macro to not zero). For more information on this function please see pg. 10-187 of the Writing S-function Guide. The online version of this Guide can be found at:

http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/sfg/f6-633.html

Please provide feedback to help us improve this Solution
Contact support
E-mail this page
Print this page