MATLAB: How to make a function proceed in time when t is unknown

timewhile loop

Hi!
I have a function, for example speed as following:
v= v0 + a.*(t-t0);
If I have the input variables v0, a and t0 but t is unknown and I know that for this specific step the process will continue until v=-20 m/s. How can I make matlab plot the whole process with small time steps (dt) until the speed is -20 m/s?
I'm thinking about using a while function such as:
while v>=-20
v0=46;
t0=2;
a=-9.81;
v= v0+a*(t-t0);
end
It would be great if anyone could help me with that cause I am having real hard trouble to find how this should be done and trial and error does not seem to be the best solution!
Thanks

Best Answer

  • I suggest computing the time tend at which v=-20 m/s by hand, since it is so simple and then use
    v0 = 46;
    t0 = 2;
    a = -9.81;
    t = linspace(t0, tend, 50);
    for ii = 1:length(t)
    v(ii) = v0 + a*(t(ii) - t0);
    end
    Alternatively, you can use your while loop instead
    v(1) = v0;
    t(1) = t0;
    dt = 0.1; % or any other value
    ii = 1;
    while v(ii) >= -20
    ii = ii + 1;
    t(ii) = t(ii - 1) + dt;
    v(ii) = v(ii - 1) + a*(t(ii) - t0);
    end