Overcome drag

I want an object to be able to accelerate to a certain speed at a given time despite the drag.
The problem is in a way that drag acting on a rigidbody, decreasing it’s velocity each frame by some value.

void FixedUpdate()
{ 
    Vector3 v = throttle * MaxSpeed * Direction; 
    Vector3 dv = v - _rb.velocity;

    float t = TimeToSpeedUp * (dv.magnitude / v.magnitude);
    if (t > 0f)
    {
        _rb.velocity += dv / t * Time.deltaTime;
    }
}

So, let’s say I want to reach MaxSpeed in TimeToSpeedUp seconds. Everything seems to be normal while the drag is zero, but if it’s not, how I could compensate velocity?

The simple solution would be to simply switch between a physics material with and without drag.

The other solution is to calculate the drag force applied on the next physics frame, and apply the reverse beforehand. To calculate the drag approximation used by unity, this answer provides more info: How drag is calculated by Unity engine.? - Questions & Answers - Unity Discussions