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);
};