My Simulink simulations are governed by a large set of .m files and rather than starting the simulation on my own with Play button, I prefer to call an .m-file which sets up the environment and then starts the simulation.
I run my simulation with
However, this call is non-blocking. Is there a good way to block the m-file until the simulation is completed?
I could use polling in a for loop (querying for the state over and over again) but this is clearly not considered a good solution.
I could use the “sim” command but I do not want this because I do not “see” Simulink running (including the states, simulation time etc)
Ideally there would be a “blocking” option to the “SimulationCommand” “start”.
Another solution I could think of (not sure if this is supported by MATLAB?) to create an event and let the matlab script wait for an event to signal. The event is then signaled in the “StopFcn” callback. It’s important that this solution does not rely on polling …
Any creative ideas?
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
Running Simulink with sim command has its limitations compared to set_param and vice versa, and I understand why you might want to use set_param. If you call set_param(gcs, ‘SimulationCommand’, ‘start’) from an mfile, the code will initialize and run the current Simulink model. Then mfile will continue to run regardless of the Simulink simulation status.
Here is a scenario:
We want to pause the mfile. It should remain paused until, let us say, Simulink pauses with an Assertationblock. Then the mfile continues to run.
We put these lines after set_param(gcs, ‘SimulationCommand’, ‘start’) in our m-file
%This is to create a java robot. we will use it in Simulink to write codes in the command line later.
robot = java.awt.Robot;
%This will initiate the Debugging mode. mfile will be paused until we exit the debugging mode
Now the mfile will be paused. We want to exit the debugging mode when the Simulink finishes. We can exit the debugging mode by clicking on the respective button in the Editor tab or by writing dbcont in the command line. Of course, we want to automize it. If we put dbcont in callbacks of our Simulink model, we will get an error because the Simulink model is not in the debugging mode, but our mfile is. Here is where the robot comes in handy! We will let the robot write the code in the command line for us!
SEE COMPLETE ANSWER CLICK THE LINK
Start Simulink simulation and wait for termination
My Simulink simulations are governed by a large set of .m files and rather than starting the simulation on my own with…