MATLAB Answers


Simulink controlling problem, i want to make a action that conteracts the logic that triggers the action.

Asked by Sam
on 12 Apr 2013


I need some help with an issue in Simulink, it requires a bit of explanation:

I am doing a project where i am using Simulink in collabroation with another program to run some co-simulation. The run time of the simulation is e.g. 10 seconds with a 0.1 second step. I have built a control system in simulink which activates a given maneuver if certian conditions are met. An example could be:

If X is < -10 add 1 to X.

Now, the issue i have is i want to keep adding the 1 to X in let us say the next 10 steps, even though the conditions are not met (X is not < - 10 anymore) the next time the loop is run. Meaning that after the conditions are met, the logic (if X is < -10 add 1 to X) is ignored and the action is repeated 10 times (10 steps).

I know that the action conteracts the logic that triggers the action and i am wondering if this is even possible?

Hope the issue is clear and that you can help.

Best regards Sam

  1 Comment

on 19 Apr 2013

Hmm, is there really no one who has an idea if this is possible? I would think this is done often in controls, but i'm not sure.

Is the question not elaborated enough?

Thanks, Sam

2 Answers

Answer by Kaustubha Govind
on 22 Apr 2013

I think this should be possible. How about you use an Enabled Subsystem containing a Counter that outputs "true" for exactly 9 time-steps after it is enabled. The Counter's states must be reset when the subsystem is disabled. The control signal to the enabled subsystem should be an OR condition of (X<-10) and the output of the Counter. The same control signal can also be used in an "if-else" type construct (you could use a Switch block for this) to figure out whether to output (X) or (X+1).


Answer by Neelakanda Bharathiraja on 22 Apr 2013

The simple solution is modifying the condition itself. For you example : If X is < (-10+10) add 1 to X. The same is applicable for your controller model.

If you don't want to modify the condition and you want the co-simulation continue to run, then you might have to change the simulation speed of your model.


Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!