No, that doesn't seem right.

current_speed = Math.linearTween(global_time - time_when_speed_up_started, initial_speed, change, desired_duration);

EDIT: The function could have had much more informative parameter names, like this:

Math.linearTween = function (time_since_transition_started, initial_value, value_change, transition_duration) {
return initial_value + value_change * (time_since_transition_started / transition_duration);
};

Since you seem to think that the final value at the end of the transition is a more natural quantity to think about than the change (and I agree), it could be

Math.linearTween = function (time_since_transition_started, initial_value, final_value, transition_duration) {
return initial_value + (final_value - initial_value) * (time_since_transition_started / transition_duration);
};

**Edited by Álvaro, 29 June 2014 - 06:33 AM.**