Having Trouble with enable/delay etc in Simulink
24 views (last 30 days)
Show older comments
Hi Everyone,
I'll try to explain my problem as clear as I can: when you use an enabled subsystem that contains only a ramp function, the ramp will continue to develop with time even though the output signal of the subsystem will be held at a constant value while the subsystem is disabled. So the next time it is enabled, for instance if your initial value is 0 and you started disabled for 2 seconds leading to an enable situation at t=2, the output of the subsystem will be = 2 instead of 0 that I need. I imagined that changing the states when enabling in enable block to reset would solve my problem but I didn't see any difference. I thought I would need to use delays but the problem is that the enabled and disabled periods are variable and I can't wrap my head around this delay stuff and how to register time for it anyways.
My question is, is there any easier way to do this? any simple block that I don't know about and does the thing I want?
Thanks for your time,
Mike
4 Comments
shripad
on 16 Oct 2014
hi mike,
have also faced same problem ( based on what i understood from your question) , the solution might work for you - In enable subsystem block there is input port & Output port. Double click on output port, there are options available to hold or reset the state on output when enable subsystem signal is not correct.(i.e when condition does'nt meet)
Hope this will work for you
Regards, Shripad
Accepted Answer
TAB
on 7 Aug 2012
Edited: TAB
on 7 Aug 2012
As I understood, you want to synchronise the ramp generation with the condition output so that every time condition is enabled (0 to 1), ramp geneartion should re-start from 0.
Enabled subsystem always passes current status of output when it is enabled.
AFAIK, there is no block available directly which can generate resettable/re-startable ramp single depending upon condition.
But you can easily inplement your requirement using Matlab (previously Embedded Matlab) function block or using s-function. See a related Fex submission which can help you in implementing your own block.
More Answers (1)
Les Beckham
on 8 Jul 2017
It sounds like you just need an Integrator with your 'enable' signal as the input instead of a Ramp block. When 'enable' is one, the integrator output will be a ramp. When 'enable' is zero, the integrator output will stop at its current value.
0 Comments
See Also
Categories
Find more on Schedule Model Components 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!