Ramp block having reset option

I would like to implement in simscape a kind of ramp block having reset option, thus that ramp would start rising from zero every time the reset is triggered. I've tried with resetable subsystem block but is of no helpfull.
Have u got any idea how to solve this?

Answers (2)

Aquatris
Aquatris on 15 Apr 2024
Here is one way with enabled subsystem, where the subsystem comes up with an offset (so if the ramp number gets too large it might be a problem):

5 Comments

Alternatively, you can use a constant block with an integrate within a resettable subsystem, where constant block will determine the ramp rate:
Andraz
Andraz on 16 Apr 2024
Moved: Sam Chak on 16 Apr 2024
Hi Aquatris,
I'm having very fine duty-cycle. Could you reveal what is inside resettable subsystem block at variant 2? I haven't found any ramp having also input port.
There is no ramp inside the resettable subsystem. it is a simple integration as below:
Now I'm a bit confused. In the first scheme you drew down an enabled subsystem block while in the second one a resetable subsystem block. Which option should be the right one? If I use the latter one with the integrator in then the source signal cannot be a time ramp but a step. The integral of a time ramp is not a saw.
There is no right or wrong as long as the output signal is what you expect, or unless it is a homework question asking to use a specific method.
In discrete time, there is no real ramp, it is always a step.
The ramp block does not have a reset option, so I introduced another method to generate 'resetable ramp' with an integrator.
I showed the output of the resettable subsystem as saw so why do you thinkg integral approach cannot genereate saw? The output of an integral gives a ramp, and with the reset functionality it becomes a saw

Sign in to comment.

If you have a good understanding of the fundamental mathematics behind a line graph, then theoretically, you should be able to implement the mathematical formula for a Resettable Ramp in the MATLAB Function block. This way, you can avoid using any specialized blocks that require a more abstract programmatic If–Else logic to comprehend.
t = linspace(0, 10, 1001);
p = 2*(heaviside(t - 2) + heaviside(t - 4) + heaviside(t - 6) + heaviside(t - 8));
y = (t - p)/2;
plot(t, y), grid on, ylim([-0.5, 1.5])
xlabel t, ylabel y(t), title('Resettable Ramp')

Products

Release

R2023b

Asked:

on 15 Apr 2024

Commented:

on 8 May 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!