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

Sam (view profile)

on 12 Apr 2013

Hello,

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

Sam

Sam (view profile)

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

Products

Kaustubha Govind (view profile)

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).

Neelakanda Bharathiraja (view profile)

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.